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

# GET /v1/flows

> List the project's WhatsApp Flows with their status and Meta flow id.

Lists the WhatsApp Flows of the project the token belongs to.

## Endpoint

```
GET https://api.keebai.com/v1/flows
```

## Required scope

`flows:read`

## Query parameters

| Parameter    | Type     | Required | Description                                |
| ------------ | -------- | -------- | ------------------------------------------ |
| `channel_id` | `string` | No       | Restrict the list to one WhatsApp channel. |
| `skip`       | `number` | No       | Offset. Defaults to `0`.                   |
| `limit`      | `number` | No       | Page size, 1–200. Defaults to `100`.       |

## Example request

```bash curl theme={null}
curl https://api.keebai.com/v1/flows \
  -H "Authorization: Bearer kbai_pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
```

## Response

### 200 OK

```json theme={null}
{
  "data": [
    {
      "id": "66a1f2b3c4d5e6f708192a3b",
      "channel_id": "665f1a2b3c4d5e6f70819234",
      "name": "reserva-mesa",
      "description": "Reserva de mesa en dos pasos",
      "meta_flow_id": "1234567890123456",
      "categories": ["APPOINTMENT_BOOKING"],
      "status": "published",
      "flow_data": { "version": "7.0", "screens": [] },
      "metadata": {},
      "created_at": "2026-07-27T14:31:07.221Z",
      "updated_at": "2026-07-27T15:02:44.108Z"
    }
  ]
}
```

`status` is one of `draft`, `published` or `archived`. Only a `published` Flow reaches recipients who are not registered WABA testers.


## OpenAPI

````yaml GET /v1/flows
openapi: 3.0.0
info:
  title: Keebai Public API
  description: Superficie pública REST autenticada con Personal Access Tokens (PAT).
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.keebai.com
    description: Production
security: []
tags: []
paths:
  /v1/flows:
    get:
      tags:
        - flows
      summary: List the WhatsApp Flows of the project
      operationId: PublicFlowsController_list
      parameters:
        - name: channel_id
          required: false
          in: query
          description: >-
            Keebai channel id. Optional when the tenant has exactly one active
            channel of the given type; required to disambiguate otherwise.
          schema:
            example: 665f1a2b3c4d5e6f70819234
            type: string
        - name: skip
          required: false
          in: query
          schema:
            minimum: 0
            default: 0
            type: number
        - name: limit
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 200
            default: 100
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowListResponseDto'
      security:
        - PAT: []
components:
  schemas:
    FlowListResponseDto:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/FlowResponseDto'
      required:
        - data
    FlowResponseDto:
      type: object
      properties:
        id:
          type: string
          description: Keebai flow id.
        channel_id:
          type: string
          description: Keebai channel this Flow belongs to.
        name:
          type: string
        description:
          type: string
          nullable: true
        meta_flow_id:
          type: string
          nullable: true
          description: >-
            Meta Flow id. Use it as `flow_id` when sending a message of type
            `flow`. Null until Meta accepts the Flow.
        categories:
          type: array
          items:
            type: string
            enum:
              - OTHER
              - SIGN_UP
              - SIGN_IN
              - APPOINTMENT_BOOKING
              - LEAD_GENERATION
              - CONTACT_US
              - CUSTOMER_SUPPORT
              - SURVEY
        status:
          type: string
          enum:
            - draft
            - published
            - archived
        flow_data:
          type: object
          description: Flow JSON currently stored in Keebai.
        metadata:
          type: object
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          nullable: true
      required:
        - id
        - channel_id
        - name
        - categories
        - status
  securitySchemes:
    PAT:
      scheme: bearer
      bearerFormat: kbai_pk_<hex>
      type: http
      description: >-
        Personal Access Token con prefijo `kbai_pk_`. Generar desde el portal
        con permiso `developer.manage_tokens`.

````