Conversations
Conversas e mensagens
GET/api/conversation-stages
Etapas comerciais do time
Escopo exigido: conversations.read
curl "https://api.zapyflow.com.br/api/conversation-stages" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK
POST/api/conversation-stages
Criar etapa comercial
Escopo exigido: conversation_stages.write
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
name | string | sim | min 1, max 40 |
color | string | sim | — |
curl -X POST "https://api.zapyflow.com.br/api/conversation-stages" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
201— Criado409— Conflito com o estado atual422— Entendido, mas recusado por uma regra
PATCH/api/conversation-stages/{id}
Renomear ou repintar uma etapa comercial
Escopo exigido: conversation_stages.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
name | string | não | min 1, max 40 |
color | string | não | — |
curl -X PATCH "https://api.zapyflow.com.br/api/conversation-stages/{id}" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
200— OK404— Não encontrado — também é a resposta quando o recurso é de outro workspace409— Conflito com o estado atual
DELETE/api/conversation-stages/{id}
Excluir etapa comercial
Escopo exigido: conversation_stages.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
curl -X DELETE "https://api.zapyflow.com.br/api/conversation-stages/{id}" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK404— Não encontrado — também é a resposta quando o recurso é de outro workspace409— Conflito com o estado atual
GET/api/conversations
Listar conversas do time com filtros
Escopo exigido: conversations.read
| Parâmetro | Onde | Obrigatório |
|---|---|---|
page | query | não |
limit | query | não |
status | query | não |
handoffType | query | não |
aiAgentId | query | não |
search | query | não |
assignee | query | não |
curl "https://api.zapyflow.com.br/api/conversations" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK
GET/api/conversations/{id}
Detalhes de uma conversa
Escopo exigido: conversations.read
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
curl "https://api.zapyflow.com.br/api/conversations/{id}" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK404— Não encontrado — também é a resposta quando o recurso é de outro workspace
PATCH/api/conversations/{id}
Atualizar status ou assignedTo de uma conversa
Escopo exigido: conversations.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
status | "ACTIVE" | "RESOLVED" | "HANDED_OFF" | não | — |
handoffType | string | não | — |
assignedTo | string | não | — |
assignedToUserId | stringnull | não | — |
curl -X PATCH "https://api.zapyflow.com.br/api/conversations/{id}" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
200— OK404— Não encontrado — também é a resposta quando o recurso é de outro workspace422— Entendido, mas recusado por uma regra
POST/api/conversations/{id}/ai-insights
Gerar insights IA sobre uma conversa
Escopo exigido: conversations.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
curl -X POST "https://api.zapyflow.com.br/api/conversations/{id}/ai-insights" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK404— Não encontrado — também é a resposta quando o recurso é de outro workspace
GET/api/conversations/{id}/messages
Listar mensagens de uma conversa com paginacao para historico antigo
Escopo exigido: conversations.read
| Parâmetro | Onde | Obrigatório |
|---|---|---|
limit | query | não |
cursor | query | não |
id | path | sim |
curl "https://api.zapyflow.com.br/api/conversations/{id}/messages" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK400— Requisição malformada404— Não encontrado — também é a resposta quando o recurso é de outro workspace
POST/api/conversations/{id}/messages
Enviar mensagem como agente humano na conversa
Escopo exigido: conversations.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
content | string | não | min 1 |
type | "TEXT" | "AUDIO" | "IMAGE" | "VIDEO" | "DOCUMENT" | "LOCATION" | não | — |
mediaUrl | string | não | — |
template | object | não | — |
replyToMessageId | string | não | — |
idempotencyKey | string | não | min 8, max 160 |
correlationId | string | não | min 8, max 160 |
curl -X POST "https://api.zapyflow.com.br/api/conversations/{id}/messages" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
201— Criado400— Requisição malformada404— Não encontrado — também é a resposta quando o recurso é de outro workspace409— Conflito com o estado atual503
POST/api/conversations/{id}/messages/{messageId}/react
Reagir a uma mensagem com emoji
Escopo exigido: conversations.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
messageId | path | sim |
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
emoji | string | sim | max 16 |
curl -X POST "https://api.zapyflow.com.br/api/conversations/{id}/messages/{messageId}/react" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
200— OK400— Requisição malformada404— Não encontrado — também é a resposta quando o recurso é de outro workspace
GET/api/conversations/{id}/template-availability
Disponibilidade de janela e cotas por categoria de modelo
Escopo exigido: conversations.read
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
curl "https://api.zapyflow.com.br/api/conversations/{id}/template-availability" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK404— Não encontrado — também é a resposta quando o recurso é de outro workspace
POST/api/conversations/{id}/upload-media
Upload de mídia (anexo/áudio) para enviar numa conversa
Escopo exigido: conversations.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
curl -X POST "https://api.zapyflow.com.br/api/conversations/{id}/upload-media" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK400— Requisição malformada404— Não encontrado — também é a resposta quando o recurso é de outro workspace
GET/api/conversations/{id}/utility-check
Disponibilidade de janela e cotas por categoria de modelo
Escopo exigido: conversations.read
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
curl "https://api.zapyflow.com.br/api/conversations/{id}/utility-check" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK404— Não encontrado — também é a resposta quando o recurso é de outro workspace
POST/api/conversations/new
Iniciar nova conversa com um numero
Escopo exigido: conversations.write
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
content | string | não | min 1 |
type | "TEXT" | "AUDIO" | "IMAGE" | "VIDEO" | "DOCUMENT" | "LOCATION" | não | — |
mediaUrl | string | não | — |
template | object | não | — |
replyToMessageId | string | não | — |
idempotencyKey | string | não | min 8, max 160 |
correlationId | string | não | min 8, max 160 |
channelId | string | sim | — |
phoneNumber | string | sim | min 10, max 40 |
curl -X POST "https://api.zapyflow.com.br/api/conversations/new" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
201— Criado400— Requisição malformada403— Proibido, ou a chave não tem este escopo409— Conflito com o estado atual503
GET/api/conversations/overview
Métricas de conversas (7 dias) com sparkline e crescimento
Escopo exigido: conversations.read
curl "https://api.zapyflow.com.br/api/conversations/overview" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK
GET/api/media-library
Arquivos reutilizáveis do time
Escopo exigido: library.read
curl "https://api.zapyflow.com.br/api/media-library" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK
POST/api/media-library
Guardar um arquivo na biblioteca
Escopo exigido: library.write
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
id | string | sim | — |
name | string | sim | — |
url | string | sim | — |
contentType | string | sim | — |
kind | "IMAGE" | "VIDEO" | "AUDIO" | "DOCUMENT" | sim | — |
sizeBytes | integer | sim | — |
usageCount | integer | sim | — |
curl -X POST "https://api.zapyflow.com.br/api/media-library" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
201— Criado400— Requisição malformada409— Conflito com o estado atual
PATCH/api/media-library/{id}
Renomear um arquivo da biblioteca
Escopo exigido: library.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
name | string | sim | min 1, max 120 |
curl -X PATCH "https://api.zapyflow.com.br/api/media-library/{id}" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
200— OK404— Não encontrado — também é a resposta quando o recurso é de outro workspace
DELETE/api/media-library/{id}
Tirar um arquivo da biblioteca
Escopo exigido: library.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
curl -X DELETE "https://api.zapyflow.com.br/api/media-library/{id}" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK404— Não encontrado — também é a resposta quando o recurso é de outro workspace
POST/api/media-library/{id}/used
Registrar envio de um arquivo da biblioteca
Escopo exigido: library.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
curl -X POST "https://api.zapyflow.com.br/api/media-library/{id}/used" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK
GET/api/quick-replies
Respostas rápidas do time
Escopo exigido: library.read
curl "https://api.zapyflow.com.br/api/quick-replies" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK
POST/api/quick-replies
Criar resposta rápida
Escopo exigido: library.write
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
shortcut | string | sim | min 1, max 40 |
content | string | sim | min 1, max 4000 |
curl -X POST "https://api.zapyflow.com.br/api/quick-replies" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
201— Criado409— Conflito com o estado atual
DELETE/api/quick-replies/{id}
Excluir resposta rápida
Escopo exigido: library.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
curl -X DELETE "https://api.zapyflow.com.br/api/quick-replies/{id}" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK404— Não encontrado — também é a resposta quando o recurso é de outro workspace
POST/api/quick-replies/{id}/used
Registrar uso de uma resposta rápida
Escopo exigido: library.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
curl -X POST "https://api.zapyflow.com.br/api/quick-replies/{id}/used" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK