# API de e-mail

> Envie e-mails transacionais com uma única requisição HTTPS e depois agende, cancele, tente de novo ou encaminhe. URL base, autenticação, recursos e limites.

A API de e-mail envia e-mails da sua aplicação por HTTPS em vez de uma conexão SMTP. Use-a para e-mails transacionais, como confirmações de cadastro, redefinições de senha, recibos e alertas, principalmente quando você quer templates, agendamento, novas tentativas idempotentes e um ID separado para cada destinatário.

## Como funciona

1. A sua aplicação chama `POST /emails` com um endereço From em um domínio de envio verificado, os destinatários e o conteúdo ou um template.
2. O Emailit valida a requisição, cobra 1 crédito por destinatário e cria um e-mail por destinatário, cada um com o seu próprio ID `em_`.
3. A resposta volta na hora com o status `accepted`, ou `scheduled` se você definiu um horário de envio. A entrega acontece em segundo plano.
4. O Emailit assina a mensagem com DKIM para o seu domínio, faz a verificação de spam e entrega o e-mail. Falhas temporárias recebem novas tentativas por cerca de 21 horas.
5. Cada mudança de status aparece em **Email API → Emails** e é enviada aos seus [webhooks](/pt/docs/webhooks/).

## URL base e autenticação

| Item | Valor |
| --- | --- |
| URL base | `https://api.emailit.com/v2` |
| Autenticação | `Authorization: Bearer secret_••••` com uma [chave de API](/pt/docs/developers/api-keys/) |
| Corpo da requisição | JSON, enviado com `Content-Type: application/json` |
| Endpoint de envio | `POST /emails` |

Uma chave **Full Access** pode chamar todos os endpoints. Uma chave **Sending Only** pode enviar, reagendar, cancelar, tentar de novo e encaminhar e-mails, e você pode restringi-la a um único domínio de envio. Consulte [Autenticação](/pt/docs/api-reference/authentication/) para mais detalhes.

## Enviar um e-mail

**cURL**

```bash
curl https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Acme <hello@acme.com>",
    "to": "ada@example.com",
    "subject": "Welcome to Acme",
    "html": "<p>Thanks for signing up, Ada.</p>",
    "text": "Thanks for signing up, Ada."
  }'
```

**Node.js**

```javascript
import { Emailit } from '@emailit/node';

const emailit = new Emailit(process.env.EMAILIT_API_KEY);

const email = await emailit.emails.send({
  from: 'Acme <hello@acme.com>',
  to: 'ada@example.com',
  subject: 'Welcome to Acme',
  html: '<p>Thanks for signing up, Ada.</p>',
  text: 'Thanks for signing up, Ada.',
});

console.log(email.id);
```

**Python**

```python
import os
from emailit import EmailitClient

client = EmailitClient(os.environ["EMAILIT_API_KEY"])

email = client.emails.send({
    "from": "Acme <hello@acme.com>",
    "to": "ada@example.com",
    "subject": "Welcome to Acme",
    "html": "<p>Thanks for signing up, Ada.</p>",
    "text": "Thanks for signing up, Ada.",
})
```

**PHP**

```php
$emailit = Emailit::client(getenv('EMAILIT_API_KEY'));

$email = $emailit->emails()->send([
    'from' => 'Acme <hello@acme.com>',
    'to' => 'ada@example.com',
    'subject' => 'Welcome to Acme',
    'html' => '<p>Thanks for signing up, Ada.</p>',
    'text' => 'Thanks for signing up, Ada.',
]);
```

Uma requisição bem-sucedida retorna `200` com o novo e-mail:

```json
{
  "object": "email",
  "id": "em_33VtK8mRq1xZp7LwN4cY2bHsDfa",
  "token": "33VtK8m4XcPq2RwZ7nLb1YsTgHd",
  "message_id": "<33VtK8m4XcPq2RwZ7nLb1YsTgHd@acme.com>",
  "from": "Acme <hello@acme.com>",
  "to": ["ada@example.com"],
  "subject": "Welcome to Acme",
  "status": "accepted",
  "scheduled_at": null,
  "created_at": "2026-10-01T09:30:12.418203Z",
  "tracking": { "loads": false, "clicks": false }
}
```

Os workspaces novos começam no modo sandbox e só podem enviar para os endereços de e-mail das contas dos membros do workspace. [Solicite acesso de produção](/pt/docs/workspaces/production-access/) antes de enviar para qualquer outra pessoa.

## O que você pode fazer

  - [Enviar um e-mail](/pt/docs/email-api/send-email/): Endereços From, destinatários, conteúdo, templates, rastreamento e todos os erros.
  - [Anexos](/pt/docs/email-api/attachments/): Anexe arquivos em base64 ou a partir de uma URL e incorpore imagens inline.
  - [Agendamento](/pt/docs/email-api/scheduling/): Envie mais tarde, reagende ou cancele um e-mail antes de ele sair.
  - [Idempotência](/pt/docs/email-api/idempotency/): Tente requisições de novo com segurança, sem enviar o mesmo e-mail duas vezes.
  - [Cabeçalhos e metadados](/pt/docs/email-api/headers-and-metadata/): Cabeçalhos personalizados, List-Unsubscribe e metadados devolvidos nos webhooks.
  - [Novas tentativas e encaminhamento](/pt/docs/email-api/retry-and-forward/): Reenvie e-mails com falha ou retidos, ou encaminhe um e-mail enviado para outra pessoa.
  - [Templates](/pt/docs/templates/): Guarde os designs uma vez e envie-os por alias com variáveis do Temple.
  - [Referência da API de e-mails](/pt/docs/api-reference/emails/): Todos os endpoints de e-mail, com parâmetros e respostas.

## Limites

| Limite | Valor |
| --- | --- |
| Destinatários por requisição | 50 em `to`, 50 em `cc` e 50 em `bcc` |
| Tamanho da mensagem | 40 MB, incluindo os anexos codificados |
| Anexo baixado de uma URL | 25 MB, com timeout de download de 30 segundos |
| Janela de idempotência | 24 horas |
| Limite de envio (padrão) | 2 e-mails por segundo e 5.000 e-mails por dia por workspace, compartilhados com o SMTP |
| Encaminhamento | 3 encaminhamentos por hora por workspace |
| Reagendar ou cancelar um e-mail agendado | Até 3 minutos antes do horário de envio |
| Janela para novas tentativas | 30 dias após a criação do e-mail original |

Os limites de envio contam destinatários, então uma requisição para 10 destinatários usa 10 da sua cota por segundo e diária. Os workspaces Pro e Business recebem aumentos automáticos com base na saúde de envio, e qualquer workspace pode pedir mais no card **Sending Limits** da página inicial do painel. Consulte [Limites e cotas](/pt/docs/limits/) e [Limites de requisições](/pt/docs/api-reference/rate-limits/).

## Créditos

Cada destinatário custa 1 crédito, e os endereços em `to`, `cc` e `bcc` contam todos. Se o workspace não tiver créditos suficientes para todos os destinatários, a requisição falha com `402` e nada é enviado. Novas tentativas e encaminhamentos são cobrados como novos envios.

| Ação | Créditos |
| --- | --- |
| E-mail enviado pela API ou por SMTP (por destinatário) | 1 |
| E-mail recebido | 1 |
| E-mail de campanha (por destinatário) | 2 |
| Execução de automação | 3 |
| Verificação de e-mail (por endereço) | 5 |

Consulte [Como funcionam os créditos](/pt/docs/billing/credits/) para saber como os créditos incluídos e comprados são usados.

## Próximos passos

  - [Guia rápido da API](/pt/docs/quickstart/api/): Envie o seu primeiro e-mail em poucos minutos.
  - [Adicionar um domínio de envio](/pt/docs/domains/add-a-domain/): Verifique o domínio de onde você envia.
  - [Configurar webhooks](/pt/docs/webhooks/set-up/): Receba eventos de entrega, bounce e engajamento.
  - [API ou SMTP?](/pt/docs/get-started/api-or-smtp/): Compare a API de e-mail com o SMTP relay.

---
Fonte: https://emailit.com/pt/docs/email-api/
