API · MCP
Les données normalisées de prix, de capacités et de classements qui alimentent ce site sont publiées en JSON statique, librement téléchargeables et sans clé d’API. Vous pouvez y brancher directement votre code ou un agent.
Points de terminaison
Tous les modèles : entrée canonique, prix officiel + canal le moins cher, prix mixtes, contexte, capacités, scores Artificial Analysis et usage sur 30 jours.
Tous les fournisseurs : nom, palier (première partie / cloud / passerelle), nombre de modèles, SDK, base API et docs.
Résumé du site en texte brut pour les crawlers IA (convention llms.txt).
Servi comme fichiers statiques depuis un CDN, sans limite de débit. Merci malgré tout de mettre les réponses en cache plutôt que de les redemander à chaque requête. Les données sont rafraîchies à chaque build.
Champs clés (models.json)
id, name, lab, kindId canonique, nom d'affichage, labo et type de modèle.reference / cheapestRéférence (officiel/liste) et canal payant le moins cher, chacun avec entrée/sortie/lecture-cache par 1M de tokens.blendedRef / blendedMin / blendedTrustedPrix unitaire mixte (entrée×0,75 + sortie×0,25) pour les canaux de référence, le moins cher et le moins cher de confiance (passerelles exclues).context, outputLimit, capabilitiesFenêtre de contexte, sortie max et indicateurs de capacité à trois états (true/false/null).aa (idx, coding, agentic, speed, taskCost)Indices Artificial Analysis d'intelligence, codage, agentique, vitesse de sortie et coût par tâche (null si non couvert).usage (rank, tokens, share)Rang d'usage OpenRouter sur 30 jours, total de tokens et part (null si non suivi).hostCount, spreadCombien de fournisseurs hébergent le modèle et l'écart de prix entre plateformes.Exemples
Les cinq modèles les moins chers au prix mixte, avec curl et jq :
curl -s https://llmpricing.dev/api/models.json \
| jq '.models
| map(select(.blendedMin != null))
| sort_by(.blendedMin)[:5]
| .[] | {name, blendedMin, cheapest: .cheapest.provider}'JavaScript (fetch) :
const res = await fetch("https://llmpricing.dev/api/models.json");
const { meta, models } = await res.json();
// 5 cheapest by blended price (input x0.75 + output x0.25)
const cheapest = models
.filter((m) => m.blendedMin != null)
.sort((a, b) => a.blendedMin - b.blendedMin)
.slice(0, 5);
console.log(meta.syncedAt, cheapest);Python (requests) :
import requests
data = requests.get("https://llmpricing.dev/api/models.json").json()
models = data["models"]
# highest Artificial Analysis intelligence with a public price
ranked = sorted(
(m for m in models if m["aa"] and m["aa"]["idx"] is not None),
key=lambda m: m["aa"]["idx"],
reverse=True,
)
for m in ranked[:5]:
print(m["name"], m["aa"]["idx"], m["blendedMin"])Les points de terminaison envoient Access-Control-Allow-Origin: *, ils fonctionnent donc aussi depuis le navigateur.
Serveur MCP
Comme les données sont du JSON propre via HTTPS, tout serveur MCP capable de fetch peut les exposer à un agent. Par exemple, le serveur fetch de référence :
{
"mcpServers": {
"llm-pricing": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
}Demandez ensuite à l’agent de lire https://llmpricing.dev/api/models.json et de raisonner dessus : le modèle le moins cher dans un budget donné, la meilleure intelligence par dollar, quels fournisseurs hébergent un modèle.
Licence & attribution
Les données sont agrégées depuis models.dev (MIT), Artificial Analysis et OpenRouter. Vous pouvez les réutiliser sous CC BY 4.0, en conservant l’attribution à LLM Pricing et aux sources en amont.