Entwickeln / Referenz
Responses
Erzeugt und verwaltet Antworten im Format der OpenAI Responses API und maskiert Anweisungen und Eingaben, wenn die Maskierung aktiv ist.
/v1/responses - Familie
- chat
- Maskierung
- ja
- Streaming
- ja, SSE
- Format
- JSON
- Abrechnung
- Tokens
Anfrage
Das Gateway nimmt den Body im Format der OpenAI Responses API an. model ist Pflicht. Setzen Sie eine Modell-ID aus GET /v1/models ein. Das Modell muss zur Familie chat gehören und bei einem Anbieter im OpenAI-Format laufen.
Die Responses API bedienen Modelle von Anbietern, die diese API im OpenAI-Format anbieten. Welche Modelle Ihr Schlüssel aufrufen darf, liefert GET /v1/models. Dort steht im Feld endpoint_family für diesen Endpunkt der Wert chat. Ob ein Anbieter die Responses API unterstützt, entscheidet der Anbieter. Lehnt er die Anfrage ab, erhalten Sie seinen Statuscode und Body unverändert.
curl https://api.noirdoc.de/v1/responses \
-H "Authorization: Bearer $NOIRDOC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "<modell-id>",
"instructions": "Antworten Sie in drei Sätzen.",
"input": "Was schreibt Herr Müller der Kanzlei?"
}'import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.noirdoc.de/v1",
api_key=os.environ["NOIRDOC_API_KEY"],
)
response = client.responses.create(
model="<modell-id>",
instructions="Antworten Sie in drei Sätzen.",
input="Was schreibt Herr Müller der Kanzlei?",
)
print(response.output_text)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.noirdoc.de/v1",
apiKey: process.env.NOIRDOC_API_KEY,
});
const response = await client.responses.create({
model: "<modell-id>",
instructions: "Antworten Sie in drei Sätzen.",
input: "Was schreibt Herr Müller der Kanzlei?",
});
console.log(response.output_text);Was Noirdoc ändert
| Bereich | Verhalten |
|---|---|
| Modell | Das Gateway löst die Modell-ID über den Katalog auf und sendet dem Anbieter dessen eigenen Modellnamen. Nennt die Antwort im Feld model diesen Namen, setzt das Gateway dort wieder die ID ein, die Sie gesendet haben. |
| Anbieter | Der Header X-Noirdoc-Provider in der Antwort nennt den Anbieter, auch bei einem Fehler des Anbieters. Siehe Anbieter & Routing. |
| Maskierung | Ist die Maskierung aktiv, ersetzt das Gateway personenbezogene Daten in instructions und input durch Platzhalter und stellt die Originalwerte in der Antwort wieder her, auch im Stream. Die Felder listet Maskierte Felder. |
| Anweisung zu Platzhaltern | Hat das Gateway Platzhalter gesetzt, stellt es instructions eine Anweisung voran, die Platzhalter wie echte Werte zu behandeln. |
previous_response_id | Bei aktiver Maskierung lädt das Gateway die Zuordnung der vorigen Antwort. Derselbe Wert erhält dann denselben Platzhalter, und die Antwort wird vollständig zurückübersetzt. Wie lange die Zuordnung gespeichert bleibt, beschreibt Maskierung. |
| Dateien und Bilder | Teile vom Typ input_image und input_file sind nur erlaubt, wenn Admins Ihrer Organisation unter Models → Datenschutz die Option Dateiinhalte zulassen eingeschaltet haben. Details: Dateien. |
| Header | Das Gateway entfernt Ihren Schlüssel und X-Noirdoc-Mask, bevor es die Anfrage weiterleitet. |
Verweise auf gespeicherte Objekte
Die von Noirdoc verwalteten Anbieter nutzen ein gemeinsames Konto für alle Organisationen. Dort prüft das Gateway jeden Verweis im Body:
previous_response_id, referenzierte Dateien (file_id) und Container müssen über Ihre Organisation entstanden sein. Sonst antwortet das Gateway mit 404object_not_found.conversation,prompt.id,input[]-Einträge vom Typitem_reference,input[]-Einträge, die nur eineidohne Inhalt tragen, undtools[].vector_store_idslehnt das Gateway mit 403reference_not_available_on_platformab.
Mit einem eigenen Anbieter-Schlüssel (BYOK) entfallen diese Prüfungen.
Unterrouten
| Methode | Pfad | Zweck |
|---|---|---|
POST | /v1/responses | Antwort erzeugen |
POST | /v1/responses/input_tokens | Eingabe-Tokens einer Anfrage zählen |
POST | /v1/responses/compact | an den Anbieter-Endpunkt responses/compact weiterleiten |
GET | /v1/responses/{id} | eine gespeicherte Antwort abrufen |
DELETE | /v1/responses/{id} | eine gespeicherte Antwort löschen |
POST | /v1/responses/{id}/cancel | eine laufende Antwort abbrechen (ohne Body) |
GET | /v1/responses/{id}/input_items | die Eingabe-Einträge einer Antwort abrufen |
input_tokens und compact verlangen model und laufen wie POST /v1/responses über den Katalog. Ist die Maskierung aktiv, maskiert das Gateway auch hier instructions und input.
Die Aufrufe mit {id} tragen kein Modell. Das Gateway leitet sie an den ältesten aktiven Anbieter im OpenAI-Format Ihrer Organisation weiter. Eigene Anbieter-Schlüssel (BYOK) haben Vorrang. Bei von Noirdoc verwalteten Anbietern erreichen Sie nur Antworten, die über Ihre Organisation entstanden sind. Für alle anderen IDs antwortet das Gateway mit 404 object_not_found.
Beim Abrufen stellt das Gateway keine Originalwerte wieder her. War die ursprüngliche Anfrage maskiert, enthalten GET /v1/responses/{id} und input_items die Platzhalter.
Andere Pfade unter /v1/responses/ beantwortet das Gateway mit 404 unsupported_endpoint.
input_tokens erzeugt keine Antwort des Modells. Das Gateway protokolliert den Aufruf, rechnet ihn aber nicht ab. Eine Kostenschätzung vor der Weiterleitung entfällt. Bei von Noirdoc verwalteten Anbietern gilt trotzdem: Ist das Guthaben der Organisation oder das Budget des Schlüssels aufgebraucht, antwortet das Gateway mit 402. compact rechnet das Gateway wie POST /v1/responses nach Tokens ab.
Fehler auf diesem Endpunkt
| Status | Code | Bedeutung |
|---|---|---|
| 400 | model_required | Die Anfrage nennt kein Modell (model im Body, bei /v1/audio/transcriptions im Formularfeld). |
| 400 | wrong_endpoint_for_model | Das Modell gehört zu einer anderen Endpunkt-Familie oder einem anderen API-Format als der aufgerufene Endpunkt. |
| 400 | invalid_request_body | Der Body ist kein JSON-Objekt oder nicht in UTF-8 kodiert. |
| 402 | insufficient_credit | Das Guthaben der Organisation ist aufgebraucht oder kleiner als die geschätzten Höchstkosten der Anfrage. |
| 402 | key_budget_exhausted | Das Budget dieses Schlüssels ist für den laufenden Zeitraum aufgebraucht oder reicht für die geschätzten Kosten der Anfrage nicht aus. |
| 403 | reference_not_available_on_platform | Der Body verweist auf Objekte beim Anbieter (etwa conversation, prompt.id oder vector_store_ids), deren Besitz das Gateway bei verwalteten Anbietern nicht prüfen kann. |
| 403 | model_not_allowed_for_key | Das Modell gehört nicht zu den erlaubten Modellen dieses Schlüssels. |
| 403 | provider_not_allowed_for_tenant | Die Organisation gilt als Berufsgeheimnisträger (§ 203 StGB); das schließt jeden Anbieter aus, der dieses Modell anbietet. |
| 403 | provider_not_allowed_for_key | Die Einschränkungen des Schlüssels (Anbieter, Datenresidenz, CLOUD Act, § 203) schließen jeden Anbieter dieses Modells aus. |
| 403 | file_content_not_allowed | Die Anfrage enthält Dateien, Bilder oder Audio, und die Organisation lässt keine Dateiinhalte zu. |
| 403 | file_pii_blocked | Eine Datei enthält personenbezogene Daten, und der Dateianalyse-Modus der Organisation ist block. |
| 404 | object_not_found | Das Objekt (Datei, Skill oder gespeicherte Antwort) existiert nicht oder gehört nicht Ihrer Organisation. |
| 404 | model_not_available | Die Modell-ID ist für die Organisation nicht verfügbar. |
| 422 | file_unprocessable | Eine Datei ließ sich für die Prüfung nicht verarbeiten: Sie ist zu groß, nicht lesbar oder hat ein Format ohne Analyse. Das Gateway hat die Anfrage nicht weitergeleitet. |
| 500 | detection_error | Die Erkennung personenbezogener Daten ist fehlgeschlagen; das Gateway hat die Anfrage nicht weitergeleitet. |
| 502 | provider_not_configured | Für diese Anfrage ist in der Organisation kein passender Anbieter eingerichtet. |
| 502 | provider_unreachable | Das Gateway konnte keine Verbindung zum Anbieter herstellen, oder die Verbindung ist abgebrochen. |
| 503 | ownership_check_unavailable | Das Gateway konnte gerade nicht prüfen, ob das Objekt Ihrer Organisation gehört, und hat die Anfrage abgelehnt. |
| 504 | provider_timeout | Der Anbieter hat nicht innerhalb der Wartezeit des Gateways geantwortet. |
OpenAI-Referenz
Alle übrigen Felder von Anfrage und Antwort beschreibt die API-Referenz von OpenAI: Responses (geprüft am 30.09.2026).