EmailCheckPro Referência da API

Todos os endpoints compartilham uma chave de API e um saldo.

ItemValor
URL basehttps://emailcheckpro.com
Cabeçalho de autenticaçãoX-API-Key: sk_your_api_key
Envelope da resposta{ code, msg, data }

Os preços não são listados aqui; todos os produtos são cobrados por verificação bem-sucedida. Ver preços

Autenticação

Use uma chave de API criada em Configurações e envie-a em todas as solicitações.

Cabeçalho de autenticação
X-API-Key: sk_your_api_key

Mantenha sua chave de API em segredoSempre chame este endpoint a partir do seu servidor. Qualquer pessoa que tenha a chave pode gastar seu saldo.

Verificações síncronas

POST/api/v1/checkPOST/api/v1/batch-check

Envie um endereço de e-mail, ou até 100 em uma solicitação, e leia o resultado na mesma resposta. Sem consultas periódicas, sem callbacks. Um resultado indeterminado retorna 422 com o code 42200 e não é cobrado. Uma solicitação múltipla mantém a ordem de entrada, cobra cada identificador de forma independente e tem 300 segundos para terminar — caso contrário, a solicitação inteira falha e todas as cobranças são reembolsadas.

Parâmetros

CampoTipoDescrição
service_typestringCódigo do produto, um dos produtos listados abaixo.
identifierstringVerificação única: um endereço de e-mail. O servidor o normaliza.
identifiersstring[]Verificação múltipla: de 1 a 100 endereços de e-mail. A resposta preserva esta ordem.

Verificação de entregabilidade de e-mail

emaile-mail

Confirme se um endereço de e-mail ainda pode receber mensagens — funciona em qualquer domínio, do Gmail ao domínio próprio de uma empresa.

Verificação única

POST/api/v1/check
Solicitação
curl -X POST "https://emailcheckpro.com/api/v1/check" \
  -H "X-API-Key: sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "service_type": "email", "identifier": "name@gmail.com" }'
{
  "code": 0,
  "msg": "ok",
  "data": {
    "service_type": "email",
    "identifier": "name@gmail.com",
    "registered": true
  }
}
Campos da resposta
CampoTipoDescrição
registeredbooleanSe o endereço é entregável — se pode receber mensagens.

Verificação múltipla

POST/api/v1/batch-check
Solicitação
curl -X POST "https://emailcheckpro.com/api/v1/batch-check" \
  -H "X-API-Key: sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "service_type": "email", "identifiers": ["name@gmail.com", "unknown@gmail.com", "not-an-email"] }'
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "service_type": "email",
    "total": 3,
    "succeeded": 2,
    "failed": 1,
    "results": [
      {
        "identifier": "name@gmail.com",
        "exists": true,
        "registered": true
      },
      {
        "identifier": "unknown@gmail.com",
        "exists": true,
        "registered": false
      },
      {
        "identifier": "not-an-email",
        "exists": false
      }
    ]
  }
}
Campos da resposta
CampoTipoDescrição
existsbooleanSe este e-mail produziu um resultado. false significa que o formato era inválido, que o resultado foi indeterminado ou que a verificação falhou; quando false, nenhum dos campos abaixo está presente.
registeredbooleanSe o e-mail é entregável, ou seja, se pode receber mensagens. Presente apenas quando exists é true, com o mesmo significado da verificação única.

Verificação de avatar de e-mail

email_avatare-mail

Status de entregabilidade e a URL do avatar associado ao endereço, para Gmail, Yandex e Mail.ru.

Verificação única

POST/api/v1/check
Solicitação
curl -X POST "https://emailcheckpro.com/api/v1/check" \
  -H "X-API-Key: sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "service_type": "email_avatar", "identifier": "name@gmail.com" }'
{
  "code": 0,
  "msg": "ok",
  "data": {
    "service_type": "email_avatar",
    "identifier": "name@gmail.com",
    "registered": true,
    "avatar": true,
    "avatar_url": "https://lh3.googleusercontent.com/a-/example"
  }
}
Campos da resposta
CampoTipoDescrição
registeredbooleanSe o endereço é entregável nesse provedor — se pode receber mensagens.
avatarbooleanSe há um avatar definido.
avatar_urlstringURL do avatar, quando houver; pode vir vazia mesmo quando avatar é true.

Verificação múltipla

POST/api/v1/batch-check
Solicitação
curl -X POST "https://emailcheckpro.com/api/v1/batch-check" \
  -H "X-API-Key: sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "service_type": "email_avatar", "identifiers": ["name@gmail.com", "unknown@gmail.com", "not-an-email"] }'
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "service_type": "email_avatar",
    "total": 3,
    "succeeded": 2,
    "failed": 1,
    "results": [
      {
        "identifier": "name@gmail.com",
        "exists": true,
        "registered": true,
        "avatar": true,
        "avatar_url": "https://lh3.googleusercontent.com/a-/example"
      },
      {
        "identifier": "unknown@gmail.com",
        "exists": true,
        "registered": false,
        "avatar": false,
        "avatar_url": ""
      },
      {
        "identifier": "not-an-email",
        "exists": false
      }
    ]
  }
}
Campos da resposta
CampoTipoDescrição
existsbooleanSe este e-mail produziu um resultado. false significa que o formato era inválido, que o resultado foi indeterminado ou que a verificação falhou; quando false, nenhum dos campos abaixo está presente.
registeredbooleanSe o e-mail é entregável, ou seja, se pode receber mensagens. Presente apenas quando exists é true, com o mesmo significado da verificação única.
avatarbooleanSe há um avatar definido.
avatar_urlstringURL do avatar, quando houver; pode vir vazia mesmo quando avatar é true.

Verificações assíncronas

POST/api/v1/bulk-tasksGET/api/v1/bulk-tasks/{id}

Envie um arquivo e receba um ID de tarefa imediatamente; depois, consulte esse ID até que seja concluído com sucesso. A resposta de sucesso inclui result_url, o link para baixar o resultado. Existem apenas duas ações: enviar e consultar. Não consulte com frequência maior que uma vez a cada 30 segundos.

Parâmetros

CampoTipoDescrição
service_typestringCódigo do produto em massa, um dos produtos listados abaixo.
countrystringNão é necessário em tarefas de e-mail: omita-o. Se você o enviar, ele será ignorado.
filefileUm .txt ou .csv com um identificador por linha, até max_file_bytes (20MB por padrão).
Idempotency-KeyheaderOpcional, até 128 caracteres. Reenviar a mesma chave retorna a tarefa original em vez de criar uma segunda.

Verificação de entregabilidade de e-mail em massa

email_batche-mail1.000–500.000 por tarefa

Envie um arquivo inteiro de endereços, descubra quais podem receber mensagens e baixe o resultado quando terminar.

Enviar uma tarefa

POST/api/v1/bulk-tasks
Solicitação
curl -X POST "https://emailcheckpro.com/api/v1/bulk-tasks" \
  -H "X-API-Key: sk_your_api_key" \
  -F service_type=email_batch \
  -F file=@emails.txt
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "email_batch",
    "status": "processing",
    "submitted_lines": 1015,
    "total": 1015,
    "invalid_cnt": 0,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 0,
    "preparing": true,
    "created_at": "2026-09-08T09:30:00Z"
  }
}

Consultar a tarefa

GET/api/v1/bulk-tasks/{id}
Solicitação
curl "https://emailcheckpro.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
  -H "X-API-Key: sk_your_api_key"
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "email_batch",
    "status": "success",
    "submitted_lines": 1015,
    "total": 1000,
    "invalid_cnt": 3,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 12,
    "preparing": false,
    "success_cnt": 990,
    "failure_cnt": 10,
    "result_url": "https://…/result.csv",
    "created_at": "2026-09-08T09:30:00Z"
  }
}
Colunas do resultado
Campoexemplo:Descrição
identifieralex.kim@example.comO endereço de e-mail enviado, em letras minúsculas.
activatedtrueSe o endereço pode receber mensagens: true (alcançável) ou false (não alcançável).

Verificação de avatar de e-mail em massa

email_avatar_batche-mail1.000–500.000 por tarefa

Envie um arquivo inteiro de endereços Gmail, Yandex ou Mail.ru: descubra quais são entregáveis e obtenha o avatar de cada um.

Enviar uma tarefa

POST/api/v1/bulk-tasks
Solicitação
curl -X POST "https://emailcheckpro.com/api/v1/bulk-tasks" \
  -H "X-API-Key: sk_your_api_key" \
  -F service_type=email_avatar_batch \
  -F file=@emails.txt
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "email_avatar_batch",
    "status": "processing",
    "submitted_lines": 1015,
    "total": 1015,
    "invalid_cnt": 0,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 0,
    "preparing": true,
    "created_at": "2026-09-08T09:30:00Z"
  }
}

Consultar a tarefa

GET/api/v1/bulk-tasks/{id}
Solicitação
curl "https://emailcheckpro.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
  -H "X-API-Key: sk_your_api_key"
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "email_avatar_batch",
    "status": "success",
    "submitted_lines": 1015,
    "total": 1000,
    "invalid_cnt": 3,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 12,
    "preparing": false,
    "success_cnt": 990,
    "failure_cnt": 10,
    "result_url": "https://…/result.csv",
    "created_at": "2026-09-08T09:30:00Z"
  }
}
Colunas do resultado
Campoexemplo:Descrição
identifieralex.kim@gmail.comO endereço enviado, em letras minúsculas.
activatedtrueSe o endereço é entregável nesse provedor — se pode receber mensagens: true ou false. Quando não for true, todas as outras colunas dessa linha ficam vazias.
avatartrueSe há um avatar definido: true ou false. avatar_url ainda pode vir vazia quando a imagem não estiver disponível.
avatar_urlhttps://lh3.googleusercontent.com/a/exampleA URL da foto de perfil; vazia quando nenhuma URL está disponível.

Saldo

GET/api/v1/balance

Lê o saldo atual da conta em micros de USD. Somente leitura: não cria registro de verificação nem cobra nada.

Saldo

GET/api/v1/balance
Solicitação
curl "https://emailcheckpro.com/api/v1/balance" \
  -H "X-API-Key: sk_your_api_key"
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "balance_micros": 12500000
  }
}

Concorrência, tempos limite e comportamento de novas tentativas

As verificações de entregabilidade de e-mail são síncronas. Use o code retornado para decidir se aceita o resultado ou tenta novamente.

CampoDescrição
5 solicitações simultâneas por usuárioAs verificações únicas e múltiplas compartilham este limite, e uma solicitação múltipla conta como uma solicitação, independentemente de quantos e-mails ela contenha. Além disso, apenas uma verificação múltipla por conta é executada por vez; uma segunda é rejeitada até que a primeira termine. Atingir qualquer um dos limites retorna o code 42901 imediatamente, sem cobrança, com um cabeçalho Retry-After — reenvie assim que uma solicitação em andamento terminar.
60s para única, 300s para múltiplaExceder o limite de tempo retorna o code 50400, sem cobrança. Uma verificação múltipla que excede o tempo falha por inteiro — sem resultados parciais, e o valor total é reembolsado.
Uma verificação múltipla aceita até 100 e-mailsOs resultados preservam a ordem e a quantidade do envio. Uma verificação múltipla por conta é executada por vez; envie o próximo lote depois que o anterior retornar.

Códigos de erro

CódigoDescrição
40000Tipo de serviço não suportado ou campos da solicitação conflitantes
40001Corpo JSON inválido
40002E-mail inválido
40100Chave de API ausente ou inválida
40200Saldo insuficiente
42200Não foi possível determinar o e-mail neste momento. Nenhum dado é retornado e a solicitação não é cobrada
42900Uma cota de uso foi esgotada ou há pedidos não concluídos demais
42901Todas as cinco vagas de solicitações em andamento estão ocupadas, ou uma verificação múltipla já está em execução nesta conta; envie depois que uma solicitação em andamento terminar. A solicitação rejeitada não é cobrada e traz um cabeçalho Retry-After
50303O serviço está no limite da capacidade no momento; sem cobrança. Aguarde os segundos indicados em Retry-After e reenvie a mesma solicitação
50400A verificação não terminou dentro do tempo limite e não é cobrada; tente novamente. O tempo esgotado de um lote faz o lote inteiro falhar e reembolsa o valor total
50300Manutenção do serviço de validação