# API e-mail

> Envoyez un e-mail transactionnel en une requête HTTPS, puis programmez-le, annulez-le, relancez-le ou transférez-le. URL de base, authentification, fonctionnalités et limites.

L’API e-mail envoie des e-mails depuis votre application via HTTPS plutôt que par une connexion SMTP. Utilisez-la pour les e-mails transactionnels comme les confirmations d’inscription, les réinitialisations de mot de passe, les reçus et les alertes, en particulier si vous voulez des modèles, la programmation, des relances idempotentes et un ID distinct pour chaque destinataire.

## Fonctionnement

1. Votre application appelle `POST /emails` avec une adresse d’expéditeur sur un domaine d’envoi vérifié, les destinataires, et le contenu ou un modèle.
2. Emailit valide la requête, débite 1 crédit par destinataire et crée un e-mail par destinataire, chacun avec son propre ID `em_`.
3. La réponse arrive immédiatement avec le statut `accepted`, ou `scheduled` si vous avez fixé une heure d’envoi. La livraison se fait en arrière-plan.
4. Emailit signe le message avec DKIM pour votre domaine, effectue les contrôles anti-spam et le livre. En cas d’échec temporaire, Emailit réessaie pendant environ 21 heures.
5. Chaque changement de statut apparaît dans **Email API → Emails** et est envoyé à vos [webhooks](/fr/docs/webhooks/).

## URL de base et authentification

| Élément | Valeur |
| --- | --- |
| URL de base | `https://api.emailit.com/v2` |
| Authentification | `Authorization: Bearer secret_••••` avec une [clé API](/fr/docs/developers/api-keys/) |
| Corps de la requête | JSON, envoyé avec `Content-Type: application/json` |
| Endpoint d’envoi | `POST /emails` |

Une clé **Full Access** peut appeler tous les endpoints. Une clé **Sending Only** peut envoyer, reprogrammer, annuler, relancer et transférer des e-mails, et vous pouvez la restreindre à un seul domaine d’envoi. Pour plus de détails, consultez [Authentification](/fr/docs/api-reference/authentication/).

## Envoyer un 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.',
]);
```

Une requête réussie renvoie `200` avec le nouvel 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 }
}
```

Les nouveaux espaces de travail démarrent en mode bac à sable et ne peuvent envoyer qu’aux adresses e-mail des comptes des membres de l’espace de travail. [Demandez l’accès production](/fr/docs/workspaces/production-access/) avant d’envoyer à qui que ce soit d’autre.

## Ce que vous pouvez faire

  - [Envoyer un e-mail](/fr/docs/email-api/send-email/): Adresses d’expéditeur, destinataires, contenu, modèles, suivi et toutes les erreurs.
  - [Pièces jointes](/fr/docs/email-api/attachments/): Joignez des fichiers en base64 ou depuis une URL, et intégrez des images.
  - [Programmation](/fr/docs/email-api/scheduling/): Envoyez plus tard, reprogrammez ou annulez un e-mail avant son départ.
  - [Idempotence](/fr/docs/email-api/idempotency/): Relancez des requêtes en toute sécurité sans envoyer deux fois le même e-mail.
  - [En-têtes et métadonnées](/fr/docs/email-api/headers-and-metadata/): En-têtes personnalisés, List-Unsubscribe et métadonnées renvoyées dans les webhooks.
  - [Relancer et transférer](/fr/docs/email-api/retry-and-forward/): Renvoyez un e-mail en échec ou retenu, ou transférez un e-mail envoyé à quelqu’un d’autre.
  - [Modèles](/fr/docs/templates/): Enregistrez vos designs une fois et envoyez-les par alias avec des variables Temple.
  - [Référence de l’API des e-mails](/fr/docs/api-reference/emails/): Tous les endpoints e-mail, avec leurs paramètres et leurs réponses.

## Limites

| Limite | Valeur |
| --- | --- |
| Destinataires par requête | 50 dans `to`, 50 dans `cc` et 50 dans `bcc` |
| Taille du message | 40 Mo, pièces jointes encodées comprises |
| Pièce jointe téléchargée depuis une URL | 25 Mo, avec un timeout de téléchargement de 30 secondes |
| Fenêtre d’idempotence | 24 heures |
| Débit d’envoi (par défaut) | 2 e-mails par seconde et 5 000 e-mails par jour par espace de travail, partagés avec SMTP |
| Transfert | 3 transferts par heure par espace de travail |
| Reprogrammer ou annuler un e-mail programmé | Jusqu’à 3 minutes avant son heure d’envoi |
| Fenêtre de relance | 30 jours après la création de l’e-mail d’origine |

Les limites de débit comptent les destinataires : une requête vers 10 destinataires consomme 10 unités de votre quota par seconde et de votre quota quotidien. Les espaces de travail Pro et Business bénéficient de hausses automatiques selon leur santé d’envoi, et tout espace de travail peut demander davantage depuis la carte **Sending Limits** de la page d’accueil du tableau de bord. Consultez [Limites](/fr/docs/limits/) et [Limites de débit](/fr/docs/api-reference/rate-limits/).

## Crédits

Chaque destinataire coûte 1 crédit, et les adresses `to`, `cc` et `bcc` comptent toutes. Si l’espace de travail n’a pas assez de crédits pour tous les destinataires, la requête échoue avec `402` et rien n’est envoyé. Les relances et les transferts sont facturés comme de nouveaux envois.

| Action | Crédits |
| --- | --- |
| E-mail envoyé via l’API ou SMTP (par destinataire) | 1 |
| E-mail entrant reçu | 1 |
| E-mail de campagne (par destinataire) | 2 |
| Exécution d’automatisation | 3 |
| Vérification d’e-mail (par adresse) | 5 |

Pour savoir comment les crédits inclus et achetés sont utilisés, consultez [Crédits](/fr/docs/billing/credits/).

## Étapes suivantes

  - [Démarrage rapide API](/fr/docs/quickstart/api/): Envoyez votre premier e-mail en quelques minutes.
  - [Ajouter un domaine d’envoi](/fr/docs/domains/add-a-domain/): Vérifiez le domaine depuis lequel vous envoyez.
  - [Configurer des webhooks](/fr/docs/webhooks/set-up/): Recevez les événements de livraison, de rebond et d’engagement.
  - [API ou SMTP ?](/fr/docs/get-started/api-or-smtp/): Comparez l’API e-mail et le relais SMTP.

---
Source: https://emailit.com/fr/docs/email-api/
