Documentazione API OpenRouter
Connetti la tua applicazione al nostro LLM uncensored utilizzando l'interfaccia standard compatibile con OpenAI. Questa guida copre autenticazione, formati di richiesta e streaming per un'integrazione rapida.
Avvio rapido: Connetti con Python
Inizia installando l'SDK ufficiale e puntandolo al nostro URL di base.
La nostra API si comporta come l'interfaccia standard di OpenAI ma instrada verso un singolo modello uncensored. Questo approccio elimina la complessità del proxy mantenendo portabile il tuo codice.
- Installa la libreria tramite pip.
- Imposta la tua chiave API nell'ambiente.
- Definisci l'URL di base per il nostro endpoint.
from openai import OpenAI
client = OpenAI(base_url="https://api.apiopenrouter.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)Sostituisci la chiave segnaposto con le tue credenziali. Puoi inviare prompt semplici o dati strutturati complessi.
Autenticazione e Chiavi
Genera una chiave dalla dashboard e trasmettila nell'intestazione Authorization.
Ogni account supporta una chiave attiva alla volta. Quando crei una nuova chiave, quella vecchia smette immediatamente di funzionare. Questo semplifica la gestione della sicurezza senza richiedere una logica di rotazione complessa.
curl https://api.apiopenrouter.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
}'La richiesta sopra utilizza lo schema Bearer. Assicurati che la tua chiave inizi con sk- e non contiene spazi bianchi extra.
Endpoint Chat Completions
Invia messaggi al /v1/chat/completions endpoint utilizzando JSON standard.
Il modello accetta user e assistant ruoli. Puoi configurare temperatura, top-p e sequenze di stop per controllare lo stile dell'output. Le risposte restituiscono l'utilizzo dei token nell'ultimo chunk se lo streaming è abilitato.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apiopenrouter.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);Imposta max_tokens per controllare la lunghezza dell'output. Se omesso, il valore predefinito è 2.048 token. Il modello supporta fino a 16.000 token per richiesta.
Risposte in streaming
Abilita lo streaming impostando stream: true nel corpo della richiesta.
I dettagli sull'utilizzo dei token appaiono solo nell'ultimo chunk dello stream. Questo permette aggiornamenti UI in tempo reale preservando i dati di fatturazione accurati. Gli errori durante lo streaming riportano comunque l'utilizzo per i token addebitati.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)Gestisci le risposte parziali con grazia. Lo stream si chiude normalmente quando il modello termina la generazione o raggiunge il limite di contesto.
Function Calling & JSON Mode
Usa response_format: {type: "json_object"} per output JSON rigorosi.
Definisci gli strumenti nel tools array e imposta tool_choice per imporre le chiamate alle funzioni. Il modello restituisce dati strutturati adatti all'elaborazione programmatica. Questo funziona in modo affidabile con i nostri pesi uncensored.
curl https://api.apiopenrouter.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
}'Combina il function calling con lo streaming per esperienze interattive. Convalida l'output JSON prima di passarlo alla logica della tua applicazione.
Limiti e Quote
Monitora il tuo utilizzo rispetto ai limiti per chiave per evitare interruzioni.
Ogni chiave consente 300 richieste al minuto e 8 richieste concorrenti. Il limite di dimensione del corpo della richiesta è di 8 MB. Se superi questi limiti, l'API restituisce un codice di stato 429. Gli errori di autenticazione restituiscono 401, mentre il credito insufficiente restituisce 402.
curl https://api.apiopenrouter.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
}'La finestra di contesto è di 100.000 token in totale. Gli errori non consumano credito. Anche i rifiuti per violazioni minori del contenuto restano gratuiti.
Domande comuni
In cosa differisce l'API openrouter da OpenAI standard?
La nostra API utilizza un singolo modello senza filtri ottimizzato per contenuti adulti leciti e creativi senza rifiuti. Mantiene la stessa struttura di richiesta e risposta di OpenAI, consentendoti di sostituire gli endpoint senza modificare il codice.
Cosa succede se rimango senza crediti?
Le richieste falliscono con un errore 402 quando il tuo saldo prepagato è zero. I crediti non scadono mai, quindi puoi ricaricare con criptovalute in qualsiasi momento. Errori e rifiuti non consumano il tuo saldo.
Posso usare più chiavi per progetti diversi?
Ogni account supporta una chiave attiva. Creare una nuova chiave invalida automaticamente quella precedente. Puoi generare una nuova chiave istantaneamente dal dashboard senza perdere la cronologia di fatturazione.
Recupera la tua chiave API
Iscriviti, copia il token e aggiorna il tuo URL di base. È tutta la configurazione.