> ## Documentation Index
> Fetch the complete documentation index at: https://docs.langdock.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Billing API Übersicht

> Lies den Billing-Modus und verwalte Nutzerpläne, Workspace- und Gruppenlimits und Agent-Budgets aus deinen eigenen Systemen

Mit der Billing API änderst du Nutzerpläne, Limits für den Workspace und für Gruppen und Budgets von Agenten aus deinen eigenen Systemen. Nutze sie, wenn die Änderung eines Admins Langdock aktualisieren soll, ohne dass jemand die Nutzungseinstellungen öffnet. Du kannst außerdem Nutzungslimit-Anfragen auflisten und eine Anfrage ablehnen, die noch offen ist.

Die [User Management API](https://docs.langdock.com/de/developer/user-management-api/user-management-overview.md) lädt Personen ein, ändert Rollen und deaktiviert Mitglieder. Die Billing API macht das nicht. Gruppenmitgliedschaften ändert sie ebenfalls nicht.

> [!NOTE]
>
> Die Routen unten gelten, wenn `GET /billing/v1/mode` den Modus `bring-your-own-keys` liefert. Ein Dedicated Deployment liefert immer diesen Modus, auch wenn Langdock die Modellschlüssel verwaltet. Beträge sind US-Dollar. In der Cloud kannst du den Scope **Billing API** nur vergeben, wenn Langdock ihn für den Workspace freigeschaltet hat. Ist der Modus ein anderer, antworten diese Routen mit `409`.

## Bevor du startest

* **API-Key-Scope**: `BILLING_API` an einem Workspace-API-Schlüssel. In der Scope-Auswahl heißt der Scope **Billing API** und steht in der Gruppe **Billing**, nach **User Management** und vor **Audit Log**. Persönliche API-Schlüssel können den Scope nicht bekommen. Bestehende Workspace-Schlüssel erhalten ihn nicht von allein.
* **Besitzer**: Der Schlüssel gehört einem Service Account, der nicht gelöscht ist und eine aktive Admin-Mitgliedschaft hat. Schreibzugriffe laufen als dieser Service Account. Fehlt die Mitgliedschaft, kommt `403` mit `code` `BILLING_API_ADMIN_REQUIRED`.
* **Namen und E-Mails**: Nutzerobjekte enthalten immer `id`, den Plan und die Limits. `email` und `name` sind nur dabei, wenn derselbe Schlüssel auch `USER_MANAGEMENT_API` hat. Ein Filter auf `email` ohne diesen Scope gibt `403` mit `code` `USER_MANAGEMENT_API_REQUIRED` zurück.

Starte mit der Modusabfrage und rufe danach nur die Routen dieses Modus auf. Der andere Modus antwortet mit `409`, `code` `BILLING_MODE_MISMATCH` und dem Workspace-Modus in `details.mode`.

## Basis-URL

```
https://api.langdock.com
```

> [!WARNING]
>
> **Dedicated Deployments**
>
> Ersetze `api.langdock.com` durch `<your-deployment-url>/api/public` in allen Anfragen.

## Billing-Modus

```bash theme={null}
curl https://api.langdock.com/billing/v1/mode \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json theme={null}
{ "mode": "bring-your-own-keys", "currency": "USD" }
```

Die Pläne in diesem Modus sind `standard` (**Standard**) und `power_user` (**Power User**). Es gibt keine Seats-Route. Ein Pfad, den es in diesem Modus nicht gibt, zum Beispiel ein Seats-Pfad, gibt `404` zurück.

## Limits

Ein Limit schickst und liest du in einer dieser Formen. Nur `limited` enthält `amount`.

```json theme={null}
{ "type": "limited", "amount": 80 }
```

```json theme={null}
{ "type": "unlimited" }
```

Ein begrenztes Workspace-Limit muss größer als null sein. Ein begrenzter Betrag an einem Plan, einem Mitglied oder einer Gruppe darf null sein. Ein begrenztes Agent-Budget muss größer als null sein.

Extra-Usage-Budgets in diesem Modus akzeptieren auch `{ "type": "none" }`. Agent-Budgets akzeptieren `none` ebenfalls. `none` entfernt das Extra-Kontingent oder das eigene Agent-Budget.

Ein `PATCH` braucht mindestens ein Feld, das du schreiben darfst. Felder, die du weglässt, bleiben, auch ein Plan, den du in `monthlyBudgetPerPlan` nicht mitschickst. Unbekannte Felder werden abgelehnt.

## Listen und Ausgaben

Listen liefern standardmäßig 50 Einträge. `limit` liegt zwischen 1 und 250. Gib `cursor` aus dem `nextCursor` der vorigen Seite zurück und behalte dieselben Filter. Auf der letzten Seite fehlt `nextCursor`. Gib den Cursor unverändert zurück.

`GET` liefert Ausgaben, wenn der Workspace die Ausgaben pro Nutzer zeigt. Sind sie ausgeblendet, ist das Ausgabenfeld `null`. Schreibzugriffe auf Nutzer, Einstellungen und Agenten setzen die Ausgaben immer auf `null`, damit ein erfolgreicher Schreibzugriff nicht an einer nachgeladenen Summe scheitert. Lies die Ressource danach erneut, um die Ausgaben zu bekommen.

## Verfügbare Endpoints

| Methode | Endpoint | Beschreibung |
| - | - | - |
| `GET` | `/billing/v1/mode` | Billing-Modus und Währung lesen |
| `GET`, `PATCH` | `/billing/v1/bring-your-own-keys/settings` | [Workspace-Einstellungen lesen und ändern](https://docs.langdock.com/de/developer/billing-api/get-settings.md) |
| `GET` | `/billing/v1/bring-your-own-keys/plans` | [Aktive Mitglieder pro Plan zählen](https://docs.langdock.com/de/developer/billing-api/get-plans.md) |
| `GET` | `/billing/v1/bring-your-own-keys/users` | [Mitglieder auflisten](https://docs.langdock.com/de/developer/billing-api/list-users.md) |
| `GET` | `/billing/v1/bring-your-own-keys/users/{userId}` | [Ein Mitglied lesen](https://docs.langdock.com/de/developer/billing-api/get-user.md) |
| `PUT` | `/billing/v1/bring-your-own-keys/users/{userId}/plan` | [Plan eines Mitglieds setzen](https://docs.langdock.com/de/developer/billing-api/set-user-plan.md) |
| `PUT` | `/billing/v1/bring-your-own-keys/users/{userId}/extra-usage-budget` | [Extra-Usage-Budget setzen](https://docs.langdock.com/de/developer/billing-api/set-user-extra-usage-budget.md) |
| `POST` | `/billing/v1/bring-your-own-keys/users/plan/bulk` | [Pläne für bis zu 500 Mitglieder setzen](https://docs.langdock.com/de/developer/billing-api/bulk-set-user-plans.md) |
| `GET` | `/billing/v1/bring-your-own-keys/usage-requests` | [Nutzungslimit-Anfragen auflisten](https://docs.langdock.com/de/developer/billing-api/list-usage-requests.md) |
| `GET` | `/billing/v1/bring-your-own-keys/usage-requests/{requestId}` | [Eine Nutzungslimit-Anfrage lesen](https://docs.langdock.com/de/developer/billing-api/get-usage-request.md) |
| `POST` | `/billing/v1/bring-your-own-keys/usage-requests/{requestId}/dismiss` | [Eine offene Nutzungslimit-Anfrage ablehnen](https://docs.langdock.com/de/developer/billing-api/dismiss-usage-request.md) |
| `GET` | `/billing/v1/bring-your-own-keys/groups` | [Gruppen auflisten](https://docs.langdock.com/de/developer/billing-api/list-groups.md) |
| `GET` | `/billing/v1/bring-your-own-keys/groups/{groupId}` | [Eine Gruppe lesen](https://docs.langdock.com/de/developer/billing-api/get-group.md) |
| `PUT` | `/billing/v1/bring-your-own-keys/groups/{groupId}/monthly-budget` | [Monatsbudget einer Gruppe setzen](https://docs.langdock.com/de/developer/billing-api/set-group-monthly-budget.md) |
| `GET` | `/billing/v1/bring-your-own-keys/agents` | [Agent-Budgets auflisten](https://docs.langdock.com/de/developer/billing-api/list-agents.md) |
| `GET`, `PATCH` | `/billing/v1/bring-your-own-keys/agents/{agentId}` | [Agent-Budget lesen und ändern](https://docs.langdock.com/de/developer/billing-api/get-agent.md) |

## Fehler

| Status | Wann |
| - | - |
| `400` | Die Eingabe ist ungültig, ein Feld ist unbekannt, ein `PATCH` ist leer, ein Limit ist ungültig, eine Bulk-Liste enthält jemanden, der kein aktives menschliches Mitglied ist, oder der Cursor gehört nicht zu diesem Workspace |
| `401` | Der API-Schlüssel fehlt oder ist ungültig |
| `403` | Dem Schlüssel fehlt der Billing-Scope, es ist ein persönlicher API-Schlüssel, der Besitzer ist kein aktiver Admin-Service-Account, oder ein E-Mail-Filter hat keinen User-Management-Scope |
| `404` | Die Ressource liegt außerhalb dieses Workspace, der Nutzer ist kein aktives menschliches Mitglied, der Agent ist ausgeblendet, der Pfad existiert in diesem Modus nicht, oder eine benannte Nutzungslimit-Anfrage gehört nicht zu diesem Mitglied |
| `409` | Der Modus im Pfad ist nicht der Workspace-Modus, die Nutzungslimit-Anfrage ist nicht mehr offen, oder die Änderung erhöht das Kontingent einer benannten Anfrage nicht |
| `429` | Das API Rate Limit ist erreicht |

> [!NOTE]
>
> Langdock blockiert bewusst Browser-basierte Anfragen, um deinen API-Schlüssel zu schützen und die Sicherheit deiner Anwendungen zu gewährleisten. Weitere Informationen findest du in unserem Guide zu [Best Practices für API-Schlüssel](https://docs.langdock.com/de/admin/ai-adoption-and-rollout/best-practices/api-key-best-practices.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.