API dei prezzi e badge del prezzo
Due indirizzi ti danno i prezzi attuali di UberLLM senza una chiave API o un account:
- Prezzi in formato JSON:
GET https://api.uberllm.dev/api/v1/public/prices - Un badge del prezzo:
https://api.uberllm.dev/api/v1/public/badge/<model-id>.svg
Entrambi mostrano lo stesso prezzo della pagina del modello su uberllm.dev: il prezzo più basso del venditore in questo momento. I prezzi vengono riletti ogni 30 secondi.
Prezzi in JSON
curl "https://api.uberllm.dev/api/v1/public/prices?model=deepseek/deepseek-v4-flash"
{
"updated_at": "2026-11-13T06:40:12Z",
"models": [
{
"id": "deepseek/deepseek-v4-flash",
"name": "DeepSeek V4 Flash",
"type": "text",
"input_per_m": 0.0091,
"output_per_m": 0.0182,
"list_input_per_m": 0.09,
"list_output_per_m": 0.18,
"discount_pct": 89.9,
"unit": "1M tokens",
"price_text": "$0.0091/M in · $0.0182/M out",
"page_url": "https://uberllm.dev/models/deepseek/deepseek-v4-flash"
}
]
}
I numeri sopra sono stati letti il 13 novembre 2026. I tuoi saranno diversi, perché i prezzi cambiano.
Cosa puoi chiedere
Tutti questi sono opzionali. Senza nessuno, ottieni ogni modello che puoi chiamare in questo momento.
| Parametro | Cosa fa |
|---|---|
model |
Un id del modello, per esempio deepseek/deepseek-v4-flash. |
type |
Solo modelli text, image, video o audio. Musica, text to speech e speech to text sono audio. |
q |
Parole da trovare nell'id o nel nome. Ogni parola deve corrispondere: q=claude opus. |
limit |
Al massimo questo numero di modelli, da 1 a 1000. |
Se model indica un modello che non esiste, o uno che nessuno fornisce in questo momento,
models è una lista vuota e la risposta è comunque 200. Un vecchio id del modello che è stato
rinominato risponde con il modello in cui si è trasformato.
Cosa ricevi
Tutti i prezzi sono in dollari USA. Un campo senza valore viene omesso.
| Campo | Significato |
|---|---|
id, name |
L'id del modello che invii in una richiesta, e il suo nome. |
type |
text, image, video o audio. |
input_per_m, output_per_m |
Modelli di testo: il prezzo attuale per 1 milioni di token di input e 1 milioni di token di output. |
list_input_per_m, list_output_per_m |
Modelli di testo: il prezzo di listino pubblicato del modello per la stessa quantità. |
price |
Modelli di immagini, video e audio: il prezzo attuale per un unit. |
list_price |
Modelli di immagini, video e audio: il prezzo ufficiale per un unit. Inviato solo quando è superiore a price. |
discount_pct |
Di quanto il prezzo attuale è inferiore al prezzo di listino, da 1 a 100. Per un modello di testo è il minore tra lo sconto sull'input e lo sconto sull'output. Omesso quando non c'è un prezzo di listino o il prezzo non è inferiore ad esso. |
unit |
Cosa si ottiene con un prezzo: 1M tokens, image, megapixel, second, video, track, minute, 1k characters o request. |
price_text |
Il prezzo a parole, in inglese, pronto da mostrare: $0.0091/M in · $0.0182/M out, $0.059 / sec, about $0.0315 per image. |
page_url |
La pagina del modello su uberllm.dev. |
updated_at |
Quando questi prezzi sono stati letti. |
Una richiesta può costare più del prezzo mostrato quando i venditori più economici sono occupati. Vedi Prezzi per come viene fatturata una richiesta.
Da una pagina web
Qualsiasi sito web può leggere i prezzi direttamente dal browser:
const res = await fetch("https://api.uberllm.dev/api/v1/public/prices?type=text&limit=10");
const { models } = await res.json();
for (const m of models) console.log(m.name, m.price_text);
Badge del prezzo
Una piccola immagine con il nome del modello e il suo prezzo attuale. Si aggiorna da sola.
Markdown, per un README:
[](https://uberllm.dev/models/deepseek/deepseek-v4-flash?utm_source=embed&utm_medium=referral&utm_campaign=price-badge)
HTML:
<a href="https://uberllm.dev/models/deepseek/deepseek-v4-flash?utm_source=embed&utm_medium=referral&utm_campaign=price-badge">
<img src="https://api.uberllm.dev/api/v1/public/badge/deepseek/deepseek-v4-flash.svg"
alt="DeepSeek V4 Flash price on UberLLM" height="20">
</a>
- Metti l'ID del modello nell'indirizzo così com'è, barre incluse, e finiscilo con
.svg. - Il badge indica anche quanto il prezzo è inferiore al prezzo di listino. Aggiungi
?discount=0per mostrare solo il prezzo. - Se nessuno serve il modello in questo momento, il badge dice "non disponibile al momento" e non mostra alcun prezzo. Torna al prezzo quando un venditore torna disponibile.
- Un ID modello che non esiste risponde
404. - Il link porta
utm_source=embed, così possiamo capire che una visita proviene da un badge. Non registra nulla sui tuoi lettori. Toglilo se preferisci.
Limiti e caching
- 300 richieste al minuto da un singolo indirizzo IP sull'indirizzo JSON. Oltre questo limite, riceverai
429con un headerRetry-After. - I badge non hanno limiti di richieste, e un badge per un modello reale è sempre un'immagine: se i prezzi non possono essere letti per un momento, mostrerà "non disponibile al momento" invece di dare errore.
- Le risposte JSON possono essere memorizzate nella cache per 60 secondi, i badge per 5 minuti. I siti che fungono da proxy per le immagini (come GitHub) possono mantenere un badge un po' più a lungo.
- I modelli creati per contenuti per adulti sono esclusi da entrambi. Si trovano in
GET /v1/models, contrassegnati come"nsfw": true.
Errori
| Stato | error.code |
Motivo |
|---|---|---|
400 |
invalid_type, invalid_limit, invalid_request |
Un parametro ha un valore non consentito. Il messaggio indica quale. |
404 |
model_not_found, not_found |
Solo badge: modello inesistente, o l'indirizzo non termina con .svg. |
429 |
rate_limited |
Solo JSON: troppe richieste dal tuo indirizzo IP. Attendi un minuto. |
503 |
unavailable |
Solo JSON: i prezzi non sono stati letti in questo momento. Riprova tra qualche secondo. |
Correlati
GET /v1/models: l'elenco completo dei modelli nel formato OpenAI, con le dimensioni del contesto e cosa supporta ogni modello.- MCP server: gli stessi prezzi come strumenti per un assistente AI.
- OpenAPI spec: entrambi gli indirizzi sono inclusi.