Esta documentação é destinada a desenvolvedores que desejam integrar seus sistemas com o Timely.ai.
Para informações sobre o uso da plataforma, consulte os Guias.
Visão geral
A API do Timely.ai permite gerenciar programaticamente todos os recursos da plataforma:- Agentes — criação, configuração e gerenciamento de agentes IA
- Treinamentos — gestão da base de conhecimento dos agentes
- Canais — configuração de canais de comunicação (WhatsApp, Telegram, Email, Website)
- Contatos — cadastro e gerenciamento de clientes
- Conversas — histórico de conversas e mensagens
- Campos Personalizados — definição de campos customizados para contatos
- Chats — operações em chats ativos e handoff humano
- Messages — acesso direto a mensagens individuais
- MCP Servers — gerenciamento de servidores Model Context Protocol
- Webhooks — receba eventos em tempo real
Base URL
/v1.
Autenticação
Todas as requisições (exceto/v1/health) requerem autenticação via header x-api-key:
Scopes
Cada API key possui escopos que controlam quais recursos podem ser acessados:| Scope | Descrição |
|---|---|
agents:read | Leitura de agentes, configurações, webhooks, créditos e histórico |
agents:write | Criação, atualização e ativação/desativação de agentes |
agents:delete | Exclusão de agentes |
trainings:read | Leitura de treinamentos dos agentes |
trainings:write | Criação, atualização e exclusão de treinamentos |
channels:read | Leitura de canais, configurações, QR code e widget |
channels:write | Criação, atualização e exclusão de canais |
contacts:read | Leitura de contatos |
contacts:write | Criação, atualização e exclusão de contatos |
conversations:read | Leitura de conversas |
messages:read | Leitura de mensagens das conversas |
messages:write | Envio de mensagens em conversas |
messages:delete | Exclusão de mensagens |
chats:write | Operações em chats, edição de mensagens e handoff humano |
custom-fields:read | Leitura de campos personalizados |
custom-fields:write | Criação, atualização e arquivamento de campos personalizados |
mcp:read | Leitura de servidores e ferramentas MCP |
mcp:write | Gerenciamento de servidores MCP e ferramentas |
webhooks:read | Leitura de webhooks e histórico de entregas |
webhooks:write | Criação, atualização e teste de webhooks |
webhooks:delete | Exclusão de webhooks |
GET /v1/me para verificar os scopes da sua API key.
Rate limiting
A API limita a 100 requisições por minuto por API key. Os headers de resposta incluem:| Header | Descrição |
|---|---|
X-RateLimit-Limit | Limite de requisições por janela (100) |
X-RateLimit-Remaining | Requisições restantes na janela atual |
X-RateLimit-Reset | Timestamp Unix do reset da janela |
429 com o header Retry-After indicando quantos segundos aguardar.
Paginação
Endpoints de listagem suportam paginação com os seguintes parâmetros:| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
page | integer | 1 | Número da página (mínimo 1) |
limit | integer | 20 | Itens por página (1-100) |
order | string | desc | Direção: asc ou desc |
pagination:
Formato de erros
Todas as respostas de erro seguem o mesmo formato:| Código | HTTP | Descrição |
|---|---|---|
UNAUTHORIZED | 401 | API key inválida ou ausente |
FORBIDDEN | 403 | Scope insuficiente |
NOT_FOUND | 404 | Recurso não encontrado |
VALIDATION_ERROR | 400 | Dados da requisição inválidos |
RATE_LIMIT_EXCEEDED | 429 | Limite de requisições excedido |
INTERNAL_ERROR | 500 | Erro interno do servidor |
Webhooks
Webhooks permitem receber notificações em tempo real quando eventos ocorrem na plataforma.Eventos disponíveis
| Evento | Descrição |
|---|---|
conversation.created | Nova conversa iniciada |
conversation.closed | Conversa encerrada |
conversation.transferred | Conversa transferida |
message.received | Mensagem recebida do cliente |
message.sent | Mensagem enviada pelo agente |
contact.created | Novo contato cadastrado |
contact.updated | Contato atualizado |
appointment.created | Agendamento criado |
appointment.cancelled | Agendamento cancelado |
appointment.completed | Agendamento concluído |
Payload
Cada entrega de webhook inclui:Assinatura
Todas as entregas incluem uma assinatura HMAC-SHA256 para verificação:| Header | Descrição |
|---|---|
X-Webhook-Signature | sha256=<hex> — assinatura HMAC do payload |
X-Webhook-Timestamp | Timestamp Unix da entrega |
X-Webhook-ID | ID do webhook |
Retentativas
Se a entrega falhar (timeout ou status >= 300), o sistema faz até 5 tentativas com backoff:- Imediata
- 1 minuto
- 5 minutos
- 15 minutos
- 1 hora
POST /v1/webhooks/{id}/test para testar a conectividade antes de ativar.