> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usefini.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List rules

> List rules in the workspace by type and draft state.

Returns rules in the workspace as summary objects.

<Note>
  Current controller behavior: if you omit `type`, this route defaults to `intent`. Send `type=business` explicitly when you want Business Rules instead.
</Note>

## Headers

<ParamField header="Authorization" type="string" required>
  Bearer token containing your Fini workspace API key. Format: `Bearer fini_...` The key needs `read` scope.
</ParamField>

## Query parameters

<ParamField query="isDraft" type="boolean">
  Optional draft filter. Omit it to list published rules.
</ParamField>

<ParamField query="type" type="string">
  Optional rule type. Current values are `intent` and `business`. Defaults to `intent`.
</ParamField>

<ParamField query="source" type="string">
  Optional source filter. Current public enum value is `widget`.
</ParamField>

## Response

Returns a top-level array of [`Rule summary`](/en/api-reference/rules#rule-summary-object) objects.

<Note>
  This route omits `flowConfig` and does not currently expand `botIds`. Fetch one rule by ID when you need the full tree or assignments.
</Note>

## Errors

<AccordionGroup>
  <Accordion title="400 Bad Request" icon="circle-exclamation">
    The query params are malformed or use unsupported enum values.
  </Accordion>

  <Accordion title="401 Unauthorized" icon="lock">
    The API key is missing, malformed, revoked, or invalid.
  </Accordion>

  <Accordion title="403 Forbidden" icon="shield-halved">
    The API key does not include the `read` scope required for this route.
  </Accordion>

  <Accordion title="500 Internal Server Error" icon="triangle-exclamation">
    Fini failed while loading rules from storage.
  </Accordion>
</AccordionGroup>
