Referência da API
A API v1 do ByDomu é REST com JSON. Esta referência é gerada a partir da spec OpenAPI, que por sua vez sai do código das rotas: cada endpoint traz seus parâmetros, a permissão que pede e exemplos. Não há SDK oficial; com a spec você pode gerar seu cliente.
https://api.bydomu.com/v1Esta referência é gerada a partir do código da API, por isso as descrições estão em espanhol. Nomes, parâmetros e exemplos são iguais em qualquer idioma.
Autenticação
A chave vai no cabeçalho X-API-Key (Authorization: Bearer não é aceito). Ela é criada no ByDomu, em Configurações › API Keys, e a completa aparece uma só vez.
curl https://api.bydomu.com/v1/me \
-H "X-API-Key: $BYDOMU_API_KEY"domu_pk_live_publicáveldomu_sk_live_secretadomu_live_legadoNíveis de acesso
Paginação
As listas recebem page (a partir de 1) e pageSize, e respondem com os dados e o total. Cada endpoint informa seu pageSize máximo. Contatos, negócios e tarefas aceitam também cursor.
{
"data": [ … ],
"meta": { "total": 64, "page": 1, "pageSize": 12, "totalPages": 6 }
}Erros
Sempre com o mesmo formato. Dados que não passam na validação do esquema respondem 400 com a lista de problemas.
{
"error": {
"code": "FORBIDDEN",
"message": "La API key no tiene el scope requerido: contacts:read"
}
}VALIDATION_ERRORDados de entrada inválidosUNAUTHORIZEDChave ausente ou inválidaPAYMENT_REQUIREDConta somente leitura: escrita recusadaFORBIDDENA chave não tem essa permissãoSECRET_KEY_IN_BROWSERChave secreta usada em um navegadorAPI_ACCESS_REQUIREDO nível da conta não permite esta chavePLAN_LIMIT_REACHEDUm limite do plano foi atingidoNOT_FOUNDRecurso não encontradoIDEMPOTENCY_CONFLICTIdempotency-Key reutilizada com outro corpoRATE_LIMITEDLimite por minuto excedidoLimites
Uma chave publicável tem 300 requisições e 60 escritas por minuto; uma secreta, 60 e 30. O suporte pode aprovar mais. Cada resposta traz X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset; ao passar, 429 RATE_LIMITED com Retry-After.
Em qualquer escrita você pode enviar Idempotency-Key: uma nova tentativa com a mesma chave e o mesmo corpo devolve a resposta original com Idempotency-Status: replayed. Vale por 24 horas.