Doku
Überblick
Die TOKENWERK-API ist kompatibel mit den APIs von OpenAI und Anthropic: Sie verwenden die offiziellen SDKs und Werkzeuge, nur URL und API-Key ändern sich.
Schnellstart
- Melden Sie sich in der TOKENWERK-App an und erstellen Sie unter API-Keys einen
neuen. Er beginnt mit
tw-und wird nur einmal angezeigt. - Legen Sie ihn als Umgebungsvariable ab, alle Beispiele dieser Doku lesen ihn von dort.
- Rufen Sie die Modellliste ab und stellen Sie die erste Anfrage.
export TOKENWERK_API_KEY="tw-..."
curl https://api.tokenwerk.ai/v1/models -H "Authorization: Bearer $TOKENWERK_API_KEY"
curl https://api.tokenwerk.ai/v1/chat/completions \
-H "Authorization: Bearer $TOKENWERK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODELL",
"messages": [{"role": "user", "content": "Hello"}]
}'
Den Namen eines Modells (Feld model) finden Sie unter Modelle oder über
GET /v1/models.
URLs
TOKENWERK spricht zwei Formate unter derselben Adresse. Welches Sie verwenden, entscheidet Ihr SDK oder Werkzeug.
| Format | URL | Beispiel |
|---|---|---|
| OpenAI (Chat Completions, Responses, Embeddings) | https://api.tokenwerk.ai/v1 |
https://api.tokenwerk.ai/v1/chat/completions |
| Anthropic (Messages) | https://api.tokenwerk.ai |
https://api.tokenwerk.ai/v1/messages – das SDK hängt
/v1/messages selbst an |
Authentifizierung
Jede Anfrage braucht einen API-Key Ihrer Organisation, in einem der beiden Header:
Authorization: Bearer tw-...
x-api-key: tw-...
- OpenAI-SDKs senden
Authorization: Bearer, Anthropic-SDKsx-api-key; beides funktioniert auf allen Endpunkten. - API-Keys gehören zu Ihrer Organisation, optional zu einem Team, und können ein Ablaufdatum und
Budgetlimits haben. Gesperrte oder abgelaufene API-Keys werden mit
401abgewiesen. - Verwenden Sie API-Keys nur serverseitig, nie im Browser oder in einer App, die Sie ausliefern.
Endpunkte
| Methode und Pfad | Format | Abrechnung |
|---|---|---|
POST /v1/chat/completions |
OpenAI | pro Token |
POST /v1/responses |
OpenAI | pro Token |
POST /v1/completions |
OpenAI | pro Token |
POST /v1/embeddings |
OpenAI | pro Token |
POST /v1/messages |
Anthropic | pro Token |
POST /v1/messages/count_tokens |
Anthropic | kostenlos |
GET /v1/models, GET /v1/models/{model} |
OpenAI | kostenlos |
Alle anderen Pfade unter /v1 (Bilder, Audio, Dateien, Batches, …) antworten mit
404. Welche Endpunkte ein Modell tatsächlich unterstützt, hängt vom Modell ab: Embeddings etwa
nur Embedding-Modelle.
Modelle
GET /v1/models listet die aktuell verfügbaren Modelle mit Kontextfenster und maximalem
Output; Preise und Beschreibungen finden Sie unter Modelle.
{
"object": "list",
"data": [
{
"id": "MODELL",
"object": "model",
"created": 0,
"owned_by": "tokenwerk",
"context_window": 131072,
"max_output_tokens": 32768
}
]
}
Auto-Modelle (Art „Auto“) wählen künftig das passende Modell pro Anfrage. Das Routing ist noch nicht
verfügbar, solche Anfragen werden vorerst mit 503 abgelehnt.
Streaming
Mit "stream": true kommt die Antwort als Server-Sent Events, im Format der jeweiligen API. Im
OpenAI-Format liefert "stream_options": {"include_usage": true} zusätzlich einen letzten Chunk
mit dem Tokenverbrauch.
curl -N https://api.tokenwerk.ai/v1/chat/completions \
-H "Authorization: Bearer $TOKENWERK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODELL",
"stream": true,
"stream_options": {"include_usage": true},
"messages": [{"role": "user", "content": "Hello"}]
}'
curl -N https://api.tokenwerk.ai/v1/messages \
-H "x-api-key: $TOKENWERK_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "MODELL",
"max_tokens": 1024,
"stream": true,
"messages": [{"role": "user", "content": "Hello"}]
}'
Bricht Ihr Client einen Stream ab, wird die Anfrage beim Modell sofort beendet; abgerechnet werden nur die bis dahin verarbeiteten Tokens.
Tools & Bilder
Anfragen werden unverändert an das Modell weitergegeben, nur der Modellname wird übersetzt. Damit
funktionieren Tool- bzw. Function-Calling (tools, tool_choice), strukturierte
Ausgaben (response_format) und Bildeingaben (image_url bzw.
image-Blöcke), sofern das gewählte Modell sie unterstützt. Coding-Agenten brauchen ein Modell
mit Tool-Calling.
Fehler
Fehler kommen im Format der aufgerufenen API: im OpenAI-Format als {"error": {"message", "type",
…}}, im Anthropic-Format als {"type": "error", "error": {"type", "message"}}.
| Status | OpenAI-Typ | Anthropic-Typ | Bedeutung |
|---|---|---|---|
400 |
invalid_request_error |
invalid_request_error |
Ungültige Anfrage, z. B. ohne model oder mit zu hohem max_tokens
|
401 |
authentication_error |
authentication_error |
API-Key fehlt, ist ungültig, gesperrt oder abgelaufen |
402 |
insufficient_quota |
billing_error |
Guthaben der Organisation aufgebraucht |
403 |
permission_error |
permission_error |
Organisation gesperrt |
404 |
not_found_error |
not_found_error |
Modell oder Endpunkt gibt es nicht |
429 |
rate_limit_error |
rate_limit_error |
Budgetlimit des API-Keys oder Teams erreicht, oder das Modell ist ausgelastet (mit
Retry-After) |
502, 503 |
api_error |
api_error |
Modell gerade nicht erreichbar, bitte später erneut versuchen |
Limits & Abrechnung
- Es gibt keine Anfrage-Limits pro API-Key. Begrenzt wird über Budgets: pro API-Key oder Team für Tag,
Woche und Monat (UTC). Ist ein Budget aufgebraucht, beantworten wir weitere Anfragen mit
429. Ab einem einstellbaren Prozentsatz eines Budgets bekommen die Admins der Organisation eine Warnung per E-Mail. - Abgerechnet wird pro Anfrage nach Tokens: Input, gecachter Input und Output, jeweils zum Preis pro 1 Million Tokens des Modells. Es gelten die Preise zum Start der Anfrage.
- Abgewiesene Anfragen kosten nichts. Ist das Guthaben aufgebraucht, beantworten wir Anfragen mit
402. - Prompts und Antworten werden nicht gespeichert, nur Metadaten wie Tokens, Dauer und Preis.
API-Referenzen
TOKENWERK ist mit den APIs von OpenAI und Anthropic kompatibel. Alle Parameter finden Sie in deren Referenzen:
Weiter: SDKs mit Beispielen für viele Sprachen und Agenten wie Claude Code oder opencode.