Referência da API pública
Endpoints, scopes e exemplos para tickets, mensagens e ações.
Use chaves de API com scopes para gerir tickets omnichannel e ações a partir dos seus sistemas.
URL base
Todas as requisições passam pelo gateway público.
https://api.threada.ai Autenticação
- Envie a chave da API no cabeçalho `X-Api-Key`.
- Crie e rode chaves em Admin → API keys; use uma chave por integração.
- As chaves são por tenant e aplicam menor privilégio via scopes.
Scopes
- `support.read` — listar e recuperar tickets, mensagens e ações.
- `support.write` — criar/atualizar tickets e anexar mensagens.
- `support.actions` — executar ações e consultar o status.
Paginação
- Endpoints de lista aceitam `limit` e `page_token`.
- Passe `next_page_token` na próxima requisição.
Erros
- Erros retornam `{ error: { type, message, code } }`.
- Os códigos HTTP refletem o valor de `code`.
Exemplos de requisição e resposta
Listar tickets
Busque tickets abertos em todos os canais.
Requisição
curl -X GET "https://api.threada.ai/api/v1/public/tickets?limit=25" \
-H "X-Api-Key: YOUR_API_KEY" Resposta
{
"items": [
{
"ticket_id": "TICKET_ID",
"tenant_id": "TENANT_ID",
"subject": "SUBJECT",
"status": "open",
"priority": "normal",
"channel": "email",
"tags": ["vip", "returns"],
"last_message_at": "2026-02-04T18:32:11Z"
}
],
"next_page_token": "NEXT_PAGE_TOKEN"
} Criar um ticket
Abra um novo ticket com uma mensagem inicial.
Requisição
curl -X POST "https://api.threada.ai/api/v1/public/tickets" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"subject": "SUBJECT",
"priority": "normal",
"channel": "email",
"contact": {
"name": "CUSTOMER_NAME",
"email": "customer@example.com"
},
"tags": ["returns"],
"initial_message": {
"role": "user",
"content": "MESSAGE_BODY",
"external_message_id": "EXT_MSG_ID"
}
}' Resposta
{
"ticket": {
"summary": {
"ticket_id": "TICKET_ID",
"tenant_id": "TENANT_ID",
"subject": "SUBJECT",
"status": "open",
"priority": "normal",
"channel": "email",
"tags": ["returns"],
"created_at": "2026-02-04T18:32:11Z"
},
"contact": {
"name": "CUSTOMER_NAME",
"email": "customer@example.com"
},
"messages": [
{
"message_id": "MESSAGE_ID",
"role": "user",
"content": "MESSAGE_BODY",
"channel": "email",
"created_at": "2026-02-04T18:32:11Z"
}
]
}
} Executar uma ação
Dispare uma automação HTTP personalizada para um ticket.
Requisição
curl -X POST "https://api.threada.ai/api/v1/public/tickets/TICKET_ID/actions" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"payload": {
"type": "custom_http",
"method": "POST",
"url": "/hooks/zapier",
"headers": {
"X-Source": "threada"
},
"body_json": "{\"event\":\"ticket_updated\"}"
}
}' Resposta
{
"action": {
"action_id": "ACTION_ID",
"tenant_id": "TENANT_ID",
"ticket_id": "TICKET_ID",
"action_type": "custom_http",
"status": "succeeded",
"requested_by": "api_key:API_KEY_ID",
"payload": {
"type": "custom_http",
"method": "POST",
"url": "/hooks/zapier",
"headers": {
"X-Source": "threada"
},
"body_json": "{\"event\":\"ticket_updated\"}"
}
}
} Precisa de mais endpoints?
Contacte-nos para acesso ampliado, limites mais altos e SLAs empresariais.
Contactar vendas