Cria uma pesquisa (rascunho)
POST/api/surveys
- Auth
- Requiere token
- Clave de API:
- surveys:write
- X-CommunityId
X-CommunityIdEnvía el X-CommunityId de la comunidad en la que ocurre la operación.
Las descripciones de los endpoints vienen de la especificación de la API y, por ahora, están en portugués. La interfaz alrededor está traducida.
Owner e admin. Precisa do `spaceId` de um espaço de pesquisas da comunidade. Nasce rascunho, invisível para todos, inclusive pelo link. Com `template` e sem `sections`, recebe as seções e perguntas do modelo no idioma da comunidade. O `publicToken` é gerado na criação; o link só responde com `publicLinkEnabled` e depois de aberta.
Headers
| Nombre | Tipo | Descripción |
|---|---|---|
X-CommunityIdopcional | string (uuid) | ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade. |
Cuerpo de la solicitud application/json
| Nombre | Tipo | Descripción |
|---|---|---|
spaceIdopcional | string (uuid) | **Obrigatório na criação.** Um espaço do módulo `surveys` da comunidade do header (outro módulo, outra comunidade ou apagado: 422 em `spaceId`). Num espaço "Uma pesquisa" (`moduleConfig.mode = single`) que já tem uma, 409. Na edição (só no rascunho), move a pesquisa para outro espaço de pesquisas, com as mesmas regras. |
titleopcional | string | max 200 |
descriptionopcional | string | max 5000 |
templateopcional | nps | csat | event | course | enps | blank | Só na criação: sem `sections`, a pesquisa nasce com as do modelo, no idioma da comunidade. |
anonymityopcional | IDENTIFIED | ANONYMOUS | |
publicLinkEnabledopcional | boolean | |
startsAtopcional | string (date-time) | Início da coleta (opcional). Abrir com ele no futuro agenda a pesquisa. |
closesAtopcional | string (date-time) | Fim da coleta (opcional), depois de `startsAt`. |
responseModeopcional | optional | required | immediate | |
sectionsopcional | object[] | |
sections[].idopcional | string (uuid) | |
sections[].positionopcional | integer | |
sections[].titleobligatorio | string | max 200 |
sections[].descriptionopcional | string | |
sections[].questionsopcional | object[] | |
sections[].questions[].idopcional | string (uuid) | |
sections[].questions[].sectionIdopcional | string (uuid) | |
sections[].questions[].positionopcional | integer | |
sections[].questions[].typeobligatorio | SINGLE_CHOICE | MULTIPLE_CHOICE | SCALE | NPS | TEXT | |
sections[].questions[].titleobligatorio | string | max 500 |
sections[].questions[].helpopcional | string | max 1000 |
sections[].questions[].requiredopcional | boolean | |
sections[].questions[].optionsopcional | object[] | |
sections[].questions[].minopcional | integer | |
sections[].questions[].maxopcional | integer | |
sections[].questions[].minLabelopcional | string | |
sections[].questions[].maxLabelopcional | string | |
sections[].questions[].displayopcional | numbers | stars | short | long | |
groupByPrimaryGroupopcional | boolean | Só anônima e só no rascunho (identificada: 422 `groupingAnonymousOnly`; mudar para identificada desliga). Aceito e guardado, mas sem efeito até o mapa de calor anônimo chegar. |
recurrenceopcional | object | Só no rascunho (aberta ou agendada: 422 `recurrenceDraftOnly`; numa rodada: 422 `recurrenceRoundCannotRepeat`). Um objeto liga a repetição (ou muda a agenda) e a primeira rodada abre na próxima data depois de agora (ou de `startsAt`); a pesquisa recorrente continua editável e cada mudança vale só para as próximas rodadas. `null` desliga: sem rodadas, volta a ser rascunho comum; com rodadas, encerra a repetição. Encerrada: 422 `recurrenceEnded`. |
Respuestas
| Código | Descripción |
|---|---|
201 | Criada. |
400 | Requisição inválida — falha de validação. |
401 | Token ausente, inválido ou expirado; token de outra comunidade (o `X-CommunityId` ou o `communityId` do corpo não é o do token); token antigo ou de uma sessão encerrada (troca de senha, convite aceito). Nesses casos a mensagem pede para entrar de novo (`auth.signInAgain`). |
403 | Autenticado, mas sem permissão para esta operação. |
409 | O espaço é "Uma pesquisa" e já tem a sua (`errors[0].param = spaceId`). |
422 | Sem `spaceId` ou espaço que não é de pesquisas da comunidade (`errors[0].param = spaceId`); árvore inválida (cada problema com o caminho em `errors[].param`, ex.: `sections[1].questions[0].options`), mais de 20 seções ou 100 perguntas, modelo desconhecido. |
500 | Erro interno do servidor. |
Ejemplo con curl
curl -X POST "https://api.memberfy.net/api/surveys" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID" \
-H "Content-Type: application/json" \
-d '{}'