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

# List Flows

> GET /api/v1/flows

List all flows available to your organization.

## Endpoint

```
GET https://app.doclo.ai/api/v1/flows
```

## Authentication

Requires an API key with `flows:read` scope.

```bash theme={null}
Authorization: Bearer dc_live_your_api_key
```

## Request

No request body required.

### Query Parameters

| Parameter | Type   | Description                                     |
| --------- | ------ | ----------------------------------------------- |
| `limit`   | number | Maximum flows to return (default: 50, max: 100) |
| `offset`  | number | Number of flows to skip for pagination          |

## Response

### Success (200 OK)

```json theme={null}
{
  "flows": [
    {
      "id": "invoice-extractor",
      "name": "Invoice Extractor",
      "description": "Extract structured data from invoices",
      "version": "1.2.0",
      "createdAt": "2024-01-15T10:30:00Z",
      "updatedAt": "2024-02-20T14:45:00Z"
    },
    {
      "id": "receipt-scanner",
      "name": "Receipt Scanner",
      "description": "Parse receipts and extract line items",
      "version": "1.0.0",
      "createdAt": "2024-02-01T09:00:00Z",
      "updatedAt": "2024-02-01T09:00:00Z"
    }
  ],
  "total": 2,
  "limit": 50,
  "offset": 0
}
```

### Response Fields

| Field                 | Type   | Description                                      |
| --------------------- | ------ | ------------------------------------------------ |
| `flows`               | array  | List of flow objects                             |
| `flows[].id`          | string | Unique flow identifier (used in other endpoints) |
| `flows[].name`        | string | Human-readable flow name                         |
| `flows[].description` | string | Flow description                                 |
| `flows[].version`     | string | Current version (semver)                         |
| `flows[].createdAt`   | string | ISO 8601 creation timestamp                      |
| `flows[].updatedAt`   | string | ISO 8601 last update timestamp                   |
| `total`               | number | Total number of flows                            |
| `limit`               | number | Limit used in this request                       |
| `offset`              | number | Offset used in this request                      |

## Examples

### cURL

```bash theme={null}
curl https://app.doclo.ai/api/v1/flows \
  -H "Authorization: Bearer dc_live_your_api_key"
```

### TypeScript

```typescript theme={null}
const response = await fetch('https://app.doclo.ai/api/v1/flows', {
  headers: {
    'Authorization': `Bearer ${process.env.DOCLO_API_KEY}`
  }
});

const { flows } = await response.json();

for (const flow of flows) {
  console.log(`${flow.name} (${flow.id}) - v${flow.version}`);
}
```

### With Pagination

```bash theme={null}
# Get flows 11-20
curl "https://app.doclo.ai/api/v1/flows?limit=10&offset=10" \
  -H "Authorization: Bearer dc_live_your_api_key"
```

## Errors

| Status | Code           | Description                        |
| ------ | -------------- | ---------------------------------- |
| 401    | `UNAUTHORIZED` | Missing or invalid API key         |
| 403    | `FORBIDDEN`    | API key missing `flows:read` scope |
| 429    | `RATE_LIMITED` | Rate limit exceeded                |

## Next Steps

<CardGroup cols={2}>
  <Card title="Get Flow" icon="file" href="/api-reference/flows/get">
    Get flow details and schema
  </Card>

  <Card title="Run Flow" icon="play" href="/api-reference/flows/run">
    Execute a flow
  </Card>
</CardGroup>
