# API de email

> Envía email transaccional con una sola petición HTTPS y después prográmalo, cancélalo, reinténtalo o reenvíalo. URL base, autenticación, funciones y límites.

La API de email envía email desde tu aplicación por HTTPS en lugar de por una conexión SMTP. Úsala para el correo transaccional, como confirmaciones de registro, restablecimientos de contraseña, recibos y avisos, sobre todo cuando quieras plantillas, programación, reintentos idempotentes y un ID distinto para cada destinatario.

## Cómo funciona

1. Tu aplicación llama a `POST /emails` con una dirección From de un dominio de envío verificado, los destinatarios y el contenido o una plantilla.
2. Emailit valida la petición, cobra 1 crédito por destinatario y crea un email por destinatario, cada uno con su propio ID `em_`.
3. La respuesta llega al momento con el estado `accepted`, o `scheduled` si has indicado una hora de envío. La entrega se hace en segundo plano.
4. Emailit firma el mensaje con DKIM para tu dominio, ejecuta las comprobaciones de spam y lo entrega. Los fallos temporales se reintentan durante unas 21 horas.
5. Cada cambio de estado aparece en **Email API → Emails** y se envía a tus [webhooks](/es/docs/webhooks/).

## URL base y autenticación

| Elemento | Valor |
| --- | --- |
| URL base | `https://api.emailit.com/v2` |
| Autenticación | `Authorization: Bearer secret_••••` con una [clave de API](/es/docs/developers/api-keys/) |
| Cuerpo de la petición | JSON, enviado con `Content-Type: application/json` |
| Endpoint de envío | `POST /emails` |

Una clave **Full Access** puede llamar a todos los endpoints. Una clave **Sending Only** puede enviar, reprogramar, cancelar, reintentar y reenviar email, y puedes limitarla a un solo dominio de envío. Para más detalles, consulta [Autenticación](/es/docs/api-reference/authentication/).

## Enviar un email

**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.',
]);
```

Una petición correcta devuelve `200` con el email nuevo:

```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 }
}
```

Los espacios de trabajo nuevos empiezan en modo sandbox y solo pueden enviar a las direcciones de email de cuenta de los miembros del espacio de trabajo. [Solicita el acceso de producción](/es/docs/workspaces/production-access/) antes de enviar a cualquier otra persona.

## Qué puedes hacer

  - [Enviar un email](/es/docs/email-api/send-email/): Direcciones del remitente, destinatarios, contenido, plantillas, seguimiento y todos los errores.
  - [Adjuntos](/es/docs/email-api/attachments/): Adjunta archivos en base64 o desde una URL, e inserta imágenes en línea.
  - [Programación](/es/docs/email-api/scheduling/): Envía más tarde, reprograma o cancela un email antes de que salga.
  - [Idempotencia](/es/docs/email-api/idempotency/): Reintenta peticiones sin riesgo de enviar el mismo email dos veces.
  - [Cabeceras y metadatos](/es/docs/email-api/headers-and-metadata/): Cabeceras personalizadas, List-Unsubscribe y metadatos que se devuelven en los webhooks.
  - [Reintentar y reenviar](/es/docs/email-api/retry-and-forward/): Vuelve a enviar un email fallido o retenido, o reenvía un email enviado a otra persona.
  - [Plantillas](/es/docs/templates/): Guarda los diseños una vez y envíalos por alias con variables de Temple.
  - [Referencia de la API de emails](/es/docs/api-reference/emails/): Todos los endpoints de emails con sus parámetros y respuestas.

## Límites

| Límite | Valor |
| --- | --- |
| Destinatarios por petición | 50 en `to`, 50 en `cc` y 50 en `bcc` |
| Tamaño del mensaje | 40 MB, incluidos los adjuntos codificados |
| Adjunto descargado desde una URL | 25 MB, con un tiempo de espera de descarga de 30 s |
| Ventana de idempotencia | 24 h |
| Velocidad de envío (por defecto) | 2 emails por segundo y 5000 emails al día por espacio de trabajo, compartidos con SMTP |
| Reenvíos | 3 reenvíos por hora por espacio de trabajo |
| Reprogramar o cancelar un email programado | Hasta 3 minutos antes de su hora de envío |
| Plazo para reintentar | 30 días desde que se creó el email original |

Los límites de velocidad cuentan destinatarios, así que una petición a 10 destinatarios consume 10 de tu cupo por segundo y diario. Los espacios de trabajo Pro y Business reciben aumentos automáticos según su salud de envío, y cualquier espacio de trabajo puede pedir más desde la tarjeta **Sending Limits** de la página de inicio del panel. Consulta [Límites](/es/docs/limits/) y [Límites de velocidad](/es/docs/api-reference/rate-limits/).

## Créditos

Cada destinatario cuesta 1 crédito, y cuentan todas las direcciones de `to`, `cc` y `bcc`. Si el espacio de trabajo no tiene créditos suficientes para todos los destinatarios, la petición falla con `402` y no se envía nada. Los reintentos y los reenvíos se cobran como envíos nuevos.

| Acción | Créditos |
| --- | --- |
| Email enviado por API o SMTP (por destinatario) | 1 |
| Email entrante recibido | 1 |
| Email de campaña (por destinatario) | 2 |
| Ejecución de automatización | 3 |
| Verificación de email (por dirección) | 5 |

Para saber cómo se usan los créditos incluidos y los comprados, consulta [Créditos](/es/docs/billing/credits/).

## Próximos pasos

  - [Inicio rápido con la API](/es/docs/quickstart/api/): Envía tu primer email en pocos minutos.
  - [Añadir un dominio de envío](/es/docs/domains/add-a-domain/): Verifica el dominio desde el que envías.
  - [Configurar webhooks](/es/docs/webhooks/set-up/): Recibe eventos de entrega, rebote e interacción.
  - [¿API o SMTP?](/es/docs/get-started/api-or-smtp/): Compara la API de email con el SMTP relay.

---
Fuente: https://emailit.com/es/docs/email-api/
