API Hop

Documentazione

Documentazione API Hop

Completamenti chat comuni

API di chat unificata per cambiare modelli di testo tramite il parametro `model`. Il formato della richiesta è compatibile con OpenAI Chat Completions.

POSThttps://api.apihop.ai/v1/chat-completions

API di chat unificata per cambiare modelli di testo tramite il parametro model. Il formato della richiesta è compatibile con OpenAI Chat Completions.

Claude Sonnet 4.6 (claude-sonnet-4-6) è supportato dal fornitore a monte, ma non è attualmente pubblicato su RequestBeam. Non è il modello predefinito di un’integrazione attiva. Prima di chiamare qualsiasi modello, verifica l’accesso con la tua risposta di GET https://api.apihop.ai/v1/models.

Questo endpoint restituisce per impostazione predefinita una risposta JSON completa. Imposta esplicitamente stream: true quando serve lo streaming SSE.

text
POST https://api.apihop.ai/v1/chat-completions

Autenticazione

Tutte le richieste richiedono l’autenticazione con token Bearer.

http
Authorization: Bearer YOUR_API_KEY

Se l’autenticazione non riesce, controlla:

  • Che la chiave API sia corretta
  • Che la chiave sia valida per questo URL di base dell’API
  • Che l’intestazione della richiesta sia scritta correttamente
  • Che un proxy non riscriva l’intestazione di autorizzazione

Corpo della richiesta

modelstringobbligatorioPredefinito: gpt-5.4

ID dei modelli di testo documentati (verifica l’accesso con GET https://api.apihop.ai/v1/models):

  • OpenAI: gpt-5.4, gpt-5.5, gpt-5.6-sol, gpt-5.6-terra, gpt-6-astra
  • Anthropic: claude-fable-5, claude-fable-5-1, claude-opus-4-6, claude-opus-4-7, claude-opus-4-8, claude-opus-5, claude-opus-5-5, claude-sonnet-5, claude-sonnet-5-5
  • DeepSeek: deepseek-v4-flash, deepseek-v4-pro, deepseek-v4.1-flash

(V4.1 Flash è un ID di modello distinto, disponibile solo dopo distribuzione e attivazione; controlla GET https://api.apihop.ai/v1/models).

  • Gemini: gemini-3.6-flash, gemini-3.7-flash, gemini-3.8-flash, gemini-3.5-flash-lite, gemini-4-argon (dopo distribuzione e attivazione)
  • Kimi: kimi-k3
  • MiniMax: minimax-m3

Consulta il Catalogo dei modelli per l’elenco completo e i modelli visibili alla chiave API corrente. Usa la tua risposta di GET https://api.apihop.ai/v1/models come fonte attuale della disponibilità. Consulta le guide DeepSeek, Gemini, Kimi e MiniMax per note di selezione ed esempi specifici della famiglia.

messagesobject[]obbligatorio

Messaggi di chat. Ogni messaggio dovrebbe includere:

  • role: system, user o assistant
  • content: contenuto del messaggio

Esempio:

json
  [
    {"role": "system", "content": "You are a helpful Python tutor."},
    {"role": "user", "content": "How should I learn programming?"}
  ]

Limiti di campionamento specifici del modello: gpt-6-astra non accetta i precedenti temperature, top_p o top_logprobs; ometti questi campi anche se un client più vecchio li include. Il Playground GPT-6 Astra di RequestBeam nasconde anche i vecchi controlli di campionamento e penalità. claude-sonnet-5 ha rifiutato top_p in una verifica di integrazione documentata, quindi omettilo anche per quel modello. Inoltrare un campo opzionale tramite un proxy non dimostra che il modello del fornitore scelto lo supporti.

temperaturenumberPredefinito: 1.0

Temperatura di campionamento. I client compatibili con OpenAI usano comunemente valori da 0 a 2, ma la decisione finale di validazione spetta al modello scelto.

max_tokensinteger

Massimo opzionale di token di output, come intero positivo. Ometti questo campo per usare il valore predefinito del fornitore per il modello scelto; valori predefiniti e limiti massimi variano secondo modello e configurazione del fornitore.

A seconda del modello, il budget può includere token di ragionamento e testo finale. Un budget piccolo può causare finish_reason: "length", troncare la risposta o esaurirsi prima del testo finale. Aumentarlo può aumentare il costo.

max_completion_tokensinteger

Alternativa opzionale di compatibilità a max_tokens, con le stesse considerazioni sul budget. Un modello può accettare solo uno dei due campi: quando cambi modello, inizia con un corpo minimo. Ometti entrambi per usare il valore predefinito del fornitore.

streambooleanPredefinito: false

Indica se trasmettere la risposta in streaming.

  • true: restituisce Server-Sent Events
  • false: restituisce una risposta completa
top_pnumberPredefinito: 1.0

Parametro di campionamento nucleus. I client compatibili con OpenAI usano comunemente valori da 0 a 1; il modello scelto effettua la validazione finale.

frequency_penaltynumberPredefinito: 0

Penalità di frequenza. I client compatibili con OpenAI usano comunemente valori da -2.0 a 2.0; il modello scelto effettua la validazione finale.

presence_penaltynumberPredefinito: 0

Penalità di presenza. I client compatibili con OpenAI usano comunemente valori da -2.0 a 2.0; il modello scelto effettua la validazione finale.

stopstring | array

Una sequenza di arresto o un array di sequenze. Il modello scelto determina quantità accettata e comportamento.

nintegerPredefinito: 1

Numero di risposte da generare. Usa un numero come 1, non una stringa tra virgolette.

Differenze tra parametri dei modelli

I modelli di testo attuali supportano richieste Chat minime con e senza streaming, ma accettazione ed effetti dei parametri opzionali variano secondo il modello scelto e la sua implementazione di compatibilità.

L’ultima verifica del 2026-09-26 ha accettato claude-fable-5 con temperature: 0 e restituito testo. La stessa verifica ha rifiutato claude-sonnet-5 con top_p: 0.9, restituendo HTTP 400 e top_p is deprecated. Ometti top_p per quel modello. L’accettazione non dimostra un effetto sul campionamento né garantisce altri modelli o richieste future; non presumere che tutti i parametri di campionamento siano supportati.

Le verifiche OpenAI del 2026-09-26 hanno accettato stop per gpt-5.6-sol e gpt-5.6-terra. L’accettazione dei parametri può cambiare con il fornitore e non dimostra l’efficacia di una sequenza di arresto.

L’inoltro Chat nativo compatibile con OpenAI conserva top_p e stop nella richiesta al fornitore. Una route che converte Chat in Responses conserva top_p ma non inoltra stop. Inoltrare un campo non dimostra il supporto del fornitore né il suo effetto; nessuno dei due campi ha una garanzia valida per tutte le route della piattaforma.

Quando cambi modello, inizia con una richiesta minima e verifica separatamente campionamento, sequenze di arresto e parametri avanzati degli strumenti. Per le sequenze di arresto, esamina il testo reale e il motivo dell’arresto, non solo lo stato HTTP. HTTP 200 non dimostra un effetto sul campionamento. I budget di output devono coprire sia il ragionamento sia il testo finale del modello.

Esempio di richiesta

json
{
  "model": "gpt-5.4",
  "messages": [
    {
      "role": "user",
      "content": "Hello, introduce yourself briefly."
    }
  ],
  "stream": false
}

Risposta

idstring

Identificatore univoco della risposta.

objectstring

Tipo di oggetto, solitamente chat.completion o chat.completion.chunk per lo streaming.

createdinteger

Timestamp Unix di creazione.

modelstring

Identificatore del modello restituito nella risposta.

choicesarray

Scelte generate, con contenuto del messaggio, indice e motivo di completamento.

usageobject

Statistiche di utilizzo dei token.

Esempio di successo

json
{
  "id": "chatcmpl-9876543210",
  "object": "chat.completion",
  "created": 1677652288,
  "model": "gpt-5.4",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "I am an AI assistant that can help with writing, coding, and analysis."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 28,
    "completion_tokens": 42,
    "total_tokens": 70
  }
}

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 di Chat Completions usano un corpo JSON piatto, compresi gli errori HTTP del fornitore restituiti prima dell’inizio di uno stream SSE. Per esempio, HTTP 402 restituisce:

json
{
  "code": 40000,
  "message": "Insufficient credit. Required: 30000, Available: 20000",
  "type": "api_error"
}
  • code: codice numerico di errore della piattaforma, distinto dallo stato HTTP e non una stringa
  • message: descrizione leggibile dell’errore
  • type: api_error
  • requestId: identificatore opzionale della richiesta per la diagnosi
Stato HTTPcodeSignificato
40010000Richiesta non valida
40120000Autenticazione mancante o non valida
40240000Credito insufficiente
40320001Accesso negato o modello non disponibile per questa chiave
40430000Modello o risorsa non trovato
40930001Conflitto della richiesta
42210001Errore di validazione
42940001Limite di frequenza superato
50050003Errore interno
50250000Errore del fornitore a monte
50350001Servizio non disponibile
50450002Timeout del gateway

Controlla prima lo stato HTTP per determinare se la richiesta è riuscita, poi confronta il code numerico per la gestione specifica dell’applicazione. Non confrontare code con stringhe come "400", non presumere che coincida con lo stato HTTP e non interpretare message come identificatore stabile dell’errore. messages mancante o di tipo errato viene rifiutato con HTTP 400 e code: 10000 prima di chiamare il fornitore.

Questo formato di errore vale per le risposte HTTP di Chat Completions, non per errori all’interno di uno stream SSE già avviato o di altri protocolli API. Il catalogo dei modelli e gli endpoint dei protocolli nativi hanno formati di errore documentati propri.