> ## 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/{id}

> Get one WhatsApp Flow, including its stored Flow JSON and the Meta flow id used to send it.

## Endpoint

```
GET https://api.keebai.com/v1/flows/{id}
```

## Required scope

`flows:read`

## Path parameters

| Parameter | Type     | Description                                                                                                       |
| --------- | -------- | ----------------------------------------------------------------------------------------------------------------- |
| `id`      | `string` | Keebai flow id — the `id` returned by [`POST /v1/flows`](/dev/endpoints/flows-create), not Meta's `meta_flow_id`. |

## Example request

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

## Response

### 200 OK

Same shape as one entry of [`GET /v1/flows`](/dev/endpoints/flows-list#200-ok).

### 400 Bad Request

`INVALID_FLOW_ID` — the id is not a valid Keebai identifier.

### 404 Not Found

`FLOW_NOT_FOUND` — no Flow with that id in this project.


## OpenAPI

````yaml GET /v1/flows/{id}
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/{id}:
    get:
      tags:
        - flows
      summary: Get a WhatsApp Flow by id
      operationId: PublicFlowsController_getById
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowResponseDto'
      security:
        - PAT: []
components:
  schemas:
    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`.

````