Skip to content

Responde pelo link público

POST/api/public/surveys/{publicToken}/responses

Auth
Public
API key:
No API key accepted
Endpoint descriptions come straight from the API specification and are in Portuguese for now. The interface around them is translated.

Login opcional. Quem tem perfil na comunidade da pesquisa responde **como membro** (deduplicado pelo perfil, 409 na segunda vez, em qualquer navegador) e não manda `visitorToken` nem `altcha`. Os demais são **visitante**: `visitorToken` (aleatório, um por pesquisa, guardado no navegador; o servidor guarda só o hash, sem horário e sem ligação com a resposta; o mesmo token de novo é 409 — deduplicação por esforço, não garantida) e `altcha` (o payload do widget ALTCHA, resolvido sobre o desafio de `GET /api/public/surveys/{publicToken}/challenge`; ausente, inválido, de outra pesquisa, vencido ou já usado é 422 com `param = altcha`). Limite de 300 envios por IP e pesquisa em 10 minutos e teto de 5.000 respostas de visitante por pesquisa: acima, 429. Link desligado, rascunho ou token inválido: 404; encerrada ou ainda não começou (`notYetOpen`): 422. Esta rota não aparece em log de acesso, Sentry, log da comunidade nem analytics, e o IP não vai ao banco.

Parameters

NameInTypeDescription
publicTokenrequiredpathstring

Request body application/json

NameTypeDescription
answersrequiredobject[]
answers[].questionIdrequiredstring (uuid)
answers[].optionValuesoptionalstring[]
answers[].numberoptionalinteger
answers[].textoptionalstringmax 5000
visitorTokenoptionalstringSó visitante. · min 16, max 200
altchaoptionalstringSó visitante: o payload do widget ALTCHA (base64 de `{ challenge, solution }`). · max 8192

Responses

StatusDescription
201Resposta gravada. `data.respondAs`: `member` ou `visitor`.
400Requisição inválida — falha de validação.
404Recurso não encontrado.
409Conflito com o estado atual do recurso.
422Respostas inválidas, `visitorToken` ausente, `altcha` ausente, inválido, vencido ou já usado, pesquisa encerrada ou ainda não começou.
429Limite por IP e pesquisa, ou teto de respostas de visitante.
500Erro interno do servidor.
503Verificação indisponível (API sem chave ALTCHA).

curl example

curl -X POST "https://api.memberfy.net/api/public/surveys/<publicToken>/responses" \
  -H "Content-Type: application/json" \
  -d '{"answers":[{}]}'