Torna al blog

AI per principiantiGuida

API compatibile con OpenAI: cos'è base_url e come cambiare

Un'API compatibile con OpenAI accetta le stesse richieste di quella di OpenAI. Cambia base_url, la chiave e l'id del modello, e il tuo codice invia la sua prima richiesta a CheapTokens.

Di CheapTokens TeamPubblicato il Aggiornato il 5 min di lettura

Tre valori da cambiare quando passi a un'API compatibile con OpenAI: base_url, chiave API e id del modello
In questa pagina
  1. Cosa significa "compatibile con OpenAI"?
  2. Cos'è base_url?
  3. I tre valori che cambi
  4. Prima richiesta in Python
  5. La stessa richiesta con curl
  6. Cosa dovresti vedere
  7. Quanto costa?
  8. Se non funziona
  9. Prossimi passi

Un'API compatibile con OpenAI è un'API che accetta richieste nello stesso formato della Chat Completions API di OpenAI e risponde nello stesso formato. Per spostare un'app su un altro provider, di solito cambi tre valori: base_url (dove vanno le richieste), la chiave API e l'id del modello. Il resto del tuo codice, inclusa la lista dei messaggi e il modo in cui leggi la risposta, resta com'è.

Questa guida spiega l'idea in parole semplici e si chiude con una prima richiesta funzionante a CheapTokens in Python e curl. I dati su CheapTokens sono stati verificati sulla sua documentazione il 22 ottobre 2026.

Cosa significa "compatibile con OpenAI"?#

Un'API è un insieme di regole per parlare con un servizio su internet (se la parola è nuova, inizia da come funziona la tua prima richiesta API). Il formato chat di OpenAI è diventato uno standard comune: molti provider e strumenti accettano lo stesso corpo della richiesta e restituiscono la stessa struttura di risposta. Un'API così si dice compatibile con OpenAI.

In pratica significa che tre cose sono identiche su qualsiasi provider compatibile:

  • La richiesta: un corpo JSON con un campo model e una lista messages, dove ogni messaggio ha un role (system, user o assistant) e content.
  • Il percorso dell'endpoint: /chat/completions, aggiunto dopo il base URL.
  • La risposta: un oggetto JSON in cui il testo generato si trova in choices[0].message.content.

Poiché il formato è condiviso, gli SDK ufficiali e molte app possono parlare con qualsiasi provider compatibile. Devono solo sapere dove inviare la richiesta.

Cos'è base_url?#

base_url è l'indirizzo con cui inizia ogni richiesta. Un SDK costruisce l'indirizzo completo aggiungendovi il percorso della chiamata.

Parte Esempio
base_url https://api.cheaptokens.dev/v1
Percorso aggiunto dall'SDK /chat/completions
Indirizzo completo della richiesta https://api.cheaptokens.dev/v1/chat/completions

Quindi, quando imposti un base_url diverso, lo stesso codice invia lo stesso tipo di richiesta a un server diverso. Il base URL di CheapTokens è https://api.cheaptokens.dev/v1. La sua API è compatibile con OpenAI Chat Completions e con Anthropic Messages, e un unico saldo prepagato copre tutti i modelli.

I tre valori che cambi#

Valore Cos'è Da dove viene
base_url Indirizzo dell'API https://api.cheaptokens.dev/v1
Chiave API La tua password segreta per l'API Il tuo account CheapTokens. Vedi cos'è una chiave API e come conservarla in modo sicuro
Id del modello Il nome esatto del modello nel campo model La documentazione di CheapTokens

L'id del modello merita attenzione. Provider diversi danno id diversi allo stesso modello, quindi un id preso da un altro servizio non funzionerà qui. Prendi gli id dalla documentazione di CheapTokens. Gli id disponibili ora:

Modello Id del modello Contesto Output massimo per risposta
GLM-5.3-Flash zai-org/GLM-5.3-Flash 390K 8.192 token
DeepSeek-V4-Flash deepseek-ai/DeepSeek-V4-Flash-0731 380K 32.768 token
MiniMax-M2.7 MiniMaxAI/MiniMax-M2.7 180K 8.192 token

DeepSeek-V4-Flash restituisce fino a 32.768 token per risposta e ha un contesto di 380K; GLM-5.3-Flash ha un contesto di 390K; MiniMax-M2.7 ha un contesto di 180K. Tutti e tre vengono fatturati sullo stesso saldo, quindi passare dall'uno all'altro significa cambiare solo l'id del modello.

Prima richiesta in Python#

Installa il pacchetto openai, poi salva la tua chiave in una variabile d'ambiente invece di scriverla nel codice:

bash
pip install openai
export CHEAPTOKENS_API_KEY="YOUR_CHEAPTOKENS_KEY"

Ora il codice. L'unica differenza rispetto a un esempio OpenAI standard è l'argomento base_url, la chiave e l'id del modello:

python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.cheaptokens.dev/v1",   # 1. where requests go
    api_key=os.environ["CHEAPTOKENS_API_KEY"],   # 2. your CheapTokens key
)

response = client.chat.completions.create(
    model="MiniMaxAI/MiniMax-M2.7",                # 3. model id from the docs
    messages=[
        {"role": "system", "content": "You answer briefly."},
        {"role": "user", "content": "Explain base_url in one sentence."},
    ],
)

print(response.choices[0].message.content)

La chiave nell'esempio è un segnaposto: sostituisci YOUR_CHEAPTOKENS_KEY con la tua chiave e non fare mai commit di una chiave reale in un repository.

Se un'app che hai già legge le impostazioni da un file di configurazione o da variabili d'ambiente, non devi modificare affatto il suo codice. Cerca i campi chiamati base URL, API base o endpoint e inserisci lì gli stessi tre valori.

La stessa richiesta con curl#

curl mostra cosa fa l'SDK dietro le quinte: il base URL più il percorso, la chiave nell'header Authorization e un corpo JSON.

bash
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MiniMaxAI/MiniMax-M2.7",
    "messages": [
      {"role": "user", "content": "Explain base_url in one sentence."}
    ]
  }'

Cosa dovresti vedere#

Quando tutto è impostato correttamente, lo script Python stampa una breve risposta testuale e curl stampa un oggetto JSON. Cerca la lista choices: il testo della risposta è in choices[0].message.content. Se lo vedi, la tua prima richiesta a CheapTokens ha funzionato e puoi passare alla tua app reale.

Quanto costa?#

La fatturazione è a token, contati separatamente per input e output (vedi token di input vs output). Ad esempio, MiniMax-M2.7 costa attualmente $0.05 per 1M di token di input e $0.15 per 1M di token di output. La tabella qui sotto mostra sempre i prezzi attuali per tutti i modelli, senza sovrapprezzi nelle ore di punta.

Modello Contesto Input $/1M Output $/1M OpenRouter in OpenRouter out
GLM-5.3-Flash reasoning 390K $0.02 $0.04 $0.0413 $0.0758
DeepSeek-V4-Flash 380K $0.015 $0.10 $0.0475 $0.1568
MiniMax-M2.7 180K $0.05 $0.15 $0.30 $1.20

Prezzi in USD per 1M di token. Le cifre di OpenRouter sono mostrate a scopo di confronto e potrebbero variare.

I prezzi per l'elenco completo dei modelli sono anche nella pagina dei prezzi di CheapTokens.

Se non funziona#

  • Errore di autenticazione (di solito 401): la chiave manca, è scritta male o ha spazi in più. Controlla che la variabile d'ambiente sia impostata nello stesso terminale in cui esegui lo script.
  • "Not found" (di solito 404): controlla base_url. Deve terminare con /v1, e non devi aggiungere /chat/completions da solo quando usi un SDK, altrimenti il percorso viene raddoppiato.
  • Modello sconosciuto: copia l'id del modello esattamente dalla tabella qui sopra o dalla documentazione, incluse le maiuscole e la parte prima della barra.
  • Nessuna connessione o timeout: vedi errori di connessione comuni e come risolverli.
  • Risposta troncata a metà frase: è stato raggiunto il limite max_tokens, trattato in perché una risposta AI si interrompe a metà frase.

Prossimi passi#

Una volta che la prima richiesta funziona, puoi aggiungere lo streaming in Python, inserire gli stessi tre valori nel tuo editor o agente, oppure leggere come leggere i nomi dei modelli AI. I dettagli di configurazione e un elenco completo dei modelli sono nella documentazione di CheapTokens.