Limites e Erros
Códigos HTTP padronizados
| Status | Significado | Ação recomendada |
|---|---|---|
200 | Sucesso | — |
201 | Recurso criado | — |
204 | Sucesso sem corpo | — |
400 | Body inválido ou recurso ausente | Validar payload |
401 | Token inválido, ausente ou expirado | Gerar novo PAT |
403 | Sem permissão no recurso ou domínio bloqueado pelo plano | Verificar papel na org / upgrade |
404 | Recurso não encontrado | Conferir IDs |
409 | Conflito (ex: nome duplicado) | Resolver conflito |
429 | Rate limit ou limite de plano atingido | Backoff / upgrade |
500 | Erro interno do Portal | Tente novamente / contato suporte |
501 | Serviço não implementado para aquela integração | Use outro serviço |
Formato padrão dos erros
A maioria dos erros segue o formato:error | Quando ocorre |
|---|---|
forbidden | Sem permissão na entidade/recurso |
domain_restricted | Plano não libera aquele domínio |
limit_reached | Atingiu limite de quantidade do plano |
not_found | Recurso ausente |
invalid_body | JSON malformado ou campos faltando |
limit_reached:
Limites por plano
| Recurso | Free | Padrão |
|---|---|---|
| Integrações | 1 | Ilimitado |
| Automações | 2 | Ilimitado |
| Entidades expostas (Alexa/Google) | 5 | Ilimitado |
| Domínios controlados | cover | Todos |
Rate limiting
A API protege os endpoints contra abuso. Em caso de excesso, você recebe429 Too Many Requests. Recomendacoes:
- Throttle no cliente: não envie rajadas de chamadas — espalhe no tempo.
- Backoff exponencial ao receber 429: dobre o intervalo a cada tentativa.
- Use WebSocket para receber estados em tempo real em vez de polling agressivo.
Erros específicos do POST /v1/service
| Status | Body | O que significa |
|---|---|---|
400 | Entidade ausente light | entity_id não existe ou não pertence ao usuário |
403 | { "error": "forbidden" } | Org member sem can_control na entidade |
403 | { "error": "domain_restricted" } | Plano não libera aquele domínio |
501 | Service not found: light.turn_rainbow | O serviço não existe nessa integração |
Depurando
- Confira a especificação: API Reference lista todos os endpoints com schemas.
- Verifique o token: faca uma chamada simples (
GET /v1/states) — se voltar 401, o problema e o token. - Verifique o contexto da org: se opera em organização, o header
X-Organization-Idprecisa estar correto e o usuário precisa ser membro. - Logs do painel: em Automações → Histórico você ve cada execução com trace passo-a-passo.