API-referentie

E-mail versturen

Verstuurt één transactionele e-mail. Voor meerdere mails in één aanroep zie Batch versturen.

POST https://api.wesender.nl/emails

Authenticatie

Stuur een Authorization: Bearer header mee met je API-key. API-keys vind je in je dashboard.

curl -H "Authorization: Bearer $WS_API_KEY" ...

Parameters

De body is JSON. Verplichte velden zijn from, to, subject en minimaal html of text.

Veld Type Vereist Beschrijving
from string Ja Afzender. Ondersteunt "Naam <email>" opmaak. Het domein moet geverifieerd zijn.
to string | string[] Ja Ontvanger(s). Maximaal 50 adressen.
subject string Ja Onderwerpregel.
html string Nee HTML-body. Geef html en/of text mee: minimaal één is verplicht.
text string Nee Platte tekst. Wordt gebruikt als fallback door e-mailclients.
cc string | string[] Nee CC-ontvangers.
bcc string | string[] Nee BCC-ontvangers. Onzichtbaar voor andere ontvangers.
reply_to string | string[] Nee Reply-To adres.
attachments Attachment[] Nee Bijlagen als base64. Zie bijlagen-referentie voor het formaat.
headers object Nee Extra e-mailheaders als key-value object.
tags object Nee Eigen metadata voor filtering in de logs. Key-value, max 50 tekens per waarde.
scheduled_at string (ISO 8601) Nee Stuur op dit tijdstip. Maximaal 72 uur in de toekomst.

Voorbeeld

curl -X POST https://api.wesender.nl/emails \
  -H "Authorization: Bearer $WS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Wesender <noreply@joudomein.nl>",
    "to": ["klant@voorbeeld.nl"],
    "subject": "Je bestelling is verzonden",
    "html": "<h1>Op weg!</h1><p>Je bestelling is onderweg.</p>",
    "tags": { "flow": "checkout" }
  }'

Met bijlage

Bijlagen stuur je mee als base64-gecodeerde inhoud in het attachments-veld.

curl -X POST https://api.wesender.nl/emails \
  -H "Authorization: Bearer $WS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "noreply@joudomein.nl",
    "to": ["klant@voorbeeld.nl"],
    "subject": "Je factuur",
    "html": "<p>Zie bijlage.</p>",
    "attachments": [
      {
        "filename": "factuur-2026-01.pdf",
        "content":  "JVBERi0xLjQK...",
        "content_type": "application/pdf"
      }
    ]
  }'

Respons

Bij succes geeft de API 201 Created terug met het unieke ID van de e-mail.

201 Created
HTTP/1.1 201 Created

{
  "id":     "em_01hwxxxxxxxxxxxxxx",
  "object": "email"
}

Foutcodes

Code Status Reden
400 Bad Request Verplicht veld ontbreekt of ongeldige waarde.
401 Unauthorized API-key ontbreekt, is ongeldig of ingetrokken.
403 Forbidden Betaling achterstallig of account geblokkeerd.
422 Unprocessable Entity Domein niet geverifieerd, adres gesupprimeerd, of bijlage te groot (>10 MB).
429 Too Many Requests Maandlimiet bereikt. Upgrade je plan of wacht tot de volgende maand.
422 Voorbeeld foutrespons
HTTP/1.1 422 Unprocessable Entity

{
  "error":   "unprocessable_entity",
  "message": "from-domein is niet geverifieerd of niet compliant (SPF/DKIM/DMARC)"
}

Volgende stappen