Source: https://ailoot.ai/docs/de/cabinet/auth/
Canonical: https://ailoot.ai/docs/de/cabinet/auth/
Language: de

[API des Kundenbereichs](https://ailoot.ai/docs/de/) 

# Anmeldung und Sitzungen

[Markdown](https://ailoot.ai/docs/de/cabinet/auth/index.md)

Methoden, Anfragefelder und Antworten.

Dieser Abschnitt enthält 14 Methoden. Öffnen Sie eine Methode, um Zugriffsbedingungen, Anfragefelder und Antwort zu sehen.

| Methode und Pfad | Beschreibung | Zugriff |
| --- | --- | --- |
| `POST /api/v1/auth/forgot-password` | Passwortzurücksetzung anfordern | Ohne Anmeldung; weitere Bedingungen stehen bei der Methode. |
| `POST /api/v1/auth/login` | Anmeldung mit E-Mail-Adresse und Passwort | Ohne Anmeldung; weitere Bedingungen stehen bei der Methode. |
| `POST /api/v1/auth/login/2fa` | Anmeldung mit TOTP abschließen | Ohne Anmeldung; weitere Bedingungen stehen bei der Methode. |
| `POST /api/v1/auth/logout` | Abmelden und Refresh-Token widerrufen | Ohne Anmeldung; weitere Bedingungen stehen bei der Methode. |
| `GET /api/v1/auth/me` | Aktueller Nutzer, Guthaben und Limits | Token des Kundenbereichs |
| `POST /api/v1/auth/passkey/login/begin` | Passkey-Anmeldung starten | Ohne Anmeldung; weitere Bedingungen stehen bei der Methode. |
| `POST /api/v1/auth/passkey/login/finish` | Passkey-Anmeldung abschließen | Ohne Anmeldung; weitere Bedingungen stehen bei der Methode. |
| `POST /api/v1/auth/refresh` | Tokens erneuern | Ohne Anmeldung; weitere Bedingungen stehen bei der Methode. |
| `POST /api/v1/auth/register` | Registrierung | Ohne Anmeldung; weitere Bedingungen stehen bei der Methode. |
| `POST /api/v1/auth/reset-password` | Passwort zurücksetzen | Ohne Anmeldung; weitere Bedingungen stehen bei der Methode. |
| `POST /api/v1/auth/revoke-all-sessions` | Alle Sitzungen widerrufen | Token des Kundenbereichs |
| `POST /api/v1/auth/send-verify-code` | Bestätigungscode senden | Ohne Anmeldung; weitere Bedingungen stehen bei der Methode. |
| `POST /api/v1/auth/validate-invitation-code` | Einladung prüfen | Ohne Anmeldung; weitere Bedingungen stehen bei der Methode. |
| `POST /api/v1/auth/validate-promo-code` | Aktionscode prüfen | Ohne Anmeldung; weitere Bedingungen stehen bei der Methode. |

**POST /api/v1/auth/forgot-password** — Passwortzurücksetzung anfordern

Zugriff: Ohne Anmeldung; weitere Bedingungen stehen bei der Methode.

Ratenlimit: 5 Anfragen in 60 Sekunden von einer Adresse.

POST`/api/v1/auth/forgot-password`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `email` | `string` | ja | required,email |
| `turnstile_token` | `string` | nein |  |

Vorlage für den Anfrageinhalt

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}
```

PLACEHOLDER kennzeichnet Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder bei. Zeichenfolgenmarker werden nicht anstelle von Zahlen, boolean, Objekten oder Arrays gesendet.

Anfrageschema: `ForgotPasswordRequest`

## Antwort

Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.

Datenschemata der Antwort: `ForgotPasswordResponse`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}
```

Besonderheit: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneuter Versand ist nur dort sicher, wo bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis, etwa die Schlüsselliste, und entscheiden Sie erst danach, ob Sie die Anfrage wiederholen.

**POST /api/v1/auth/login** — Anmeldung mit E-Mail-Adresse und Passwort

Zugriff: Ohne Anmeldung; weitere Bedingungen stehen bei der Methode.

Die Verfügbarkeit der Funktion und zusätzliche Zugriffsbedingungen werden bei der Ausführung der Anfrage geprüft.

Ratenlimit: 20 Anfragen in 60 Sekunden von einer Adresse.

POST`/api/v1/auth/login`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `email` | `string` | ja | required,email |
| `password` | `string` | ja | required |
| `turnstile_token` | `string` | nein |  |

Vorlage für den Anfrageinhalt

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "password": "PLACEHOLDER_PASSWORD (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}
```

PLACEHOLDER kennzeichnet Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder bei. Zeichenfolgenmarker werden nicht anstelle von Zahlen, boolean, Objekten oder Arrays gesendet.

Anfrageschema: `LoginRequest`

## Antwort

Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.

Datenschemata der Antwort: `TotpLoginResponse`, `User`, `AuthResponse`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Wenn mehrere Antwortvarianten möglich sind, stehen ihre Felder in getrennten Schemata. Führen Sie sie nicht zu einem Objekt zusammen.

Besonderheit: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneuter Versand ist nur dort sicher, wo bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis, etwa die Schlüsselliste, und entscheiden Sie erst danach, ob Sie die Anfrage wiederholen.

**POST /api/v1/auth/login/2fa** — Anmeldung mit TOTP abschließen

Zugriff: Ohne Anmeldung; weitere Bedingungen stehen bei der Methode.

Die Verfügbarkeit der Funktion und zusätzliche Zugriffsbedingungen werden bei der Ausführung der Anfrage geprüft.

Ratenlimit: 20 Anfragen in 60 Sekunden von einer Adresse.

POST`/api/v1/auth/login/2fa`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `temp_token` | `string` | ja | required |
| `totp_code` | `string` | ja | required,len=6 |

Vorlage für den Anfrageinhalt

```json
{
  "temp_token": "PLACEHOLDER_TEMP_TOKEN (string)",
  "totp_code": "PLACEHOLDER_TOTP_CODE (string)"
}
```

PLACEHOLDER kennzeichnet Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder bei. Zeichenfolgenmarker werden nicht anstelle von Zahlen, boolean, Objekten oder Arrays gesendet.

Anfrageschema: `Login2FARequest`

## Antwort

Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.

Datenschemata der Antwort: `User`, `AuthResponse`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Wenn mehrere Antwortvarianten möglich sind, stehen ihre Felder in getrennten Schemata. Führen Sie sie nicht zu einem Objekt zusammen.

Besonderheit: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneuter Versand ist nur dort sicher, wo bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis, etwa die Schlüsselliste, und entscheiden Sie erst danach, ob Sie die Anfrage wiederholen.

**POST /api/v1/auth/logout** — Abmelden und Refresh-Token widerrufen

Zugriff: Ohne Anmeldung; weitere Bedingungen stehen bei der Methode.

POST`/api/v1/auth/logout`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `refresh_token` | `string` | nein | ; Optional: das angegebene Refresh-Token widerrufen |

Vorlage für den Anfrageinhalt

```json
{
  "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)"
}
```

PLACEHOLDER kennzeichnet Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder bei. Zeichenfolgenmarker werden nicht anstelle von Zahlen, boolean, Objekten oder Arrays gesendet.

Anfrageschema: `LogoutRequest`

## Antwort

Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.

Datenschemata der Antwort: `LogoutResponse`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}
```

Besonderheit: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneuter Versand ist nur dort sicher, wo bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis, etwa die Schlüsselliste, und entscheiden Sie erst danach, ob Sie die Anfrage wiederholen.

**GET /api/v1/auth/me** — Aktueller Nutzer, Guthaben und Limits

Zugriff: Token des Kundenbereichs

GET`/api/v1/auth/me`

Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/auth/me" \
  -H "Authorization: Bearer $TOKEN"
```

Ein Anfrageinhalt ist nicht erforderlich. Übermitteln Sie die oben genannten Parameter in der URL.

## Antwort

Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.

Datenschemata der Antwort: `User`, `UserProfileResponse`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": "PLACEHOLDER_ID (integer)",
    "email": "PLACEHOLDER_EMAIL (string)",
    "username": "PLACEHOLDER_USERNAME (string)",
    "role": "PLACEHOLDER_ROLE (string)",
    "balance": "PLACEHOLDER_BALANCE (number)",
    "frozen_balance": "PLACEHOLDER_FROZEN_BALANCE (number)",
    "concurrency": "PLACEHOLDER_CONCURRENCY (integer)",
    "status": "PLACEHOLDER_STATUS (string)",
    "last_active_at": "PLACEHOLDER_LAST_ACTIVE_AT (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
    "deleted_at": "PLACEHOLDER_DELETED_AT (string)",
    "balance_notify_enabled": "PLACEHOLDER_BALANCE_NOTIFY_ENABLED (boolean)",
    "balance_notify_threshold_type": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD_TYPE (string)",
    "balance_notify_threshold": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD (number)",
    "balance_notify_extra_emails": "PLACEHOLDER_BALANCE_NOTIFY_EXTRA_EMAILS (array)",
    "total_recharged": "PLACEHOLDER_TOTAL_RECHARGED (number)",
    "rpm_limit": "PLACEHOLDER_RPM_LIMIT (integer)",
    "api_keys": "PLACEHOLDER_API_KEYS (array)",
    "avatar_url": "PLACEHOLDER_AVATAR_URL (string)",
    "email_bound": "PLACEHOLDER_EMAIL_BOUND (boolean)"
  }
}
```

Besonderheit: Alle personenbezogenen Daten und Objekte sind auf das JWT-Subjekt beschränkt.

Besonderheit: Ausgabenlimits der Schlüssel (quota, quota\_used) stehen in der Schlüsselantwort, nicht im Profil. frozen\_balance ist der reservierte Betrag und darf nicht als freies Guthaben betrachtet werden.

**POST /api/v1/auth/passkey/login/begin** — Passkey-Anmeldung starten

Zugriff: Ohne Anmeldung; weitere Bedingungen stehen bei der Methode.

Die Verfügbarkeit der Funktion und zusätzliche Zugriffsbedingungen werden bei der Ausführung der Anfrage geprüft.

Ratenlimit: 20 Anfragen in 60 Sekunden von einer Adresse.

POST`/api/v1/auth/passkey/login/begin`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `turnstile_token` | `string` | nein |  |

Vorlage für den Anfrageinhalt

```json
{
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}
```

PLACEHOLDER kennzeichnet Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder bei. Zeichenfolgenmarker werden nicht anstelle von Zahlen, boolean, Objekten oder Arrays gesendet.

Anfrageschema: `PasskeyBeginLoginRequest`

## Antwort

Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.

Datenschemata der Antwort: `PasskeyOptionsResponse`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "session_token": "PLACEHOLDER_SESSION_TOKEN (string)",
    "options": "PLACEHOLDER_OPTIONS (any)"
  }
}
```

Besonderheit: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.

Besonderheit: credential stammt aus navigator.credentials, session\_token aus begin. Der Finish-Anfrageinhalt ist auf \<=65536 Byte begrenzt; Registrierung und Löschung erfordern ein Passwort.

Die Methode verändert Daten. Ein erneuter Versand ist nur dort sicher, wo bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis, etwa die Schlüsselliste, und entscheiden Sie erst danach, ob Sie die Anfrage wiederholen.

**POST /api/v1/auth/passkey/login/finish** — Passkey-Anmeldung abschließen

Zugriff: Ohne Anmeldung; weitere Bedingungen stehen bei der Methode.

Die Verfügbarkeit der Funktion und zusätzliche Zugriffsbedingungen werden bei der Ausführung der Anfrage geprüft.

Ratenlimit: 20 Anfragen in 60 Sekunden von einer Adresse.

POST`/api/v1/auth/passkey/login/finish`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `session_token` | `string` | ja | required |
| `name` | `string` | nein |  |
| `credential` | `object` | ja | required |

Vorlage für den Anfrageinhalt

```json
{
  "session_token": "PLACEHOLDER_SESSION_TOKEN (string)",
  "name": "PLACEHOLDER_NAME (string)",
  "credential": "PLACEHOLDER_CREDENTIAL (object)"
}
```

PLACEHOLDER kennzeichnet Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder bei. Zeichenfolgenmarker werden nicht anstelle von Zahlen, boolean, Objekten oder Arrays gesendet.

Anfrageschema: `PasskeyFinishRequest`

## Antwort

Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.

Datenschemata der Antwort: `User`, `AuthResponse`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Wenn mehrere Antwortvarianten möglich sind, stehen ihre Felder in getrennten Schemata. Führen Sie sie nicht zu einem Objekt zusammen.

Besonderheit: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.

Besonderheit: credential stammt aus navigator.credentials, session\_token aus begin. Der Finish-Anfrageinhalt ist auf \<=65536 Byte begrenzt; Registrierung und Löschung erfordern ein Passwort.

Die Methode verändert Daten. Ein erneuter Versand ist nur dort sicher, wo bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis, etwa die Schlüsselliste, und entscheiden Sie erst danach, ob Sie die Anfrage wiederholen.

**POST /api/v1/auth/refresh** — Tokens erneuern

Zugriff: Ohne Anmeldung; weitere Bedingungen stehen bei der Methode.

Die Verfügbarkeit der Funktion und zusätzliche Zugriffsbedingungen werden bei der Ausführung der Anfrage geprüft.

Ratenlimit: 30 Anfragen in 60 Sekunden von einer Adresse.

POST`/api/v1/auth/refresh`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `refresh_token` | `string` | ja | required |

Vorlage für den Anfrageinhalt

```json
{
  "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)"
}
```

PLACEHOLDER kennzeichnet Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder bei. Zeichenfolgenmarker werden nicht anstelle von Zahlen, boolean, Objekten oder Arrays gesendet.

Anfrageschema: `RefreshTokenRequest`

## Antwort

Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.

Datenschemata der Antwort: `RefreshTokenResponse`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "access_token": "PLACEHOLDER_ACCESS_TOKEN (string)",
    "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)",
    "expires_in": "PLACEHOLDER_EXPIRES_IN (integer)",
    "token_type": "PLACEHOLDER_TOKEN_TYPE (string)"
  }
}
```

Besonderheit: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneuter Versand ist nur dort sicher, wo bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis, etwa die Schlüsselliste, und entscheiden Sie erst danach, ob Sie die Anfrage wiederholen.

**POST /api/v1/auth/register** — Registrierung

Zugriff: Ohne Anmeldung; weitere Bedingungen stehen bei der Methode.

Ratenlimit: 5 Anfragen in 60 Sekunden von einer Adresse.

POST`/api/v1/auth/register`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `email` | `string` | ja | required,email |
| `password` | `string` | ja | required,min=6 |
| `verify_code` | `string` | nein |  |
| `turnstile_token` | `string` | nein |  |
| `promo_code` | `string` | nein | ; Aktionscode für die Registrierung |
| `invitation_code` | `string` | nein | ; Einladungscode |

Vorlage für den Anfrageinhalt

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "password": "PLACEHOLDER_PASSWORD (string)",
  "verify_code": "PLACEHOLDER_VERIFY_CODE (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)",
  "promo_code": "PLACEHOLDER_PROMO_CODE (string)",
  "invitation_code": "PLACEHOLDER_INVITATION_CODE (string)"
}
```

PLACEHOLDER kennzeichnet Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder bei. Zeichenfolgenmarker werden nicht anstelle von Zahlen, boolean, Objekten oder Arrays gesendet.

Anfrageschema: `RegisterRequest`

## Antwort

Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.

Datenschemata der Antwort: `User`, `AuthResponse`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Wenn mehrere Antwortvarianten möglich sind, stehen ihre Felder in getrennten Schemata. Führen Sie sie nicht zu einem Objekt zusammen.

Besonderheit: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneuter Versand ist nur dort sicher, wo bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis, etwa die Schlüsselliste, und entscheiden Sie erst danach, ob Sie die Anfrage wiederholen.

**POST /api/v1/auth/reset-password** — Passwort zurücksetzen

Zugriff: Ohne Anmeldung; weitere Bedingungen stehen bei der Methode.

Ratenlimit: 10 Anfragen in 60 Sekunden von einer Adresse.

POST`/api/v1/auth/reset-password`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `email` | `string` | ja | required,email |
| `token` | `string` | ja | required |
| `new_password` | `string` | ja | required,min=6 |

Vorlage für den Anfrageinhalt

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "token": "PLACEHOLDER_TOKEN (string)",
  "new_password": "PLACEHOLDER_NEW_PASSWORD (string)"
}
```

PLACEHOLDER kennzeichnet Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder bei. Zeichenfolgenmarker werden nicht anstelle von Zahlen, boolean, Objekten oder Arrays gesendet.

Anfrageschema: `ResetPasswordRequest`

## Antwort

Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.

Datenschemata der Antwort: `ResetPasswordResponse`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}
```

Besonderheit: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneuter Versand ist nur dort sicher, wo bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis, etwa die Schlüsselliste, und entscheiden Sie erst danach, ob Sie die Anfrage wiederholen.

**POST /api/v1/auth/revoke-all-sessions** — Alle Sitzungen widerrufen

Zugriff: Token des Kundenbereichs

POST`/api/v1/auth/revoke-all-sessions`

Ein Anfrageinhalt ist nicht erforderlich.

## Antwort

Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.

Datenschemata der Antwort: `RevokeAllSessionsResponse`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}
```

Besonderheit: Alle personenbezogenen Daten und Objekte sind auf das JWT-Subjekt beschränkt.

Besonderheit: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneuter Versand ist nur dort sicher, wo bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis, etwa die Schlüsselliste, und entscheiden Sie erst danach, ob Sie die Anfrage wiederholen.

**POST /api/v1/auth/send-verify-code** — Bestätigungscode senden

Zugriff: Ohne Anmeldung; weitere Bedingungen stehen bei der Methode.

Ratenlimit: 5 Anfragen in 60 Sekunden von einer Adresse.

POST`/api/v1/auth/send-verify-code`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `email` | `string` | ja | required,email |
| `turnstile_token` | `string` | nein |  |

Vorlage für den Anfrageinhalt

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}
```

PLACEHOLDER kennzeichnet Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder bei. Zeichenfolgenmarker werden nicht anstelle von Zahlen, boolean, Objekten oder Arrays gesendet.

Anfrageschema: `SendVerifyCodeRequest`

## Antwort

Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.

Datenschemata der Antwort: `SendVerifyCodeResponse`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "PLACEHOLDER_MESSAGE (string)",
    "countdown": "PLACEHOLDER_COUNTDOWN (integer)"
  }
}
```

Besonderheit: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneuter Versand ist nur dort sicher, wo bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis, etwa die Schlüsselliste, und entscheiden Sie erst danach, ob Sie die Anfrage wiederholen.

**POST /api/v1/auth/validate-invitation-code** — Einladung prüfen

Zugriff: Ohne Anmeldung; weitere Bedingungen stehen bei der Methode.

Die Verfügbarkeit der Funktion und zusätzliche Zugriffsbedingungen werden bei der Ausführung der Anfrage geprüft.

Ratenlimit: 10 Anfragen in 60 Sekunden von einer Adresse.

POST`/api/v1/auth/validate-invitation-code`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `code` | `string` | ja | required |

Vorlage für den Anfrageinhalt

```json
{
  "code": "PLACEHOLDER_CODE (string)"
}
```

PLACEHOLDER kennzeichnet Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder bei. Zeichenfolgenmarker werden nicht anstelle von Zahlen, boolean, Objekten oder Arrays gesendet.

Anfrageschema: `ValidateInvitationCodeRequest`

## Antwort

Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.

Datenschemata der Antwort: `ValidateInvitationCodeResponse`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "valid": "PLACEHOLDER_VALID (boolean)",
    "error_code": "PLACEHOLDER_ERROR_CODE (string)"
  }
}
```

Besonderheit: Die Methode prüft die Einladung und löst den Code nicht ein. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.

Die Methode prüft lediglich den Einladungscode und verbraucht ihn nicht. Die Prüfung kann unter Beachtung des Ratenlimits wiederholt werden; das Ergebnis gibt den Zustand des Codes zum Zeitpunkt der Anfrage wieder.

**POST /api/v1/auth/validate-promo-code** — Aktionscode prüfen

Zugriff: Ohne Anmeldung; weitere Bedingungen stehen bei der Methode.

Die Verfügbarkeit der Funktion und zusätzliche Zugriffsbedingungen werden bei der Ausführung der Anfrage geprüft.

Ratenlimit: 10 Anfragen in 60 Sekunden von einer Adresse.

POST`/api/v1/auth/validate-promo-code`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `code` | `string` | ja | required |

Vorlage für den Anfrageinhalt

```json
{
  "code": "PLACEHOLDER_CODE (string)"
}
```

PLACEHOLDER kennzeichnet Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder bei. Zeichenfolgenmarker werden nicht anstelle von Zahlen, boolean, Objekten oder Arrays gesendet.

Anfrageschema: `ValidatePromoCodeRequest`

## Antwort

Die JSON-Antwort enthält code, message und data. Der Inhalt von data wird in den folgenden Schemata beschrieben.

Datenschemata der Antwort: `ValidatePromoCodeResponse`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "valid": "PLACEHOLDER_VALID (boolean)",
    "bonus_amount": "PLACEHOLDER_BONUS_AMOUNT (number)",
    "error_code": "PLACEHOLDER_ERROR_CODE (string)",
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}
```

Besonderheit: Die Methode prüft den Aktionscode und schreibt keinen Bonus gut. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.

Die Methode prüft lediglich den Aktionscode und wendet ihn nicht auf das Konto an. Die Prüfung kann unter Beachtung des Ratenlimits wiederholt werden; das Ergebnis gibt den Zustand des Codes zum Zeitpunkt der Anfrage wieder.

## Anmeldung und Sitzungen · 2FA

`POST /api/v1/auth/login` → `data`

- `data.requires_2fa === true` → [TotpLoginResponse](https://ailoot.ai/docs/de/cabinet/schemas-1/#totploginresponse) → `data.temp_token` → `POST /api/v1/auth/login/2fa` · `{"temp_token": "…", "totp_code": "…"}` → `data.access_token`
- `data.access_token` → [AuthResponse](https://ailoot.ai/docs/de/cabinet/schemas-1/#authresponse) → `Authorization: Bearer $TOKEN`

`totp_code`: `string`, `len = 6`. `temp_token ≠ access_token`. [User](https://ailoot.ai/docs/de/cabinet/schemas-1/#user)

Noch Fragen? Senden Sie uns die Request ID und eine Beschreibung, damit wir Ihnen weiterhelfen können.[Support kontaktieren](mailto:support@ailoot.ai)

## Ailoot · Das Unternehmen und sein Projektportfolio





Ailoot baut auf bewährte Betriebserfahrung, einen großen Kundenstamm, stabilen Service und kontinuierliche KPI-Kontrolle.





Das Unternehmen und sein Projektportfolio: Millionen von Kunden; monatliche Umsätze in Milliardenhöhe.





Ailoot nutzt diese Betriebserfahrung für den API-Zugang zu KI-Funktionen in Kundenprodukten, Agenten, Anwendungen und Automatisierungen.
