Novo: campanhas, automações e e-mails do produto na mesma conta. Conheça a Postal
Entrar Criar conta

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

POST /emails
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>"
  }'
200Retorna o id do e-mail

Sem custo

O que o plano Grátis inclui

Os números vêm direto do plano, sempre atualizados.

1.500e-mails por mês
50e-mails por dia
5requisições por segundo
1domínio de envio

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 conectar

Como começar

Envie o primeiro e-mail em 3 passos

01

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 passos
02

Crie uma chave de API

Em Chaves de API, crie uma chave só de envio e guarde em POSTAL_API_KEY.

Autenticação
03

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 API

Código

Exemplos em várias linguagens

Troque a chave e o remetente.

curl
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>"
  }'
postal-so
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' },
)
postal-php
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>',
]);
requests
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()
POST /emails
{
  "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 e depois
Antes
  base URL: https://api.resend.com
  chave:    re_…

Depois
  base URL: https://api.postal.so
  chave:    ps_…

Ver o guia completo

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.

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.