Endpunkte
Chat Completions
POST /chat/completions im OpenAI-Chat-Format für jedes Textmodell: Parameter, Antwortformat, Nachrichtenrollen, Nutzung, Kosten und Fehlercodes.
Im Playground testenDer Chat-Completions-Endpunkt verwendet das OpenAI-Chat-Format und funktioniert mit jedem Textmodell im Katalog: GPT, Claude, Gemini, Llama, DeepSeek, Mistral und Hunderten mehr. Der Request-Body geht unverändert an den Upstream-Anbieter. api14 prüft nur Ihren Schlüssel, das Modell, Ihre Limits und Ihr Guthaben und erfasst dann die Nutzung, wenn der Request abgeschlossen ist.
POST https://api14.com/api/v1/chat/completions
Authorization: Bearer sk-api14-...
Content-Type: application/json
Request
| Parameter | Typ | Beschreibung |
|---|---|---|
model | string, erforderlich | Modell-ID, z. B. anthropic/claude-sonnet-4.5. Varianten wie :online oder :nitro sind erlaubt. Siehe Modell-IDs. |
messages | array, erforderlich | Konversation als { role, content }-Objekte. Rollen: system, developer, user, assistant, tool. |
models | string[] | Fallback-Modelle, die der Reihe nach versucht werden, falls das erste fehlschlägt. Siehe Provider-Routing. |
stream | boolean | Tokens als Server-Sent Events streamen. Siehe Streaming. |
max_tokens / max_completion_tokens | integer | Obergrenze für generierte Tokens. |
temperature | number | Sampling-Temperatur, meist 0–2. |
top_p, top_k, min_p, top_a | number | Weitere Sampling-Einstellungen. Modelle, die sie nicht unterstützen, ignorieren sie. |
frequency_penalty, presence_penalty, repetition_penalty | number | Steuerung von Wiederholungen. |
stop | string | string[] | Stoppsequenzen. |
seed | integer | Möglichst deterministisches Sampling. |
logprobs, top_logprobs | boolean, integer | Gibt Token-Log-Wahrscheinlichkeiten zurück, sofern das Modell sie unterstützt. |
tools, tool_choice, parallel_tool_calls | Function Calling. Siehe Tool Calling. | |
response_format | object | JSON-Modus oder JSON-Schema-Ausgabe. Siehe Structured Outputs. |
reasoning, include_reasoning | object, boolean | Steuerung des Denkens. Siehe Reasoning. |
plugins, web_search_options | Websuche. Siehe Websuche. | |
provider | object | Präferenzen für Upstream-Anbieter. Siehe Provider-Routing. |
modalities | string[] | z. B. ["image", "text"] für Bildausgabe oder ["text", "audio"] für Audioausgabe. |
prediction | object | Vorhergesagte Ausgabe ({ type: "content", content }), um die Latenz bei Bearbeitungen zu senken. |
transforms | string[] | z. B. ["middle-out"], um Prompts zu komprimieren, die das Kontextfenster überschreiten. |
user | string | Ihre eigene Kennung für den Endnutzer. |
Das content einer Nachricht kann ein String oder ein Array von Content-Parts (text, image_url, file, input_audio) sein. Siehe Vision & Dateien.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "openai/gpt-5-mini",
"messages": [
{
"role": "user",
"content": "Explain vector databases in two sentences."
}
]
});
console.log(result.choices[0].message.content);
Response
{
"id": "gen-1760000000-abc123",
"object": "chat.completion",
"created": 1760000000,
"model": "anthropic/claude-sonnet-4.5",
"provider": "Anthropic",
"choices": [
{
"index": 0,
"finish_reason": "stop",
"message": { "role": "assistant", "content": "Hello! How can I help you today?" }
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 9,
"total_tokens": 21,
"prompt_tokens_details": { "cached_tokens": 0 },
"completion_tokens_details": { "reasoning_tokens": 0 },
"cost": 0.000171
}
}
usage.cost sind die Kosten des Requests in USD. api14 bucht sie nach Abschluss des Requests von Ihrem Guthaben ab. Die id ist die Generation-ID, die Sie später mit der Generation-Abfrage nachschlagen können.
Hinweise zur Abrechnung
- Sie zahlen den gelisteten Preis des Modells; die Belastung wird in
usage.costzurückgegeben. Siehe Preise & Abrechnung. - Fehlgeschlagene Requests (jeder 4xx- oder 5xx-Status) werden nicht berechnet.
- Enthält der Request
models: [...], muss jedes Fallback-Modell für Ihren Schlüssel und Plan freigegeben sein, sonst lehnt das Gateway den Request ab, bevor er an den Upstream geht.
Fehler
| Status | Code | Wann |
|---|---|---|
| 400 | model_required | model fehlt. |
| 400 | invalid_json | Der Body ist kein JSON-Objekt. |
| 401 | invalid_api_key | Der Schlüssel fehlt, ist ungültig oder widerrufen. |
| 402 | insufficient_balance | Ihr USD-Guthaben beträgt $0. |
| 403 | model_not_allowed / plan_required | Die Allowlist Ihres Schlüssels oder Ihr Plan deckt dieses Modell nicht ab. |
| 404 | model_not_found | Unbekannte oder deaktivierte Modell-ID. |
| 413 | payload_too_large | Der Request-Body ist größer als 25 MB. |
| 429 | rate_limited / daily_limit_reached | Das RPM-Limit oder das tägliche USD-Limit des Schlüssels wurde erreicht. |
| 502 | upstream_unavailable | Der Upstream-Anbieter war nicht erreichbar. |
Upstream-Fehler wie eine Überschreitung der Kontextlänge oder Content-Moderation kommen mit ihrem ursprünglichen Statuscode und demselben Fehlerformat zurück. Siehe Fehler.