# Chat Completions Endpoint: POST /api/v1/chat/completions

> Referenz zum Chat Completions Endpoint: jedes Body-Feld von POST /api/v1/chat/completions, die Antwort, Finish Reasons und Token-Verbrauch. OpenAI-kompatibel.

- URL: https://llmwithcrypto.com/de/docs/chat-completions/
- Zuletzt aktualisiert: 2026-10-23
- Herausgeber: LLMwithCrypto (https://llmwithcrypto.com)

Ein Endpoint beantwortet jedes Modell. Er nimmt denselben Body wie die OpenAI Chat Completions API und gibt dasselbe Objekt zurück, daher braucht eine bestehende Integration nur eine neue Base URL, einen neuen API-Schlüssel und eine Model-ID aus unserer Liste.

**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

| Attribut | Wert |
| --- | --- |
| 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](https://llmwithcrypto.com/de/docs/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](https://llmwithcrypto.com/de/docs/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. |

*Beispiel: a short answer from DeepSeek V4 Pro*

```json
{
  "model": "deepseek-v4-pro",
  "messages": [
    {
      "role": "system",
      "content": "Answer in two sentences."
    },
    {
      "role": "user",
      "content": "What is a context window?"
    }
  ],
  "max_tokens": 200
}
```

*Beispiel: a JSON object from gpt-oss-120b, low temperature*

```json
{
  "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`

```json
{
  "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
  }
}
```

*curl*

```bash
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
  }'
```

*Python*

```python
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")
```

*Node.js*

```javascript
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 dem `tool_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](https://llmwithcrypto.com/de/models/) 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](https://llmwithcrypto.com/de/docs/tool-calling/) |

## 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](https://llmwithcrypto.com/de/pricing/).

### 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.

---

LLMwithCrypto: LLMwithCrypto ist eine OpenAI-kompatible LLM-API für Open-Weight-Modelle — DeepSeek V4 Pro, DeepSeek V4.1 Flash, DeepSeek R1, Qwen3.5 397B A17B, Qwen3 235B A22B Instruct, gpt-oss-120b, gpt-oss-20b, GLM-4.7, Llama 3.3 70B Instruct, Gemma 4 31B, Mistral Large 3, Mistral Small 4 — pro Token aus einem vorausbezahlten Krypto-Guthaben bezahlt, 5 % unter dem Medianpreis der öffentlichen Hosts. Ohne KYC: kein Ausweis, kein Selfie, keine Dokumente. Prompts und Ausgaben werden nicht gespeichert.
