---
title: "Consultar formulário"
method: GET
path: "/v1/flows/{id}"
tags: ["Formulários"]
---

# Consultar formulário

`GET /v1/flows/{id}`

## Request

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

Devolve o formulário com a definição das perguntas e o total de respostas. Permissão: `READ`.

## Path parameters

- `id` string, uuid, required

## Response `200`

Formulário

- Flow
  - `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

## 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`.
- `404`: `FLOW_NOT_FOUND`: formulário inexistente ou de outra organização.
- `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/:id/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)
