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

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

# Profil und Sicherheit

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

Methoden, Anfragefelder und Antworten.

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

| Methode und Pfad | Beschreibung | Zugriff |
| --- | --- | --- |
| `PUT /api/v1/user` | Profil ändern | Token des Kundenbereichs |
| `GET /api/v1/user/passkeys` | Passkey-Liste | Token des Kundenbereichs |
| `PUT /api/v1/user/password` | Passwort ändern | Token des Kundenbereichs |
| `GET /api/v1/user/profile` | Profil, Guthaben und Verknüpfungen | Token des Kundenbereichs |
| `GET /api/v1/user/totp/status` | 2FA-Status (TOTP) | Token des Kundenbereichs |
| `GET /api/v1/user/totp/verification-method` | TOTP-Prüfmethode | Token des Kundenbereichs |

**PUT /api/v1/user** — Profil ändern

Zugriff: Token des Kundenbereichs

PUT`/api/v1/user`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `username` | `string` | nein | ; kann null sein |
| `avatar_url` | `string` | nein | ; kann null sein |
| `balance_notify_enabled` | `boolean` | nein | ; kann null sein |
| `balance_notify_threshold` | `number` | nein | ; kann null sein |

Vorlage für den Anfrageinhalt

```json
{
  "username": "PLACEHOLDER_USERNAME (string)",
  "avatar_url": "PLACEHOLDER_AVATAR_URL (string)",
  "balance_notify_enabled": "PLACEHOLDER_BALANCE_NOTIFY_ENABLED (boolean)",
  "balance_notify_threshold": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD (number)"
}
```

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: `UpdateProfileRequest`

## 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: Die Operation verändert den Zustand oder setzt eine einmalige Authentifizierung fort. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.

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.

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/user/passkeys** — Passkey-Liste

Zugriff: Token des Kundenbereichs

GET`/api/v1/user/passkeys`

Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/user/passkeys" \
  -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: `PasskeyCredentialSummary`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": "PLACEHOLDER_ID (integer)",
    "name": "PLACEHOLDER_NAME (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
    "backup": "PLACEHOLDER_BACKUP (boolean)"
  }
}
```

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

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.

**PUT /api/v1/user/password** — Passwort ändern

Zugriff: Token des Kundenbereichs

PUT`/api/v1/user/password`

## JSON- / Formularfelder

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

Vorlage für den Anfrageinhalt

```json
{
  "old_password": "PLACEHOLDER_OLD_PASSWORD (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: `ChangePasswordRequest`

## Antwort

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

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "VALUE_FROM_RESPONSE"
  }
}
```

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.

**GET /api/v1/user/profile** — Profil, Guthaben und Verknüpfungen

Zugriff: Token des Kundenbereichs

GET`/api/v1/user/profile`

Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/user/profile" \
  -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.

**GET /api/v1/user/totp/status** — 2FA-Status (TOTP)

Zugriff: Token des Kundenbereichs

GET`/api/v1/user/totp/status`

Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/user/totp/status" \
  -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: `TotpStatusResponse`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "enabled": "PLACEHOLDER_ENABLED (boolean)",
    "enabled_at": "PLACEHOLDER_ENABLED_AT (integer)",
    "feature_enabled": "PLACEHOLDER_FEATURE_ENABLED (boolean)"
  }
}
```

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

Besonderheit: secret und setup\_token sind geheim; die Prüfung hängt von den TOTP- und Nutzereinstellungen ab.

**GET /api/v1/user/totp/verification-method** — TOTP-Prüfmethode

Zugriff: Token des Kundenbereichs

GET`/api/v1/user/totp/verification-method`

Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/user/totp/verification-method" \
  -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.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "method": "email"
  }
}
```

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

Besonderheit: secret und setup\_token sind geheim; die Prüfung hängt von den TOTP- und Nutzereinstellungen ab.

## TotpVerificationMethod

```json
{
  "type": "object",
  "required": [
    "method"
  ],
  "properties": {
    "method": {
      "type": "string",
      "enum": [
        "email",
        "password"
      ]
    }
  }
}
```

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.
