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

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

# Anmeldung und Sitzungen

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

Methoden, Anfragefelder und Antworten.

Dieser Bereich enthält 14 Methoden. Öffnen Sie eine Methode, um Zugriffsbedingungen, Anfragefelder und Antwort einzusehen.

| Methode und Pfad | Beschreibung | Zugriff |
| --- | --- | --- |
| `POST /api/v1/auth/forgot-password` | Passwortzurücksetzung anfordern | Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode |
| `POST /api/v1/auth/login` | Anmeldung mit E-Mail-Adresse und Passwort | Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode |
| `POST /api/v1/auth/login/2fa` | Anmeldung mit TOTP abschliessen | Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode |
| `POST /api/v1/auth/logout` | Abmelden und Refresh-Token widerrufen | Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode |
| `GET /api/v1/auth/me` | Aktueller Benutzer, Guthaben und Limits | Token des Kundenbereichs |
| `POST /api/v1/auth/passkey/login/begin` | Anmeldung mit Passkey starten | Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode |
| `POST /api/v1/auth/passkey/login/finish` | Anmeldung mit Passkey abschliessen | Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode |
| `POST /api/v1/auth/refresh` | Tokens erneuern | Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode |
| `POST /api/v1/auth/register` | Registrieren | Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode |
| `POST /api/v1/auth/reset-password` | Passwort zurücksetzen | Ohne Anmeldung; zusätzliche 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; zusätzliche Bedingungen stehen bei der Methode |
| `POST /api/v1/auth/validate-invitation-code` | Einladung prüfen | Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode |
| `POST /api/v1/auth/validate-promo-code` | Promocode prüfen | Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode |

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

Zugriff: Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode

Ratenlimit: 5 Anfragen pro 60 Sekunden von derselben Adresse.

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

## JSON- / Formularfelder

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

Vorlage für den Anfragekörper

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

PLACEHOLDER steht für Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder; 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)"
  }
}
```

Besonderheiten: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort; das Beispiel beschreibt den Vertrag und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneutes Senden ist nur sicher, wenn bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis (zum Beispiel die Schlüsselliste), bevor Sie über eine Wiederholung entscheiden.

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

Zugriff: Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode

Funktionsverfügbarkeit und zusätzliche Zugriffsbedingungen werden beim Ausführen der Anfrage geprüft.

Ratenlimit: 20 Anfragen pro 60 Sekunden von derselben Adresse.

POST`/api/v1/auth/login`

## JSON- / Formularfelder

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

Vorlage für den Anfragekörper

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

PLACEHOLDER steht für Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder; 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».

Sind mehrere Antwortvarianten möglich, werden ihre Felder in separaten Schemata aufgeführt; sie dürfen nicht zu einem einzigen Objekt zusammengeführt werden.

Besonderheiten: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort; das Beispiel beschreibt den Vertrag und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneutes Senden ist nur sicher, wenn bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis (zum Beispiel die Schlüsselliste), bevor Sie über eine Wiederholung entscheiden.

**POST /api/v1/auth/login/2fa** — Anmeldung mit TOTP abschliessen

Zugriff: Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode

Funktionsverfügbarkeit und zusätzliche Zugriffsbedingungen werden beim Ausführen der Anfrage geprüft.

Ratenlimit: 20 Anfragen pro 60 Sekunden von derselben Adresse.

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

## JSON- / Formularfelder

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

Vorlage für den Anfragekörper

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

PLACEHOLDER steht für Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder; 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».

Sind mehrere Antwortvarianten möglich, werden ihre Felder in separaten Schemata aufgeführt; sie dürfen nicht zu einem einzigen Objekt zusammengeführt werden.

Besonderheiten: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort; das Beispiel beschreibt den Vertrag und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneutes Senden ist nur sicher, wenn bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis (zum Beispiel die Schlüsselliste), bevor Sie über eine Wiederholung entscheiden.

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

Zugriff: Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode

POST`/api/v1/auth/logout`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Validierung / Beschreibung |
| --- | --- | --- | --- |
| `refresh_token` | `string` | nein | ; Optional: angegebenes Refresh-Token widerrufen |

Vorlage für den Anfragekörper

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

PLACEHOLDER steht für Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder; 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)"
  }
}
```

Besonderheiten: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort; das Beispiel beschreibt den Vertrag und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneutes Senden ist nur sicher, wenn bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis (zum Beispiel die Schlüsselliste), bevor Sie über eine Wiederholung entscheiden.

**GET /api/v1/auth/me** — Aktueller Benutzer, 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"
```

Kein Anfragekörper 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)"
  }
}
```

Besonderheiten: Alle personenbezogenen Daten und Objekte sind auf das Subjekt des JWT beschränkt.

Besonderheiten: Ausgabenlimits von Schlüsseln (quota, quota\_used) stehen in der Schlüsselantwort, nicht im Profil. frozen\_balance ist der reservierte Betrag und darf nicht als frei verfügbares Guthaben betrachtet werden.

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

Zugriff: Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode

Funktionsverfügbarkeit und zusätzliche Zugriffsbedingungen werden beim Ausführen der Anfrage geprüft.

Ratenlimit: 20 Anfragen pro 60 Sekunden von derselben Adresse.

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

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Validierung / Beschreibung |
| --- | --- | --- | --- |
| `turnstile_token` | `string` | nein |  |

Vorlage für den Anfragekörper

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

PLACEHOLDER steht für Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder; 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)"
  }
}
```

Besonderheiten: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort; das Beispiel beschreibt den Vertrag und wird nicht ausgeführt.

Besonderheiten: credential stammt aus navigator.credentials; session\_token aus begin. Finish body \<=65536 Byte; Registrierung und Löschung erfordern ein Passwort.

Die Methode verändert Daten. Ein erneutes Senden ist nur sicher, wenn bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis (zum Beispiel die Schlüsselliste), bevor Sie über eine Wiederholung entscheiden.

**POST /api/v1/auth/passkey/login/finish** — Anmeldung mit Passkey abschliessen

Zugriff: Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode

Funktionsverfügbarkeit und zusätzliche Zugriffsbedingungen werden beim Ausführen der Anfrage geprüft.

Ratenlimit: 20 Anfragen pro 60 Sekunden von derselben Adresse.

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

## JSON- / Formularfelder

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

Vorlage für den Anfragekörper

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

PLACEHOLDER steht für Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder; 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».

Sind mehrere Antwortvarianten möglich, werden ihre Felder in separaten Schemata aufgeführt; sie dürfen nicht zu einem einzigen Objekt zusammengeführt werden.

Besonderheiten: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort; das Beispiel beschreibt den Vertrag und wird nicht ausgeführt.

Besonderheiten: credential stammt aus navigator.credentials; session\_token aus begin. Finish body \<=65536 Byte; Registrierung und Löschung erfordern ein Passwort.

Die Methode verändert Daten. Ein erneutes Senden ist nur sicher, wenn bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis (zum Beispiel die Schlüsselliste), bevor Sie über eine Wiederholung entscheiden.

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

Zugriff: Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode

Funktionsverfügbarkeit und zusätzliche Zugriffsbedingungen werden beim Ausführen der Anfrage geprüft.

Ratenlimit: 30 Anfragen pro 60 Sekunden von derselben Adresse.

POST`/api/v1/auth/refresh`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Validierung / Beschreibung |
| --- | --- | --- | --- |
| `refresh_token` | `string` | ja | required |

Vorlage für den Anfragekörper

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

PLACEHOLDER steht für Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder; 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)"
  }
}
```

Besonderheiten: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort; das Beispiel beschreibt den Vertrag und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneutes Senden ist nur sicher, wenn bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis (zum Beispiel die Schlüsselliste), bevor Sie über eine Wiederholung entscheiden.

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

Zugriff: Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode

Ratenlimit: 5 Anfragen pro 60 Sekunden von derselben Adresse.

POST`/api/v1/auth/register`

## JSON- / Formularfelder

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

Vorlage für den Anfragekörper

```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 steht für Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder; 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».

Sind mehrere Antwortvarianten möglich, werden ihre Felder in separaten Schemata aufgeführt; sie dürfen nicht zu einem einzigen Objekt zusammengeführt werden.

Besonderheiten: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort; das Beispiel beschreibt den Vertrag und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneutes Senden ist nur sicher, wenn bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis (zum Beispiel die Schlüsselliste), bevor Sie über eine Wiederholung entscheiden.

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

Zugriff: Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode

Ratenlimit: 10 Anfragen pro 60 Sekunden von derselben Adresse.

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

## JSON- / Formularfelder

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

Vorlage für den Anfragekörper

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

PLACEHOLDER steht für Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder; 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)"
  }
}
```

Besonderheiten: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort; das Beispiel beschreibt den Vertrag und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneutes Senden ist nur sicher, wenn bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis (zum Beispiel die Schlüsselliste), bevor Sie über eine Wiederholung entscheiden.

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

Zugriff: Token des Kundenbereichs

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

Kein Anfragekörper 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)"
  }
}
```

Besonderheiten: Alle personenbezogenen Daten und Objekte sind auf das Subjekt des JWT beschränkt.

Besonderheiten: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort; das Beispiel beschreibt den Vertrag und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneutes Senden ist nur sicher, wenn bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis (zum Beispiel die Schlüsselliste), bevor Sie über eine Wiederholung entscheiden.

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

Zugriff: Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode

Ratenlimit: 5 Anfragen pro 60 Sekunden von derselben Adresse.

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

## JSON- / Formularfelder

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

Vorlage für den Anfragekörper

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

PLACEHOLDER steht für Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder; 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)"
  }
}
```

Besonderheiten: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort; das Beispiel beschreibt den Vertrag und wird nicht ausgeführt.

Die Methode verändert Daten. Ein erneutes Senden ist nur sicher, wenn bei der Methode Idempotency-Key angegeben ist. Geht die Antwort verloren, prüfen Sie zuerst das Ergebnis (zum Beispiel die Schlüsselliste), bevor Sie über eine Wiederholung entscheiden.

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

Zugriff: Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode

Funktionsverfügbarkeit und zusätzliche Zugriffsbedingungen werden beim Ausführen der Anfrage geprüft.

Ratenlimit: 10 Anfragen pro 60 Sekunden von derselben Adresse.

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

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Validierung / Beschreibung |
| --- | --- | --- | --- |
| `code` | `string` | ja | required |

Vorlage für den Anfragekörper

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

PLACEHOLDER steht für Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder; 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)"
  }
}
```

Besonderheiten: Die Methode prüft die Einladung und löst den Code nicht ein; das Beispiel beschreibt den Vertrag und wird nicht ausgeführt.

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

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

Zugriff: Ohne Anmeldung; zusätzliche Bedingungen stehen bei der Methode

Funktionsverfügbarkeit und zusätzliche Zugriffsbedingungen werden beim Ausführen der Anfrage geprüft.

Ratenlimit: 10 Anfragen pro 60 Sekunden von derselben Adresse.

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

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Validierung / Beschreibung |
| --- | --- | --- | --- |
| `code` | `string` | ja | required |

Vorlage für den Anfragekörper

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

PLACEHOLDER steht für Ihre Eingabe und deren Typ. Ersetzen Sie die Werte und behalten Sie nur die benötigten optionalen Felder; 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)"
  }
}
```

Besonderheiten: Die Methode prüft den Promocode und schreibt keinen Bonus gut; das Beispiel beschreibt den Vertrag und wird nicht ausgeführt.

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

## Anmeldung und Sitzungen · 2FA

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

- `data.requires_2fa === true` → [TotpLoginResponse](https://ailoot.ai/docs/de-ch/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-ch/cabinet/schemas-1/#authresponse) → `Authorization: Bearer $TOKEN`

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

Noch Fragen? Schicken Sie uns die Request ID und eine Beschreibung — wir helfen Ihnen weiter.[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.
