Kurze Antwort
Welche Felder akzeptiert der Chat Completions Endpoint von LLMwithCrypto?
Er akzeptiert den Body der OpenAI Chat Completions API: model und messages sind erforderlich; max_tokens, temperature, top_p, stop, stream, stream_options, tools, tool_choice und response_format sind optional. LLMwithCrypto gibt ein chat.completion Objekt mit einer usage Anzahl zurück, pro Token von Ihrem Guthaben abgerechnet, wie am 23. Oktober 2026 dokumentiert. Tool Calling und JSON-Ausgabe hängen vom Modell ab.
Der Endpoint auf einen Blick
| Methode und URL | POST https://llmwithcrypto.com/api/v1/chat/completions |
|---|---|
| Authentifizierung | Übergeben Sie Ihren API-Schlüssel als Bearer-Token im Authorization-Header, wie es das OpenAI SDK tut |
| Body | JSON, Content-Type: application/json |
| Response | chat.completion Objekt oder Server-Sent Events mit stream: true |
| Abrechnung | Sie zahlen pro Token aus Ihrem Guthaben: Input- und Output-Tokens werden mit dem eigenen Tokenizer des Modells gezählt und zum Preis des Modells pro 1M Tokens berechnet. Ein Aufruf, der mit einem Fehler endet, kostet nichts |
| Funktionen | Streaming funktioniert bei jedem Modell; Tool Calling und JSON-Ausgabe richten sich nach dem, was das jeweilige Modell selbst unterstützt |
Eine Chat Completion erstellen
POST/api/v1/chat/completions
Sendet eine Konversation an ein Modell und gibt dessen Antwort mit den Token-Zahlen zurück. Das Beispiel stellt DeepSeek V4 Pro eine kurze Frage mit einem Limit von 200 Tokens; IDs, Zeiten und Zahlen in der Antwort sind illustrativ.
Authentifizierung: API-Schlüssel im Header Authorization: Bearer API_KEY.
Request-Body
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
model | string | Ja | Die Model-ID, zum Beispiel deepseek-v4-pro oder gpt-oss-120b. GET /api/v1/models gibt jede ID zurück, die Ihr API-Schlüssel aufrufen kann. |
messages | object[] | Ja | Die Konversation, älteste zuerst. Jedes Element hat eine role (system, user, assistant oder tool) und einen content String; tool Nachrichten tragen zusätzlich eine tool_call_id. |
max_tokens | integer | Nein | Die maximale Anzahl Tokens, die die Antwort verwenden darf. Ohne sie kann das Modell schreiben, bis sein Kontextfenster voll ist, und Sie zahlen für jedes Token, das es schreibt. |
temperature | number | Nein | 0 bis 2. Niedriger ist vorhersehbarer, höher ist variabler. Der Standardwert hängt vom Modell ab. |
top_p | number | Nein | 0 bis 1, Nucleus Sampling. Ändern Sie temperature oder top_p, nicht beides. |
stop | string or string[] | Nein | Bis zu 4 Sequenzen, die die Antwort beenden, wenn das Modell sie schreibt. Sie sind nicht in der Antwort enthalten. |
stream | boolean | Nein | true sendet die Antwort als Server-Sent Events, Stück für Stück. Siehe Streaming. |
stream_options | object | Nein | {"include_usage": true} fügt ein letztes Event mit dem usage eines gestreamten Aufrufs hinzu. |
tools | object[] | Nein | Funktionen, deren Aufruf das Modell von Ihnen verlangen kann, im OpenAI-Format. Funktioniert bei den Modellen, die Tool Calling unterstützen. Siehe Tool Calling. |
tool_choice | string or object | Nein | auto (Standard, wenn tools gesetzt ist), none, required oder {"type": "function", "function": {"name": "…"}}. |
response_format | object | Nein | {"type": "json_object"} verlangt ein gültiges JSON-Objekt, bei den Modellen, die es unterstützen. Geben Sie in Ihrem Prompt an, was das JSON enthalten soll. |
{
"model": "deepseek-v4-pro",
"messages": [
{
"role": "system",
"content": "Answer in two sentences."
},
{
"role": "user",
"content": "What is a context window?"
}
],
"max_tokens": 200
}{
"model": "gpt-oss-120b",
"messages": [
{
"role": "user",
"content": "Return {\"city\": string, \"country\": string} for the Eiffel Tower."
}
],
"response_format": {
"type": "json_object"
},
"temperature": 0.2,
"max_tokens": 100
}Response 200
{
"id": "chatcmpl-8f2c41d0a7b94e1c",
"object": "chat.completion",
"created": 1792742400,
"model": "deepseek-v4-pro",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "A context window is the maximum number of tokens a model can read and write in one request. Anything beyond it must be cut or summarized before the call."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 27,
"completion_tokens": 34,
"total_tokens": 61
}
}Codebeispiele
curl -s "https://llmwithcrypto.com/api/v1/chat/completions" \
-H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro",
"messages": [
{"role": "system", "content": "Answer in two sentences."},
{"role": "user", "content": "What is a context window?"}
],
"max_tokens": 200
}'import os
from openai import OpenAI
client = OpenAI(
base_url="https://llmwithcrypto.com/api/v1",
api_key=os.environ["LLMWITHCRYPTO_API_KEY"],
)
resp = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[
{"role": "system", "content": "Answer in two sentences."},
{"role": "user", "content": "What is a context window?"},
],
max_tokens=200,
)
print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, "in,", resp.usage.completion_tokens, "out")import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://llmwithcrypto.com/api/v1',
apiKey: process.env.LLMWITHCRYPTO_API_KEY,
});
const resp = await client.chat.completions.create({
model: 'deepseek-v4-pro',
messages: [
{ role: 'system', content: 'Answer in two sentences.' },
{ role: 'user', content: 'What is a context window?' },
],
max_tokens: 200,
});
console.log(resp.choices[0].message.content);
console.log(resp.usage.prompt_tokens, 'in,', resp.usage.completion_tokens, 'out');Wie schreibe ich die Messages?
Senden Sie bei jedem Aufruf die gesamte Konversation, die älteste Nachricht zuerst: Die API hat kein Gedächtnis zwischen Aufrufen, und nichts von Ihren Prompts wird gespeichert. Wir speichern Ihre Prompts und die Antworten der Modelle nicht: Sobald eine Antwort gesendet ist, ist ihr Text weg. Jeder Aufruf hinterlässt eine Logzeile mit Zeit, Konto, Modell und Token-Anzahl, die nach 30 Tagen gelöscht wird.
system: Anweisungen, die jede Antwort rahmen, etwa Ton, Sprache oder Ausgabeformat. Eine davon an den Anfang.user: was die Person oder Ihr Programm fragt.assistant: die früheren Antworten des Modells, damit es die Konversation fortsetzen kann.tool: das Ergebnis einer Funktion, die das Modell Sie ausführen ließ, mit demtool_call_id, das es Ihnen gegeben hat.
Jede Nachricht zählt als Input-Tokens, daher kosten lange Verläufe bei jeder Runde mehr. Kürzen oder fassen Sie alte Runden zusammen, wenn eine Konversation wächst.
Wie lang darf eine Anfrage sein?
Input und Output zusammen müssen in das Kontextfenster des Modells passen. Stand 23. Oktober 2026 liest DeepSeek V4 Pro bis zu 1M Tokens, gpt-oss-120b bis zu 128K und Qwen3 235B bis zu 256K; die Modellseite listet alle auf.
Eine Anfrage, die nicht hineinpasst, kommt als 400 mit dem Code context_length_exceeded zurück und kostet nichts. Setzen Sie max_tokens so, dass der Prompt plus die längste Antwort, die Sie akzeptieren, im Fenster bleibt.
Was sagt mir finish_reason?
finish_reason | Bedeutung | Was zu tun ist |
|---|---|---|
stop | Das Modell hat seine Antwort beendet oder eine Ihrer stop-Sequenzen geschrieben | Nichts: die Antwort ist vollständig |
length | Die Antwort hat max_tokens oder das Kontextfenster erreicht | max_tokens erhöhen oder eine kürzere Antwort anfordern |
tool_calls | Das Modell möchte, dass Sie eine oder mehrere Funktionen ausführen | Führen Sie sie aus und senden Sie die Ergebnisse zurück, siehe Tool-Aufrufe |
Welche OpenAI-Parameter werden nicht unterstützt?
Die Felder in der Tabelle oben sind der gesamte Vertrag. Andere aus der OpenAI API, etwa n (mehrere Antworten pro Aufruf), logprobs, audio oder Bild-Inputs, werden nicht unterstützt: Senden Sie nur die hier aufgeführten Felder. Die Modelle sind Textmodelle; keines nimmt Bilder über diesen Endpoint entgegen.
Das Feld model akzeptiert nur die IDs auf unserer Liste. Wir verkaufen keinen Zugang zu GPT, Claude, Gemini oder Grok: Deren Hersteller verbieten den Weiterverkauf von API-Zugang ohne ihre Zustimmung, und wir haben sie nicht.
Chat Completions: häufige Fragen
Gibt es einen Legacy-Completions-Endpoint?
Nein. Es existiert nur das Chat-Format; ein einzelner Prompt ist ein messages-Array mit einer user-Nachricht.
Was kostet ein Aufruf?
Sie zahlen pro Token aus Ihrem Guthaben: Input- und Output-Tokens werden mit dem eigenen Tokenizer des Modells gezählt und zum Preis des Modells pro 1M Tokens berechnet. Ein Aufruf, der mit einem Fehler endet, kostet nichts. Die Preise pro Modell stehen auf der Preisseite.
Kann ich meine vergangenen Anfragen einsehen?
Nein, das ist so gewollt. Wir speichern Ihre Prompts und die Antworten der Modelle nicht: Sobald eine Antwort gesendet ist, ist ihr Text weg. Jeder Aufruf hinterlässt eine Logzeile mit Zeit, Konto, Modell und Token-Anzahl, die nach 30 Tagen gelöscht wird.
Warum brach meine Antwort mittendrin ab?
finish_reason ist dann length: Die Antwort hat max_tokens erreicht. Erhöhen Sie es, innerhalb des Kontextfensters des Modells.