Sign inGet Started

cURL

Envie seu primeiro email usando apenas curl: exporte uma chave de API, faça um POST de uma mensagem e faça um GET dela para acompanhar a entrega. Este é o fluxo bruto da HTTP; tudo o que os SDKs fazem parte daqui.

1. Exporte sua chave de API

Crie uma chave no painel em Platform tools > API keys (Envie seu primeiro email mostra o passo a passo) e depois exporte-a:

Exemplo de código
export BIRD_API_KEY="bk_us1_..."

O prefixo de região define seu host da API: chaves bk_us1_ chamam https://us1.platform.bird.com, e chaves bk_eu1_ chamam https://eu1.platform.bird.com. Os exemplos de envio usam us1; troque o host se sua chave for de outra região.

2. Envie um email

Faça um POST para /v1/email/messages, enviando a partir do nosso domínio compartilhado de onboarding para o endereço de sandbox da delivered@messagebird.dev. Você não precisa verificar um domínio nem ter uma caixa de correio real. Selecione a aba cURL neste guia rápido.

const msg = await bird.email.send({
  from: { email: "onboarding@messagebird.dev", name: "Bird" },
  to: ["delivered@messagebird.dev"],
  subject: "Hello from Bird",
  html: "<p>My first Bird email.</p>",
});
console.log(msg.id, msg.status); // "em_…", "accepted"

A API responde com 202: a Bird aceitou o email e faz a entrega de forma assíncrona. Os campos *_count acompanham os destinatários pelos estados de entrega. Na resposta inicial, um destinatário foi aceito e nenhum foi entregue:

Exemplo de código
{
  "id": "em_01ky7ma8y2es1s2akzk53tmjn0",
  "status": "accepted",
  "category": "marketing",
  "from": { "email": "onboarding@messagebird.dev" },
  "to": [{ "email": "delivered@messagebird.dev" }],
  "subject": "Hello from Bird",
  "accepted_count": 1,
  "processed_count": 0,
  "delivered_count": 0,
  "deferred_count": 0,
  "bounced_count": 0,
  "complained_count": 0,
  "rejected_count": 0,
  "open_count": 0,
  "click_count": 0,
  "track_opens": true,
  "track_clicks": true,
  "created_at": "2026-07-23T13:58:20.866Z"
}

Com HTTP bruto, não há um SDK que gere uma chave de idempotência para você. Para se proteger ao tentar novamente, envie uma chave na primeira tentativa e reutilize-a em cada nova tentativa. Consulte Idempotência para ver um exemplo e os limites de reprodução.

3. Acompanhe a entrega

Faça um GET da mensagem pelo ID em_ e acompanhe o status passar de accepted por processed até delivered. Selecione novamente a aba cURL:

const msg = await bird.email.get("em_abc123");
msg.status; // "accepted" | "processed" | "delivered" | "bounced" | …
msg.delivered_count;
msg.bounced_count;
console.log(msg.subject, msg.subject_recipient_id);

Como o destinatário é o endereço sandbox delivered@messagebird.dev, a entrega é garantida: a mensagem passa pelo pipeline real da Bird, mas nunca chega a uma caixa de correio real.

Próximos passos