Documentation API Hop
Responses multimodal OpenAI
API Responses compatible OpenAI. Cet endpoint utilise `input` au format OpenAI et prend en charge le texte, les URL publiques d’images, les fichiers PDF, les appels d’outils, les options de raisonnement et les paramètres de streaming.
https://api.apihop.ai/openai/responsesAPI Responses compatible OpenAI. Cet endpoint utilise input au format OpenAI et prend en charge le texte, les URL publiques d’images, les fichiers PDF, les appels d’outils, les options de raisonnement et les paramètres de streaming.
POST https://api.apihop.ai/openai/responsesAuthentification
Toutes les requêtes nécessitent une authentification par jeton Bearer.
Authorization: Bearer YOUR_API_KEYCorps
modelstringobligatoirePar défaut: gpt-5.4Modèles actuellement actifs avec prise en charge de Responses :
gpt-5.4gpt-5.5gpt-5.6-solgpt-5.6-terragpt-6-astra
Consultez le Catalogue de modèles pour les modèles visibles par la clé API actuelle.
inputstring | object[]Contenu d’entrée. Obligatoire sauf si un previous_response_id non vide est fourni. Omettre les deux champs ou utiliser un type d’entrée invalide renvoie 400 avant facturation.
Formes prises en charge :
- Une chaîne, équivalente à une entrée textuelle
user. - Un tableau d’éléments d’entrée pour l’historique de conversation, les entrées multimodales et les résultats d’appels d’outils.
Chaque objet du tableau d’entrée peut contenir les champs suivants :
typestringType d’élément d’entrée.
Valeurs courantes :
message: une entrée de message.function_call_output: le résultat d’un appel d’outil de fonction.
rolestringRôle lorsque type=message.
Valeurs courantes :
developersystemuserassistant
contentstring | object[]Contenu du message.
Utilisez un tableau de blocs de contenu pour les requêtes multimodales. Les blocs prennent en charge :
typestringType de bloc de contenu.
Actuellement pris en charge :
input_textinput_imageinput_file
textstringContenu textuel lorsque type=input_text.
image_urlstringURL publique d’image lorsque type=input_image.
Seules les URL d’images http:// ou https:// accessibles publiquement sont prises en charge. Les URL de données Base64 comme data:image/...;base64,... ne sont pas acceptées.
detailstringPar défaut: autoNiveau de détail de l’image lorsque type=input_image.
Valeurs courantes :
autolowhigh
file_datastringURL de données du contenu du fichier lorsque type=input_file. Les PDF peuvent utiliser data:application/pdf;base64,....
filenamestringNom du fichier lorsque type=input_file.
instructionsstringInstructions système ou développeur insérées dans le contexte du modèle.
max_output_tokensintegerNombre maximal facultatif de tokens de sortie, sous forme d’entier positif. Omettez ce champ pour utiliser la valeur par défaut du fournisseur pour le modèle choisi. Selon le modèle, ce budget peut inclure le raisonnement et le texte final. Un petit budget peut tronquer la réponse ou être épuisé avant le texte final ; l’augmenter peut accroître le coût.
streambooleanPar défaut: falseIndique si la réponse doit être diffusée en streaming.
false: renvoie une réponse complètetrue: renvoie des événements SSE au format OpenAI Responses
temperaturenumberPar défaut: 1.0Température d’échantillonnage, généralement de 0 à 2.
top_pnumberPar défaut: 1.0Paramètre d’échantillonnage par noyau, généralement de 0 à 1.
textobjectConfiguration de la sortie textuelle.
text.formatobjectConfiguration du format de texte, comme { "type": "text" } ou un schéma JSON.
text.verbositystringNiveau de détail de la sortie, comme low, medium ou high. La prise en charge dépend du modèle choisi.
toolsobject[]Définitions d’outils. La disponibilité dépend du modèle choisi et des fonctions disponibles.
tool_choicestring | objectPolitique de sélection d’outils.
parallel_tool_callsbooleanIndique si les appels d’outils parallèles sont autorisés.
reasoningobjectOptions liées au raisonnement.
includestring[]Champs supplémentaires à inclure dans la réponse.
prompt_cache_keystringClé de cache des consignes permettant la réutilisation du cache.
prompt_cache_retentionstringPolitique de conservation du cache des consignes. Les valeurs acceptées dépendent du modèle choisi et des fonctions disponibles.
safety_identifierstringIdentifiant stable de l’utilisateur final pour les contrôles de sécurité.
storebooleanIndique si l’état de réponse peut être conservé.
Différences de paramètres entre modèles
- Le transfert natif compatible OpenAI Responses conserve
top_pdans la requête au fournisseur ; validation et échantillonnage dépendent du modèle et du fournisseur choisis. Les contrôles du 2026-09-26 ont acceptétop_p: 0.9pourgpt-5.5,gpt-5.6-soletgpt-5.6-terra. L’acceptation et le transfert ne prouvent pas un effet d’échantillonnage ni ne garantissent la prise en charge d’autres valeurs, modèles ou requêtes futures. Commencez par une requête minimale. - La prise en charge décrite ici concerne uniquement l’endpoint normal
/openai/responses. Elle n’implique pas que le même modèle accepte/openai/responses/compact, WebSocket ouprevious_response_idavec état. - Les cinq modèles GPT ci-dessus n’ont actuellement aucun canal Compact vérifié. Les requêtes Compact sont rejetées avant facturation sans canal explicitement activé. Responses ordinaire et Responses WebSocket restent disponibles.
Exemples de requêtes
Les exemples ci-dessous fournissent input. Une continuation peut omettre input lorsqu’elle fournit un previous_response_id valide et que le canal choisi prend en charge les continuations avec état. Un ID de réponse n’active pas cette capacité sur un canal non compatible. Les résultats d’outils restent des éléments d’entrée valides, y compris function_call_output.
Texte
{
"model": "gpt-5.4",
"input": "Hello, introduce yourself in one sentence."
}Paramètres au style Codex CLI
{
"model": "gpt-5.5",
"input": "Reply with READY only.",
"reasoning": {
"effort": "xhigh"
},
"store": false,
"text": {
"verbosity": "low"
},
"stream": true
}Compréhension d’images
{
"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"
}
]
}
]
}Entrée de fichiers
Utilisez file_data et filename pour envoyer un PDF. file_data doit être une URL de données complète.
{
"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"
}
]
}
]
}Entrée d’images et de fichiers
{
"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"
}
]
}
]
}Sortie en streaming
{
"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"
}
]
}
]
}Réponse
Les réponses sans streaming suivent le format OpenAI Responses. Les champs réels peuvent varier selon les capacités du modèle choisi.
idstringIdentifiant unique de la réponse.
objectstringType d’objet de réponse, généralement response.
created_atintegerHorodatage de création.
modelstringModèle effectivement utilisé.
outputobject[]Liste d’éléments de sortie. Les éléments courants comprennent message, function_call et les sorties liées aux outils.
usageobjectStatistiques d’utilisation des tokens, comme input_tokens, output_tokens et total_tokens.
Exemple réussi
{
"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
}
}Réponse en streaming
Avec stream=true, l’endpoint renvoie des événements envoyés par le serveur (SSE).
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"}}Lisez les événements jusqu’à response.completed ou la fermeture de la connexion.
Réponse d’erreur
Consultez Codes d’erreur et dépannage pour la référence complète des codes, les différences de protocole et les étapes de diagnostic.
Les erreurs HTTP générées par la plateforme utilisent les champs plats ci-dessous plutôt qu’une enveloppe error. Certaines erreurs fournisseur peuvent conserver leur structure d’origine ; les erreurs dans un flux SSE déjà commencé ne suivent pas cet exemple de réponse HTTP.
{
"code": 40000,
"message": "Insufficient credit. Required: 30000, Available: 20000",
"type": "api_error"
}Remarques
- L’endpoint
Responsesutiliseinput, pasmessages. Si votre client envoie uniquementmessages, utilisez/openai/v1/chat/completions. - L’entrée d’image utilise
input_image;image_urldoit être une URL publiquehttp://ouhttps://. Les URL de données Base64 ne sont pas acceptées pour les images. - L’entrée de fichier utilise
input_file. Pour les PDF, utilisezfile_dataetfilename;file_datadoit être une URL complètedata:application/pdf;base64,.... - Les entrées/sorties audio, outils de génération d’images, recherche de fichiers et autres capacités avancées dépendent du modèle choisi et des fonctions disponibles.
- Les champs de cette page constituent le contrat public actuel des requêtes Responses ; ne supposez pas que des champs non listés sont disponibles.
/openai/responsesest le chemin public recommandé./v1/responsessuit le même contrat public de requête et de réponse./compat/v1/responsessuit le même contrat public de requête et de réponse./openai/v1/responsessuit le même contrat public de requête et de réponse.