O que é a API de Exportação de Dados
A API de Exportação de Dados permite que você extraia os dados do seu workspace na Morada.ai — conversas, mensagens, contatos e deals — para o seu próprio data warehouse, banco de dados ou ferramenta de análise. Você controla quando e o que exportar. Faça uma carga completa pontual para popular um destino do zero, ou pulls incrementais periódicos para trazer apenas o que mudou desde a última sincronização.A API expõe somente os dados do seu próprio workspace. Cada linha retornada inclui o campo
workspace_id, e a chave de acesso limita a exportação ao workspace correspondente.Autenticação
A API usa uma workspace API key no formatomk_..., enviada no header Authorization como bearer token. A base URL é https://data-api.morada.ai.
GET /v1/whoami.
Você gera a sua workspace API key na própria plataforma, em Integrações → Configurar API.
Entidades disponíveis
A exportação é feita por entidade, cada uma no seu próprio endpoint:- Exportar conversas —
GET /v1/export/conversations - Exportar mensagens —
GET /v1/export/messages - Exportar contatos —
GET /v1/export/contacts - Exportar deals —
GET /v1/export/deals
Os campos específicos de cada entidade estão detalhados na seção Response da referência de cada endpoint acima.
Exportação incremental e pontual
O endpoint responde sempre com o mesmo envelope:updated_since:
1
Faça a primeira chamada
Chame o endpoint da entidade (ex.:
GET /v1/export/conversations). Sem updated_since para uma carga completa, ou com updated_since para trazer só as mudanças recentes.2
Processe a página
Grave as linhas de
data no seu destino. Faça upsert por id: uma mesma linha pode reaparecer entre pulls (semântica CDC), então atualize a linha existente em vez de duplicar.3
Pagine até o fim
Se
next_cursor não for null, chame novamente passando cursor=<next_cursor>. Repita até next_cursor retornar null. Ao longo da paginação, guarde o maior cursor_at que você processar.4
Guarde o ponto de corte
Para o próximo pull incremental, use como
updated_since o maior cursor_at que você já processou — não o horário do relógio da sua sincronização. Assim você não pula uma mudança cujo cursor_at seja anterior ao fim da execução anterior.Limites de requisição
Cada workspace pode fazer cerca de 120 requisições por minuto. Ao ultrapassar o limite, a API responde com429 Too Many Requests e um header Retry-After indicando quantos segundos aguardar antes de tentar de novo.