API Hop

Documentazione

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.

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

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.

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

Autenticazione

Tutte le richieste richiedono l’autenticazione con token Bearer.

http
Authorization: Bearer YOUR_API_KEY

Corpo della richiesta

modelstringobbligatorioPredefinito: gpt-5.4

Modelli attualmente attivi con supporto Responses:

  • gpt-5.4
  • gpt-5.5
  • gpt-5.6-sol
  • gpt-5.6-terra
  • gpt-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:

typestring

Tipo di elemento di input.

Valori comuni:

  • message: un messaggio di input.
  • function_call_output: risultato di una chiamata a uno strumento funzione.
rolestring

Ruolo quando type=message.

Valori comuni:

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

Contenuto del messaggio.

Usa un array di blocchi di contenuto per richieste multimodali. I blocchi supportano:

typestring

Tipo di blocco di contenuto.

Attualmente supportati:

  • input_text
  • input_image
  • input_file
textstring

Contenuto testuale quando type=input_text.

image_urlstring

URL 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: auto

Livello di dettaglio dell’immagine quando type=input_image.

Valori comuni:

  • auto
  • low
  • high
file_datastring

URL dati del contenuto del file quando type=input_file. I PDF possono usare data:application/pdf;base64,....

filenamestring

Nome del file quando type=input_file.

instructionsstring

Istruzioni di sistema o sviluppatore inserite nel contesto del modello.

max_output_tokensinteger

Massimo 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: false

Indica se trasmettere la risposta in streaming.

  • false: restituisce una risposta completa
  • true: restituisce eventi SSE nello stile OpenAI Responses
temperaturenumberPredefinito: 1.0

Temperatura di campionamento, solitamente da 0 a 2.

top_pnumberPredefinito: 1.0

Parametro di campionamento nucleus, solitamente da 0 a 1.

textobject

Configurazione dell’output testuale.

text.formatobject

Configurazione del formato testuale, come { "type": "text" } o uno schema JSON.

text.verbositystring

Verbosità 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 | object

Criterio di scelta degli strumenti.

parallel_tool_callsboolean

Indica se sono consentite chiamate parallele agli strumenti.

reasoningobject

Opzioni relative al ragionamento.

includestring[]

Campi aggiuntivi da includere nella risposta.

prompt_cache_keystring

Chiave della cache dei prompt per riutilizzare la cache.

prompt_cache_retentionstring

Criterio di conservazione della cache dei prompt. I valori supportati dipendono dal modello scelto e dalle funzionalità disponibili.

safety_identifierstring

Identificatore stabile dell’utente finale per i controlli di sicurezza.

storeboolean

Indica se lo stato della risposta può essere memorizzato.

Differenze tra parametri dei modelli

  • L’inoltro Responses nativo compatibile con OpenAI conserva top_p nella richiesta al fornitore; validazione e comportamento di campionamento dipendono dal modello e dal fornitore scelti. Le verifiche del 2026-09-26 hanno accettato top_p: 0.9 per gpt-5.5, gpt-5.6-sol e gpt-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 o previous_response_id con 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

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

Parametri nello stile Codex CLI

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

Comprensione delle immagini

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"
        }
      ]
    }
  ]
}

Input di file

Usa file_data insieme a filename per inviare contenuto PDF. file_data deve essere un URL dati completo.

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"
        }
      ]
    }
  ]
}

Input di immagini e file

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"
        }
      ]
    }
  ]
}

Output in streaming

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"
        }
      ]
    }
  ]
}

Risposta

Le risposte senza streaming seguono lo stile OpenAI Responses. I campi effettivi possono variare secondo le capacità del modello scelto.

idstring

Identificatore univoco della risposta.

objectstring

Tipo di oggetto della risposta, solitamente response.

created_atinteger

Data e ora di creazione.

modelstring

Modello effettivamente usato.

outputobject[]

Elenco degli elementi di output. Elementi comuni includono message, function_call e output relativi agli strumenti.

usageobject

Statistiche di utilizzo dei token, come input_tokens, output_tokens e total_tokens.

Esempio di successo

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
  }
}

Risposta in streaming

Quando stream=true, l’endpoint restituisce 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"}}

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.

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

Note

  • L’endpoint Responses usa input, non messages. Se il client invia solo messages, usa /openai/v1/chat/completions.
  • L’input immagine usa input_image; image_url deve essere un URL pubblico http:// o https://. Gli URL dati Base64 non sono supportati per le immagini.
  • L’input di file usa input_file. Per i PDF usa file_data e filename; file_data dovrebbe essere un URL data: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/responses segue lo stesso contratto pubblico di richiesta e risposta.
  • /compat/v1/responses segue lo stesso contratto pubblico di richiesta e risposta.
  • /openai/v1/responses segue lo stesso contratto pubblico di richiesta e risposta.