Pular para o conteúdo
Docs

Referência

Como a API do Emailit informa erros. Formatos do corpo da resposta, códigos de status HTTP e o que significam, e soluções para as mensagens de erro mais frequentes.

Atualizado em 1 de out. de 2026

A API do Emailit usa códigos de status HTTP para informar se uma requisição funcionou. Códigos na faixa 2xx indicam sucesso, códigos 4xx indicam que algo na requisição precisa mudar, e códigos 5xx indicam que algo deu errado do nosso lado. Esta página descreve os corpos de erro, todos os códigos de status que a API retorna e como corrigir os erros mais comuns.

Formatos de resposta de erro

Todo corpo de erro é um objeto JSON com um campo error. O formato exato depende de onde a requisição falhou. Escreva o seu tratamento de erros para ler error, depois message quando estiver presente, e depois quaisquer campos extras que o endpoint documente.

Erros de requisição

Falhas de autenticação, erros de permissão, JSON malformado e outros erros gerados antes de um endpoint ser executado usam o formato de erro HTTP padrão:

JSON
{
  "statusCode": 401,
  "error": "Unauthorized",
  "message": "API key required"
}
Campo Descrição
statusCode O código de status HTTP.
error A frase de motivo HTTP, como Unauthorized ou Forbidden.
message O que deu errado, em linguagem simples.

Erros de validação

Quando um parâmetro de consulta ou um campo do corpo tem o tipo errado, está ausente ou está fora do intervalo permitido, a API rejeita a requisição com 400 antes de executá-la e lista cada problema em details:

JSON
{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "Validation error",
  "details": [
    {
      "instancePath": "/limit",
      "schemaPath": "#/properties/limit/maximum",
      "keyword": "maximum",
      "params": { "comparison": "<=", "limit": 100 },
      "message": "must be <= 100"
    }
  ]
}

instancePath aponta para o campo (/limit, /to, /attachments/0/filename), e message descreve a regra violada. Em alguns endpoints, como Enviar um e-mail, esses erros retornam apenas {"error": "Bad Request"}.

Erros de recurso

Erros gerados por um endpoint, como um objeto inexistente ou um nome duplicado, retornam error e muitas vezes message:

JSON
{
  "error": "Email not found",
  "message": "Email with ID 'em_4KYof1ZzXndZE2VPi0DgULiekG8' not found in your workspace"
}

Alguns erros adicionam campos que ajudam você a se recuperar:

Campo Retornado com Contém
existing 409 quando você cria um domínio, uma chave de API, uma lista de contatos, um contato ou um inscrito duplicado O objeto que já existe, para que você possa usá-lo em vez de criar outro.
usage 422 quando um limite do plano é atingido used, limit e, para listas de contatos, plan.
required_plan 403 com error: "plan_required" O plano mais básico que inclui o recurso, como pro.
code Alguns erros 403 e 422 Um código estável e legível por máquina, como unverified_workspace_recipient ou events_offset_too_large.
missing 404 de Atualizar contatos em massa Os IDs de contato que não foram encontrados.

Erros de validação de envio

Enviar um e-mail e Encaminhar um e-mail verificam a mensagem inteira de uma vez e retornam todos os problemas em validation_errors:

JSON
{
  "error": "Validation failed",
  "validation_errors": [
    "Missing required field: subject",
    "Invalid to email address at index 1: ada@example"
  ]
}

Erros por campo

Templates, campanhas e automações retornam os problemas de validação agrupados por campo:

JSON
{
  "message": "Validation failed",
  "errors": {
    "alias": ["Alias must contain only lowercase letters (a-z), numbers (0-9), underscores (_), and hyphens (-)"]
  }
}

Erros de limite de requisições

As respostas 429 dos endpoints de envio incluem o limite atingido e quanto tempo esperar. Consulte Limites de requisições.

JSON
{
  "error": "Rate limit exceeded",
  "message": "Too many requests. Maximum 2 messages per second allowed.",
  "limit": 2,
  "current": 2,
  "retry_after": 1
}

Códigos de status HTTP

Código Significado Causas típicas na API do Emailit
200 OK A requisição funcionou. Envios, atualizações, exclusões e leituras retornam 200.
201 Created Um domínio, uma chave de API, uma lista de contatos, um inscrito, um contato, um template, um webhook ou outro objeto foi criado.
202 Accepted O envio de um relatório DMARC foi aceito para processamento.
204 No Content Um formulário foi excluído. A resposta não tem corpo.
400 Bad Request JSON inválido, um campo obrigatório ausente, um valor do tipo errado ou fora do intervalo, um Idempotency-Key inválido ou nenhum campo para atualizar.
401 Unauthorized A chave de API está ausente, é inválida, foi excluída ou regenerada, ou um token OAuth expirou. Consulte Autenticação.
402 Payment Required O workspace não tem créditos suficientes para o envio, a nova tentativa ou a verificação.
403 Forbidden O escopo da chave não permite o endpoint, uma chave restrita a um domínio enviou de outro domínio, o workspace está suspenso ou ainda não foi verificado, o domínio de envio está pausado, ou o recurso exige um plano superior.
404 Not Found O objeto não existe neste workspace, ou um alias de template não tem versão publicada.
409 Conflict Já existe um objeto com o mesmo nome ou e-mail, ou uma requisição com o mesmo Idempotency-Key ainda está em execução.
413 Payload Too Large O e-mail montado tem mais de 40 MB, ou o envio de um relatório DMARC tem mais de 10 MB.
422 Unprocessable Entity A requisição é válida, mas não pode ser executada agora: o domínio de from não está verificado, um anexo não pôde ser baixado, o status do e-mail não permite cancelar nem tentar de novo, o conteúdo dele já foi apagado, ou um limite do plano foi atingido.
429 Too Many Requests O workspace atingiu o limite de envio por segundo ou diário, ou o limite de encaminhamentos por hora.
500 Internal Server Error Algo falhou do nosso lado. Tente de novo com backoff e fale com o suporte se o problema persistir.
503 Service Unavailable Uma indisponibilidade temporária de uma dependência, como o armazenamento de idempotência ou o banco de dados de autenticação. Tente de novo com backoff.

Erros comuns e como corrigi-los

Status error Causa Solução
400 Validation failed Falta from, to, subject ou conteúdo em um envio, ou ele tem um endereço ou anexo inválido. Corrija cada item listado em validation_errors.
400 Invalid JSON in request body (em message) O corpo não é um JSON válido. Verifique as aspas e as vírgulas finais, e envie Content-Type: application/json.
400 Invalid Idempotency-Key A chave tem mais de 256 caracteres ou contém caracteres além de letras, dígitos, - e _. Use um UUID ou um valor seguro semelhante.
402 Insufficient credits Os créditos acabaram. Cada destinatário custa um crédito. Compre créditos ou ative a recarga automática.
403 Workspace not verified O workspace está no modo sandbox e um destinatário não é membro do workspace. Solicite o acesso de produção.
403 Domain paused O envio deste domínio está pausado por causa da saúde de envio dele. Resolva o problema de bounces ou reclamações e fale com o suporte.
403 Domain not authorized A chave de API é restrita a outro domínio de envio. Envie do domínio da chave ou use outra chave.
403 plan_required O recurso, como relatórios DMARC ou filtros de webhook, não está no seu plano. Faça upgrade para o plano indicado em required_plan.
403 mjml_alpha A requisição cria ou altera MJML, ou chama um endpoint de MJML. O MJML está em alfa e aberto apenas à equipe do Emailit. Use outro editor ou outro tipo de conteúdo. Consulte Editores e API de MJML.
404 Template not found O ID do template não existe, ou o alias não tem versão publicada. Publique uma versão do template.
409 … already exists Você criou um objeto com um nome ou e-mail que já está em uso. Use o objeto em existing ou escolha outro nome.
409 Idempotency key in progress Outra requisição com a mesma chave ainda não terminou. Aguarde um momento e tente de novo com a mesma chave.
413 Message too large O e-mail, incluindo os anexos, tem mais de 40 MB. Envie arquivos grandes como links em vez de anexos.
422 Domain not verified O endereço from não está em um domínio de envio verificado deste workspace. Verifique o domínio ou altere from.
422 Attachment error A url de um anexo não pôde ser baixada em até 30 segundos, não está acessível ou tem mais de 25 MB. Confira se a URL é pública e se o arquivo é pequeno o suficiente, ou envie content no lugar.
422 Cannot cancel email, Cannot retry email, Cannot update email O status do e-mail não permite a ação, faltam menos de 3 minutos para o horário agendado, ou o conteúdo dele foi apagado. Verifique o status do e-mail. Consulte as regras de cada endpoint.
422 Page is too deep Você paginou além do offset 2.500 de Listar eventos. Restrinja os resultados com filtros type ou created_at.
429 Rate limit exceeded, Daily limit exceeded O workspace atingiu o limite de envio. Aguarde retry_after segundos. Consulte Limites de requisições.

Tentar de novo com segurança

  • Tente de novo as respostas 429, 500 e 503 depois de um intervalo. Use o cabeçalho retry-after quando ele estiver presente e, caso contrário, backoff exponencial. Limites de requisições tem código de exemplo.
  • Não repita sem alterações as requisições com outros erros 4xx. Elas falham da mesma forma até você corrigir a requisição.
  • Ao tentar enviar de novo depois de um timeout ou de um erro 5xx, reutilize o mesmo Idempotency-Key para que o e-mail não seja enviado duas vezes.
Credenciais, escopos e todos os erros de autenticação.
Limites de envio, cabeçalhos e backoff.
Tente enviar de novo sem enviar duas vezes.
Veja a requisição e a resposta de cada chamada à API com falha.

Esta página foi útil?

Obrigado pelo feedback.

Obrigado, lemos todas as mensagens.