REST-API-Referenz für Email Verifier
Vollständige Referenz der 8 Email-Verifier-Endpunkte mit Authentifizierung, Idempotenz, Feldern, Status, Limits, Fehlern und sicheren Wiederholungen.
Artikeldetails
Typ, Schwierigkeit, Tarife und Info zur letzten Aktualisierung.
▼
Artikeldetails
Typ, Schwierigkeit, Tarife und Info zur letzten Aktualisierung.
- Typ
- Referenz
- Schwierigkeit
- Mittel
- Tarife
- Nano · Starter · Pro · Agency
- Zuletzt aktualisiert
- 10. Sep 2026
Die Email Verifier API wird unter /api/v1 bereitgestellt. Verwende den TrekMail-Host, über den sich dein Konto anmeldet. Die folgenden Beispiele verwenden https://YOUR-TREKMAIL-HOST als Platzhalter.
Authentifizierung und Scopes
Übermittle ein API-Token im Authorization-Header:
Authorization: Bearer YOUR_API_TOKEN
Aktiviere die Scopes beim Erstellen des Tokens:
| Scope | Erforderlich für |
|---|---|
verify:read |
Guthaben, Auftragslisten, Auftragsstatus und Downloads. |
verify:write |
Einzelprüfungen, Sammeleinreichung, Abbruch und Löschen. |
Erteile einem Client beide Scopes, wenn er Arbeit einreichen und das Ergebnis anschließend lesen oder herunterladen muss.
Host und Anfrageformat
Alle Beispiele verwenden JSON-Anfrageinhalte und ein Bearer-Token. Der Datei-Uploader im Dashboard ist von der API getrennt: POST /verify/bulk akzeptiert ein JSON-Array emails, keine Multipart-Datei. Verwende exakt den Host, der zu Konto und Token gehört. Gehe nicht davon aus, dass Token oder Guthaben eines Markenhosts auf einem anderen Host funktionieren.
Sende Content-Type: application/json bei Anfragen an POST /verify und POST /verify/bulk. Bewahre Token und Idempotenzwert außerhalb von clientseitigem Code auf.
Idempotenz
POST /api/v1/verify/bulk und DELETE /api/v1/verify/bulk/{jobId} erfordern einen Idempotency-Key-Header. Erzeuge für jeden beabsichtigten Vorgang einen neuen Wert und verwende ihn nur erneut, wenn du denselben Vorgang wiederholst.
Idempotency-Key: 58dfa0de-96eb-4521-a0f9-2e5eac6721ee
Einzelverifizierung und Auftragsabbruch benötigen diesen Header nicht. Eine Sammelanfrage ist außerdem innerhalb von 24 Stunden durch die Erkennung derselben normalisierten Liste und desselben Modus geschützt. Für Wiederholungen bleibt der Idempotenzschlüssel dennoch der richtige Mechanismus.
Unsicheres Netzwerkergebnis behandeln
Wenn deine Anwendung die Antwort auf eine Sammelanfrage verliert, erzeuge keinen neuen Idempotenzschlüssel und reiche die Liste nicht erneut ein. Wiederhole die identische Anfrage mit demselben Schlüssel. Speichere ihn zusammen mit der Kennung der Quellliste, bis TrekMail eine Auftrags-ID liefert. So bleibt die Wiederholung mit dem ursprünglich beabsichtigten Vorgang verbunden und verursacht keine vermeidbare zweite Belastung.
Endpunktübersicht
| Methode und Pfad | Scope | Zweck |
|---|---|---|
GET /verify/credits |
verify:read |
Verfügbares Guthaben lesen. |
POST /verify |
verify:write |
Eine Adresse sofort prüfen. |
POST /verify/bulk |
verify:write |
Asynchronen Sammelauftrag erstellen. |
GET /verify/bulk/{jobId} |
verify:read |
Fortschritt und verfügbare Ergebnisse lesen. |
GET /verify/bulk/{jobId}/download |
verify:read |
CSV-Export herunterladen. |
GET /verify/bulk |
verify:read |
Aufträge auflisten. |
POST /verify/bulk/{jobId}/cancel |
verify:write |
Ausstehenden oder laufenden Auftrag abbrechen. |
DELETE /verify/bulk/{jobId} |
verify:write |
Nicht laufenden Auftrag dauerhaft löschen. |
Stelle jedem Pfad in dieser Tabelle /api/v1 voran.
Guthaben lesen
GET /api/v1/verify/credits
Auf dem normalen TrekMail-Host enthält die Antwort das Tarifkontingent und gekauftes Guthaben:
{
"monthly_limit": 300,
"monthly_used": 120,
"monthly_remaining": 180,
"purchased_balance": 5000,
"total_available": 5180,
"plan": "pro",
"trialing": false,
"resets_at": "2026-10-01T00:00:00+00:00"
}
Auf einem White-Label-Host steht dem Markenprodukt nur gekauftes Guthaben zur Verfügung. Die Antwort enthält daher purchased_balance und total_available.
Beispielanfrage:
curl https://YOUR-TREKMAIL-HOST/api/v1/verify/credits \
-H "Authorization: Bearer YOUR_API_TOKEN"
Lies den Saldo unmittelbar vor einer großen Einreichung. Eine Saldoantwort ist eine Momentaufnahme. Eine Anwendung, die mehrere Aufträge einreicht, sollte daher den in jeder Sammelantwort berechneten Betrag erfassen, statt ihn später aus einer veralteten Zahl zu berechnen.
Saldo-Felder
| Feld | Bedeutung |
|---|---|
monthly_limit |
Tarifkontingent für den aktuellen Rücksetzzeitraum. |
monthly_used |
Bereits aus diesem Kontingent verbrauchtes Guthaben. |
monthly_remaining |
Verbleibendes Kontingent, bevor gekauftes Guthaben benötigt wird. |
purchased_balance |
Separat gekauftes und noch nicht verbrauchtes Guthaben. |
total_available |
Für den nächsten Auftrag auf diesem Host verfügbarer Betrag. |
resets_at |
Nächster bekannter Rücksetzzeitpunkt, sofern verfügbar. |
White-Label-Saldoantworten haben absichtlich weniger Felder, da das Markenprodukt nur gekauftes Guthaben verwendet.
Eine Adresse prüfen
POST /api/v1/verify
{
"email": "person@example.com",
"mode": "quick"
}
| Feld | Erforderlich | Hinweise |
|---|---|---|
email |
Ja | Eine E-Mail-Adresse mit bis zu 320 Zeichen. |
mode |
Nein | Standard ist quick; deep wird akzeptiert, wenn Deep verfügbar ist. |
Die Antwort enthält email, status, trust_score, checks, provider, risk_factors und credits_remaining. Auf dem normalen Host enthält credits_remaining die Werte monthly und purchased. Die genaue Form von checks kann je nach Modus und den vom empfangenden Anbieter verfügbaren Informationen variieren.
Quick kostet 1 Guthaben. Deep kostet normalerweise 2 Guthaben, während anbieterspezifische Ausnahmen mit 1 Guthaben berechnet werden. Kann die Verifizierung nach der Belastung nicht ausgeführt werden, erstattet die Einzelanfrage diese Belastung und gibt eine Antwort zur vorübergehenden Nichtverfügbarkeit zurück.
Beispielanfrage:
curl -X POST https://YOUR-TREKMAIL-HOST/api/v1/verify \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"email":"person@example.com","mode":"quick"}'
Verwende status, trust_score, provider und risk_factors auf oberster Ebene als normalen Anwendungsvertrag. checks enthält nützliche Nachweise, doch einzelne Schlüssel können abweichen, wenn eine externe Prüfung übersprungen wird, nicht verfügbar ist oder Deep zusätzliche Informationen erhält.
Einzelnes Ergebnis interpretieren
| Feld | Verwendung |
|---|---|
email |
Ergebnis der normalisierten, von deiner Anwendung gespeicherten Eingabe zuordnen. |
status |
Adresse in deinen Prüf- oder Kampagnenablauf einordnen. |
trust_score |
Arbeit innerhalb eines Status sortieren oder priorisieren, nicht Einwilligung ersetzen. |
provider |
Erklären, welche Domain der Verifier berücksichtigt hat. |
risk_factors |
Bedienern einen knappen Prüfgrund zeigen. |
checks |
Ergänzende Details zeigen, wenn ein Ergebnis erklärt werden muss. |
Lass eine Anwendung eine akzeptierte externe Antwort nicht als Besitz- oder Berechtigungsprüfung behandeln. Verwalte Abonnement-, Abmelde- und Kontaktpräferenzentscheidungen getrennt.
Sammelauftrag erstellen
POST /api/v1/verify/bulk
{
"emails": ["first@example.com", "second@example.net"],
"name": "September contacts",
"mode": "deep"
}
| Feld | Erforderlich | Hinweise |
|---|---|---|
emails |
Ja | Array mit bis zu 50,000 eingereichten Einträgen. Syntaktisch ungültige Einträge werden ausgeschlossen und gemeldet. |
name |
Nein | Bezeichnung mit bis zu 255 Zeichen. |
mode |
Nein | Standardmäßig quick oder deep, wenn verfügbar. |
Duplikate werden vor der Preisberechnung normalisiert. Ein erfolgreich erstellter Auftrag gibt 201 zurück:
{
"job_id": 42,
"total": 2,
"status": "pending",
"rejected_count": 0,
"rejected_sample": [],
"credits_charged": 4,
"breakdown": {"probe": 2, "skip": 0, "deep_savings": 0}
}
probe und skip erklären die Deep-Preisberechnung. deep_savings ist die Differenz gegenüber der Berechnung jeder eingereichten Adresse zum vollen Deep-Tarif. Bei einer doppelten Liste werden vorhandene job_id und Status zurückgegeben, statt einen weiteren Auftrag zu starten.
Beispielanfrage:
curl -X POST https://YOUR-TREKMAIL-HOST/api/v1/verify/bulk \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 58dfa0de-96eb-4521-a0f9-2e5eac6721ee" \
-d '{"name":"September contacts","mode":"deep","emails":["first@example.com","second@example.net"]}'
Die API prüft eingereichte Werte vor der Auftragsannahme auf gültige E-Mail-Syntax. Werden alle Einträge zurückgewiesen, gibt sie 422 zurück und erstellt keinen Auftrag. Bei teilweiser Zurückweisung nennt die erfolgreiche Antwort rejected_count und bis zu fünf Werte in rejected_sample. Verlasse dich nicht auf diese kleine Stichprobe als vollständigen Bereinigungsbericht. Bewahre das Ergebnis der Quellvalidierung in deinem Importer auf.
Checkliste für Sammeleinreichungen
- Lies und normalisiere die Quelle in deiner Anwendung.
- Begrenze die Anfrage auf 50,000 eingereichte Einträge.
- Erzeuge und speichere vor der Anfrage einen Idempotenzschlüssel.
- Wähle einen aussagekräftigen Auftragsnamen, den Bediener später erkennen.
- Speichere die von TrekMail zurückgegebenen Werte
job_id,credits_chargedund die Preisaufschlüsselung. - Frage die gespeicherte
job_idab und leite den Abschluss nicht aus der ursprünglichen HTTP-Anfrage ab.
Auftrag lesen
GET /api/v1/verify/bulk/{jobId}
Die Basisantwort enthält job_id, name, status, total, processed, progress, summary, created_at und completed_at.
Wenn Ergebnisse für einen abgeschlossenen, teilweisen oder fehlgeschlagenen Auftrag verfügbar sind, enthält die Antwort außerdem:
{
"results": [
{
"email": "person@example.com",
"status": "valid",
"trust_score": 82,
"checks": {},
"provider": "example.com",
"risk_factors": ["no_dmarc"]
}
],
"pagination": {"page": 1, "per_page": 100, "total": 1, "last_page": 1}
}
Optionale Abfrageparameter:
| Parameter | Hinweise |
|---|---|
page |
Nummer der Ergebnisseite. |
per_page |
1 bis 500; Standard 100. |
status |
pending, queued, safe, valid, risky, invalid oder unknown. |
search |
Wörtliche Teiladressensuche mit bis zu 320 Zeichen. |
Ein abgebrochener Auftrag mit verarbeiteten Zeilen kann heruntergeladen werden. Verwende für seinen Export den Download-Endpunkt.
Auftragsstatus ohne Vermutungen lesen
| Status | Bedeutung für einen API-Client |
|---|---|
pending |
Auftrag wurde angenommen und wartet auf Verarbeitung. |
processing |
Arbeit läuft. Verwende processed und progress für eine sichtbare Aktualisierung. |
completed |
Gesamter Auftrag ist abgeschlossen. Lies Ergebnisse oder lade die CSV herunter. |
partial |
Teilmenge ist abgeschlossen. Prüfe sie als Teilmenge, nicht als Ergebnis der gesamten Liste. |
cancelled |
Auftrag wurde gestoppt. Verarbeitete Zeilen können noch heruntergeladen werden. |
failed |
Auftrag konnte nicht abgeschlossen werden. Lies Status und Fehlerkontext vor einer Wiederholung. |
Ein API-Client sollte mit zunehmender Wartezeit abfragen. Reiche keinen neuen Sammelauftrag ein, nur weil der vorhandene noch aussteht oder eine Netzwerkanfrage lokal abgelaufen ist.
Beispiel einer Statusantwort
{
"job_id": 42,
"name": "September contacts",
"status": "processing",
"total": 1500,
"processed": 400,
"progress": 27,
"summary": {"safe": 220, "valid": 105, "risky": 55, "invalid": 20},
"created_at": "2026-09-04T13:15:00+00:00",
"completed_at": null
}
summary kann mit fortschreitender Verarbeitung wachsen. Verwende processed und total für eine Fortschrittsanzeige, statt nur die Kategorien zu summieren, die deine Anwendung derzeit kennt.
Auftrag herunterladen
GET /api/v1/verify/bulk/{jobId}/download
Der Download ist für abgeschlossene, teilweise oder abgebrochene Aufträge mit verarbeiteten Zeilen verfügbar. Er streamt eine CSV mit den Spalten Email, Status, Trust Score, Provider und Risk Factors.
| Abfrageparameter | Zulässige Werte |
|---|---|
filter |
all (Standard), safe, safe_risky (Safe + Valid + Risky). |
Beispiel:
curl -o september-results.csv \
"https://YOUR-TREKMAIL-HOST/api/v1/verify/bulk/42/download?filter=safe_risky" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Speichere die heruntergeladene Ausgabe innerhalb der 15-tägigen Aufbewahrungsfrist für Ergebnisse. Die CSV ist ein Export für deinen Ablauf. Sie ändert weder Einwilligungen noch Abonnements oder Kontakteinträge in einem anderen System.
Der Download-Endpunkt gibt einen Konflikt zurück, solange kein verarbeiteter Export verfügbar ist. Prüfe zuerst den Auftragsstatus. Eine erfolgreiche Anfrage streamt die CSV statt eines JSON-Wrappers. Behandle sie daher im HTTP-Client als Dateiantwort.
Aufträge auflisten
GET /api/v1/verify/bulk
Verwende page, per_page und optional status. per_page ist standardmäßig 20 und akzeptiert 1 bis 100. Mögliche Auftragsstatus sind pending, processing, completed, partial, cancelled und failed.
Die Antwort enthält ein Array jobs und ein Objekt pagination. Jeder Auftragseintrag enthält ID, Name, Status, Gesamtzahl, verarbeitete Anzahl, Fortschritt und Zeitstempel.
Beispiel:
curl "https://YOUR-TREKMAIL-HOST/api/v1/verify/bulk?status=processing&per_page=20" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Verwende den Listen-Endpunkt, wenn dein Worker neu startet oder du Auftrags-IDs abgleichen musst. Behandle einen Auftragsnamen nicht als eindeutige Kennung. Speichere die zurückgegebene numerische job_id.
Form der Auftragslisten-Antwort
{
"jobs": [
{
"job_id": 42,
"name": "September contacts",
"status": "completed",
"total": 1500,
"processed": 1500,
"progress": 100,
"created_at": "2026-09-04T13:15:00+00:00",
"completed_at": "2026-09-04T13:28:00+00:00"
}
],
"pagination": {"page": 1, "per_page": 20, "total": 1, "last_page": 1}
}
Verwende den Abfrageparameter status, wenn eine Betriebsseite nur aktive oder nur abgeschlossene Arbeit benötigt. Paginierung ist für Konten mit vielen verifizierten Listen wichtig. Gehe nicht davon aus, dass eine Antwort den gesamten Verlauf enthält.
Auftrag abbrechen
POST /api/v1/verify/bulk/{jobId}/cancel
Brich nur ausstehende oder laufende Arbeit ab. Eine erfolgreiche Antwort lautet:
{"status":"cancelled","credits_refunded":40}
Die Erstattung gilt für unverarbeitete Arbeit. Erreicht der Auftrag einen Endstatus, bevor der Abbruch ihn erreicht, gibt die API einen Konflikt zurück, statt das Ergebnis zu ändern.
curl -X POST https://YOUR-TREKMAIL-HOST/api/v1/verify/bulk/42/cancel \
-H "Authorization: Bearer YOUR_API_TOKEN"
Ein Abbruch löscht den Auftrag nicht. Lade verarbeitete Zeilen bei Bedarf herunter oder lösche den abgeschlossenen Datensatz anschließend.
Auftrag löschen
DELETE /api/v1/verify/bulk/{jobId}
Brich einen laufenden Auftrag zuerst ab. Das Löschen entfernt Auftrag und Ergebnisse dauerhaft, nachdem TrekMail die bereitgestellte Quellliste sicher entfernt hat. Eine erfolgreiche Antwort lautet:
{"deleted":true}
curl -X DELETE https://YOUR-TREKMAIL-HOST/api/v1/verify/bulk/42 \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Idempotency-Key: 843ef0c5-4dc0-4c09-bacd-5bd0fe87e847"
Dieser Vorgang ist für den Verifier-Datensatz dauerhaft. Bereits von deiner Anwendung heruntergeladene CSV-Dateien werden nicht zurückgezogen. Wende deshalb deinen eigenen Aufbewahrungsprozess auf diese Kopien an.
Löschreihenfolge
- Lies den Auftragsstatus.
- Brich ihn ab, wenn er aussteht oder verarbeitet wird.
- Speichere jeden verarbeiteten Export, den du aufbewahren musst.
- Lösche den nicht laufenden Verifier-Auftrag mit einem Idempotenzschlüssel.
- Entferne Kopien deines Systems nach dessen Datenschutz- und Aufbewahrungsregeln.
Fehler und Wiederholungen
| Status | Typischer Grund | Vorgehen |
|---|---|---|
| 402 | Nicht genügend Guthaben. | Guthaben hinzufügen oder Auftrag verkleinern. |
| 404 | Auftrag gehört nicht zu diesem Konto oder existiert nicht. | ID und Token-Konto prüfen. |
| 409 | Auftrag kann im aktuellen Status nicht heruntergeladen, abgebrochen oder gelöscht werden. | Status lesen und angegebenen nächsten Schritt ausführen. |
| 422 | Ungültige Eingabe, nicht verfügbarer Deep-Modus oder fehlender erforderlicher Idempotenzschlüssel. | Anfrage korrigieren. |
| 429 | Anfragelimit erreicht. | Später mit zunehmender Wartezeit wiederholen. |
| 503 | Vorübergehender Verifizierungsfehler. | Später wiederholen. |
Die Einzelverifizierung hat ein Routenlimit von 60 Anfragen pro Minute, die Sammeleinreichung eines von 10 Anfragen pro Minute. Implementiere Wiederholungen mit zunehmender Wartezeit, behalte bei einer Sammelwiederholung denselben Idempotenzschlüssel und wiederhole eine Anfrage nach einem unbekannten Netzwerkergebnis nicht blind.
Sicheres Wiederholungsmuster
- Erzeuge und speichere vor einer Sammeleinreichung einen Idempotenzschlüssel.
- Sende die Anfrage mit diesem Schlüssel.
- Geht die Antwort verloren, wiederhole die identische Anfrage mit demselben Schlüssel.
- Speichere die zurückgegebene
job_idund erstelle für diese Quellliste keine neuen Einreichungen. - Frage den Auftrag bis zum Endstatus ab und lade oder verarbeite dann das Ergebnis.
Bei einer Einzelverifizierung bedeutet ein vorübergehender 503, dass der Dienst die Prüfung nicht abschließen konnte. Versuche es später mit normaler zunehmender Wartezeit erneut. Wandle diese Antwort in deiner Datenbank nicht in ein Invalid-Ergebnis um.
Kontaktdaten schützen
E-Mail-Listen sind in vielen Zusammenhängen personenbezogene Daten. Sende nur die für die Verifizierung benötigten Daten, beschränke den Token-Zugriff auf das System, das den Auftrag ausführt, und vermeide vollständige Adressarrays in Anwendungsprotokollen. Protokolliere bei Bedarf Auftrags-ID, Anzahl, Zeitangaben und Ergebnis auf hoher Ebene statt der vollständigen Liste.
TrekMail bewahrt Ergebnisse 15 Tage auf. Plane vor der Integration großer Listen einen eigenen sicheren Speicher- oder Löschpfad für Exporte.
Verifizierungssignale beweisen weder Besitz noch Einwilligung oder künftige Zustellung einer Person. Verwalte Berechtigungen und Unterdrückung weiter in deiner Anwendung, selbst wenn eine Adresse Safe erreicht.
Verwandte Artikel
Springen Sie zu nahegelegenen Anleitungen, die den Workflow fortsetzen.