/v1/modelsModelle auflisten
Öffentliche Modell-IDs mit Fähigkeiten, Kontextlänge und Preisen.
TokenAPI unterstützt die OpenAI-Formate Chat Completions und Responses sowie das Anthropic-Format Messages. Nutzen Sie die offiziellen SDKs unverändert und wählen Sie eine ID aus der Modellliste.
https://tokenapi.biz/v1
Alle Endpoints:
/v1/modelsÖffentliche Modell-IDs mit Fähigkeiten, Kontextlänge und Preisen.
/v1/models/{id}Ein einzelnes Modellobjekt.
/v1/chat/completionsOpenAI-Format Chat Completions, mit und ohne Streaming.
/v1/responsesOpenAI-Format Responses (zustandslos), mit und ohne Streaming.
/v1/messagesAnthropic-Format Messages, für das Anthropic-SDK.
curl https://tokenapi.biz/v1/chat/completions \
-H "Authorization: Bearer $TOKENAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tokenapi-pro",
"messages": [{ "role": "user", "content": "Hello!" }]
}'import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://tokenapi.biz/v1",
apiKey: process.env.TOKENAPI_KEY,
});
const res = await client.chat.completions.create({
model: "tokenapi-pro",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(res.choices[0].message.content);import os
from openai import OpenAI
client = OpenAI(base_url="https://tokenapi.biz/v1", api_key=os.environ["TOKENAPI_KEY"])
res = client.chat.completions.create(
model="tokenapi-pro",
messages=[{"role": "user", "content": "Hello!"}],
)
print(res.choices[0].message.content)Authorization: Bearer sk-tk-…
Der Anthropic-typische Header x-api-key wird ebenfalls akzeptiert. Schlüssel beginnen mit sk-tk-, werden bei der Erstellung nur einmal angezeigt und lassen sich einzeln begrenzen (Anfragen pro Minute, Ausgabengrenze, erlaubte Modelle, Ablaufdatum). Bewahren Sie Schlüssel auf dem Server auf und bauen Sie sie nie in Browser- oder Mobile-Code ein. Einen Schlüssel erhalten Sie per E-Mail an hello@tokenapi.biz.
Verwenden Sie die id aus GET /v1/models als model-Parameter. Eine Modell-ID ist ein stabiles Produkt: Wir können das Backend dahinter aktualisieren oder umleiten, um Qualität und Verfügbarkeit hoch zu halten, ohne dass Sie etwas ändern müssen. Antworten melden immer die aufgerufene Modell-ID.
{
"object": "list",
"data": [
{
"id": "tokenapi-pro",
"object": "model",
"owned_by": "tokenapi",
"display_name": "TokenAPI Pro",
"capabilities": ["streaming", "tools", "json_output"],
"context_length": 131072,
"pricing": {
"currency": "USD",
"prompt": "0.0000015",
"completion": "0.000006",
"input_per_million": 1.5,
"output_per_million": 6
}
}
]
}pricing.prompt / pricing.completion sind USD pro Token (Strings); input_per_million / output_per_million sind USD pro Million Tokens.
Anfrage und Antwort folgen dem OpenAI-Format: messages mit Text- und Bildanteilen, tools / tool_choice, response_format, temperature, top_p, stop, max_tokens oder max_completion_tokens. Jede Antwort enthält den Header x-request-id; geben Sie ihn bei Support-Anfragen an.
Ohne max_tokens gilt die maximale Ausgabelänge des Modells.
Setzen Sie stream: true. Die Teile kommen als data:-Zeilen, und der Stream endet mit data: [DONE]. Mit stream_options.include_usage erhalten Sie den Tokenverbrauch in einem letzten Teil.
const stream = await client.chat.completions.create({
model: "tokenapi-pro",
messages: [{ role: "user", content: "Write a haiku." }],
stream: true,
stream_options: { include_usage: true }, // final chunk carries usage
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}Unterstützt input als String oder Array, instructions, Funktions-Tools, text.format (JSON Schema) und die vollständige Streaming-Ereignisfolge (response.output_text.delta, response.completed, …).
const res = await client.responses.create({
model: "tokenapi-pro",
instructions: "Answer in one sentence.",
input: "What is a token?",
});
console.log(res.output_text);Für Code, der mit dem Anthropic-SDK geschrieben wurde. Unterstützt system, Text- und Bildblöcke, tools mit tool_use / tool_result sowie Streaming-Ereignisse. Fehler folgen dem Anthropic-Format.
import Anthropic from "@anthropic-ai/sdk";
const anthropic = new Anthropic({
baseURL: "https://tokenapi.biz", // SDK appends /v1/messages
apiKey: process.env.TOKENAPI_KEY,
});
const msg = await anthropic.messages.create({
model: "tokenapi-pro",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello!" }],
});{
"error": {
"message": "The model 'nope' does not exist or is disabled.",
"type": "invalid_request_error",
"code": "model_not_found",
"param": null
}
}invalid_request_errorFehlerhaftes JSON, fehlendes model/messages oder ein nicht unterstützter Parameter.
invalid_api_keyAPI-Schlüssel fehlt, ist falsch, deaktiviert oder abgelaufen.
insufficient_quotaDas Guthaben deckt die maximalen Kosten dieser Anfrage nicht, oder die Ausgabengrenze des Schlüssels ist erreicht. Laden Sie auf oder senken Sie max_tokens.
model_not_allowedDieser Schlüssel ist auf andere Modelle beschränkt.
model_not_foundUnbekannte oder deaktivierte Modell-ID. Gültige IDs liefert GET /v1/models.
rate_limit_exceededDas Limit für Anfragen pro Minute dieses Schlüssels ist überschritten. Wiederholen Sie die Anfrage nach der im Retry-After-Header genannten Zeit.
upstream_unavailableAlle Backend-Routen dieses Modells sind fehlgeschlagen. Eine Wiederholung ist sicher.
Upstream-Fehler werden automatisch auf einer anderen Route wiederholt, bevor Sie einen Fehler sehen. Ein 502 bedeutet, dass alle Routen fehlgeschlagen sind und nichts berechnet wurde.
max_tokens) von Ihrem Guthaben reserviert. Reicht das Guthaben nicht, erhalten Sie einen 402, und nichts wird an den Anbieter gesendet.Retry-After./v1/responses: previous_response_id (senden Sie stattdessen den vollständigen Verlauf), eingebaute Tools wie web_search und file_id-Eingaben./v1/messages: erweitertes thinking und cache_control werden ignoriert.n > 1 bei Chat Completions.