Pular para o conteúdo
couryo

Guia do desenvolvedorReferência

Ferramentas grátis (API e MCP)

Verificar e-mail, conferir SPF, DKIM e DMARC de qualquer domínio e explicar erros SMTP pela API do Couryo, sem chave e sem custo, e pelo servidor MCP público sem login.

Ver em Markdown

Três ferramentas do Couryo são abertas para qualquer pessoa, com ou sem conta: verificar um endereço de e-mail, conferir a configuração de e-mail de um domínio e explicar um erro SMTP em português. Elas também estão no site, em Ferramentas, e no MCP.

Nenhuma delas envia e-mail nem abre conexão SMTP com o servidor de ninguém: só consultas de DNS e regras. Os endereços verificados não são guardados.

Limites#

Sem chave, o limite é por IP, por dia. Com qualquer chave do Couryo (Authorization: Bearer ck_..., inclusive de uma conta grátis), o limite é da conta e bem maior.

Ferramenta Sem chave (por IP) Com chave (por conta)
GET /v1/tools/verify-email 50 por dia 2.000 por dia
GET /v1/tools/check-domain 20 por dia 300 por dia
POST /v1/tools/explain-smtp 50 por dia 2.000 por dia

As respostas trazem RateLimit-Limit e RateLimit-Remaining. Acima do limite, a resposta é 429 com o código tool_limit_reached e o cabeçalho Retry-After. As chamadas aceitam CORS de qualquer origem, então funcionam direto do navegador.

Verificar um e-mail#

Terminal
curl "https://api.couryo.com/v1/tools/verify-email?email=ana@gmail.com.br"
JSON
{
  "email": "ana@gmail.com.br",
  "verdict": "invalid",
  "reason": "typo",
  "did_you_mean": "ana@gmail.com",
  "checks": {
    "syntax": true,
    "domain": "gmail.com.br",
    "receives_email": "yes",
    "disposable": false,
    "role": false,
    "free_provider": false
  },
  "mailbox_checked": false,
  "message": "Parece erro de digitação. Você quis dizer ana@gmail.com?"
}
Campo O que é
verdict valid (formato certo e o domínio recebe e-mail), risky (provável erro de digitação, e-mail temporário ou DNS sem resposta) ou invalid (formato errado, o domínio não recebe e-mail ou erro certo de digitação de um provedor grande, como gmail.com.br)
reason o motivo principal: ok, bad_syntax, no_mail_server, typo, disposable, role ou dns_unavailable
did_you_mean o endereço corrigido quando o domínio parece erro de digitação de um provedor grande (gmial.com, hotmail.con, gmail.com.br)
checks.receives_email yes quando o domínio tem MX (ou um endereço, sem MX, como manda a RFC 5321), no quando não tem ou publica um MX nulo, unknown quando o DNS não respondeu
checks.disposable serviço de caixa temporária
checks.role caixa compartilhada, como contato@ ou vendas@
checks.free_provider Gmail, Outlook, Yahoo, UOL, BOL, Terra e outros gratuitos
mailbox_checked sempre false: a caixa em si nunca é testada

Use no cadastro do seu app para pegar o erro de digitação antes de mandar a confirmação. Um endereço invalid com certeza devolveria o e-mail; um risky merece um "você quis dizer...?" na tela.

Conferir um domínio#

Terminal
curl "https://api.couryo.com/v1/tools/check-domain?domain=exemplo.com.br"

Aceita o domínio, uma URL ou um endereço (só o domínio é usado). O parâmetro opcional dkim_selector procura um seletor DKIM além dos mais comuns (é o s= do cabeçalho DKIM-Signature).

Campo O que é
score e grade nota de 0 a 100 e conceito de A a F; SPF, DKIM e DMARC pesam 25 cada, o MX 15 e MTA-STS, TLS-RPT e BIMI o resto
summary o resumo em uma frase
mail_provider quem recebe o e-mail do domínio, pelo MX (Google Workspace, Microsoft 365...)
spf_lookups quantas consultas de DNS o SPF precisa (o limite é 10)
dkim_selectors_found os seletores em que achamos chave DKIM
checks[] um item por verificação (mx, spf, dkim, dmarc, mta_sts, tls_rpt, bimi), com status (ok, warning, error, missing ou info), title, detail, records (o que o DNS respondeu), fix e suggested_record, um registro pronto para copiar quando há um

A resposta fica em cache por 10 minutos: depois de corrigir o DNS, espere um pouco antes de conferir de novo.

Explicar um erro SMTP#

Terminal
curl -X POST https://api.couryo.com/v1/tools/explain-smtp \
  -H "Content-Type: application/json" \
  -d '{ "message": "550 5.7.515 Access denied, sending domain does not meet the required authentication level" }'
Campo O que é
code e enhanced_code o código básico (550) e o estendido (5.7.515); numa mensagem expirada, vale o motivo de dentro (por exemplo, 452 4.2.2 caixa cheia)
kind hard (o endereço não funciona), soft (temporário), policy (regra do provedor, não o endereço) ou unknown (sem código no texto)
provider o provedor citado no texto, quando há
explanation e next_step o que aconteceu e o que fazer, em português ou inglês conforme o Accept-Language
retry se mandar de novo depois pode funcionar sem mudar nada

No MCP#

As mesmas ferramentas, mais os geradores de SPF e DMARC, estão em dois lugares:

  • Servidor público, sem login: https://mcp.couryo.com/tools. Qualquer agente usa, com o limite por IP. Claude Code: claude mcp add --transport http couryo-tools https://mcp.couryo.com/tools.
  • Servidor principal (https://mcp.couryo.com, com OAuth ou chave): disponíveis para qualquer conta, inclusive a grátis, com o limite da conta.
Ferramenta O que faz
verify_email verifica um endereço
check_domain_dns confere SPF, DKIM, DMARC, MX, MTA-STS, TLS-RPT e BIMI de um domínio
explain_smtp_error explica um erro ou devolução
generate_spf monta um registro SPF
generate_dmarc monta um registro DMARC

Veja também MCP e agentes e o guia SPF, DKIM e DMARC.