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.
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#
curl "https://api.couryo.com/v1/tools/verify-email?email=ana@gmail.com.br"{
"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#
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#
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.