Response erstellen
Fordert eine Modellantwort im Anfrageformat der OpenAI Responses API an (input/instructions); wird intern in das Chat-Completions-Format konvertiert und zu jedem unterstützten Modell geroutet — dies ist eine Übersetzungsschicht, kein separater Inferenzpfad. Dies ist ein zustandsloser Endpunkt: store: true oder ein nicht-null previous_response_id zu übergeben liefert 400 (siehe den 400-Eintrag unten für die abweichende Fehlerform) — jeder Aufruf muss die vollständige Konversation in input enthalten. Beim Streaming wird Reasoning über response.reasoning_text.delta-Events und ein type:"reasoning"-Output-Item dargestellt.
/api/v1/responsesAutorisierung
AuthorizationerforderlichAPI-Schlüssel als Bearer-Token im Authorization-Header.
Body
modelerforderlichDas zu verwendende Modell, mit Provider-Präfix, z. B. "openai/gpt-5.2".
"openai/gpt-5.2"inputerforderlichKonversationseingabe — entweder ein einzelner String oder ein strukturiertes Array von Items (message/function_call/function_call_output). Nachrichten können reinen Text oder ein Content-Block-Array mit input_image verwenden.
instructionsSystemebene-Anweisungen, eingefügt als erste System-Nachricht am Anfang des konvertierten messages-Arrays.
streamtrue streamt die Antwort als Responses-API-SSE-Events (response.created, response.output_item.added, response.output_text.delta, response.reasoning_text.delta, response.completed und weitere); weggelassen oder false liefert eine einzelne JSON-Antwort.
max_output_tokensMaximale Anzahl an Tokens, die die Antwort generieren darf (wird in das upstream Chat-Completions-max_tokens umgewandelt).
toolsListe der Tool-/Funktionsdefinitionen, die das Modell aufrufen kann. Akzeptiert die flache Responses-Spec-Form {type:"function", name, description, parameters} (empfohlen) sowie die verschachtelte Chat-Completions-Form {type:"function", function:{...}} (aus Kompatibilitätsgründen akzeptiert, unverändert weitergereicht). Das tools-Feld des Response-Objekts spiegelt den hier tatsächlich gesendeten Wert wider.
tool_choiceSteuert, ob/wie das Modell zum Aufrufen eines Tools gezwungen wird, z. B. {type:"function", name:"..."} (flache Form, empfohlen, automatisch für Upstream konvertiert) oder "auto". Das tool_choice-Feld des Response-Objekts spiegelt den hier gesendeten Wert wider, Standard "auto", wenn weggelassen.
parallel_tool_callsOb parallele Tool-Aufrufe erlaubt sind, wenn tools bereitgestellt werden. Standard true, wenn weggelassen; das parallel_tool_calls-Feld des Response-Objekts spiegelt den hier gesendeten Wert wider.
pluginsArray von Plugins (z. B. {id:"web"} für Websuche). Nur auf manchen Modellrouten unterstützt, sonst wirkungslos; die Modellvariante :online injiziert {id:"web"} automatisch nur, wenn Sie keine plugins gesendet haben, ebenfalls nur auf unterstützenden Routen.
store⚠️ Dieser Endpunkt ist zustandslos — true zu übergeben liefert sofort 400, es wird nie akzeptiert oder stillschweigend ignoriert. Es wegzulassen oder false zu übergeben ist die einzig gültige Nutzung.
previous_response_id⚠️ Dieser Endpunkt ist zustandslos — jeden Nicht-null-Wert zu übergeben liefert sofort 400, es wird nie akzeptiert oder stillschweigend ignoriert. Um eine Konversation fortzusetzen, senden Sie stattdessen den vollständigen Verlauf im input-Array.
modelsFallback-Modellliste — wird der Reihe nach versucht, nur verwendet, wenn die Kandidatengruppe des primären Modells erschöpft ist.
reasoningDenk-Steuerungsobjekt für Reasoning-Modelle (z. B. {effort, max_tokens}), unverändert upstream weitergeleitet — es werden keine Standardwerte injiziert.
reasoning_effortFlaches Kurzformfeld für reasoning.effort.
lowmediumhighthinkingZusätzliches Token-Budget von Claudes Extended Thinking (z. B. {type:"enabled", budget_tokens:2048}), zusätzlich zu max_output_tokens — unverändert weitergeleitet, keine Standardwerte injiziert.
enable_thinkingThinking-Umschalter für Qwen3/GLM-Familie-Modelle, unverändert weitergeleitet.