API de e-mail grátis
API de e-mail grátis para enviar do seu código
Uma requisição POST /emails envia o e-mail. API REST com chave de API, SDKs para Node.js e PHP, envio em lote, agendamento e webhooks, tudo no plano Grátis.
Plano Grátis, sem cartão de crédito
curl -X POST https://api.postal.so/emails \
-H "Authorization: Bearer $POSTAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "Loja Exemplo <[email protected]>",
"to": ["[email protected]"],
"subject": "Seu pedido #10482 saiu para entrega",
"html": "<p>O pedido <b>#10482</b> está a caminho.</p>"
}'Sem custo
O que o plano Grátis inclui
Os números vêm direto do plano, sempre atualizados.
Recursos
Tudo o que a API faz
Os recursos de uma API de e-mail para produto, sem pedir um plano pago.
Envio simples e em lote
Um e-mail por requisição, ou até 100 numa só. No lote, ou todos entram na fila ou nenhum.
Agendamento
Passe scheduled_at com data e hora até 30 dias à frente.
Templates com variáveis
Envie com template e variables: o HTML fica no painel e o código só manda os valores.
Webhooks e eventos
Receba entrega, bounce, abertura, clique e reclamação no seu sistema, com assinatura para conferir.
Idempotência e retentativa
Reenvie sem medo de duplicar: a chave de idempotência garante um envio só.
Servidor MCP
Conecte Claude, Cursor e outras ferramentas de IA à sua conta pelo servidor MCP.
Ver como conectarComo começar
Envie o primeiro e-mail em 3 passos
Crie a conta e verifique o domínio
No painel, em Domínios, adicione o domínio e crie os registros de DNS mostrados.
Primeiros passosCrie uma chave de API
Em Chaves de API, crie uma chave só de envio e guarde em POSTAL_API_KEY.
Faça um POST /emails
Use o exemplo ao lado (cURL, Node.js, PHP ou Python) com um remetente do seu domínio verificado.
Referência da APICódigo
Exemplos em várias linguagens
Troque a chave e o remetente.
curl -X POST https://api.postal.so/emails \
-H "Authorization: Bearer $POSTAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "Loja Exemplo <[email protected]>",
"to": ["[email protected]"],
"subject": "Seu pedido #10482 saiu para entrega",
"html": "<p>O pedido <b>#10482</b> está a caminho.</p>"
}'import { Postal } from 'postal-so'
const postal = new Postal() // lê POSTAL_API_KEY
const { id } = await postal.emails.send(
{
from: 'Minha empresa <[email protected]>',
to: '[email protected]',
subject: 'Bem-vindo!',
html: '<p>Que bom ter você por aqui.</p>',
text: 'Que bom ter você por aqui.',
},
{ idempotencyKey: 'welcome-42' },
)use Postal\Client;
$postal = new Client(); // lê POSTAL_API_KEY
$result = $postal->emails->send([
'from' => 'Minha empresa <[email protected]>',
'to' => '[email protected]',
'subject' => 'Bem-vindo!',
'html' => '<p>Que bom ter você por aqui.</p>',
]);import os
import requests
response = requests.post(
"https://api.postal.so/emails",
headers={"Authorization": f"Bearer {os.environ['POSTAL_API_KEY']}"},
json={
"from": "Loja Exemplo <[email protected]>",
"to": ["[email protected]"],
"subject": "Seu pedido #10482 saiu para entrega",
"html": "<p>O pedido <b>#10482</b> está a caminho.</p>",
},
timeout=10,
)
data = response.json(){
"from": "Loja Exemplo <[email protected]>",
"to": "[email protected]",
"template": {
"id": "order-shipped",
"variables": { "NAME": "Ana", "ORDER": "10482" }
}
}Compatível
Já usa a Resend? Troque só a URL e a chave
A API da Postal usa os mesmos recursos e formatos, então dá para manter o SDK que você já tem.
Antes
base URL: https://api.resend.com
chave: re_…
Depois
base URL: https://api.postal.so
chave: ps_…Perguntas sobre a API de e-mail grátis
A API de e-mail da Postal é grátis?
É. O plano Grátis inclui a API completa: 1.500 e-mails por mês e 50 por dia, com um domínio e 5 requisições por segundo. Não há prazo de teste nem cartão de crédito.
Qual é o limite de requisições?
No plano Grátis, 5 requisições por segundo por time, somando todas as chaves. O envio em lote ajuda: 100 e-mails contam como uma requisição. Toda resposta traz os cabeçalhos X-RateLimit-*.
Como autentico?
Com uma chave de API no cabeçalho Authorization: Bearer ps_…. Crie uma chave só de envio para o seu sistema e guarde em uma variável de ambiente, nunca no navegador.
Existe SDK?
Sim: postal-so para Node.js e TypeScript (npm install postal-so) e postal-so/postal-php para PHP e Laravel (composer require postal-so/postal-php), com erros tipados, idempotência e retentativa. Para outras linguagens, a API é HTTP com JSON.
Dá para usar o SDK da Resend?
Dá. A API da Postal usa os mesmos recursos e formatos: aponte a URL base para https://api.postal.so e use a sua chave da Postal. Veja o guia para migrar da Resend.
Posso enviar de qualquer endereço?
Só de domínios que você verificou. Você adiciona o domínio no painel, cria os registros de DNS mostrados e a Postal confere sozinha.
API ou SMTP?
Use a API para ter tags, agendamento, templates com variáveis e envio em lote. Se o seu sistema só sabe falar SMTP, use o SMTP grátis com a mesma chave.
Veja também
Continue explorando
Envie o primeiro e-mail pela API
Crie a conta, verifique o domínio e faça o seu primeiro POST no plano Grátis.