MailLandDocs
Konto

Workspaces

Erstellen und verwalten Sie mehrere Workspaces für verschiedene Projekte oder Kunden

Workspaces (Mandanten) sind isolierte Umgebungen für Ihre E-Mail-Operationen. Jeder Workspace hat eigene Domains, Abonnenten, API-Schlüssel und Abrechnung. Ein einzelnes Benutzerkonto kann zu mehreren Workspaces gehören.

Diese Seite behandelt die Tenants-API unter /v1/account/tenants: der "Workspace" dieser Seite ist ein Tenant (Abrechnungs-/Domain-Isolationsgrenze). /v1/account/workspaces ist eine andere, separate Funktion: Sub-Workspaces zur Organisation von Ressourcen innerhalb eines Tenants, die nicht auf dieser Seite dokumentiert ist.

Sub-Workspaces organisieren, Tenants trennen

Ein Sub-Workspace (/v1/account/workspaces) organisiert Ressourcen nur innerhalb eines Tenants und nutzt dafür die vorhandenen Rollen. Er ist keine Grenze für Abrechnung, Zustellbarkeit oder Sicherheit. Folgendes gehört immer zum Tenant:

  • Abrechnung: Tarif, Abonnement und Rechnungen
  • Die Unterdrückungsliste (Suppression-Liste)
  • Versandlimits und Kontingente
  • Versand-IPs und Absenderreputation
  • Sicherheit der API-Schlüssel

Wenn Sie ein eigenständiges Unternehmen betreiben oder einen separaten Kunden bedienen, legen Sie dafür einen eigenen Tenant an, keinen Sub-Workspace. Andernfalls teilt sich dieser Kunde Unterdrückungsliste, Versandlimits und Reputation mit allen anderen im Tenant.

Verifizierungsstufen

Jeder Workspace hat eine Verifizierungsstufe, die die Versandfähigkeiten bestimmt:

StufeWertBeschreibung
Restricted-1Versand deaktiviert (Verstoß festgestellt)
Sandbox0Standard für neue Workspaces: Versand nur an die Sandbox-Zulassungsliste des Workspaces
BasicVerified1E-Mail, Telefon und 2FA alle verifiziert, moderate Grenzen
SenderVerified2Domain-Authentifizierung oder ein verifizierter Einzelabsender, Standardgrenzen
BusinessVerified3Geschäftsverifizierung abgeschlossen: volle Grenzen

Neue Workspaces starten auf der Stufe Sandbox, wo der Versand auf eine Zulassungsliste pro Workspace beschränkt ist. BasicVerified erfordert E-Mail, Telefon und Zwei-Faktor-Authentifizierung zusammen, nicht nur E-Mail. SenderVerified erfordert Domain-Authentifizierung (SPF+DKIM+DMARC) oder einen verifizierten Einzelabsender: eines von beiden, nicht speziell Domain-Verifizierung.

Workspaces auflisten

Alle Workspaces abrufen, denen der aktuelle Benutzer angehört:

GET https://api.mail.land/v1/account/tenants
List workspaces
curl https://api.mail.land/v1/account/tenants \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Workspace-Listenantwort
[
  {
    "publicId": "k3m9x2p7qw4rtz",
    "name": "My Company",
    "role": "owner",
    "isActive": true,
    "status": "active"
  },
  {
    "publicId": "t2p9k4m7x1n6w3",
    "name": "Client Project",
    "role": "member",
    "isActive": true,
    "status": "active"
  }
]

Die Antwort ist ein reines Array, nicht { "tenants": [...] }. Es gibt hier kein roleName, verificationLevel, verificationLevelName, isCurrent oder createdAt, isActive und status ersetzen isCurrent, und die Verifizierungsstufe wird separat abgerufen (siehe Abrechnung). id ist die interne numerische Kennung des Tenants; publicId ist der Wert, der in API-Aufrufen und UIs verwendet werden sollte (das numerische id-Feld wird hier nur gezeigt, weil die aktuelle API es zurückgibt: bauen Sie keine Client-Logik darauf auf, da es aus client-seitigen Antworten entfernt werden soll).

Workspace erstellen

POST https://api.mail.land/v1/account/tenants
Workspace-Erstellungsanfrage
{
  "name": "New Project",
  "description": "Optional workspace description"
}
FeldTypErforderlichBeschreibung
namestringJaWorkspace-Name, 1–255 Zeichen
descriptionstringNeinOptionale Beschreibung, bis zu 500 Zeichen
Create a workspace
curl -X POST https://api.mail.land/v1/account/tenants \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
  -H "Content-Type: application/json" \
  -d '{ "name": "New Project" }'

Antwort

Liefert 201 Created mit der gleichen Form wie die Antwort von Workspace wechseln: neue, auf den neuen Workspace beschränkte Tokens, plus den Workspace-Datensatz verschachtelt unter tenant:

Workspace-Antwort
{
  "accessToken": "eyJhbGciOiJIUzI1NiIs...",
  "refreshToken": "rt_new_token...",
  "expiresAt": "2026-02-17T13:00:00Z",
  "tenant": {
    "publicId": "u6w1m8k3p5x9n2",
    "name": "New Project",
    "role": "owner",
    "isActive": true,
    "status": "active"
  }
}

Der erstellende Benutzer erhält automatisch die Rolle Owner. Es gibt kein verificationLevel/verificationLevelName in dieser Antwort, siehe Abrechnung für den Verifizierungs-/Policy-Status.

Workspace wechseln

Den aktiven Workspace für nachfolgende API-Aufrufe wechseln:

POST https://api.mail.land/v1/account/tenants/switch
Workspace-Wechselanfrage
{
  "tenantId": "t2p9k4m7x1n6w3",
  "refreshToken": "rt_a1b2c3d4e5..."
}

refreshToken ist optional: wenn weggelassen, wird stattdessen der Wert aus dem Refresh-Token-Cookie verwendet. tenantId ist die publicId des Workspaces aus Workspaces auflisten.

Switch workspace
curl -X POST https://api.mail.land/v1/account/tenants/switch \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
  -H "Content-Type: application/json" \
  -d '{ "tenantId": "t2p9k4m7x1n6w3" }'
Workspace-Wechselantwort
{
  "accessToken": "eyJhbGciOiJIUzI1NiIs...",
  "refreshToken": "rt_new_token...",
  "expiresAt": "2026-09-25T15:00:00Z",
  "tenant": {
    "publicId": "t2p9k4m7x1n6w3",
    "name": "Client Project",
    "role": "member",
    "isActive": true,
    "status": "active"
  }
}

Das Wechseln von Workspaces stellt neue Tokens aus, die auf den Ziel-Workspace beschränkt sind. Die Tenant-Felder haben die gleiche Form wie die Antwort von Workspaces auflisten, verschachtelt unter tenant statt flach als tenantId/tenantName/role.

Workspace aktualisieren

Einstellungen des aktuellen Workspaces aktualisieren:

PUT https://api.mail.land/v1/account/tenants/current
Workspace-Aktualisierungsanfrage
{
  "name": "Updated Project Name",
  "description": "Optional workspace description"
}

name ist 2–100 Zeichen lang; description ist optional, bis zu 500 Zeichen.

Update workspace
curl -X PUT https://api.mail.land/v1/account/tenants/current \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
  -H "Content-Type: application/json" \
  -d '{ "name": "Updated Project Name" }'

Nur Owner und Admin können den Workspace aktualisieren. Member, Viewer und API-Schlüssel erhalten einen typisierten 403 INSUFFICIENT_PERMISSIONS (mit der fehlenden Berechtigung tenant.edit in details.permission).

Antwort

Gibt 200 OK zurück:

Antwort auf Workspace-Aktualisierung
{
  "publicId": "t2p9k4m7x1n6w3",
  "name": "Updated Project Name",
  "description": "Optional workspace description",
  "status": "Active",
  "createdAt": "2026-01-15T08:00:00Z"
}

Workspace-Kontext

Alle API-Anfragen sind auf den aktiven Workspace beschränkt. Der Workspace wird durch den Aktiver-Workspace-Claim des Tokens bestimmt. Ressourcen (Domains, Abonnenten, Kampagnen, API-Schlüssel) sind zwischen Workspaces isoliert.

Bei Verwendung von API-Schlüsseln ist jeder Schlüssel auf einen einzelnen Workspace beschränkt. Ein Workspace-Wechsel ist nicht erforderlich: der Schlüssel bestimmt den Kontext automatisch.

Fehlerantworten

StatusCodeBeschreibung
400VALIDATION_FAILEDUngültiger Workspace-Name
403FORBIDDENKein Mitglied des Ziel-Workspaces
403INSUFFICIENT_PERMISSIONSNur beim Update: Aufrufer ist Member, Viewer oder API-Schlüssel, keiner davon hält tenant.edit
404TENANT_NOT_FOUNDWorkspace nicht gefunden (nur beim Update: der Wechsel zu einem unbekannten oder fremden Workspace liefert immer 403 FORBIDDEN, nie 404)

Nächste Schritte

Auf dieser Seite