Limiti del piano gratuito OpenRouter e come risolvere gli errori 429
Updated 2026-07-15
Le varianti di modelli gratuiti su OpenRouter sono limitate a circa 20 richieste al minuto, più 50 richieste al giorno se il tuo account ha acquistato meno di $10 in crediti a vita, o 1.000 al giorno una volta superata quella soglia. Un 429 significa che hai raggiunto uno di questi tetti o che il pool gratuito condiviso è saturo in quel momento.
Risposta rapida: i limiti esatti del piano gratuito
OpenRouter limita l'uso gratuito su due assi: un tetto al minuto e un budget giornaliero di richieste. Il limite al minuto per le varianti di modelli gratuiti (ID modello che terminano in :free) è 20 richieste al minuto. Il budget giornaliero dipende dal fatto che il tuo account abbia mai acquistato almeno $10 in crediti: sotto quella soglia a vita ottieni 50 richieste al giorno sui modelli gratuiti, alla soglia o sopra ottieni 1.000 al giorno. Queste sono le cifre che OpenRouter documenta a inizio 2026. Sono già cambiate in passato (il tetto giornaliero era più alto), quindi tratta la tabella come la base attuale piuttosto che una garanzia permanente, e verifica sulla tua chiave con il controllo nella prossima sezione. Una risposta 429 significa che hai superato uno di questi tetti, oppure che il provider a monte che serve quel modello gratuito ha esaurito la capacità anche se la tua quota personale era a posto. Il resto di questa guida spiega come distinguere quale hai colpito e cosa fare al riguardo.
| Limite | Valore | Si applica quando |
|---|---|---|
| Richieste al minuto | 20 rpm | Tutte le varianti di modelli :free, per account |
| Richieste al giorno | 50 | Meno di $10 in acquisti di crediti a vita |
| Richieste al giorno | 1.000 | $10 o più in acquisti di crediti a vita |
| Modelli a pagamento | Limiti separati, molto più alti | Qualsiasi modello non gratuito, fatturato per token |
Come funziona davvero il piano gratuito
I modelli gratuiti su OpenRouter sono voci di catalogo separate con un suffisso :free. Sono serviti da provider che donano o sovvenzionano capacità, motivo per cui la loro disponibilità oscilla molto di più delle varianti a pagamento degli stessi pesi. Tre dettagli traggono in inganno. Primo, il tetto giornaliero è a livello di account: 50 richieste distribuite su qualsiasi combinazione di modelli gratuiti, non 50 per modello. Secondo, la soglia di $10 conta gli acquisti di crediti a vita, non il saldo attuale. Comprare $10 una volta ti mantiene nella fascia di 1.000 richieste al giorno anche dopo averli spesi. Terzo, i limiti sono applicati per account, quindi creare chiavi API extra sotto lo stesso account non aggiunge nulla. Puoi controllare esattamente dove si trova la tua chiave. La risposta include is_free_tier, il tuo uso finora, e l'oggetto rate_limit applicato attualmente alla tua chiave:
curl https://openrouter.ai/api/v1/auth/key \
-H "Authorization: Bearer $OPENROUTER_API_KEY"
# Campi della risposta da leggere:
# "is_free_tier": true -> sotto la soglia di $10 a vita
# "usage": 1.42 -> crediti consumati
# "rate_limit": {...} -> il limite per intervallo su questa chiavePerché i 429 aumentano nelle ore di punta
I tuoi tetti personali sono solo metà della storia. La capacità gratuita è un pool condiviso, e OpenRouter può instradare una richiesta gratuita solo verso un provider con capacità sovvenzionata libera in quel momento. Quando un modello gratuito popolare satura, ottieni errori 429 o upstream anche se hai fatto solo una manciata di richieste quel giorno. I resoconti della community descrivono costantemente le sere nei fusi orari statunitensi e i weekend come le finestre peggiori, con la stessa richiesta che ha successo immediato nelle ore di minor traffico. Sono osservazioni approssimative, non numeri pubblicati, ma ricorrono abbastanza spesso da poterci pianificare. I frontend di chat amplificano il problema. Interfacce stile SillyTavern e JanitorAI inviano una nuova richiesta di completamento per ogni swipe, rigenerazione e turno di chat di gruppo, e alcune configurazioni proxy ritentano automaticamente in caso di fallimento. Un utente che sente di aver inviato 15 messaggi potrebbe aver generato 40-50 richieste, che è l'intero budget giornaliero di un account sotto la soglia di $10. Anche i retry automatici aggressivi approfondiscono la congestione nei picchi per tutti, motivo per cui un backoff disciplinato conta. La diagnosi pratica: se i 429 si fermano quando aspetti il reset giornaliero, hai raggiunto la tua quota. Se vanno e vengono nella stessa ora mentre il tuo conteggio di richieste è basso, stai vedendo congestione del pool.
Soluzioni, in ordine di sforzo
Se mantieni il traffico sul piano gratuito, il client minimo funzionante gestisce il 429 esplicitamente invece di fallire o ritentare alla cieca:
- Leggi prima il corpo dell'errore. I 429 di OpenRouter distinguono tra il tuo limite al minuto, la tua quota giornaliera esaurita, e la congestione a monte. Risolvi quello che hai davvero colpito.
- Rispetta Retry-After e fai backoff esponenziale con jitter. Martellare l'endpoint ti mantiene rate-limited più a lungo e peggiora la congestione.
- Supera la soglia di $10 di crediti a vita una volta. Alza il tetto giornaliero dai modelli gratuiti da 50 a 1.000 richieste ed è la singola soluzione a maggior leva per i 429 da quota giornaliera.
- Sposta il traffico che conta su una variante a pagamento dello stesso modello. I modelli classe DeepSeek costano ben meno di un dollaro per milione di token, quindi una sera intensa di chat costa di solito centesimi.
- Taglia il volume di richieste lato client: disabilita la rigenerazione automatica, evita swipe non necessari, e riduci il contesto così ogni retry costa meno quando capita.
import random
import time
import requests
def chat(payload: dict, key: str, retries: int = 5) -> dict:
for attempt in range(retries):
r = requests.post(
"https://openrouter.ai/api/v1/chat/completions",
headers={"Authorization": f"Bearer {key}"},
json=payload,
timeout=120,
)
if r.status_code != 429:
r.raise_for_status()
return r.json()
wait = float(r.headers.get("Retry-After", 2 ** attempt + random.random()))
time.sleep(wait)
raise RuntimeError("Still rate limited after all retries")Alternative quando 50 richieste al giorno non bastano
Se il tuo pattern di utilizzo è costantemente sopra il budget gratuito, ci sono quattro strade realistiche. Quella giusta dipende dal fatto che il tuo collo di bottiglia sia la quota giornaliera, la congestione nei picchi, o entrambe. Nota che le opzioni a pagamento differiscono principalmente per overhead, non per forma delle richieste: tutte parlano lo stesso formato chat completions compatibile OpenAI, quindi cambiare è una modifica di base URL e chiave piuttosto che una riscrittura.
| Opzione | Modello di costo | Comportamento del rate limit | Compromesso |
|---|---|---|---|
| Varianti :free OpenRouter | $0 | 20 rpm; 50 o 1.000 richieste/giorno | Pool condiviso, congestione nei picchi |
| Modelli a pagamento OpenRouter | Per token, crediti anticipati | Molto più alto, scala con l'account | Commissione della piattaforma sugli acquisti di crediti |
| API dirette dei provider | Per token al prezzo di listino ufficiale | Livelli specifici del provider | Chiave e fatturazione separate per provider |
| Gateway pay-as-you-go diretti | Per token, senza abbonamento | Capacità a pagamento, nessuna contesa sul pool gratuito | Paghi dalla prima richiesta |
| Pesi aperti self-hosted | Hardware ed energia | Limitato solo dalla tua GPU | Sforzo di setup, tetto sulla dimensione del modello |
Far girare un frontend di chat su un gateway diretto
Un gateway diretto mantiene la stessa forma di richiesta compatibile OpenAI ma rimuove la coda del pool gratuito, perché ogni richiesta è capacità a pagamento. APIsRouter è un esempio: pay-as-you-go senza abbonamento, e un checkout senza iscrizione su /topup dove paghi prima e la chiave API arriva via email. I modelli globali girano al 20% sotto il prezzo di listino ufficiale, i modelli cinesi sono sotto le loro tariffe ufficiali, e una prima ricarica raddoppia il tuo saldo iniziale. Il setup del frontend rispecchia quello che già fai con OpenRouter. In SillyTavern, incolla il base URL che termina in /v1 (https://api.apisrouter.com/v1) e la lista dei modelli si popola automaticamente da /v1/models con la tua chiave. La configurazione proxy di JanitorAI richiede invece l'endpoint completo: https://api.apisrouter.com/v1/chat/completions, più il nome del modello e la chiave API. Per il traffico di chat con personaggi e roleplay, la famiglia DeepSeek V4 è la preferita della community per il rapporto qualità-prezzo, con MiMo, GLM-5 e Kimi K2.6 come ulteriori scelte di valore. Claude Sonnet 4.6 scrive la prosa più forte per scrittura creativa adatta al lavoro sotto la policy sui contenuti di Anthropic.
| Modello | ID modello | Input / output per 1M token |
|---|---|---|
| DeepSeek V4 Flash | deepseek-v4-flash | $0.126 / $0.252 |
| DeepSeek V4 Pro | deepseek-v4-pro | $0.3915 / $0.783 |
| GLM-5 | glm-5 | $0.514 / $2.314 |
| Gemini 3.5 Flash | gemini-3.5-flash | $1.20 / $7.20 |
| Claude Sonnet 4.6 | claude-sonnet-4-6 | $2.40 / $12.00 |
curl https://api.apisrouter.com/v1/chat/completions \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-flash",
"messages": [{"role": "user", "content": "Hello"}]
}'Domande frequenti
OpenRouter è gratuito da usare?
In parte. OpenRouter elenca varianti gratuite di alcuni modelli (ID che terminano in :free) che non costano nulla ma sono limitate a circa 20 richieste al minuto e 50 o 1.000 richieste al giorno, a seconda che tu abbia mai acquistato $10 in crediti. Tutte le altre voci di modello sono a pagamento per token.
Perché continuo a ricevere errori 429 su OpenRouter?
Un 429 significa che hai superato il limite al minuto, esaurito il tuo budget giornaliero di richieste gratuite, o che la capacità upstream condivisa per quel modello gratuito è satura. Il corpo dell'errore dice quale. I 429 da quota persistono fino al reset giornaliero; i 429 da congestione di solito si risolvono nelle ore di minor traffico.
Come aumento il mio rate limit su OpenRouter?
Compra $10 in crediti una volta. Quella soglia a vita alza il tetto giornaliero dei modelli gratuiti da 50 a 1.000 richieste. Oltre a questo, le opzioni sono spostare il traffico su varianti di modelli a pagamento, distribuire le richieste con backoff, o instradare il traffico in eccesso tramite un provider o gateway diverso.
I modelli gratuiti OpenRouter hanno un limite giornaliero?
Sì. Il budget giornaliero è condiviso su tutti i modelli gratuiti del tuo account: 50 richieste al giorno sotto i $10 in acquisti di crediti a vita, 1.000 al giorno alla soglia o sopra. È applicato a livello di account, quindi chiavi API extra sullo stesso account non aggiungono quota.
Il piano gratuito basta per JanitorAI o SillyTavern?
Per test leggeri, sì. In pratica ogni swipe, rigenerazione e turno di gruppo è una richiesta separata, quindi una sessione attiva può consumare rapidamente 50 richieste, e la congestione nei picchi aggiunge fallimenti sopra. Gli utenti intensivi tipicamente passano a modelli a pagamento economici. Qualunque cosa usi, segui i ToS della piattaforma frontend, inclusi i requisiti sull'età, e la content policy del provider del modello.