---
title: "Listar formulários"
method: GET
path: "/v1/flows"
tags: ["Formulários"]
---

# Listar formulários

`GET /v1/flows`

## Request

- Base URL: `https://api.ararahq.com`
- URL: `https://api.ararahq.com/v1/flows`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/ararahq/apis/ararahq-api/docs/v1/flows/get.ts> (a function with typed inputs; its response is checked against the schema)

Formulários da organização, do mais recente para o mais antigo, em
`{ data, pagination }`. O `id` de cada item é o `flowId` usado no envio.
Permissão: `READ`.

## Query parameters

- `page` integer
- `size` integer

## Response `200`

Página de formulários

- FlowPage
  - `data` Flow[], required
    - `id` string, uuid, required: Use como `flowId` no envio e no botão `FLOW` do template.
    - `name` string, required
    - `category` 'SIGN_UP' | 'LEAD_GENERATION' | 'SURVEY' | 'APPOINTMENT_BOOKING' | 'CONTACT_US' | 'OTHER', required
    - `status` 'DRAFT' | 'PUBLISHED' | 'DEPRECATED', required: `DRAFT`: criado, mas a publicação falhou (veja `publishError`). `PUBLISHED`: no ar, pode ser enviado. `DEPRECATED`: desativado.
    - `definition` object, required: O formulário como foi criado, já com as chaves finais.
      - `title` string, required
      - `intro` string, nullable
      - `submitLabel` string, required
      - `fields` FlowField[], required
        - `key` string, required: Chave estável da resposta.
        - `label` string, required
        - `type` 'TEXT' | 'EMAIL' | 'PHONE' | 'NUMBER' | 'LONG_TEXT' | 'SELECT' | 'MULTI_SELECT' | 'DATE' | 'OPT_IN', required: Texto, e-mail, telefone, número, texto longo, escolha única, múltipla escolha, data ou aceite.
        - `required` boolean, required
        - `options` object[], required
          - `id` string, required
          - `title` string, required
    - `responseCount` integer, required: Total de respostas recebidas.
    - `publishError` string, nullable: Preenchido só quando o formulário foi criado mas a publicação falhou.
    - `createdAt` string, date-time, nullable
    - `publishedAt` string, date-time, nullable
  - `pagination` Pagination, required
    - `page` integer, required: Página atual, começando em `0`.
    - `size` integer, required: Itens por página.
    - `totalElements` integer, required
    - `totalPages` integer, required

## Other responses

- `401`: Chave inexistente, revogada, expirada, com prefixo errado (`ara_` sem `ara_live_`) ou vinda de IP fora da allowlist. O corpo é o JSON padrão do Spring, sem `error.code`.
- `403`: Dois casos, com corpos diferentes: - Autenticação: header `Authorization` ausente, Bearer que não começa com `ara_`, chave sem a permissão da rota ou rota que não aceita chave de API. Corpo no formato padrão do Spring, sem `error.code`. - Regra de negócio, no formato `{ "error": { ... } }`: `PLAN_FEATURE_LOCKED`, `PLAN_LIMIT_REACHED`, `ACCOUNT_NOT_ACTIVATED`, `NO_DEDICATED_NUMBER`, `ORGANIZATION_SUSPENDED`, `NUMBER_BLOCKED`, `FRAUD_SUSPECTED`, `RESOURCE_FORBIDDEN`, `VIEWER_READ_ONLY`.
- `429`: `RATE_LIMIT_EXCEEDED`: limite geral da API (1.200 leituras ou 3.000 escritas por minuto, por usuário da chave).

## Changes

- **2026-10-12** `d576cd28afc0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ararahq/apis/ararahq-api/changes/v1/flows/get.md)

---

[API](https://skmtc.dev/ararahq/apis/ararahq-api.md) - [All operations](https://skmtc.dev/ararahq/apis/ararahq-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ararahq/apis/ararahq-api/revisions/d576cd28afc0?raw)
