Doku
API des Kundenbereichs

Profil und Sicherheit

Markdown

Methoden, Anfragefelder und Antworten.

Vollständiger Leitfaden

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

Methode und PfadBeschreibungZugriff
PUT /api/v1/userProfil ändernToken des Kundenbereichs
GET /api/v1/user/passkeysPasskey-ListeToken des Kundenbereichs
PUT /api/v1/user/passwordPasswort ändernToken des Kundenbereichs
GET /api/v1/user/profileProfil, Guthaben und VerknüpfungenToken des Kundenbereichs
GET /api/v1/user/totp/status2FA-Status (TOTP)Token des Kundenbereichs
GET /api/v1/user/totp/verification-methodTOTP-PrüfmethodeToken des Kundenbereichs
PUT /api/v1/user — Profil ändern

Zugriff: Token des Kundenbereichs

PUT/api/v1/user

JSON- / Formularfelder

Das FeldTypErforderlichPrüfung / Beschreibung
usernamestringnein; kann null sein
avatar_urlstringnein; kann null sein
balance_notify_enabledbooleannein; kann null sein
balance_notify_thresholdnumbernein; kann null sein
Vorlage für den Anfrageinhalt
{
  "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
{
  "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.

GET /api/v1/user/passkeys — Passkey-Liste

Zugriff: Token des Kundenbereichs

GET/api/v1/user/passkeys
Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort
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
{
  "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 FeldTypErforderlichPrüfung / Beschreibung
old_passwordstringjarequired
new_passwordstringjarequired,min=6
Vorlage für den Anfrageinhalt
{
  "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
{
  "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.

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
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
{
  "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
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
{
  "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
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
{
  "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

{
  "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