API de e-mail transacional para devs e agentes de IA
E-mail que chega. Do código à caixa de entrada.
Envie e-mails de cadastro, senha, boleto e produto pela API ou pelo seu agente de IA (SMTP em breve). O Couryo configura seu DNS, vigia sua reputação o tempo todo e explica em português o que fazer quando algo dá errado.
3.000 e-mails por mês, sem cartão
- Suporte em português
- Preço em reais
- Pix e boleto
- Nota fiscal brasileira
- LGPD
- Sem cobrança por usuário
Linha do tempomsg_9w2k7c1x0d
para maria@gmail.comAceito14:02:07.118
Entrou na fila. Só então a API responde 202.
Enviado14:02:07.402
Assinado com o DKIM de loja.com.br.
Entregue14:02:08.931
gmail-smtp-in.l.google.com respondeu
250 2.0.0 OK
Em linguagem simples: o servidor do Gmail recebeu e aceitou o e-mail da Maria.
- e-mails grátis por mês, para sempre
- 3.000
- e-mails grátis por mês, para sempre
- e-mails por chamada no envio em lote
- 100
- e-mails por chamada no envio em lote
- de proteção contra envio duplicado
- 24 h
- de proteção contra envio duplicado
- prazo máximo da revisão humana de uma pausa
- 1 dia útil
- prazo máximo da revisão humana de uma pausa
- por usuário, em qualquer plano
- R$ 0
- por usuário, em qualquer plano
Construído por quem opera e-mail de produtos em produção. Os projetos da Wunka (ViralRecast, Start Atende, Mentezinha e Linkezera) são os primeiros a migrar para o Couryo.
Início rápido
Do zero ao primeiro e-mail em 5 minutos.
Três passos, uma chamada de API. Copie o exemplo na sua linguagem.
- 1
Conecte seu domínio
Conecte a Cloudflare e o Couryo cria os registros sozinho. Usa o Registro.br ou outro painel? Cada registro vem pronto para copiar, conferido em tempo real.
- 2
Crie uma chave
Chaves com escopo (só envio, só leitura ou admin), lista de IPs permitidos e uma chave de teste que nunca entrega de verdade.
- 3
Envie
Uma chamada para POST /v1/emails. A resposta 202 só sai quando o e-mail entrou na fila. Nada de sucesso falso.
const res = await fetch("https://api.couryo.com/v1/emails", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.COURYO_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": "pedido-1042-confirmacao",
},
body: JSON.stringify({
from: "Loja Exemplo <pedidos@exemplo.com.br>",
to: ["maria@exemplo.com.br"],
subject: "Seu pedido 1042 foi confirmado",
html: "<p>Obrigado pela compra, Maria!</p>",
tags: { tipo: "pedido" },
}),
});
const email = await res.json(); // { id: "msg_...", status: "queued" }$ch = curl_init('https://api.couryo.com/v1/emails');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('COURYO_API_KEY'),
'Content-Type: application/json',
'Idempotency-Key: pedido-1042-confirmacao',
],
CURLOPT_POSTFIELDS => json_encode([
'from' => 'Loja Exemplo <pedidos@exemplo.com.br>',
'to' => ['maria@exemplo.com.br'],
'subject' => 'Seu pedido 1042 foi confirmado',
'html' => '<p>Obrigado pela compra, Maria!</p>',
]),
]);
$email = json_decode(curl_exec($ch), true); // ['id' => 'msg_...', 'status' => 'queued']import os
import requests
res = requests.post(
"https://api.couryo.com/v1/emails",
headers={
"Authorization": f"Bearer {os.environ['COURYO_API_KEY']}",
"Idempotency-Key": "pedido-1042-confirmacao",
},
json={
"from": "Loja Exemplo <pedidos@exemplo.com.br>",
"to": ["maria@exemplo.com.br"],
"subject": "Seu pedido 1042 foi confirmado",
"html": "<p>Obrigado pela compra, Maria!</p>",
},
)
email = res.json() # {"id": "msg_...", "status": "queued"}curl https://api.couryo.com/v1/emails \
-H "Authorization: Bearer $COURYO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: pedido-1042-confirmacao" \
-d '{
"from": "Loja Exemplo <pedidos@exemplo.com.br>",
"to": ["maria@exemplo.com.br"],
"subject": "Seu pedido 1042 foi confirmado",
"html": "<p>Obrigado pela compra, Maria!</p>"
}'
# 202 Accepted
# {"id": "msg_...", "status": "queued"}# Qualquer app ou framework que envia por SMTP (exemplo de .env do Laravel)
MAIL_MAILER=smtp
MAIL_HOST=smtp.couryo.com
MAIL_PORT=587 # STARTTLS. Também: 465 (TLS) e 2525
MAIL_USERNAME=couryo
MAIL_PASSWORD=ck_live_... # a sua chave de API
MAIL_FROM_ADDRESS=pedidos@exemplo.com.brAgente de entregabilidade (em breve)
Um especialista em entrega olhando seu e-mail o tempo todo.
O agente junta relatórios DMARC, listas de bloqueio, Google Postmaster Tools, Microsoft SNDS, devoluções e reclamações. Quando algo muda, ele explica em linguagem simples o que aconteceu, por que e o que fazer.
- Resumo semanal "Saúde do seu e-mail"
- Aviso antes de passar dos limites do Gmail, do Yahoo e da Microsoft
- Cada devolução com a resposta original do servidor e a tradução
- No lançamento ele lê e avisa. Agir sozinho, só com a sua permissão
Agente de entregabilidade
Lendo os sinaisAlerta pronto
- Relatórios DMARC
- Listas de bloqueio
- Google Postmaster
- Microsoft SNDS
- Devoluções
- Reclamações
Hotmail e OutlookAtenção
Desde ontem às 14h, parte dos seus e-mails para o Hotmail está sendo adiada com o código 421 4.7.0.
Motivo provável: pico de devoluções na campanha "reativacao-outubro", enviada para uma lista antiga.
O que fazer: pausar essa campanha e remover os endereços que voltaram. O transacional (senha e cobrança) segue normal.
Nunca no escuro
Nenhuma pausa sem aviso, sem motivo e sem alguém para ouvir.
A maior reclamação de quem usa serviços de e-mail é ter a conta suspensa do nada. Aqui as regras são públicas, seus limites aparecem no painel e na API, e toda decisão vem com números.
Níveis de confiança, à vista
ExemploNível 0
Sandbox
Como entra
Conta criada
Limite
25 por dia, só para os e-mails da própria conta
Nível 1
Novo
Como entra
Domínio verificado (DKIM, return path e DMARC)
Limite
100 por dia, 3 mil por mês
Nível 2
Verificado
Como entra
7 dias limpos e CNPJ conferido ou cartão
Limite
De 1 mil a 10 mil por dia
Nível 3
Confiável
Como entra
30 dias limpos e plano pago
Limite
O volume do seu plano
Você sobe de nível sozinho, e o painel mostra o que falta. Por exemplo: "Faltam 4 dias limpos para o nível 2". No plano Grátis, o teto é de 100 por dia em qualquer nível.
Se algo sair do normal, a pausa é gradual
- 1O envio de marketing é pausado.
- 2O transacional crítico (senha, login e cobrança) continua, com até 30 por dia.
- 3Você recebe o motivo, os números e o que corrigir, por e-mail e no painel.
Corte total só em fraude evidente, como phishing ou lista comprada.
- Motivo
- taxa de devolução acima de 3% nas últimas 24 horas
- Números
- enviados, devolvidos e taxa, com o horário de cada medição
- Como corrigir
- remova os endereços que voltaram e confirme a origem da lista
- Transacional
- segue ativo, com limite reduzido
Quer contestar? Peça revisão
Na hora
Um agente de IA analisa o pedido com os dados da conta e decide os casos claros imediatamente.
Em até 1 dia útil
Se a dúvida continuar, uma pessoa da equipe revisa e responde com o motivo.
DNS automático
DKIM, return path e DMARC sem abrir um tutorial.
Conecte a Cloudflare e o Couryo cria os registros. Em outros painéis, cada registro vem pronto para copiar, com status ao vivo e a explicação do que falta. O SPF do seu domínio fica como está. Em breve, o agente acompanha os relatórios e leva seu DMARC até a política mais forte, quando for seguro.
O agente vai conduzir seu DMARC (em breve)
p=noneobserva e coleta relatórios
p=quarantinee-mail falso vai para o spam
p=rejecte-mail falso é recusado
- DKIMCNAMEAguardando DNSVerificandoVerificado
couryo1._domainkey → couryo1.7h2kq9w4x1abcdef.dkim.couryo.com
Assina cada e-mail com uma chave do seu domínio.
- DKIMCNAMEAguardando DNSVerificandoVerificado
couryo2._domainkey → couryo2.7h2kq9w4x1abcdef.dkim.couryo.com
Segundo seletor: a chave é trocada sem você mexer no DNS.
- Return pathCNAMEAguardando DNSVerificandoVerificado
bounces → rp.couryo.com
Alinha o SPF sem tocar no SPF do seu domínio e traz as devoluções de volta.
- DMARCTXTAguardando DNSVerificandoVerificado
_dmarc → v=DMARC1; p=none; rua=mailto:dmarc@couryo.com; adkim=r; aspf=r
_dmarc → v=DMARC1; p=quarantine; rua=mailto:dmarc@couryo.com; adkim=r; aspf=r
_dmarc → v=DMARC1; p=reject; rua=mailto:dmarc@couryo.com; adkim=r; aspf=r
Diz aos provedores o que fazer com e-mail falso.
Feito para IA
Seu agente de código já sabe usar o Couryo.
Docs em Markdown, llms.txt em português e inglês, preço legível por agentes e um servidor MCP remoto para Claude, Cursor, Claude Code e a API da OpenAI, com a sua chave de API. OAuth para os conectores do Claude e do ChatGPT em breve.
MCP remoto
Enviar, ver a linha do tempo, conferir o DNS de um domínio e entender uma devolução, conversando.
/docs/mcpllms.txt e llms-full.txt
O guia inteiro num arquivo, em português e em inglês.
/llms.txtToda página em .md
Acrescente .md a qualquer endereço das docs e receba Markdown limpo.
/docs/quickstart.mdPreço para agentes
Planos, excedente e compromissos num Markdown simples.
/precos.md
Por que o e-mail para maria@empresa.com.br voltou?
couryo · why_bounced("msg_9w2k7c1x0d")
Voltou porque essa caixa não existe mais: o servidor da empresa respondeu 550 5.1.1 (usuário desconhecido). O endereço já entrou na sua lista de supressão, então não vamos tentar de novo. Se a Maria tiver um e-mail novo, atualize o cadastro dela.
Para quem programa
Tudo que você espera de uma API de e-mail. E o que faltava.
Feita no padrão das melhores APIs: previsível, idempotente e honesta sobre o que aconteceu com cada mensagem.
Idempotência de verdade
A mesma Idempotency-Key devolve a mesma resposta por 24 horas. Corpo diferente devolve 409.
Modo de teste
Chaves ck_test_ nunca entregam: o e-mail fica guardado no painel para o time revisar.
Webhooks assinados
Padrão Standard Webhooks, reenvio por até 3 dias e histórico. Perdeu algum? Liste em /v1/events.
Linha do tempo com a resposta crua
Cada evento com horário, servidor de destino, código SMTP e a resposta original, traduzida.
Lote e agendamento
Até 100 e-mails por chamada, com resultado por item, e scheduled_at para enviar depois.
Supressão por fluxo
Descadastro de marketing não bloqueia o e-mail de senha. Devolução permanente e reclamação valem para tudo.
Erros que explicam
Código estável, campo com problema, link para a documentação e mensagem em português ou inglês.
SMTP tambémem breve
smtp.couryo.com nas portas 587, 465 e 2525, para quem não quer mexer no código.
Chaves com escopo
Só envio, só leitura ou admin, com lista de IPs permitidos.
Checagem antes do envio
Domínio, links encurtados, HTML grande demais e anexo de boleto, com nota de 0 a 100, no CI.
Feito no Brasil
O pacote brasileiro, com API moderna.
Para o financeiro, o jurídico e o time de produto. Sem cartão internacional, sem câmbio e sem nota de serviço importado.
Reais, sem IOF
Assinatura no cartão nacional ou no boleto recorrente. Nada de câmbio na fatura.
Pix na hora
Pague uma fatura em aberto ou reative a conta na hora, por Pix.
Nota fiscal automática
NFS-e emitida a cada pagamento, com PDF e XML no painel. Sem importação de serviço.
LGPD
Encarregado de dados, contrato de tratamento e suboperadores informados por categoria.
Suporte em português
A IA responde primeiro, com os dados da sua conta. Quando não resolve, uma pessoa assume.
Entrega nos provedores daqui
Gmail, Microsoft e Yahoo, e também UOL, BOL e Terra, medidos à parte no painel.
Preço
Simples, em reais, por volume.
Sem cobrança por usuário. Preço mantido por 12 meses depois de qualquer mudança.
Grátis
Para testar e para projetos pequenos. Para sempre.
R$ 0/mês
3.000 e-mails por mês
- 3.000 e-mails por mês (até 100 por dia)
- 1 domínio
- 7 dias de logs
- API REST e webhooks (SMTP em breve)
Pro
Para produtos em produção.
R$ 99/mês
50.000 e-mails por mês
Excedente: R$ 1,80 por mil
- 50.000 e-mails por mês incluídos
- Até 10 domínios
- 30 dias de logs
- Usuários ilimitados, sem cobrança por usuário
Escala
Para volume alto e equipes maiores.
R$ 299/mês
200.000 e-mails por mês
Excedente: R$ 1,40 por mil
- 200.000 e-mails por mês incluídos
- Tudo do Pro
- Até 50 domínios
- 90 dias de logs
Empresa
Para quem precisa de contrato e garantias.
Sob medida
- Volume sob medida
- Domínios ilimitados
- IP dedicado
- SSO
Perguntas frequentes
Ficou alguma dúvida? Escreva para contato@couryo.com.
O plano grátis é para sempre?
Sim. São 3.000 e-mails por mês (até 100 por dia) e 1 domínio, escritos nos termos de uso. Não é período de teste e não pede cartão.
Quanto custa?
Grátis: 3.000 e-mails por mês (até 100 por dia) e 1 domínio, sem cartão. Pro: R$ 99 por mês com 50.000 e-mails e excedente de R$ 1,80 por mil. Escala: R$ 299 por mês com 200.000 e-mails e excedente de R$ 1,40 por mil. Empresa: sob medida. Fora do Brasil, em dólar: Pro US$ 19 (US$ 0,35 por mil extra) e Escala US$ 59 (US$ 0,28 por mil extra). Sem cobrança por usuário em nenhum plano.
Vocês emitem nota fiscal?
Sim. A NFS-e sai automaticamente a cada pagamento, com PDF e XML no painel. Quem emite é a Wunka, a empresa brasileira por trás do Couryo.
Posso pagar com Pix?
Sim, nos pagamentos avulsos: pagar uma fatura em aberto ou reativar a conta na hora. A assinatura mensal é no cartão nacional ou no boleto recorrente, sem IOF.
Onde ficam os meus dados? E a LGPD?
Hoje a infraestrutura do Couryo fica nos Estados Unidos. A transferência internacional segue a LGPD, com cláusulas contratuais com cada suboperador. Os registros de envio ficam guardados pelo prazo de logs do seu plano. A política de privacidade explica tudo, inclusive como falar com o encarregado.
O que acontece se eu passar da cota?
No Grátis, o envio para no limite do mês e volta no mês seguinte, sem cobrança. Nos planos pagos, o excedente é cobrado por mil e-mails (R$ 1,80 no Pro e R$ 1,40 no Escala). Se você definir um limite de gasto, o envio para quando o excedente chega nele, e nada é cobrado acima do teto.
Minha conta pode ser suspensa sem aviso?
Não. A pausa é gradual e vem com motivo, números e o que corrigir. Você pode pedir revisão: o agente de IA decide os casos claros na hora e uma pessoa revisa em até 1 dia útil. Corte imediato só em fraude evidente, como phishing.
Preciso entender de DNS?
Não. Com a Cloudflare, o Couryo cria os registros sozinho. Em outros painéis, você copia e cola cada registro e vê o status ao vivo, com a explicação do que falta.
Funciona com o meu agente de IA?
Sim. As docs existem em Markdown, há llms.txt em português e inglês, e o servidor MCP remoto (mcp.couryo.com) já funciona no Claude Code, no Claude Desktop, no Cursor e pela API da OpenAI, com a sua chave de API. O OAuth, para os conectores do Claude e do ChatGPT, vem em breve.
Dá para testar sem mandar e-mail de verdade?
Sim. Com uma chave ck_test_, nada é entregue: o e-mail fica capturado no painel, com um link para o time revisar o conteúdo.
E e-mail marketing?
Também, num fluxo separado do transacional, com descadastro em um clique como Gmail e Yahoo exigem. O e-mail de senha nunca divide reputação com campanha.
Mande seu primeiro e-mail hoje.
Comece no plano Grátis. Quando precisar de mais, o preço continua simples.
3.000 e-mails por mês, sem cartão. Cancele quando quiser.