API Hop

Dokumentation

API Hop-Dokumentation

Multimodale OpenAI Responses

OpenAI-kompatible Responses-API. Dieser Endpunkt verwendet `input` im OpenAI-Stil und unterstützt Text, öffentliche Bild-URLs, PDF-Dateieingaben, Werkzeugaufrufe, Denkoptionen und Streaming-Parameter.

POSThttps://api.apihop.ai/openai/responses

OpenAI-kompatible Responses-API. Dieser Endpunkt verwendet input im OpenAI-Stil und unterstützt Text, öffentliche Bild-URLs, PDF-Dateieingaben, Werkzeugaufrufe, Denkoptionen und Streaming-Parameter.

text
POST https://api.apihop.ai/openai/responses

Authentifizierung

Alle Anfragen erfordern Bearer-Token-Authentifizierung.

http
Authorization: Bearer YOUR_API_KEY

Anfragekörper

modelstringerforderlichStandard: gpt-5.4

Aktuell aktive Modelle mit Responses-Unterstützung:

  • gpt-5.4
  • gpt-5.5
  • gpt-5.6-sol
  • gpt-5.6-terra
  • gpt-6-astra

Die für den aktuellen API-Schlüssel sichtbaren Modelle finden Sie im Modellkatalog.

inputstring | object[]

Eingabeinhalt. Erforderlich, sofern keine nicht leere previous_response_id angegeben wird. Das Weglassen beider Felder oder ein ungültiger Eingabetyp liefert vor der Abrechnung 400.

Unterstützte Formen:

  • Eine Zeichenfolge, entsprechend einer Texteingabe von user.
  • Ein Array von Eingabeelementen für Unterhaltungsverlauf, multimodale Eingaben und Werkzeugergebnisse.

Jedes Objekt im Eingabearray kann folgende Felder enthalten:

typestring

Typ des Eingabeelements.

Häufige Werte:

  • message: eine Nachrichteneingabe.
  • function_call_output: das Ergebnis eines Funktionswerkzeugaufrufs.
rolestring

Rolle bei type=message.

Häufige Werte:

  • developer
  • system
  • user
  • assistant
contentstring | object[]

Nachrichteninhalt.

Verwenden Sie für multimodale Anfragen ein Array von Inhaltsblöcken. Inhaltsblöcke unterstützen:

typestring

Typ des Inhaltsblocks.

Derzeit unterstützt:

  • input_text
  • input_image
  • input_file
textstring

Textinhalt bei type=input_text.

image_urlstring

Öffentliche Bild-URL bei type=input_image.

Nur öffentlich zugängliche Bild-URLs mit http:// oder https:// werden unterstützt. Base64-Daten-URLs wie data:image/...;base64,... werden nicht unterstützt.

detailstringStandard: auto

Bilddetailgrad bei type=input_image.

Häufige Werte:

  • auto
  • low
  • high
file_datastring

Daten-URL des Dateiinhalts bei type=input_file. PDFs können data:application/pdf;base64,... verwenden.

filenamestring

Dateiname bei type=input_file.

instructionsstring

System- oder Entwickleranweisungen, die in den Modellkontext eingefügt werden.

max_output_tokensinteger

Optionale maximale Ausgabetokens als positive Ganzzahl. Lassen Sie das Feld weg, um den Anbieterstandard des gewählten Modells zu verwenden. Je nach Modell umfasst das Budget Denktokens und endgültigen Text. Ein kleines Budget kann die Antwort abschneiden oder vor dem endgültigen Text verbraucht sein; eine Erhöhung kann die Kosten steigern.

streambooleanStandard: false

Ob die Antwort gestreamt wird.

  • false: eine vollständige Antwort zurückgeben
  • true: SSE-Ereignisse im OpenAI-Responses-Stil zurückgeben
temperaturenumberStandard: 1.0

Sampling-Temperatur, gewöhnlich von 0 bis 2.

top_pnumberStandard: 1.0

Nucleus-Sampling-Parameter, gewöhnlich von 0 bis 1.

textobject

Konfiguration der Textausgabe.

text.formatobject

Textformatkonfiguration, etwa { "type": "text" } oder ein JSON-Schema.

text.verbositystring

Ausführlichkeit der Ausgabe, etwa low, medium oder high. Die Unterstützung hängt vom gewählten Modell ab.

toolsobject[]

Werkzeugdefinitionen. Die Verfügbarkeit hängt vom gewählten Modell und den verfügbaren Funktionen ab.

tool_choicestring | object

Werkzeugauswahlregel.

parallel_tool_callsboolean

Ob parallele Werkzeugaufrufe erlaubt sind.

reasoningobject

Optionen zum Denkprozess.

includestring[]

Zusätzliche Felder, die in der Antwort enthalten sein sollen.

prompt_cache_keystring

Prompt-Cache-Schlüssel zur Wiederverwendung des Prompt-Caches.

prompt_cache_retentionstring

Aufbewahrungsregel für den Prompt-Cache. Unterstützte Werte hängen vom gewählten Modell und den verfügbaren Funktionen ab.

safety_identifierstring

Stabile Endnutzerkennung für Sicherheitskontrollen.

storeboolean

Ob der Antwortzustand gespeichert werden darf.

Unterschiede bei Modellparametern

  • Native OpenAI-kompatible Responses-Weiterleitung behält top_p in der Anbieteranfrage bei; Validierung und Sampling-Verhalten hängen von Modell und Anbieter ab. Die Prüfungen am 2026-09-26 akzeptierten top_p: 0.9 für gpt-5.5, gpt-5.6-sol und gpt-5.6-terra. Annahme und Weiterleitung beweisen keine Sampling-Wirkung und garantieren keine Unterstützung für andere Werte, Modelle oder spätere Anfragen. Beginnen Sie mit einer minimalen Anfrage.
  • Die Unterstützung auf dieser Seite gilt nur für den regulären Endpunkt /openai/responses. Sie bedeutet nicht, dass dasselbe Modell /openai/responses/compact, WebSocket oder zustandsbehaftetes previous_response_id unterstützt.
  • Die fünf oben aufgeführten GPT-Modelle haben derzeit keinen verifizierten Compact-Kanal. Ohne ausdrücklich aktivierten Kanal werden Compact-Anfragen vor der Abrechnung abgelehnt. Normale Responses und Responses WebSocket bleiben verfügbar.

Anfragebeispiele

Die folgenden Beispiele enthalten input. Eine Fortsetzung darf input weglassen, wenn sie eine gültige previous_response_id angibt und der gewählte Kanal zustandsbehaftete Fortsetzung unterstützt. Eine Antwort-ID aktiviert diese Fähigkeit nicht auf einem nicht unterstützten Kanal. Werkzeugergebnisse bleiben gültige Eingabeelemente, einschließlich function_call_output.

Textinhalt

json
{
  "model": "gpt-5.4",
  "input": "Hello, introduce yourself in one sentence."
}

Parameter im Codex-CLI-Stil

json
{
  "model": "gpt-5.5",
  "input": "Reply with READY only.",
  "reasoning": {
    "effort": "xhigh"
  },
  "store": false,
  "text": {
    "verbosity": "low"
  },
  "stream": true
}

Bildverständnis

json
{
  "model": "gpt-5.4",
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "What is in this image?"
        },
        {
          "type": "input_image",
          "image_url": "https://example.com/cat.png",
          "detail": "high"
        }
      ]
    }
  ]
}

Dateieingabe

Verwenden Sie file_data zusammen mit filename, um PDF-Inhalt zu übermitteln. file_data muss eine vollständige Daten-URL sein.

json
{
  "model": "gpt-5.4",
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Summarize the key points in this PDF."
        },
        {
          "type": "input_file",
          "file_data": "data:application/pdf;base64,JVBERi0xLjQKJc...",
          "filename": "report.pdf"
        }
      ]
    }
  ]
}

Bild- und Dateieingabe

json
{
  "model": "gpt-5.4",
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Give three conclusions based on the image and attachment."
        },
        {
          "type": "input_image",
          "image_url": "https://example.com/chart.png",
          "detail": "high"
        },
        {
          "type": "input_file",
          "file_data": "data:application/pdf;base64,JVBERi0xLjQKJc...",
          "filename": "notes.pdf"
        }
      ]
    }
  ]
}

Streaming-Ausgabe

json
{
  "model": "gpt-5.4",
  "stream": true,
  "input": [
    {
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Explain this diagram step by step."
        },
        {
          "type": "input_image",
          "image_url": "https://example.com/diagram.png"
        }
      ]
    }
  ]
}

Antwort

Antworten ohne Streaming folgen dem OpenAI-Responses-Stil. Tatsächliche Felder können je nach Fähigkeiten des gewählten Modells variieren.

idstring

Eindeutige Antwortkennung.

objectstring

Antwortobjekttyp, gewöhnlich response.

created_atinteger

Erstellungszeitstempel.

modelstring

Tatsächlich verwendetes Modell.

outputobject[]

Liste der Ausgabeelemente. Häufige Elemente sind message, function_call und werkzeugbezogene Ausgabe.

usageobject

Tokennutzungsstatistik, etwa input_tokens, output_tokens und total_tokens.

Erfolgsbeispiel

json
{
  "id": "resp_123",
  "object": "response",
  "created_at": 1766534400,
  "model": "gpt-5.4",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        {
          "text": "The image shows a cat, and the attachment is a document about pet care."
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 128,
    "output_tokens": 42,
    "total_tokens": 170
  }
}

Streaming-Antwort

Bei stream=true liefert der Endpunkt Server-Sent Events.

text
event: response.output_text.delta
data: {"type":"response.output_text.delta","delta":"The image"}

event: response.completed
data: {"type":"response.completed","response":{"id":"resp_123"}}

Lesen Sie Ereignisse bis response.completed oder bis die Verbindung geschlossen wird.

Fehlerantwort

Die vollständige Codereferenz, Protokollunterschiede und Diagnoseschritte finden Sie unter Fehlercodes und Fehlerbehebung.

Von der Plattform erzeugte HTTP-Fehler verwenden die folgenden flachen Felder statt einer error-Hülle. Manche Anbieterfehler können ihre Originalstruktur behalten; Fehler in einem bereits gestarteten SSE-Stream folgen nicht diesem HTTP-Antwortbeispiel.

json
{
  "code": 40000,
  "message": "Insufficient credit. Required: 30000, Available: 20000",
  "type": "api_error"
}

Hinweise

  • Der Endpunkt Responses verwendet input, nicht messages. Sendet Ihr Client nur messages, verwenden Sie /openai/v1/chat/completions.
  • Bildeingaben verwenden input_image; image_url muss eine öffentliche http://- oder https://-URL sein. Base64-Daten-URLs werden für Bilder nicht unterstützt.
  • Dateieingaben verwenden input_file. Verwenden Sie für PDFs file_data zusammen mit filename; file_data sollte eine vollständige data:application/pdf;base64,...-URL sein.
  • Audioeingabe/-ausgabe, Bilderzeugungswerkzeuge, Dateisuche und weitere erweiterte Fähigkeiten hängen vom gewählten Modell und den verfügbaren Funktionen ab.
  • Die auf dieser Seite aufgeführten Felder bilden den aktuellen öffentlichen Responses-Anfragevertrag; gehen Sie nicht davon aus, dass nicht aufgeführte Felder verfügbar sind.
  • /openai/responses ist der empfohlene öffentliche Pfad.
  • /v1/responses folgt demselben öffentlichen Anfrage- und Antwortvertrag.
  • /compat/v1/responses folgt demselben öffentlichen Anfrage- und Antwortvertrag.
  • /openai/v1/responses folgt demselben öffentlichen Anfrage- und Antwortvertrag.