Documentazione API Hop
Risposte multimodali OpenAI
API Responses compatibile con OpenAI. Questo endpoint usa `input` nello stile OpenAI e supporta testo, URL pubblici di immagini, input PDF, chiamate agli strumenti, opzioni di ragionamento e parametri di streaming.
https://api.apihop.ai/openai/responsesAPI Responses compatibile con OpenAI. Questo endpoint usa input nello stile OpenAI e supporta testo, URL pubblici di immagini, input PDF, chiamate agli strumenti, opzioni di ragionamento e parametri di streaming.
POST https://api.apihop.ai/openai/responsesAutenticazione
Tutte le richieste richiedono l’autenticazione con token Bearer.
Authorization: Bearer YOUR_API_KEYCorpo della richiesta
modelstringobbligatorioPredefinito: gpt-5.4Modelli attualmente attivi con supporto Responses:
gpt-5.4gpt-5.5gpt-5.6-solgpt-5.6-terragpt-6-astra
Consulta il Catalogo dei modelli per i modelli visibili alla chiave API corrente.
inputstring | object[]Contenuto di input. Obbligatorio a meno che non sia fornito un previous_response_id non vuoto. Omettere entrambi i campi o usare un tipo di input non valido restituisce 400 prima della fatturazione.
Forme supportate:
- Una stringa, equivalente a un input testuale
user. - Un array di elementi di input per cronologia della conversazione, input multimodale e risultati degli strumenti.
Ogni oggetto nell’array di input può contenere i campi seguenti:
typestringTipo di elemento di input.
Valori comuni:
message: un messaggio di input.function_call_output: risultato di una chiamata a uno strumento funzione.
rolestringRuolo quando type=message.
Valori comuni:
developersystemuserassistant
contentstring | object[]Contenuto del messaggio.
Usa un array di blocchi di contenuto per richieste multimodali. I blocchi supportano:
typestringTipo di blocco di contenuto.
Attualmente supportati:
input_textinput_imageinput_file
textstringContenuto testuale quando type=input_text.
image_urlstringURL pubblico di immagine quando type=input_image.
Sono supportati solo URL di immagini http:// o https:// pubblicamente accessibili. URL dati Base64 come data:image/...;base64,... non sono supportati.
detailstringPredefinito: autoLivello di dettaglio dell’immagine quando type=input_image.
Valori comuni:
autolowhigh
file_datastringURL dati del contenuto del file quando type=input_file. I PDF possono usare data:application/pdf;base64,....
filenamestringNome del file quando type=input_file.
instructionsstringIstruzioni di sistema o sviluppatore inserite nel contesto del modello.
max_output_tokensintegerMassimo opzionale di token di output, come intero positivo. Ometti il campo per usare il valore predefinito del fornitore per il modello scelto. A seconda del modello, il budget può includere ragionamento e testo finale. Un budget piccolo può troncare la risposta o esaurirsi prima del testo finale; aumentarlo può aumentare il costo.
streambooleanPredefinito: falseIndica se trasmettere la risposta in streaming.
false: restituisce una risposta completatrue: restituisce eventi SSE nello stile OpenAI Responses
temperaturenumberPredefinito: 1.0Temperatura di campionamento, solitamente da 0 a 2.
top_pnumberPredefinito: 1.0Parametro di campionamento nucleus, solitamente da 0 a 1.
textobjectConfigurazione dell’output testuale.
text.formatobjectConfigurazione del formato testuale, come { "type": "text" } o uno schema JSON.
text.verbositystringVerbosità dell’output, come low, medium o high. Il supporto dipende dal modello scelto.
toolsobject[]Definizioni degli strumenti. La disponibilità dipende dal modello scelto e dalle funzionalità disponibili.
tool_choicestring | objectCriterio di scelta degli strumenti.
parallel_tool_callsbooleanIndica se sono consentite chiamate parallele agli strumenti.
reasoningobjectOpzioni relative al ragionamento.
includestring[]Campi aggiuntivi da includere nella risposta.
prompt_cache_keystringChiave della cache dei prompt per riutilizzare la cache.
prompt_cache_retentionstringCriterio di conservazione della cache dei prompt. I valori supportati dipendono dal modello scelto e dalle funzionalità disponibili.
safety_identifierstringIdentificatore stabile dell’utente finale per i controlli di sicurezza.
storebooleanIndica se lo stato della risposta può essere memorizzato.
Differenze tra parametri dei modelli
- L’inoltro Responses nativo compatibile con OpenAI conserva
top_pnella richiesta al fornitore; validazione e comportamento di campionamento dipendono dal modello e dal fornitore scelti. Le verifiche del 2026-09-26 hanno accettatotop_p: 0.9pergpt-5.5,gpt-5.6-solegpt-5.6-terra. Accettazione e inoltro non dimostrano un effetto sul campionamento né garantiscono supporto per altri valori, modelli o richieste future. Inizia con una richiesta minima. - Il supporto descritto qui vale solo per l’endpoint normale
/openai/responses. Non implica che lo stesso modello supporti/openai/responses/compact, WebSocket oprevious_response_idcon stato. - I cinque modelli GPT elencati sopra non hanno attualmente un canale Compact verificato. Le richieste Compact vengono rifiutate prima della fatturazione se non è disponibile un canale esplicitamente abilitato. Responses ordinario e Responses WebSocket restano disponibili.
Esempi di richiesta
Gli esempi seguenti forniscono input. Una continuazione può omettere input se fornisce un previous_response_id valido e il canale scelto supporta la continuazione con stato. Un ID di risposta non abilita questa capacità su un canale non supportato. I risultati degli strumenti restano elementi di input validi, incluso function_call_output.
Testo
{
"model": "gpt-5.4",
"input": "Hello, introduce yourself in one sentence."
}Parametri nello stile Codex CLI
{
"model": "gpt-5.5",
"input": "Reply with READY only.",
"reasoning": {
"effort": "xhigh"
},
"store": false,
"text": {
"verbosity": "low"
},
"stream": true
}Comprensione delle immagini
{
"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"
}
]
}
]
}Input di file
Usa file_data insieme a filename per inviare contenuto PDF. file_data deve essere un URL dati completo.
{
"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"
}
]
}
]
}Input di immagini e file
{
"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"
}
]
}
]
}Output in 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"
}
]
}
]
}Risposta
Le risposte senza streaming seguono lo stile OpenAI Responses. I campi effettivi possono variare secondo le capacità del modello scelto.
idstringIdentificatore univoco della risposta.
objectstringTipo di oggetto della risposta, solitamente response.
created_atintegerData e ora di creazione.
modelstringModello effettivamente usato.
outputobject[]Elenco degli elementi di output. Elementi comuni includono message, function_call e output relativi agli strumenti.
usageobjectStatistiche di utilizzo dei token, come input_tokens, output_tokens e total_tokens.
Esempio di successo
{
"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
}
}Risposta in streaming
Quando stream=true, l’endpoint restituisce Server-Sent Events.
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"}}Leggi gli eventi fino a response.completed o alla chiusura della connessione.
Risposta di errore
Consulta Codici di errore e risoluzione dei problemi per il riferimento completo, le differenze tra protocolli e i passaggi diagnostici.
Gli errori HTTP generati dalla piattaforma usano i campi piatti seguenti invece di un involucro error. Alcuni errori del fornitore possono conservare la struttura originale; gli errori in uno stream SSE già avviato non seguono questo esempio di risposta HTTP.
{
"code": 40000,
"message": "Insufficient credit. Required: 30000, Available: 20000",
"type": "api_error"
}Note
- L’endpoint
Responsesusainput, nonmessages. Se il client invia solomessages, usa/openai/v1/chat/completions. - L’input immagine usa
input_image;image_urldeve essere un URL pubblicohttp://ohttps://. Gli URL dati Base64 non sono supportati per le immagini. - L’input di file usa
input_file. Per i PDF usafile_dataefilename;file_datadovrebbe essere un URLdata:application/pdf;base64,...completo. - Input/output audio, strumenti di generazione di immagini, ricerca di file e altre capacità avanzate dipendono dal modello scelto e dalle funzionalità disponibili.
- I campi elencati qui costituiscono l’attuale contratto pubblico delle richieste Responses; non presumere che i campi non elencati siano disponibili.
/openai/responsesè il percorso pubblico consigliato./v1/responsessegue lo stesso contratto pubblico di richiesta e risposta./compat/v1/responsessegue lo stesso contratto pubblico di richiesta e risposta./openai/v1/responsessegue lo stesso contratto pubblico di richiesta e risposta.