Zum Inhalt springen
Doku

E-Mails senden, Nachrichten und ihre Inhalte abrufen sowie E-Mails planen, stornieren, erneut senden oder weiterleiten.

Basis-URLhttps://api.emailit.com/v2AuthentifizierungFehlerRate Limits

E-Mail senden

Sendet eine E-Mail von einer verifizierten Versanddomain. Jeder Empfänger erhält eine eigene Kopie mit eigener E-Mail-ID, und jeder Empfänger kostet einen Credit.

POST/emails

Funktioniert mit API-Schlüsseln mit dem Scope sending oder full. Sendungen zählen zu den Versandlimits des Workspaces, und eine erfolgreiche Antwort bedeutet, dass die E-Mail angenommen und in die Warteschlange gestellt wurde, nicht dass sie bereits zugestellt ist. Verfolgen Sie die Zustellung mit Webhooks oder E-Mail abrufen. Nicht verifizierte Workspaces können nur an die E-Mail-Adressen der Konten ihrer Mitglieder senden.

Header

Idempotency-Keystring

Ein eindeutiger Schlüssel aus bis zu 256 Buchstaben, Ziffern, - und _. Eine Wiederholung mit demselben Schlüssel innerhalb von 24 Stunden gibt die erste Antwort zurück, statt erneut zu senden. Siehe Idempotenz.

Body-Parameter

fromstringerforderlich

Der Absender, als hello@acme.com oder Acme <hello@acme.com>. Die Adresse muss auf einer verifizierten Versanddomain des Workspaces liegen und auf der Domain des Schlüssels, wenn der Schlüssel auf eine Domain beschränkt ist.

tostring | string[]erforderlich

Empfänger, als Array oder als kommagetrennter String. Jeder Eintrag kann ada@example.com oder Ada Lovelace <ada@example.com> sein. Bis zu 50.

ccstring | string[]
Empfänger in Kopie. Bis zu 50.
bccstring | string[]
Empfänger in Blindkopie. Bis zu 50. Sie erscheinen nicht in den Headern der Nachricht.
reply_tostring | string[]
Adressen für Antworten. Wenn Sie mit einer Vorlage senden und dieses Feld weglassen, wird die Reply-To-Adresse der Vorlage verwendet.
subjectstring
Die Betreffzeile. Erforderlich, sofern template keinen liefert.
htmlstring
Der HTML-Inhalt. Sie brauchen html, text oder beides, sofern template keinen Inhalt liefert.
textstring
Der Nur-Text-Inhalt. Wenn Sie sowohl html als auch text senden, erhalten Empfänger eine Multipart-Nachricht.
templatestring

Eine zu sendende Vorlage. Übergeben Sie eine Vorlagen-ID (tem_…), um genau diese Version zu verwenden, oder einen Alias, um dessen veröffentlichte Version zu verwenden. subject, html und text in der Anfrage überschreiben die Werte der Vorlage. Siehe Vorlagen.

variablesobject

Werte für Platzhalter von Temple wie {{first_name}}, die in Betreff, HTML und Text gerendert werden. Funktioniert mit Vorlagen und mit Inhalt direkt in der Anfrage.

attachmentsobject[]
Anzuhängende Dateien. Siehe Anhang-Objekt unten.
headersobject

Zusätzliche MIME-Header als Name-Wert-Paare, zum Beispiel {"List-Unsubscribe": "<https://acme.com/unsubscribe>"}. Emailit setzt Message-ID selbst.

metaobject

Ihre eigenen Daten als Schlüssel-Wert-Paare, zum Beispiel {"order_id": "1042"}. Werte müssen Strings sein. Werden mit der E-Mail gespeichert und in Lesezugriffen und Webhook-Payloads mitgeliefert.

scheduled_atstring

Wann gesendet werden soll, als Datum mit Uhrzeit nach ISO 8601 wie 2026-10-02T09:00:00Z oder auf Englisch wie tomorrow at 9am. Geben Sie bei Werten nach ISO 8601 eine Zeitzone an. Ein Zeitpunkt in der Vergangenheit oder ein Wert, der sich nicht parsen lässt (auch ein Unix-Zeitstempel), sendet die E-Mail sofort. Geplante E-Mails haben bis zum Senden den Status scheduled.

trackingboolean | object

Aktiviert oder deaktiviert Öffnungs- und Klick-Tracking für diese E-Mail: true, false oder {"loads": true, "clicks": false}. Standardmäßig gelten die Einstellungen der Versanddomain. Tracking funktioniert nur, wenn der Tracking-CNAME der Domain verifiziert ist; andernfalls ist es deaktiviert und die Antwort zeigt false.

Anhang-Objekt

filenamestringerforderlich
Der Dateiname einschließlich einer erlaubten Endung (siehe unten).
contentstring
Die Datei, Base64-kodiert. Senden Sie content oder url, nicht beides.
urlstring

Eine öffentliche http- oder https-URL, von der die Datei heruntergeladen wird. Emailit ruft sie beim Senden ab: Der Download muss innerhalb von 30 Sekunden abgeschlossen sein, darf höchstens 25 MB groß sein und darf nicht weiterleiten.

content_typestring
Der MIME-Typ, etwa application/pdf. Erforderlich mit content. Bei url standardmäßig der Typ, den der Server zurückgibt.
content_idstring

Bettet den Anhang ein. Verweisen Sie im HTML mit <img src="cid:logo"> darauf, wenn content_id den Wert logo hat.

encodingstringStandardwert: base64
Die Kodierung von content, etwa base64 oder hex.

Die gesamte Nachricht einschließlich Anhängen darf bis zu 40 MB groß sein. Diese Dateitypen sind erlaubt:

Kategorie Endungen
Text .txt, .csv, .log, .css, .ics, .xml
Bilder .jpg, .jpe, .jpeg, .gif, .png, .bmp, .psd, .tif, .tiff, .svg, .indd, .ai, .eps
Dokumente .doc, .docx, .rtf, .odt, .ott, .pdf, .pub, .pages, .mobi, .epub
Audio .mp3, .m4a, .m4v, .wma, .ogg, .flac, .wav, .aif, .aifc, .aiff
Video .mp4, .mov, .avi, .mkv, .mpeg, .mpg, .wmv
Tabellen .xls, .xlsx, .ods, .numbers
Präsentationen .odp, .ppt, .pptx, .pps, .key
Archive .zip, .vcf
E-Mail .eml
Kryptografie .p7c, .p7m, .p7s, .pgp, .asc, .sig

Rückgabe

Gibt 200 mit dem E-Mail-Objekt des ersten Empfängers zurück. Hat die Nachricht über to, cc und bcc hinweg mehr als einen Empfänger, ordnet ids jedem Empfänger die ID seiner Kopie zu. Jede Kopie löst das Event email.accepted oder email.scheduled aus.

objectstring
Immer email.
idstring
Die ID der E-Mail des ersten Empfängers.
idsobject
Zuordnung von Empfängeradresse zu E-Mail-ID für jeden Empfänger. Nur vorhanden, wenn es mehr als einen Empfänger gibt.
tokenstring
Das interne Token der ersten E-Mail.
message_idstring
Der Header Message-ID der ersten E-Mail, etwa <token@acme.com>.
fromstring
Der Absender, so wie Sie ihn gesendet haben.
tostring[]
Die Adressen in to, ohne Anzeigenamen und ohne Duplikate.
ccstring[]
Die Empfänger in cc. Nur vorhanden, wenn Sie welche gesendet haben.
bccstring[]
Die Empfänger in bcc. Nur vorhanden, wenn Sie welche gesendet haben.
subjectstring
Der Betreff nach dem Rendern von Vorlage und Variablen.
statusstring
accepted oder scheduled bei einem scheduled_at in der Zukunft.
scheduled_atstring | null
Wann die E-Mail gesendet wird, oder null.
created_atstring
Zeitpunkt, zu dem die E-Mail angenommen wurde.
trackingobject
Das geltende Tracking: die Booleans loads und clicks.
POST/emails
Terminal
curl -X POST 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", "grace@example.com"],
    "subject": "Welcome to Acme",
    "html": "<h1>Welcome!</h1><p>Thanks for signing up.</p>",
    "tracking": {
      "loads": true,
      "clicks": true
    }
  }'
Terminal
curl -X POST 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",
    "template": "welcome",
    "variables": {
      "first_name": "Ada",
      "activation_url": "https://acme.com/activate?token=8f2c1e"
    }
  }'
Terminal
curl -X POST https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Acme Billing <billing@acme.com>",
    "to": "ada@example.com",
    "subject": "Your invoice INV-1042",
    "html": "<img src=\"cid:logo\"><p>Your invoice is attached.</p>",
    "attachments": [
      {
        "filename": "INV-1042.pdf",
        "content": "JVBERi0xLjQKJcOkw7zDqc...",
        "content_type": "application/pdf"
      },
      {
        "filename": "logo.png",
        "url": "https://acme.com/assets/logo.png",
        "content_id": "logo"
      }
    ]
  }'
Terminal
curl -X POST https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: reminder-appt-5531" \
  -d '{
    "from": "Acme <reminders@acme.com>",
    "to": "ada@example.com",
    "subject": "Your appointment tomorrow",
    "text": "See you tomorrow at 2 PM.",
    "scheduled_at": "2026-10-02T09:00:00Z",
    "meta": { "appointment_id": "5531" }
  }'
JSON
{
  "object": "email",
  "id": "em_4KYof1ZzXndZE2VPi0DgULiekG8",
  "ids": {
    "ada@example.com": "em_4KYof1ZzXndZE2VPi0DgULiekG8",
    "grace@example.com": "em_4KfIXZSV8v8L1k0Mg2YDR3rytvj"
  },
  "token": "4KDY1iIpQSSW5pAoiz3JEfqcsO0",
  "message_id": "<4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>",
  "from": "Acme <hello@acme.com>",
  "to": ["ada@example.com", "grace@example.com"],
  "subject": "Welcome to Acme",
  "status": "accepted",
  "scheduled_at": null,
  "created_at": "2026-10-01T09:30:12.482913Z",
  "tracking": {
    "loads": true,
    "clicks": true
  }
}

E-Mails auflisten

Gibt eine Seite mit E-Mails zurück, die neuesten zuerst. Standardmäßig zeigt die Liste ausgehende E-Mails der letzten 14 Tage.

GET/emails

Erfordert einen API-Schlüssel mit dem Scope full. Jeder Empfänger einer Sendung ist in dieser Liste eine eigene E-Mail.

Query-Parameter

pageintegerStandardwert: 1
Die abzurufende Seite.
limitintegerStandardwert: 25
E-Mails pro Seite, von 1 bis 100.
typestringStandardwert: outbound
outbound für E-Mails, die Sie gesendet haben, oder inbound für E-Mails, die Sie empfangen haben.
date_fromstring

Nur E-Mails, die an oder nach diesem Datum erstellt wurden, etwa 2026-08-01 (ab 00:00 UTC). Ohne diesen Parameter beginnt die Liste vor 14 Tagen. Filter auf created_at ändern dieses Fenster nicht.

date_tostring
Nur E-Mails, die an oder vor diesem Datum erstellt wurden, bis 23:59:59 UTC.
matchstringStandardwert: all
all oder or. Wie die Filter unten kombiniert werden.
orderstring
Ein Sortierschlüssel aus der Tabelle unten.
directionstring
asc oder desc.

Filter

Fügen Sie Filter in der Form key.condition=value hinzu, zum Beispiel status.exact=bounced oder created_at.after=2026-09-01. Die Bedingungen für jeden Typ finden Sie unter Filtern.

Schlüssel Typ Werte und Hinweise
to String Empfängeradresse.
from String Absender wie gesendet, einschließlich eines etwaigen Anzeigenamens.
subject String
status Enum accepted, scheduled, delivered, loaded, clicked, attempted, bounced, failed, rejected, suppressed, received, complained, canceled, held
tag String Das Tag der E-Mail. Beim Senden per API oder SMTP wird derzeit kein Tag gesetzt.
spam_score Zahl
created_at Datum
updated_at Datum
api_key_id String ID des API-Schlüssels, der die E-Mail gesendet hat (key_…).
sending_domain_id String ID der Versanddomain (dom_…).

Jeder Schlüssel ist auch ein Sortierschlüssel. Die älteren Query-Parameter status, rcpt_to, mail_from, subject, api_key_id und sending_domain_id funktionieren weiterhin: status prüft auf exakte Übereinstimmung, die Parameter für Adressen und Betreff auf Teilübereinstimmung.

Rückgabe

Gibt ein Array data mit E-Mail-Objekten sowie next_page_url und previous_page_url zurück. Siehe Paginierung. Die Seiten-URLs enthalten Ihre Filter nicht. Rufen Sie die nächste Seite daher mit Ihren eigenen Parametern und einem um eins erhöhten page ab.

objectstring
Immer email.
idstring
Die ID der E-Mail.
typestring
outbound oder inbound.
fromstring
Der Absender wie gesendet.
tostring
Der Empfänger dieser Kopie.
subjectstring
Der Betreff.
statusstring
Der aktuelle Status.
sizeinteger
Größe der Nachricht in Byte.
scheduled_atstring | null
Wann eine geplante E-Mail fällig ist, oder null.
created_atstring
Zeitpunkt, zu dem die E-Mail angenommen oder empfangen wurde.
updated_atstring
Zeitpunkt der letzten Statusänderung.
metaobject | null
Die von Ihnen gesendeten meta.
GET/emails
Terminal
curl -G https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -d page=1 \
  -d limit=25
Terminal
curl -G https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -d status.exact=bounced \
  -d status.exact=failed \
  -d match=or \
  -d date_from=2026-09-01 \
  -d order=created_at \
  -d direction=desc
JSON
{
  "data": [
    {
      "object": "email",
      "id": "em_4KYof1ZzXndZE2VPi0DgULiekG8",
      "type": "outbound",
      "from": "Acme <hello@acme.com>",
      "to": "ada@example.com",
      "subject": "Welcome to Acme",
      "status": "delivered",
      "size": 4523,
      "scheduled_at": null,
      "created_at": "2026-10-01T09:30:12.482913Z",
      "updated_at": "2026-10-01T09:30:14.118204Z",
      "meta": null
    },
    {
      "object": "email",
      "id": "em_4KfIXZSV8v8L1k0Mg2YDR3rytvj",
      "type": "outbound",
      "from": "Acme <hello@acme.com>",
      "to": "grace@example.com",
      "subject": "Welcome to Acme",
      "status": "loaded",
      "size": 4527,
      "scheduled_at": null,
      "created_at": "2026-10-01T09:30:12.482913Z",
      "updated_at": "2026-10-01T09:41:03.770521Z",
      "meta": null
    }
  ],
  "next_page_url": "/app/v2/emails?page=2&limit=25",
  "previous_page_url": null
}

E-Mail abrufen

Ruft eine E-Mail mit Status, geparsten Headern, HTML- und Text-Inhalt sowie Anhängen ab.

GET/emails/{id}

Erfordert einen API-Schlüssel mit dem Scope full. Nachrichteninhalte werden für die Aufbewahrungsdauer für Inhalte in Ihrem Tarif gespeichert. Danach sind headers, body und attachments leer, Status und Metadaten bleiben erhalten. Um nur einen Teil einer E-Mail abzurufen, verwenden Sie Body abrufen, Metadaten abrufen, Anhänge auflisten oder Roh-MIME abrufen.

Pfadparameter

idstringerforderlich
Die ID der E-Mail, etwa em_4KYof1ZzXndZE2VPi0DgULiekG8.

Rückgabe

Gibt das E-Mail-Objekt zurück.

objectstring
Immer email.
idstring
Die ID der E-Mail.
typestring
outbound für E-Mails, die Sie gesendet haben, inbound für E-Mails, die Sie empfangen haben.
tokenstring
Das interne Token der E-Mail.
message_idstring
Der Header Message-ID.
fromstring
Der Absender wie gesendet, etwa Acme <hello@acme.com>.
tostring
Der Empfänger dieser Kopie.
subjectstring
Der Betreff.
statusstring

Der aktuelle Status: accepted, scheduled, delivered, loaded, clicked, attempted, bounced, failed, rejected, suppressed, received, complained, canceled oder held. Siehe E-Mail-Status.

sizeinteger
Größe der Nachricht in Byte.
scheduled_atstring | null
Wann eine geplante E-Mail fällig ist, oder null.
created_atstring
Zeitpunkt, zu dem die E-Mail angenommen oder empfangen wurde.
updated_atstring
Zeitpunkt der letzten Änderung der E-Mail.
trackingobject
Nur bei ausgehenden E-Mails. Ob Öffnungs-Tracking (loads) und Klick-Tracking (clicks) aktiviert sind.
metaobject | null
Die von Ihnen gesendeten meta oder null.
headersobject | null
Die Header der Nachricht als Name-Wert-Paare oder null, sobald der Inhalt gelöscht wurde.
bodyobject
text und html, jeweils ein String oder null.
attachmentsobject[]

Die Anhänge, jeweils mit filename, content_type, size in Byte, content_id (für eingebettete Dateien), content_disposition (attachment oder inline) und content (Base64).

GET/emails/{id}
Terminal
curl https://api.emailit.com/v2/emails/em_4KYof1ZzXndZE2VPi0DgULiekG8 \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "email",
  "id": "em_4KYof1ZzXndZE2VPi0DgULiekG8",
  "type": "outbound",
  "token": "4KDY1iIpQSSW5pAoiz3JEfqcsO0",
  "message_id": "<4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>",
  "from": "Acme Billing <billing@acme.com>",
  "to": "ada@example.com",
  "subject": "Your invoice INV-1042",
  "status": "delivered",
  "size": 48213,
  "scheduled_at": null,
  "created_at": "2026-10-01T09:30:12.482913Z",
  "updated_at": "2026-10-01T09:30:14.118204Z",
  "tracking": {
    "loads": true,
    "clicks": true
  },
  "meta": {
    "invoice_id": "INV-1042"
  },
  "headers": {
    "From": "Acme Billing <billing@acme.com>",
    "To": "ada@example.com",
    "Subject": "Your invoice INV-1042",
    "Message-ID": "<4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>",
    "MIME-Version": "1.0",
    "Content-Type": "multipart/mixed; boundary=\"--_NmP-4f1c2a9e7b3d0e5f-Part_1\""
  },
  "body": {
    "text": "Your invoice is attached.",
    "html": "<p>Your invoice is attached.</p>"
  },
  "attachments": [
    {
      "filename": "INV-1042.pdf",
      "content_type": "application/pdf",
      "size": 40960,
      "content_id": null,
      "content_disposition": "attachment",
      "content": "JVBERi0xLjQKJcOkw7zDqc..."
    }
  ]
}

Roh-MIME abrufen

Ruft die vollständige MIME-Quelle einer E-Mail so ab, wie Emailit sie gespeichert hat, zusammen mit ihren Metadaten.

GET/emails/{id}/raw

Erfordert einen API-Schlüssel mit dem Scope full. Verwenden Sie diesen Endpunkt, um eine Nachricht zu archivieren, ihre Struktur zu debuggen oder sie mit Ihrer eigenen MIME-Bibliothek zu parsen. Sobald die Aufbewahrungsdauer für Inhalte abgelaufen ist, sind raw und headers null.

Pfadparameter

idstringerforderlich
Die ID der E-Mail.

Rückgabe

Gibt die Metadaten der E-Mail wie bei Metadaten abrufen zurück, jedoch ohne attachments, und zusätzlich die Rohnachricht.

rawstring | null
Die vollständige MIME-Nachricht: die Header, eine Leerzeile und der Body. null, sobald der Inhalt gelöscht wurde.
headersobject | null
Die Header der obersten Ebene als Name-Wert-Paare.

Die übrigen Felder (object, id, type, token, message_id, from, to, subject, status, size, scheduled_at, created_at, updated_at, tracking und meta) sind dieselben wie bei E-Mail abrufen.

GET/emails/{id}/raw
Terminal
curl https://api.emailit.com/v2/emails/em_4KYof1ZzXndZE2VPi0DgULiekG8/raw \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "email",
  "id": "em_4KYof1ZzXndZE2VPi0DgULiekG8",
  "type": "outbound",
  "token": "4KDY1iIpQSSW5pAoiz3JEfqcsO0",
  "message_id": "<4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>",
  "from": "Acme <hello@acme.com>",
  "to": "ada@example.com",
  "subject": "Welcome to Acme",
  "status": "delivered",
  "size": 1342,
  "scheduled_at": null,
  "created_at": "2026-10-01T09:30:12.482913Z",
  "updated_at": "2026-10-01T09:30:14.118204Z",
  "tracking": {
    "loads": false,
    "clicks": false
  },
  "meta": null,
  "headers": {
    "From": "Acme <hello@acme.com>",
    "To": "ada@example.com",
    "Subject": "Welcome to Acme",
    "Message-ID": "<4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>",
    "MIME-Version": "1.0",
    "Content-Type": "text/html; charset=utf-8"
  },
  "raw": "From: Acme <hello@acme.com>\r\nTo: ada@example.com\r\nSubject: Welcome to Acme\r\nMessage-ID: <4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>\r\nMIME-Version: 1.0\r\nContent-Type: text/html; charset=utf-8\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n<h1>Welcome!</h1><p>Thanks for signing up.</p>"
}

Anhänge auflisten

Gibt die Anhänge einer E-Mail einschließlich ihres Inhalts zurück.

GET/emails/{id}/attachments

Erfordert einen API-Schlüssel mit dem Scope full. Funktioniert für ausgehende und eingehende E-Mails. Eingebettete Bilder (Teile mit einer Content-ID) sind enthalten. Um die Liste ohne Dateiinhalte abzurufen, verwenden Sie Metadaten abrufen. Sobald die Aufbewahrungsdauer für Inhalte abgelaufen ist, ist die Liste leer.

Pfadparameter

idstringerforderlich
Die ID der E-Mail.

Rückgabe

Gibt ein Listenobjekt mit allen Anhängen zurück. Die Liste ist nicht paginiert.

objectstring
Immer list.
dataobject[]
Die Anhänge.
data[].filenamestring
Der Dateiname.
data[].content_typestring
Der MIME-Typ, etwa application/pdf.
data[].sizeinteger
Größe der dekodierten Datei in Byte.
data[].content_idstring | null
Die Content-ID eines eingebetteten Anhangs oder null.
data[].content_dispositionstring | null
attachment oder inline.
data[].contentstring
Die Datei, Base64-kodiert.
GET/emails/{id}/attachments
Terminal
curl https://api.emailit.com/v2/emails/em_4KYof1ZzXndZE2VPi0DgULiekG8/attachments \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "list",
  "data": [
    {
      "filename": "INV-1042.pdf",
      "content_type": "application/pdf",
      "size": 40960,
      "content_id": null,
      "content_disposition": "attachment",
      "content": "JVBERi0xLjQKJcOkw7zDqc..."
    },
    {
      "filename": "logo.png",
      "content_type": "image/png",
      "size": 5120,
      "content_id": "logo",
      "content_disposition": "inline",
      "content": "iVBORw0KGgoAAAANSUhEUgAA..."
    }
  ]
}

Body abrufen

Gibt den HTML- und Nur-Text-Inhalt einer E-Mail zurück, dekodiert aus ihren MIME-Teilen.

GET/emails/{id}/body

Erfordert einen API-Schlüssel mit dem Scope full. Funktioniert für ausgehende und eingehende E-Mails. Bei ausgehenden E-Mails ist der Body das, was gesendet wurde, nach dem Rendern von Vorlage und Variablen. Sobald die Aufbewahrungsdauer für Inhalte abgelaufen ist, sind beide Felder null.

Pfadparameter

idstringerforderlich
Die ID der E-Mail.

Rückgabe

textstring | null
Der Nur-Text-Teil oder null, wenn die E-Mail keinen hat.
htmlstring | null
Der HTML-Teil oder null, wenn die E-Mail keinen hat.
GET/emails/{id}/body
Terminal
curl https://api.emailit.com/v2/emails/em_4KYof1ZzXndZE2VPi0DgULiekG8/body \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "text": "Welcome!\n\nThanks for signing up.",
  "html": "<h1>Welcome!</h1><p>Thanks for signing up.</p>"
}

Metadaten abrufen

Ruft eine E-Mail ohne ihren Body ab: Status, Header, Ihre meta-Daten und die Liste der Anhänge ohne deren Inhalt.

GET/emails/{id}/meta

Erfordert einen API-Schlüssel mit dem Scope full. Das ist der schlankste Weg, die Details einer E-Mail zu lesen, wenn Sie den Inhalt nicht brauchen.

Pfadparameter

idstringerforderlich
Die ID der E-Mail.

Rückgabe

Gibt dieselben Felder wie E-Mail abrufen zurück, ohne body und mit attachments nur als Beschreibung, ohne Inhalt:

attachmentsobject[]
Für jeden Anhang filename, content_type, size, content_id und content_disposition. Kein content.
headersobject | null
Die Header der Nachricht als Name-Wert-Paare oder null, sobald der Inhalt gelöscht wurde.
metaobject | null
Die meta, die Sie mit der E-Mail gesendet haben.
GET/emails/{id}/meta
Terminal
curl https://api.emailit.com/v2/emails/em_4KYof1ZzXndZE2VPi0DgULiekG8/meta \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "email",
  "id": "em_4KYof1ZzXndZE2VPi0DgULiekG8",
  "type": "outbound",
  "token": "4KDY1iIpQSSW5pAoiz3JEfqcsO0",
  "message_id": "<4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>",
  "from": "Acme Billing <billing@acme.com>",
  "to": "ada@example.com",
  "subject": "Your invoice INV-1042",
  "status": "delivered",
  "size": 48213,
  "scheduled_at": null,
  "created_at": "2026-10-01T09:30:12.482913Z",
  "updated_at": "2026-10-01T09:30:14.118204Z",
  "tracking": {
    "loads": true,
    "clicks": true
  },
  "meta": {
    "invoice_id": "INV-1042"
  },
  "headers": {
    "From": "Acme Billing <billing@acme.com>",
    "To": "ada@example.com",
    "Subject": "Your invoice INV-1042",
    "Message-ID": "<4KDY1iIpQSSW5pAoiz3JEfqcsO0@acme.com>",
    "MIME-Version": "1.0",
    "Content-Type": "multipart/mixed; boundary=\"--_NmP-4f1c2a9e7b3d0e5f-Part_1\""
  },
  "attachments": [
    {
      "filename": "INV-1042.pdf",
      "content_type": "application/pdf",
      "size": 40960,
      "content_id": null,
      "content_disposition": "attachment"
    }
  ]
}

Geplante E-Mail aktualisieren

Verschiebt eine geplante E-Mail auf einen neuen Sendezeitpunkt.

POST/emails/{id}

Funktioniert mit API-Schlüsseln mit dem Scope sending oder full. Sie können nur eine E-Mail verschieben, deren Status scheduled ist und deren aktueller Sendezeitpunkt mehr als 3 Minuten entfernt ist. Nur der Sendezeitpunkt lässt sich ändern; um den Inhalt zu ändern, stornieren Sie die E-Mail und senden eine neue.

Eine geplante Sendung an mehrere Empfänger erzeugt eine E-Mail pro Empfänger. Verschieben Sie jede ID aus der Zuordnung ids der Antwort beim Senden.

Pfadparameter

idstringerforderlich
Die ID der geplanten E-Mail.

Body-Parameter

scheduled_atstringerforderlich

Der neue Sendezeitpunkt, als Datum mit Uhrzeit nach ISO 8601 wie 2026-10-03T09:00:00Z oder auf Englisch wie tomorrow at 3pm. Er muss mehr als 3 Minuten in der Zukunft liegen.

Rückgabe

objectstring
Immer email.
idstring
Die ID der E-Mail.
statusstring
Immer scheduled.
scheduled_atstring
Der neue Sendezeitpunkt.
updated_atstring
Zeitpunkt der Aktualisierung der E-Mail.
messagestring
Eine Bestätigungsmeldung.

Gibt 422 zurück, wenn die E-Mail nicht geplant ist, innerhalb von 3 Minuten fällig ist oder der neue Zeitpunkt nicht geparst werden kann oder zu früh liegt.

POST/emails/{id}
Terminal
curl -X POST https://api.emailit.com/v2/emails/em_4K76IA5sFNIsLXW9QC2ro8cDbOj \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"scheduled_at": "2026-10-03T09:00:00Z"}'
Terminal
curl -X POST https://api.emailit.com/v2/emails/em_4K76IA5sFNIsLXW9QC2ro8cDbOj \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"scheduled_at": "tomorrow at 3pm"}'
JSON
{
  "object": "email",
  "id": "em_4K76IA5sFNIsLXW9QC2ro8cDbOj",
  "status": "scheduled",
  "scheduled_at": "2026-10-03T09:00:00.000Z",
  "updated_at": "2026-10-01T10:15:40.207316Z",
  "message": "Email schedule has been updated successfully"
}

E-Mail stornieren

Entfernt eine E-Mail aus der Versandwarteschlange und setzt ihren Status auf canceled.

POST/emails/{id}/cancel

Funktioniert mit API-Schlüsseln mit dem Scope sending oder full. Das Stornieren erfolgt ohne Garantie: Die E-Mail wird aus der Warteschlange genommen, aber wenn ein Zustellversuch bereits begonnen hat, kann dieser Versuch noch abgeschlossen werden, und nur die restlichen Wiederholungen werden gestoppt. Welcher Fall vorliegt, zeigt die Antwort in in_flight. Das Stornieren löst das Event email.canceled aus, und der Credit wird nicht erstattet. Die Aktion Cancel delivery in der Weboberfläche tut dasselbe.

Status Stornierbar Hinweise
scheduled Ja Bis 3 Minuten vor dem geplanten Zeitpunkt.
accepted Ja In der Warteschlange und noch nicht zugestellt.
attempted Ja Stoppt die restlichen Wiederholungen nach einem vorübergehenden Fehler.
Alle anderen Nein Die E-Mail wurde bereits zugestellt, ist fehlgeschlagen oder wurde storniert.

Um eine Sendung mit mehreren Empfängern zu stornieren, stornieren Sie jede ID aus der Zuordnung ids der Antwort beim Senden.

Pfadparameter

idstringerforderlich
Die ID der E-Mail.

Rückgabe

objectstring
Immer email.
idstring
Die ID der E-Mail.
statusstring
Immer canceled.
in_flightboolean
true, wenn ein Zustellversuch womöglich bereits läuft und noch abgeschlossen werden könnte. false, wenn die E-Mail vor jedem Versuch aus der Warteschlange entfernt wurde.
messagestring
Eine Beschreibung des Ergebnisses.
POST/emails/{id}/cancel
Terminal
curl -X POST https://api.emailit.com/v2/emails/em_4K76IA5sFNIsLXW9QC2ro8cDbOj/cancel \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "email",
  "id": "em_4K76IA5sFNIsLXW9QC2ro8cDbOj",
  "status": "canceled",
  "in_flight": false,
  "message": "Email has been canceled and removed from the send queue."
}

E-Mail erneut senden

Stellt eine Kopie einer E-Mail, die nicht durchgekommen ist, in die Warteschlange. Die Kopie ist eine neue E-Mail mit eigener ID, und das Original behält seinen Status.

POST/emails/{id}/retry

Funktioniert mit API-Schlüsseln mit dem Scope sending oder full. Die Kopie hat denselben Absender, Empfänger, Betreff, Inhalt, dieselben Header, meta und Tracking-Einstellungen, aber eine neue Message-ID. Sie kostet Credits wie eine neue Sendung: einen Credit, bei einer Kampagnen-E-Mail zwei.

Sie können eine E-Mail erneut senden, wenn:

  • ihr Status bounced, failed, suppressed oder held ist,
  • sie in den letzten 30 Tagen erstellt wurde,
  • ihr Inhalt nicht durch Ihre Aufbewahrungsdauer gelöscht wurde und ihre Versanddomain noch existiert.

Beheben Sie zuerst die Ursache. Eine gesperrte Adresse, die noch auf Ihrer Sperrliste steht, wird erneut gesperrt, und eine zurückgehaltene E-Mail wird erneut zurückgehalten, bis der Grund dafür behoben ist.

Pfadparameter

idstringerforderlich
Die ID der E-Mail, die erneut gesendet werden soll.

Rückgabe

objectstring
Immer email.
idstring
Die ID der neuen E-Mail.
original_idstring
Die ID der erneut gesendeten E-Mail.
tokenstring
Das interne Token der neuen E-Mail.
message_idstring
Die Message-ID der neuen E-Mail.
fromstring
Der Absender.
tostring
Der Empfänger.
subjectstring
Der Betreff.
statusstring
Immer accepted.
created_atstring
Zeitpunkt der Erstellung der neuen E-Mail.
messagestring
Eine Bestätigungsmeldung.
POST/emails/{id}/retry
Terminal
curl -X POST https://api.emailit.com/v2/emails/em_4KKrQ7TzsVtzsS8zG069B2aMtoK/retry \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "email",
  "id": "em_4KbeG9poqTmjvQZeN8pMoJkCVNd",
  "original_id": "em_4KKrQ7TzsVtzsS8zG069B2aMtoK",
  "token": "4KTnDU5PzzqDqp8UWb9qVhPVFOT",
  "message_id": "<4KTnDU5PzzqDqp8UWb9qVhPVFOT@acme.com>",
  "from": "Acme <hello@acme.com>",
  "to": "ada@example.com",
  "subject": "Welcome to Acme",
  "status": "accepted",
  "created_at": "2026-10-01T12:04:51.330482Z",
  "message": "Email has been queued for retry"
}

E-Mail weiterleiten

Sendet den Inhalt einer ausgehenden E-Mail als neue E-Mail an neue Empfänger. Die ursprüngliche E-Mail bleibt unverändert.

POST/emails/{id}/forward

Funktioniert mit API-Schlüsseln mit dem Scope sending oder full. Standardmäßig ist die Weiterleitung ein einfaches erneutes Senden von HTML, Text und Anhängen des Originals. Setzen Sie include_headers, um über dem ursprünglichen Inhalt einen Block „Forwarded message“ und eine optionale Notiz einzufügen.

Eine Weiterleitung ist eine neue Sendung. Daher gelten die Regeln von E-Mail senden: Die Adresse in from muss auf einer verifizierten Versanddomain liegen, jeder Empfänger kostet einen Credit und zählt zu den Versandlimits, das Tracking folgt den Einstellungen der Domain, und der Header Idempotency-Key wird unterstützt. Zusätzlich kann ein Workspace höchstens 3 E-Mails pro Stunde weiterleiten.

Nur ausgehende E-Mails lassen sich weiterleiten, und nur solange ihr Inhalt im Rahmen Ihrer Aufbewahrungsdauer gespeichert ist. Um empfangene E-Mails weiterzuleiten, verwenden Sie eine Automatisierung.

Pfadparameter

idstringerforderlich
Die ID der ausgehenden E-Mail, die weitergeleitet werden soll.

Header

Idempotency-Keystring
Macht die Weiterleitung gefahrlos wiederholbar. Siehe Idempotenz.

Body-Parameter

tostring | string[]erforderlich
Die neuen Empfänger, als Array oder als kommagetrennter String. Bis zu 50.
include_headersbooleanStandardwert: false

Bei true wird ein Block „Forwarded message“ mit ursprünglichem Absender, Datum, Betreff und Empfänger eingefügt und darüber Ihre Notiz. Bei false wird der ursprüngliche Inhalt unverändert erneut gesendet.

commentstring
Eine Nur-Text-Notiz über der weitergeleiteten Nachricht. Wird nur mit include_headers verwendet. body wird als Alias akzeptiert.
htmlstring
Eine HTML-Notiz, die im HTML-Teil anstelle des maskierten comment verwendet wird. Wird nur mit include_headers verwendet.
textstring
Eine Nur-Text-Notiz, die im Text-Teil anstelle von comment verwendet wird. Wird nur mit include_headers verwendet.
fromstring
Der Absender. Standardmäßig der from der ursprünglichen E-Mail.
subjectstring
Der Betreff. Standardmäßig der ursprüngliche Betreff, mit include_headers Fwd: gefolgt vom ursprünglichen Betreff.

Ursprüngliche Anhänge werden übernommen, wenn ihr Dateityp erlaubt ist.

Rückgabe

Gibt dasselbe Objekt wie E-Mail senden zurück, mit zwei zusätzlichen Feldern:

original_idstring
Die ID der weitergeleiteten E-Mail.
messagestring
Eine Bestätigungsmeldung.

Über dem Limit für Weiterleitungen gibt die API 429 mit dem Header retry-after zurück.

POST/emails/{id}/forward
Terminal
curl -X POST https://api.emailit.com/v2/emails/em_4KYof1ZzXndZE2VPi0DgULiekG8/forward \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "grace@example.com"
  }'
Terminal
curl -X POST https://api.emailit.com/v2/emails/em_4KYof1ZzXndZE2VPi0DgULiekG8/forward \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: fwd-inv-1042-grace" \
  -d '{
    "to": ["grace@example.com"],
    "include_headers": true,
    "comment": "Grace, here is the invoice Ada asked about."
  }'
JSON
{
  "object": "email",
  "id": "em_4K76IA5sFNIsLXW9QC2ro8cDbOj",
  "original_id": "em_4KYof1ZzXndZE2VPi0DgULiekG8",
  "token": "4KWzEED2cnej6UMjF4v508VqQIp",
  "message_id": "<4KWzEED2cnej6UMjF4v508VqQIp@acme.com>",
  "from": "Acme Billing <billing@acme.com>",
  "to": ["grace@example.com"],
  "subject": "Fwd: Your invoice INV-1042",
  "status": "accepted",
  "scheduled_at": null,
  "created_at": "2026-10-01T13:20:07.915203Z",
  "tracking": {
    "loads": true,
    "clicks": true
  },
  "message": "Email has been queued for forwarding"
}

Nur den Status abrufen

Gibt nur den aktuellen Status einer E-Mail zurück.

GET/email/{id}

Erfordert einen API-Schlüssel mit dem Scope full. Beachten Sie den Singular /email im Pfad. Die Antwort ist klein, daher eignet sich dieser Endpunkt gut für schnelle Statusprüfungen. Für Statusänderungen in Echtzeit verwenden Sie Webhooks, statt regelmäßig abzufragen.

Pfadparameter

idstringerforderlich
Die ID der E-Mail.

Rückgabe

statusstring

Der aktuelle Status: accepted, scheduled, delivered, loaded, clicked, attempted, bounced, failed, rejected, suppressed, received, complained, canceled oder held. Siehe E-Mail-Status.

GET/email/{id}
Terminal
curl https://api.emailit.com/v2/email/em_4KYof1ZzXndZE2VPi0DgULiekG8 \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "status": "delivered"
}

War diese Seite hilfreich?

Danke für Ihr Feedback.

Danke, wir lesen jede Nachricht.