Reseller-API-Referenz
Authentifizierung
Alle API-Anfragen müssen Ihren Reseller-API-Schlüssel im Authorization-Header im Bearer-Format enthalten:
Authorization: Bearer ihr-api-schluessel
Anfragen ohne gültigen API-Schlüssel erhalten eine 401 Unauthorized-Antwort. Ihr API-Schlüssel ist auf Ihr Reseller-Konto beschränkt - Sie können nur Mandanten verwalten, die Ihnen gehören.
Basis-URL
Alle Endpunkte sind erreichbar unter:
https://api.easymailarchive.com/api/reseller/tenants
Wenn Sie eine eigene Basisdomain verwenden, erfolgt der API-Zugriff weiterhin über den zentralen Easy Mail Archive API-Endpunkt, nicht über Ihre eigene Domain.
Mandanten auflisten
Alle Mandanten unter Ihrem Reseller-Konto abrufen.
curl -X GET https://api.easymailarchive.com/api/reseller/tenants \
-H "Authorization: Bearer ihr-api-schluessel" \
-H "Accept: application/json"
Antwort (200):
{
"data": [
{
"slug": "acme-corp",
"name": "Acme Corporation",
"status": "active",
"users_count": 25,
"storage_bytes": 5368709120,
"created_at": "2025-06-15T10:30:00Z"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"total": 1
}
}
Mandanten erstellen
Einen neuen Mandanten mit einem eindeutigen Slug provisionieren.
curl -X POST https://api.easymailarchive.com/api/reseller/tenants \
-H "Authorization: Bearer ihr-api-schluessel" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"slug": "acme-corp",
"name": "Acme Corporation"
}'
Pflichtfelder:
| Feld | Typ | Beschreibung |
|---|---|---|
slug | string | Eindeutiger Bezeichner, 3-48 Zeichen, Kleinbuchstaben + Zahlen + Bindestriche |
name | string | Anzeigename des Mandanten |
Antwort (201):
{
"data": {
"slug": "acme-corp",
"name": "Acme Corporation",
"status": "active",
"created_at": "2025-06-15T10:30:00Z"
}
}
Mandanten anzeigen
Details eines bestimmten Mandanten abrufen.
curl -X GET https://api.easymailarchive.com/api/reseller/tenants/acme-corp \
-H "Authorization: Bearer ihr-api-schluessel" \
-H "Accept: application/json"
Antwort (200):
{
"data": {
"slug": "acme-corp",
"name": "Acme Corporation",
"status": "active",
"users_count": 25,
"storage_bytes": 5368709120,
"messages_count": 142857,
"created_at": "2025-06-15T10:30:00Z"
}
}
Mandanten aktualisieren
Den Anzeigenamen eines bestehenden Mandanten aktualisieren.
curl -X PUT https://api.easymailarchive.com/api/reseller/tenants/acme-corp \
-H "Authorization: Bearer ihr-api-schluessel" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"name": "Acme Corp International"
}'
Antwort (200):
{
"data": {
"slug": "acme-corp",
"name": "Acme Corp International",
"status": "active"
}
}
Mandanten sperren
Einen Mandanten sperren, um den Benutzerzugang zu blockieren und gleichzeitig alle Daten beizubehalten.
curl -X POST https://api.easymailarchive.com/api/reseller/tenants/acme-corp/suspend \
-H "Authorization: Bearer ihr-api-schluessel" \
-H "Accept: application/json"
Antwort (200):
{
"data": {
"slug": "acme-corp",
"status": "suspended"
}
}
Mandanten entsperren
Den Zugang zu einem zuvor gesperrten Mandanten wiederherstellen.
curl -X POST https://api.easymailarchive.com/api/reseller/tenants/acme-corp/unsuspend \
-H "Authorization: Bearer ihr-api-schluessel" \
-H "Accept: application/json"
Antwort (200):
{
"data": {
"slug": "acme-corp",
"status": "active"
}
}
Nutzungsstatistiken
Nutzungsstatistiken für einen bestimmten Mandanten abrufen.
curl -X GET https://api.easymailarchive.com/api/reseller/tenants/acme-corp/usage \
-H "Authorization: Bearer ihr-api-schluessel" \
-H "Accept: application/json"
Antwort (200):
{
"data": {
"slug": "acme-corp",
"users_count": 25,
"storage_bytes": 5368709120,
"messages_count": 142857
}
}
Fehlerantworten
Die API gibt Standard-HTTP-Statuscodes zurück:
| Code | Bedeutung |
|---|---|
400 | Ungültige Anfrage - fehlerhafte Eingabe oder Validierungsfehler |
401 | Nicht autorisiert - fehlender oder ungültiger API-Schlüssel |
403 | Zugriff verweigert - Mandant gehört nicht zu Ihrem Reseller-Konto |
404 | Nicht gefunden - Mandant mit dem angegebenen Slug existiert nicht |
409 | Konflikt - Slug ist bereits vergeben |
422 | Nicht verarbeitbar - Validierungsfehler (Details im Antwort-Body) |
429 | Zu viele Anfragen - Rate-Limit überschritten |
Validierungsfehler geben einen JSON-Body mit feldspezifischen Fehlermeldungen zurück:
{
"message": "The slug has already been taken.",
"errors": {
"slug": ["The slug has already been taken."]
}
}
Rate-Limits
API-Anfragen sind auf 60 Anfragen pro Minute pro API-Schlüssel begrenzt. Wenn Sie dieses Limit überschreiten, erhalten Sie eine 429-Antwort. Der Retry-After-Header gibt an, wie viele Sekunden Sie warten müssen, bevor Sie eine weitere Anfrage senden können.