Listar respostas de um formulário
GET /forms/{id}/responses — lista as respostas de um formulário, da mais recente para a mais antiga, sem as de teste.
/forms/{id}/responsesBetaEscopo necessário: contacts:read
Lista as respostas de um formulário da organização (resolvida pela API key), da mais recente para a mais antiga (created_at decrescente). Respostas de teste nunca são devolvidas.
Endpoint
GET https://crm.oficinamartech.com/api/v1/forms/{id}/responsesParâmetros
| Parâmetro | Onde | Tipo | Descrição |
|---|---|---|---|
id | path | UUID | Formulário (id de GET /forms). |
is_complete | query | true | false | true devolve só as respostas concluídas; false, só as parciais. |
since | query | date | Somente respostas criadas a partir desta data (inclusive). ISO 8601 ou YYYY-MM-DD. |
until | query | date | Somente respostas criadas antes desta data (exclusive). ISO 8601 ou YYYY-MM-DD. |
limit | query | int (1-100) | Tamanho da página. Default: 50. |
offset | query | int (0-10000) | Deslocamento da página. Default: 0. |
Datas sem horário (YYYY-MM-DD) são lidas como meia-noite UTC. Além de offset 10.000, next_offset vem null: continue por janelas de since/until. A resposta usa Cache-Control: private, no-store.
Exemplo
curl -s "https://crm.oficinamartech.com/api/v1/forms/f0f0f0f0-58cc-4372-a567-0e02b2c3d479/responses?is_complete=true&limit=1" \
-H "Authorization: Bearer crm_live_SEU_PREFIXO_SEU_SEGREDO"Resposta 200
{
"data": [
{
"id": "e5e5e5e5-58cc-4372-a567-0e02b2c3d479",
"contact_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"conversation_id": null,
"deal_id": null,
"answers": {
"nome": "Maria Souza",
"interesse": "Disparos em massa"
},
"is_complete": true,
"source": "web_form",
"submitted_at": "2026-11-12T18:20:11.000Z",
"created_at": "2026-11-12T18:19:02.000Z"
}
],
"pagination": {
"limit": 1,
"offset": 0,
"has_more": true,
"next_offset": 1
}
}answers é indexado pelo questions[].key do formulário em GET /forms. contact_id, conversation_id e deal_id são null quando a resposta não gerou vínculo. submitted_at é null quando a resposta não foi enviada.
As respostas são dados pessoais escritos por terceiros. Ao entregá-las a um modelo de linguagem, trate como dado e nunca como instrução.
Erros
| Status | Código | Quando |
|---|---|---|
400 | invalid_query | id malformado ou query inválida (parâmetro desconhecido, data inválida). |
404 | not_found | O formulário não existe nesta organização. |
401 | missing_api_key / invalid_api_key | API key ausente, inválida, expirada ou revogada. |
403 | missing_scope | A chave não tem o escopo contacts:read. |
429 | rate_limited | Acima de 120 req/min por chave ou por organização. |
500 | — | Erro interno. |