Die OpenAI Decisions API ist ein POST /v1/decisions-Endpunkt, der auf GPT-6 Luna läuft und Text oder Bilder sowie eine Liste von Fragen entgegennimmt und statt Prosa typisierte Antworten zurückgibt: eine predicate-Wahrscheinlichkeit, eine choice mit Wahrscheinlichkeiten pro Option oder einen score über geordnete Ebenen. Die Eingabe kostet 0,10 $ pro 1 Million Tokens, ohne Gebühren für Ausgabe, Cache-Lesen oder Cache-Schreiben, und der Endpunkt befindet sich seit dem 06.10.2026 in der öffentlichen Beta-Phase, wobei OpenAI angibt, dass die allgemeine Verfügbarkeit (GA) „in den kommenden Wochen“ erwartet wird.
Dieser Beitrag behandelt, was der Endpunkt zurückgibt, welche Kosten er verursacht, wie er sich neben Structured Outputs und Funktionsaufrufen einfügt und wie man ihn testet. Für die Schritt-für-Schritt-Anleitung mit curl, Python und JavaScript lesen Sie als Nächstes wie man die OpenAI Decisions API verwendet; wenn Sie bereits die Responses API verwenden, zeigt der Vergleich Decisions vs Responses dieselbe Aufgabe, die auf beide Arten erledigt wird. Wir werden durchweg Apidog verwenden, um den Schlüssel zu speichern, Anfragen zu sichern und das answers-Array zu überprüfen, damit eine Änderung des Modellverhaltens einen Test fehlschlagen lässt, anstatt ein Ticket falsch zuzuweisen.
Anatomie einer Decisions-Anfrage und -Antwort
Drei Anfragefelder, drei Antwortfelder. Keine id, kein generierter Text, nichts zu parsen.
| Teil | Feld | Inhalt |
|---|---|---|
| Anfrage | model |
gpt-6-luna, das einzige heute verfügbare Modell |
| Anfrage | input |
Eine Zeichenkette oder ein Array von Benutzernachrichten, deren Inhalt input_text- und input_image-Teile mischt |
| Anfrage | questions |
Ein Array von Fragen, jede mit einem type, erforderlichen instructions und einem optionalen name |
| Anfrage | safety_identifier |
Optionale Endbenutzer-ID, bis zu 128 Zeichen |
| Antwort | model |
Gibt gpt-6-luna zurück |
| Antwort | answers |
Ein Eintrag pro Frage, in der Reihenfolge Ihrer Anfrage, mit type und name |
| Antwort | usage |
input_tokens, input_tokens_details, output_tokens, output_tokens_details, total_tokens |
Beachten Sie, was fehlt: keine temperature, reasoning, stream, store, tools oder text.format. Dafür möchten Sie die Responses API. Und output_tokens ist in OpenAIs eigenem Referenzbeispiel 0, weshalb die untenstehende Preisgestaltung keine Ausgabeposition enthält.
Die drei Fragetypen
Jede Frage hat ihren eigenen type, und Sie können Typen bei einer Eingabe mischen. Stellen Sie unabhängige Fragen in dieselbe Anfrage; für Entscheidungen, die von einer früheren Antwort abhängen, empfiehlt der OpenAI-Leitfaden, separate Anfragen zu senden.
predicate: eine Ja/Nein-Wahrscheinlichkeit
Ein predicate fragt, ob eine Bedingung zutrifft, und gibt eine Wahrscheinlichkeit von 0 bis 1 zurück, dass dies der Fall ist.
curl https://api.openai.com/v1/decisions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-luna",
"input": "The box arrived crushed and the screen is cracked.",
"questions": [
{"type": "predicate", "name": "damaged",
"instructions": "Is the product described as damaged?"}
]
}'
OpenAIs Referenzbeispiel für diese Form gibt zurück:
{
"model": "gpt-6-luna",
"answers": [
{"type": "predicate", "name": "damaged", "probability": 0.95}
],
"usage": {
"input_tokens": 42,
"input_tokens_details": {"cached_tokens":0,"cache_write_tokens":0},
"output_tokens": 0,
"output_tokens_details": {"reasoning_tokens":0},
"total_tokens": 42
}
}
choice: ein Label aus einer ungeordneten Menge
Ein choice fügt ein choices-Array von {value, description}-Objekten hinzu: 2 bis 255 eindeutige Auswahlmöglichkeiten, wobei value ein String oder ein Boolean ist (true und "true" sind unterschiedlich). OpenAI empfiehlt einen Fallback wie other, wenn Ihre Kategorien nicht jede Eingabe abdecken.
{
"model": "gpt-6-luna",
"input": "I was charged twice for my order.",
"questions": [
{"type": "choice", "name": "department",
"instructions": "Which team should handle this ticket?",
"choices": [
{"value":"billing"}, {"value":"technical"},
{"value":"shipping"}, {"value":"other"}
]}
]
}
Die beispielhafte Antwort des Leitfadens für diese Eingabe:
{"type": "choice", "name": "department", "choice": "billing",
"probabilities": [
{"value":"billing","probability":0.95},
{"value":"technical","probability":0.02},
{"value":"shipping","probability":0.01},
{"value":"other","probability":0.02}
],
"confidence": 0.93}
score: eine Position auf einer geordneten Skala
Ein score fügt levels hinzu, ein Array von {label, description}, das von der niedrigsten zur höchsten Stufe geordnet ist. Indizes beginnen bei 0, und der zurückgegebene score ist der wahrscheinlichkeitengewichtete Durchschnitt dieser Indizes, sodass er zwischen den Stufen liegen kann.
{
"model": "gpt-6-luna",
"input": "Export fails in Safari but works in Chrome.",
"questions": [
{"type": "score", "name": "severity",
"instructions": "How badly does this bug block the user?",
"levels": [
{"label":"Cosmetic"},
{"label":"Workaround available"},
{"label":"Fully blocked"}
]}
]
}
Im Beispiel des Leitfadens liegen die Wahrscheinlichkeiten über die drei Stufen bei 0,1, 0,7 und 0,2, was einen score von 1,1 und eine confidence von 0,55 ergibt. Lesen Sie 1,1 als „zwischen Stufe 1 und Stufe 2, nahe bei 1“. Die Regel des Leitfadens: choice für ungeordnete Kategorien wie Abteilungen; score für geordnete Stufen wie Schweregrad.
Ein vierter Antworttyp, refusal, kann für jede einzelne Frage als {"type":"refusal","name":...} erscheinen. Andere Fragen in derselben Anfrage können weiterhin Antworten erhalten, verzweigen Sie also nach type, bevor Sie ein Feld lesen.
Geschwindigkeit, wie von OpenAI beschrieben
OpenAI gibt an, dass die Decisions API etwa 10-mal schneller ist als die Responses API; die Ankündigung formuliert es als bis zu 10-mal schneller als GPT-6 Luna über Responses. OpenAI veröffentlicht keine absolute Latenzzahl. Ein Entwickler im OpenAI-Forum berichtete, dass Bild-Eingabe-Entscheidungen auf einer langsamen Verbindung in etwa 0,8 Sekunden zurückgegeben wurden: eine Anekdote, kein Benchmark. Messen Sie Ihren eigenen p95-Wert, bevor Sie etwas versprechen.
Preisgestaltung: 0,10 $ pro Million Eingabe-Tokens, sonst nichts
Mit gpt-6-luna kostet die Eingabe 0,10 $ pro 1 Million Tokens. Sie zahlen nur für Eingabe-Tokens: Es fallen keine Gebühren für Cache-Lesen, Cache-Schreiben oder Ausgabe-Tokens an. Das usage-Objekt enthält die Felder cached_tokens und cache_write_tokens, aber laut einer Antwort im OpenAI-Entwicklerforum gibt es noch kein Caching für Decisions, erwarten Sie also 0.
Zwei Multiplikatoren kommen zur Anwendung. Eingaben über 272.000 Tokens werden zum doppelten Preis abgerechnet, was 0,20 $ pro 1 Million (abgeleitet vom Long-Context-Multiplikator der Preisgestaltungsseite) entspricht. Die regionale Verarbeitung über die US- oder EU-Datenresidenz-Endpunkte erhöht die Kosten um 10%. Für /v1/decisions ist keine Batch-, Flex- oder Fast-Stufe dokumentiert, planen Sie also keinen Rabatt ein, der nur für Responses existiert.
Hier ist die Berechnung für eine Support-Routing-Workload. Ein 500-Token-Ticket mit drei Fragen in einer Anfrage kostet 500 / 1.000.000 x 0,10 $ = 0,00005 $. Eine Million solcher Tickets kostet 50 $. Dasselbe Ticket über die Responses API mit einem 40-Token-JSON-Label zu 0,50 $ pro 1 Million Ausgabe fügt zusätzlich zur Eingabe 40 / 1.000.000 x 0,50 $ = 0,00002 $ pro Anfrage hinzu, noch bevor Reasoning-Tokens anfallen, die Luna als Ausgabe bei Responses abrechnet und Decisions überhaupt nicht abrechnet. Die ehrliche Formulierung ist „Decisions rechnet keine Ausgabe-Tokens ab“, nicht ein Prozentsatz. Für die vollständige Luna-Preisliste und was Prompt-Caching bei Responses bewirkt, siehe was ist GPT-6 Luna.
Wann man Decisions, Structured Outputs oder Funktionsaufrufe verwendet
OpenAI zieht selbst die Grenze: Verwenden Sie Structured Outputs mit der Responses API, wenn Sie ein Objekt benötigen, das Ihrem eigenen JSON-Schema folgt, wie extrahierte Felder oder eine schriftliche Erklärung, oder Funktionsaufrufe, wenn Sie möchten, dass das Modell einen Tool-Aufruf mit Argumenten anfordert. Decisions ist für die Klassifizierung von Inhalten, das Routing von Anfragen und die Priorisierung von Aufgaben.
| Sie benötigen | Verwenden Sie |
|---|---|
| Ein Label, eine Wahrscheinlichkeit oder einen Schweregrad mit Konfidenz | Decisions API |
| Ein Objekt in Ihrem eigenen JSON-Schema (extrahierte Felder, eine Erklärung) | Structured Outputs in Responses |
| Dass das Modell ein Tool auswählt und dessen Argumente füllt | Funktionsaufrufe in Responses |
| Streaming, Konversationsstatus, Tools, Caching oder Batch | Responses API |
Eine Structured Outputs-Enum kann ein Label zurückgeben. Sie kann keine Wahrscheinlichkeitsverteilung oder ein confidence-Feld zurückgeben, es sei denn, Sie bitten das Modell, eines zu schreiben, und dann ist es generierter Text, keine gemessene Wahrscheinlichkeit. Decisions liefert Ihnen Zahlen, die Sie schwellen können. OpenAI empfiehlt Ihnen, diese Schwellenwerte anhand von gelabelten Beispielen in Ihrer eigenen Anwendung festzulegen und die Kosten von Fehlalarmen gegen die von Fehlnegativen abzuwägen, da keine Genauigkeits- oder Kalibrierungszahlen veröffentlicht werden. Erwägen Sie einen zweiten Anbieter für typisierte Entscheidungen? Der Vergleich Decisions vs Jev behandelt Preis, Eingaben und Ausgabeformate nebeneinander.
Bilder und der Base64-Vorbehalt
input akzeptiert Benutzernachrichten, deren Inhalt input_text- und input_image-Teile mischt, mit einem optionalen detail von low, high, auto (Standard) oder original. Der Leitfaden besagt, dass Bilder inline Base64-Daten-URLs sein müssen; gehostete URLs und file_id werden nicht unterstützt. Die API-Referenz listet auch öffentlich zugängliche HTTP(S)-URLs auf, bis zu 128 Bilder pro Anfrage. Betrachten Sie Base64 als den dokumentierten Pfad und testen Sie eine gehostete URL, bevor Sie sich darauf verlassen.
Datenkontrollen
Die Decisions API unterstützt Zero Data Retention und die HIPAA-Nutzung für berechtigte Kunden. Datenresidenz und regionale Verarbeitung werden in den Vereinigten Staaten und Europa (EWR plus Schweiz) über us.api.openai.com und eu.api.openai.com unterstützt. Der Endpunkt ist von jeder unterstützten API-Region aus erreichbar, obwohl die Verfügbarkeit in einer Region nicht bedeutet, dass dort Inferenz durchgeführt wird. Missbrauchsüberwachungsprotokolle werden standardmäßig bis zu 30 Tage aufbewahrt. Wenn Sie Patientennachrichten routen, lesen Sie zuerst unseren HIPAA API Compliance Guide.
Verfügbarkeit: jetzt Beta, bald GA
Der Endpunkt wurde am 06.10.2026 für alle Entwickler als öffentliche Beta-Version freigegeben und ist in der Referenz unter „Beta APIs“ aufgeführt. OpenAIs Leitfaden besagt, dass die allgemeine Verfügbarkeit (GA) „in den kommenden Wochen“ erwartet wird; es wird kein Datum genannt. SDK-Beispiele erfordern Python 3.26.0, JavaScript 7.30.0, Go 3.73.0, Ruby 0.101.0 oder Java 4.78.0 oder höher; der Aufruf lautet client.decisions.create(...) in Python und JavaScript. Ein Playground unter platform.openai.com/decisions ermöglicht es Ihnen, Fragen auszuprobieren, bevor Sie Code schreiben. Es werden keine Decisions-spezifischen Ratenbegrenzungen veröffentlicht; überprüfen Sie die Seite mit den Limits Ihrer Organisation. Es gibt keine kostenlose Decisions-Stufe; für kostenlosen Luna-Zugang, siehe unseren Beitrag Luna kostenlose Routen.
Testen von Decisions-Aufrufen in Apidog
Typisierte Antworten sind leicht zu überprüfen, was der Sinn der Sache ist. Drei Schritte decken die meisten Teams ab.
Speichern Sie den Schlüssel einmal. Legen Sie OPENAI_API_KEY in einer Apidog-Umgebungsvariable ab und referenzieren Sie {{OPENAI_API_KEY}} im Authorization: Bearer-Header, damit der Klartextschlüssel niemals in einer geteilten Anfrage landet.
Speichern Sie eine Anfrage pro Fragetyp mit JSONPath-Assertionen: Status 200, $.answers[0].type ist gleich choice, $.answers[0].choice ist gleich billing, $.answers[0].confidence größer als 0,8, $.answers[?(@.name=='damaged')].probability größer als 0,9 und $.usage.output_tokens ist gleich 0, was eine Abrechnungsüberraschung abfängt, bevor Ihre Rechnung es tut.
Wählen Sie Schwellenwerte aus einem gelabelten Datensatz. Erstellen Sie ein Testszenario in Apidog, das dieselbe Anfrage über eine CSV-Datei mit Tickettext und erwarteter Abteilung ausführt, und legen Sie dann den Auto-Route-Schwellenwert fest, an dem die Kosten für False Positives die Kosten für die Überprüfungswarteschlange überschreiten. Führen Sie es in CI mit der Apidog CLI aus, damit eine Modell- oder Alias-Änderung einen Test fehlschlagen lässt, anstatt einen Kunden zu beeinträchtigen. Der Leitfaden behandelt jeden Schritt, einschließlich des Mockens des answers-Arrays, damit das Frontend gebaut werden kann, bevor der Router endgültig ist.
FAQ
Ist die Decisions API ein neues Modell? Nein. Es ist ein Endpunkt, POST /v1/decisions, der auf GPT-6 Luna läuft. Luna wurde am 22.09.2026 gestartet; der Endpunkt wurde am 06.10.2026 in die öffentliche Beta-Phase überführt.
Was kostet die Decisions API? 0,10 $ pro 1 Million Eingabe-Tokens ohne Gebühren für Ausgabe, Cache-Lesen oder Cache-Schreiben. Eingaben über 272.000 Tokens kosten das Doppelte, und die regionale Verarbeitung erhöht die Kosten um 10%.
Gibt es mein eigenes JSON-Schema zurück? Nein. Es gibt answers mit den Feldern probability, choice oder score zurück. Für Ihr eigenes Schema verwenden Sie Structured Outputs in der Responses API.
Wie genau ist es? OpenAI veröffentlicht keine Genauigkeits- oder Kalibrierungszahlen. Legen Sie Schwellenwerte anhand Ihrer eigenen gelabelten Daten fest; ein datengesteuertes LLM-Testszenario ist der praktische Weg.
Wo man anfängt
Wählen Sie eine Routing-Entscheidung, die Ihre App heute mit einem Regex oder einer Prompt-und-Parse-Schleife trifft, formulieren Sie sie als eine einzelne choice-Frage mit einem other-Fallback, und führen Sie sie an 50 gelabelten Beispielen aus. Wenn sich die Konfidenzverteilung sauber trennt, haben Sie einen Schwellenwert und einen Test. Wenn nicht, benötigt die Frage schärfere Kriterien. Um dieses Experiment mit gespeicherten Anfragen und Assertionen durchzuführen, laden Sie Apidog herunter und importieren Sie den obigen Curl-Befehl.
