Riferimento API¶
Claudin.io è un'API compatibile con OpenAI. Se hai già usato l'API OpenAI,
qui tutto ti è familiare: basta puntare all'URL di base di Claudin.io e usare il
modello claudinio.
URL di base¶
Le route in stile OpenAI si trovano sotto /v1.
Autenticazione¶
Invia la tua chiave API con ogni richiesta, usando uno di questi due header:
Modello¶
| ID modello | Finestra di contesto |
|---|---|
claudinio |
256K token |
Usa claudinio ovunque. (Alcuni client si aspettano la forma provider/model —
per quelli, usa claudinio/claudinio.)
Endpoint¶
| Metodo e percorso | Descrizione |
|---|---|
POST /v1/chat/completions |
Completamenti chat — l'endpoint principale |
POST /v1/completions |
Completamenti di testo legacy |
POST /v1/messages |
Formato Anthropic Messages |
POST /v1/responses |
Responses API (Codex) |
POST /v1/embeddings |
Embedding testuali |
GET /v1/models |
Elenca i modelli disponibili |
Completamenti chat¶
curl https://api.claudin.io/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "claudinio",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Write a haiku about proxies."}
],
"temperature": 0.7
}'
Sono supportati i parametri OpenAI standard: messages, temperature, top_p,
max_tokens, stream, stop, tools / tool_choice (function calling),
response_format e così via. Due hanno dei limiti che vale la pena conoscere
prima di inviarli: max_tokens viene limitato a un
minimo e a un massimo, e n deve essere 1.
max_tokens e ragionamento¶
I modelli Claudinio ragionano prima di rispondere e i token di ragionamento
contano ai fini di max_tokens: lo stesso budget copre la catena di pensiero
interna e la risposta visibile. Un max_tokens piccolo può quindi essere speso
quasi interamente nel ragionamento, lasciando la risposta troncata a metà
frase.
Per evitarlo, i valori inferiori a 32000 vengono automaticamente portati a 32000. All'altro estremo, i valori superiori a 393216 vengono abbassati a 393216 — il massimo che i modelli accettano — perché un numero più grande viene rifiutato del tutto anziché essere trattato come «quanto ne vuoi». Qualsiasi valore intermedio viene passato inalterato, e omettere il parametro è sempre sicuro.
max_tokens è un tetto, non una prenotazione: ti viene addebitato solo per i
token effettivamente generati, quindi un valore generoso non costa nulla in più.
Se esegui il parsing di output strutturati (JSON, XML, un formato rigoroso),
controlla finish_reason prima del parsing: "length" significa che la
risposta ha raggiunto il limite di token ed è incompleta, quindi un errore di
parsing è atteso, non un problema del modello:
choice = response.choices[0]
if choice.finish_reason == "length":
... # truncated — retry with a larger max_tokens
data = json.loads(choice.message.content)
Completamenti multipli (n)¶
È supportato solo n = 1. Inviare un n maggiore di 1 restituisce 400
con "code": "unsupported_parameter"; omettere il parametro è sempre sicuro.
I modelli Claudinio ragionano prima di rispondere e il passaggio di ragionamento
produce un'unica linea di pensiero: non c'è un modo economico per ramificarla in
più candidati indipendenti, quindi gli upstream non ne offrono uno. Se vuoi più
di un candidato, invia la richiesta più di una volta (una temperature più alta
ti dà varietà) e tieni presente che ciascuna viene addebitata separatamente.
Rifiutiamo n > 1 invece di restituire silenziosamente una singola scelta: un
client che ne ha chieste quattro e ne riceve una di solito fallisce più tardi,
nel suo stesso codice, senza un nostro errore che spieghi il perché.
Streaming¶
Imposta "stream": true per ricevere server-sent events nel formato di
streaming OpenAI (chunk data: {...} terminati da data: [DONE]).
Tool / function calling¶
claudinio supporta le tool call. Passa tools e rileggi tool_calls dalla
risposta, esattamente come con l'API OpenAI. È questo che lo fa funzionare
all'interno di editor agentici come Claude Code, Kilo e Cursor.
Ingresso multimodale¶
claudinio è un modello testuale, ma Claudin.io gestisce in modo
trasparente i blocchi di immagini, audio e video: se li invii, il proxy li
converte in descrizioni/trascrizioni testuali prima che il modello li veda. Non
devi fare nulla di speciale: invia normali content block OpenAI e funziona e
basta.
Errori¶
Gli errori seguono la forma degli errori OpenAI:
| Stato | Significato | Cosa fare |
|---|---|---|
401 |
Chiave API non valida o mancante | Controlla la chiave e l'header di autenticazione |
403 |
Endpoint non consentito | Usa uno dei percorsi /v1/* supportati |
402 |
Nessuna sottoscrizione attiva | Abbonati — riprovare non servirà |
429 |
Tetto di budget raggiunto o rate limiting | Attendi il reset della finestra (vedi l'header Retry-After) o passa a un piano superiore |
400 |
Richiesta malformata | Controlla il JSON / i parametri — vedi max_tokens e n |
5xx |
Inconveniente dell'upstream/provider | Riprova con backoff |
I dettagli del provider sono nascosti di proposito
I messaggi di errore vengono sanificati in modo da non rivelare il provider del modello sottostante. Vedrai sempre errori con il marchio di Claudin.io e la forma di OpenAI.
Raggiunto il tetto del budget¶
Quando esaurisci la protezione di spesa della finestra corrente, le richieste
restituiscono 429 con un header Retry-After che indica quanti secondi
mancano al reset della finestra. La tua dashboard mostra l'ora esatta del reset
e il budget rimanente. Rispetta il tempo indicato da quell'header invece di
riprovare subito. Vedi Piani e limiti per come funzionano le
finestre.
Un messaggio invece di un 429¶
Su un piccolo numero di account stiamo provando una risposta diversa alla stessa situazione. Invece dell'errore, la richiesta va a buon fine e la risposta stessa spiega che il limite è stato raggiunto e quando si azzera. Stiamo misurando se così l'informazione arriva alle persone in modo più affidabile di un errore che il loro agente si beve in silenzio — e se, detto chiaramente, preferiscono passare a un piano della misura giusta.
Se costruisci automazioni, non leggere un 2xx come "il lavoro è stato
fatto". Tratta una risposta che dice che il limite è stato raggiunto come il
limite raggiunto, e attendi l'azzeramento della finestra. Il 429 qui sopra
resta il comportamento predefinito ed è ciò che riceve quasi ogni account.
Limitazione della frequenza¶
Claudin.io non blocca in modo rigido l'uso normale. I tassi di richiesta
abusivi vengono rallentati (un throttle trasparente) anziché rifiutati,
quindi i client ben educati non vengono mai penalizzati. In pratica non devi
fare nulla: basta riprovare nel raro caso di 429.