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

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

# Verlauf und Kosten

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

Methoden, Anfragefelder und Antworten.

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

| Methode und Pfad | Beschreibung | Zugriff |
| --- | --- | --- |
| `GET /api/v1/usage` | Anfrageverlauf | Token des Kundenbereichs |
| `GET /api/v1/usage/:id` | Einzelne Anfrage aus dem Verlauf | Token des Kundenbereichs |
| `POST /api/v1/usage/dashboard/api-keys-usage` | Statistik eigener API-Schlüssel | Token des Kundenbereichs |
| `GET /api/v1/usage/dashboard/models` | Nutzung nach Modell | Token des Kundenbereichs |
| `GET /api/v1/usage/dashboard/snapshot-v2` | Gemeinsamer Snapshot der Diagramme | Token des Kundenbereichs |
| `GET /api/v1/usage/dashboard/stats` | Nutzungsübersicht | Token des Kundenbereichs |
| `GET /api/v1/usage/dashboard/trend` | Nutzungsverlauf | Token des Kundenbereichs |
| `GET /api/v1/usage/errors` | Fehlerverlauf | Token des Kundenbereichs |
| `GET /api/v1/usage/errors/:id` | Details eines eigenen Fehlers | Token des Kundenbereichs |
| `GET /api/v1/usage/stats` | Nutzungsstatistik | Token des Kundenbereichs |
| `GET /api/v1/user/api-keys/:id/usage/daily` | Tagesstatistik eines eigenen API-Schlüssels | Token des Kundenbereichs |

**GET /api/v1/usage** — Anfrageverlauf

Zugriff: Token des Kundenbereichs

GET`/api/v1/usage`

Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort

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

## Query-Parameter

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `sort_by` | `string` | nein | ; standardmäßig: created\_at |
| `sort_order` | `string` | nein | ; standardmäßig: desc |
| `api_key_id` | `integer` | nein |  |
| `request_type` | `string` | nein |  |
| `stream` | `boolean` | nein |  |
| `timezone` | `string` | nein |  |
| `start_date` | `string` | nein |  |
| `end_date` | `string` | nein |  |
| `period` | `string` | nein |  |
| `model` | `string` | nein |  |
| `page` | `integer` | nein | ; standardmäßig: 1; positive; page\_size/limit \<=1000 |
| `page_size` | `integer` | nein | ; standardmäßig: 20; positive; page\_size/limit \<=1000 |
| `limit` | `integer` | nein | ; standardmäßig: 20; positive; page\_size/limit \<=1000 |

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: `UsageLog`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "items": [
      {
        "id": "PLACEHOLDER_ID (integer)",
        "user_id": "PLACEHOLDER_USER_ID (integer)",
        "api_key_id": "PLACEHOLDER_API_KEY_ID (integer)",
        "request_id": "PLACEHOLDER_REQUEST_ID (string)",
        "model": "PLACEHOLDER_MODEL (string)",
        "service_tier": "PLACEHOLDER_SERVICE_TIER (string)",
        "reasoning_effort": "PLACEHOLDER_REASONING_EFFORT (string)",
        "input_tokens": "PLACEHOLDER_INPUT_TOKENS (integer)",
        "output_tokens": "PLACEHOLDER_OUTPUT_TOKENS (integer)",
        "cache_creation_tokens": "PLACEHOLDER_CACHE_CREATION_TOKENS (integer)",
        "cache_read_tokens": "PLACEHOLDER_CACHE_READ_TOKENS (integer)",
        "cache_creation_5m_tokens": "PLACEHOLDER_CACHE_CREATION_5M_TOKENS (integer)",
        "cache_creation_1h_tokens": "PLACEHOLDER_CACHE_CREATION_1H_TOKENS (integer)",
        "input_cost": "PLACEHOLDER_INPUT_COST (number)",
        "output_cost": "PLACEHOLDER_OUTPUT_COST (number)",
        "cache_creation_cost": "PLACEHOLDER_CACHE_CREATION_COST (number)",
        "cache_read_cost": "PLACEHOLDER_CACHE_READ_COST (number)",
        "total_cost": "PLACEHOLDER_TOTAL_COST (number)",
        "actual_cost": "PLACEHOLDER_ACTUAL_COST (number)",
        "long_context_billing_applied": "PLACEHOLDER_LONG_CONTEXT_BILLING_APPLIED (boolean)",
        "request_type": "PLACEHOLDER_REQUEST_TYPE (string)",
        "stream": "PLACEHOLDER_STREAM (boolean)",
        "duration_ms": "PLACEHOLDER_DURATION_MS (integer)",
        "first_token_ms": "PLACEHOLDER_FIRST_TOKEN_MS (integer)",
        "image_count": "PLACEHOLDER_IMAGE_COUNT (integer)",
        "image_size": "PLACEHOLDER_IMAGE_SIZE (string)",
        "image_input_size": "PLACEHOLDER_IMAGE_INPUT_SIZE (string)",
        "image_output_size": "PLACEHOLDER_IMAGE_OUTPUT_SIZE (string)",
        "image_input_tokens": "PLACEHOLDER_IMAGE_INPUT_TOKENS (integer)",
        "image_input_cost": "PLACEHOLDER_IMAGE_INPUT_COST (number)",
        "image_output_tokens": "PLACEHOLDER_IMAGE_OUTPUT_TOKENS (integer)",
        "image_output_cost": "PLACEHOLDER_IMAGE_OUTPUT_COST (number)",
        "image_size_breakdown": "PLACEHOLDER_IMAGE_SIZE_BREAKDOWN (object)",
        "media_type": "PLACEHOLDER_MEDIA_TYPE (string)",
        "ip_address": "PLACEHOLDER_IP_ADDRESS (string)",
        "session_id": "PLACEHOLDER_SESSION_ID (string)",
        "created_at": "PLACEHOLDER_CREATED_AT (string)",
        "user": "PLACEHOLDER_USER (object)",
        "api_key": "PLACEHOLDER_API_KEY (object)"
      }
    ],
    "total": "PLACEHOLDER_TOTAL (integer)",
    "page": "PLACEHOLDER_PAGE (integer)",
    "page_size": "PLACEHOLDER_PAGE_SIZE (integer)",
    "pages": "PLACEHOLDER_PAGES (integer)"
  }
}
```

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

**GET /api/v1/usage/:id** — Einzelne Anfrage aus dem Verlauf

Zugriff: Token des Kundenbereichs

GET`/api/v1/usage/:id`

Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort

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

## Pfadparameter

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `id` | `integer` | ja |  |

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: `UsageLog`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": "PLACEHOLDER_ID (integer)",
    "user_id": "PLACEHOLDER_USER_ID (integer)",
    "api_key_id": "PLACEHOLDER_API_KEY_ID (integer)",
    "request_id": "PLACEHOLDER_REQUEST_ID (string)",
    "model": "PLACEHOLDER_MODEL (string)",
    "service_tier": "PLACEHOLDER_SERVICE_TIER (string)",
    "reasoning_effort": "PLACEHOLDER_REASONING_EFFORT (string)",
    "input_tokens": "PLACEHOLDER_INPUT_TOKENS (integer)",
    "output_tokens": "PLACEHOLDER_OUTPUT_TOKENS (integer)",
    "cache_creation_tokens": "PLACEHOLDER_CACHE_CREATION_TOKENS (integer)",
    "cache_read_tokens": "PLACEHOLDER_CACHE_READ_TOKENS (integer)",
    "cache_creation_5m_tokens": "PLACEHOLDER_CACHE_CREATION_5M_TOKENS (integer)",
    "cache_creation_1h_tokens": "PLACEHOLDER_CACHE_CREATION_1H_TOKENS (integer)",
    "input_cost": "PLACEHOLDER_INPUT_COST (number)",
    "output_cost": "PLACEHOLDER_OUTPUT_COST (number)",
    "cache_creation_cost": "PLACEHOLDER_CACHE_CREATION_COST (number)",
    "cache_read_cost": "PLACEHOLDER_CACHE_READ_COST (number)",
    "total_cost": "PLACEHOLDER_TOTAL_COST (number)",
    "actual_cost": "PLACEHOLDER_ACTUAL_COST (number)",
    "long_context_billing_applied": "PLACEHOLDER_LONG_CONTEXT_BILLING_APPLIED (boolean)",
    "request_type": "PLACEHOLDER_REQUEST_TYPE (string)",
    "stream": "PLACEHOLDER_STREAM (boolean)",
    "duration_ms": "PLACEHOLDER_DURATION_MS (integer)",
    "first_token_ms": "PLACEHOLDER_FIRST_TOKEN_MS (integer)",
    "image_count": "PLACEHOLDER_IMAGE_COUNT (integer)",
    "image_size": "PLACEHOLDER_IMAGE_SIZE (string)",
    "image_input_size": "PLACEHOLDER_IMAGE_INPUT_SIZE (string)",
    "image_output_size": "PLACEHOLDER_IMAGE_OUTPUT_SIZE (string)",
    "image_input_tokens": "PLACEHOLDER_IMAGE_INPUT_TOKENS (integer)",
    "image_input_cost": "PLACEHOLDER_IMAGE_INPUT_COST (number)",
    "image_output_tokens": "PLACEHOLDER_IMAGE_OUTPUT_TOKENS (integer)",
    "image_output_cost": "PLACEHOLDER_IMAGE_OUTPUT_COST (number)",
    "image_size_breakdown": "PLACEHOLDER_IMAGE_SIZE_BREAKDOWN (object)",
    "media_type": "PLACEHOLDER_MEDIA_TYPE (string)",
    "ip_address": "PLACEHOLDER_IP_ADDRESS (string)",
    "session_id": "PLACEHOLDER_SESSION_ID (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "user": "PLACEHOLDER_USER (object)",
    "api_key": "PLACEHOLDER_API_KEY (object)"
  }
}
```

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

**POST /api/v1/usage/dashboard/api-keys-usage** — Statistik eigener API-Schlüssel

Zugriff: Token des Kundenbereichs

POST`/api/v1/usage/dashboard/api-keys-usage`

## JSON- / Formularfelder

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `api_key_ids` | `array` | ja | required |

Vorlage für den Anfrageinhalt

```json
{
  "api_key_ids": "PLACEHOLDER_API_KEY_IDS (array)"
}
```

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

## Antwort

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

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

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "api_key_id": "PLACEHOLDER_API_KEY_ID (integer)",
    "today_actual_cost": "PLACEHOLDER_TODAY_ACTUAL_COST (number)",
    "total_actual_cost": "PLACEHOLDER_TOTAL_ACTUAL_COST (number)"
  }
}
```

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

Besonderheit: Die Methode liest Statistiken der eigenen API-Schlüssel. Das Beispiel beschreibt den API-Kontrakt und wird nicht ausgeführt.

Die Methode liefert Statistiken und verändert weder API-Schlüssel noch Ausgaben. Für ein erneutes Auslesen ist kein Idempotency-Key erforderlich; die Antwort gibt den Zustand zum Zeitpunkt der Anfrage wieder.

**GET /api/v1/usage/dashboard/models** — Nutzung nach Modell

Zugriff: Token des Kundenbereichs

GET`/api/v1/usage/dashboard/models`

Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort

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

## Query-Parameter

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `api_key_id` | `integer` | nein |  |
| `request_type` | `string` | nein |  |
| `stream` | `boolean` | nein |  |
| `timezone` | `string` | nein |  |
| `start_date` | `string` | nein |  |
| `end_date` | `string` | nein |  |
| `period` | `string` | nein |  |
| `model` | `string` | nein |  |

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": {
    "end_date": "VALUE_FROM_RESPONSE",
    "models": "VALUE_FROM_RESPONSE",
    "month": "VALUE_FROM_RESPONSE",
    "start_date": "VALUE_FROM_RESPONSE",
    "today": "VALUE_FROM_RESPONSE",
    "week": "VALUE_FROM_RESPONSE"
  }
}
```

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

**GET /api/v1/usage/dashboard/snapshot-v2** — Gemeinsamer Snapshot der Diagramme

Zugriff: Token des Kundenbereichs

GET`/api/v1/usage/dashboard/snapshot-v2`

Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/usage/dashboard/snapshot-v2" \
  -H "Authorization: Bearer $TOKEN"
```

## Query-Parameter

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `granularity` | `string` | nein | ; standardmäßig: day |
| `include_trend` | `boolean` | nein | ; standardmäßig: true |
| `include_model_stats` | `boolean` | nein | ; standardmäßig: true |
| `api_key_id` | `integer` | nein |  |
| `request_type` | `string` | nein |  |
| `stream` | `boolean` | nein |  |
| `timezone` | `string` | nein |  |
| `start_date` | `string` | nein |  |
| `end_date` | `string` | nein |  |
| `period` | `string` | nein |  |
| `model` | `string` | nein |  |

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": {
    "end_date": "VALUE_FROM_RESPONSE",
    "generated_at": "VALUE_FROM_RESPONSE",
    "granularity": "VALUE_FROM_RESPONSE",
    "month": "VALUE_FROM_RESPONSE",
    "start_date": "VALUE_FROM_RESPONSE",
    "today": "VALUE_FROM_RESPONSE",
    "week": "VALUE_FROM_RESPONSE"
  }
}
```

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

**GET /api/v1/usage/dashboard/stats** — Nutzungsübersicht

Zugriff: Token des Kundenbereichs

GET`/api/v1/usage/dashboard/stats`

Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort

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

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "total_api_keys": "PLACEHOLDER_TOTAL_API_KEYS (integer)",
    "active_api_keys": "PLACEHOLDER_ACTIVE_API_KEYS (integer)",
    "total_requests": "PLACEHOLDER_TOTAL_REQUESTS (integer)",
    "total_input_tokens": "PLACEHOLDER_TOTAL_INPUT_TOKENS (integer)",
    "total_output_tokens": "PLACEHOLDER_TOTAL_OUTPUT_TOKENS (integer)",
    "total_cache_creation_tokens": "PLACEHOLDER_TOTAL_CACHE_CREATION_TOKENS (integer)",
    "total_cache_read_tokens": "PLACEHOLDER_TOTAL_CACHE_READ_TOKENS (integer)",
    "total_tokens": "PLACEHOLDER_TOTAL_TOKENS (integer)",
    "total_cost": "PLACEHOLDER_TOTAL_COST (number)",
    "total_actual_cost": "PLACEHOLDER_TOTAL_ACTUAL_COST (number)",
    "today_requests": "PLACEHOLDER_TODAY_REQUESTS (integer)",
    "today_input_tokens": "PLACEHOLDER_TODAY_INPUT_TOKENS (integer)",
    "today_output_tokens": "PLACEHOLDER_TODAY_OUTPUT_TOKENS (integer)",
    "today_cache_creation_tokens": "PLACEHOLDER_TODAY_CACHE_CREATION_TOKENS (integer)",
    "today_cache_read_tokens": "PLACEHOLDER_TODAY_CACHE_READ_TOKENS (integer)",
    "today_tokens": "PLACEHOLDER_TODAY_TOKENS (integer)",
    "today_cost": "PLACEHOLDER_TODAY_COST (number)",
    "today_actual_cost": "PLACEHOLDER_TODAY_ACTUAL_COST (number)",
    "average_duration_ms": "PLACEHOLDER_AVERAGE_DURATION_MS (number)",
    "rpm": "PLACEHOLDER_RPM (integer)",
    "tpm": "PLACEHOLDER_TPM (integer)"
  }
}
```

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

**GET /api/v1/usage/dashboard/trend** — Nutzungsverlauf

Zugriff: Token des Kundenbereichs

GET`/api/v1/usage/dashboard/trend`

Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort

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

## Query-Parameter

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `granularity` | `string` | nein | ; standardmäßig: day |
| `api_key_id` | `integer` | nein |  |
| `request_type` | `string` | nein |  |
| `stream` | `boolean` | nein |  |
| `timezone` | `string` | nein |  |
| `start_date` | `string` | nein |  |
| `end_date` | `string` | nein |  |
| `period` | `string` | nein |  |
| `model` | `string` | nein |  |

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": {
    "end_date": "VALUE_FROM_RESPONSE",
    "granularity": "VALUE_FROM_RESPONSE",
    "month": "VALUE_FROM_RESPONSE",
    "start_date": "VALUE_FROM_RESPONSE",
    "today": "VALUE_FROM_RESPONSE",
    "trend": "VALUE_FROM_RESPONSE",
    "week": "VALUE_FROM_RESPONSE"
  }
}
```

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

**GET /api/v1/usage/errors** — Fehlerverlauf

Zugriff: Token des Kundenbereichs

GET`/api/v1/usage/errors`

Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort

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

## Query-Parameter

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `timezone` | `string` | nein |  |
| `start_date` | `string` | nein |  |
| `end_date` | `string` | nein |  |
| `model` | `string` | nein |  |
| `api_key_id` | `integer` | nein |  |
| `status_code` | `integer` | nein |  |
| `category` | `string` | nein |  |
| `sort_by` | `string` | nein |  |
| `sort_order` | `string` | nein |  |
| `page` | `integer` | nein | ; standardmäßig: 1; positive; page\_size/limit \<=1000 |
| `page_size` | `integer` | nein | ; standardmäßig: 20; positive; page\_size/limit \<=1000 |
| `limit` | `integer` | nein | ; standardmäßig: 20; positive; page\_size/limit \<=1000 |

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": {
    "items": [
      "PLACEHOLDER_DATA (object, Beschreibung auf der Seite «Datenschemata»)"
    ],
    "total": "PLACEHOLDER_TOTAL (integer)",
    "page": "PLACEHOLDER_PAGE (integer)",
    "page_size": "PLACEHOLDER_PAGE_SIZE (integer)",
    "pages": "PLACEHOLDER_PAGES (integer)"
  }
}
```

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

**GET /api/v1/usage/errors/:id** — Details eines eigenen Fehlers

Zugriff: Token des Kundenbereichs

GET`/api/v1/usage/errors/:id`

Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort

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

## Pfadparameter

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `id` | `integer` | ja |  |

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": "PLACEHOLDER_DATA (object, Beschreibung auf der Seite «Datenschemata»)"
}
```

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

**GET /api/v1/usage/stats** — Nutzungsstatistik

Zugriff: Token des Kundenbereichs

GET`/api/v1/usage/stats`

Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort

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

## Query-Parameter

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `api_key_id` | `integer` | nein |  |
| `request_type` | `string` | nein |  |
| `stream` | `boolean` | nein |  |
| `timezone` | `string` | nein |  |
| `start_date` | `string` | nein |  |
| `end_date` | `string` | nein |  |
| `period` | `string` | nein |  |
| `model` | `string` | nein |  |

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: `UsageStats`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "total_requests": "PLACEHOLDER_TOTAL_REQUESTS (integer)",
    "total_input_tokens": "PLACEHOLDER_TOTAL_INPUT_TOKENS (integer)",
    "total_output_tokens": "PLACEHOLDER_TOTAL_OUTPUT_TOKENS (integer)",
    "total_cache_tokens": "PLACEHOLDER_TOTAL_CACHE_TOKENS (integer)",
    "total_cache_creation_tokens": "PLACEHOLDER_TOTAL_CACHE_CREATION_TOKENS (integer)",
    "total_cache_read_tokens": "PLACEHOLDER_TOTAL_CACHE_READ_TOKENS (integer)",
    "total_tokens": "PLACEHOLDER_TOTAL_TOKENS (integer)",
    "total_cost": "PLACEHOLDER_TOTAL_COST (number)",
    "total_actual_cost": "PLACEHOLDER_TOTAL_ACTUAL_COST (number)",
    "average_duration_ms": "PLACEHOLDER_AVERAGE_DURATION_MS (number)",
    "endpoints": "PLACEHOLDER_ENDPOINTS (array)"
  }
}
```

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

**GET /api/v1/user/api-keys/:id/usage/daily** — Tagesstatistik eines eigenen API-Schlüssels

Zugriff: Token des Kundenbereichs

GET`/api/v1/user/api-keys/:id/usage/daily`

Lesezugriff; die ID stammt aus Ihrer vorherigen Antwort

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/user/api-keys/$ID/usage/daily" \
  -H "Authorization: Bearer $TOKEN"
```

## Pfadparameter

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `id` | `integer` | ja |  |

## Query-Parameter

| Das Feld | Typ | Erforderlich | Prüfung / Beschreibung |
| --- | --- | --- | --- |
| `days` | `integer` | nein | ; standardmäßig: 30 |
| `timezone` | `string` | nein |  |

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: `APIKeyDailyUsagePoint`. Felder und Typen stehen auf den Seiten „Datenschemata“.

Antwortschema mit Beispielwerten

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "date": "PLACEHOLDER_DATE (string)",
    "requests": "PLACEHOLDER_REQUESTS (integer)",
    "input_tokens": "PLACEHOLDER_INPUT_TOKENS (integer)",
    "output_tokens": "PLACEHOLDER_OUTPUT_TOKENS (integer)",
    "cache_read_tokens": "PLACEHOLDER_CACHE_READ_TOKENS (integer)",
    "cache_write_tokens": "PLACEHOLDER_CACHE_WRITE_TOKENS (integer)",
    "total_tokens": "PLACEHOLDER_TOTAL_TOKENS (integer)",
    "cost": "PLACEHOLDER_COST (number)",
    "actual_cost": "PLACEHOLDER_ACTUAL_COST (number)"
  }
}
```

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

## Verlauf und Kosten · USD

total\_cost ist der berechnete Tarifpreis; actual\_cost ist der erfasste abgebuchte Betrag in USD.

### Berechnungsbeispiel

```json
{
  "total_cost": 0.1,
  "actual_cost": 0.08
}
```

`period ∈ {today, week, month}`; `start_date, end_date: YYYY-MM-DD`; `timezone: IANA` · `timezone=UTC`. `end_date`: `[00:00, +1 day 00:00)`. `display: actual_cost.toFixed(8)`; `JSON: number`.

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.
