Documentation
Tout au même endroit : ce qu'est AI Rate Card, les données ouvertes, l'API et le serveur MCP, comment le citer et comment un fournisseur le rejoint.
Sommaire
Ce qu'est AI Rate Card
AI Rate Card recense les prix des modèles d'IA – langage, image, voix et autres – tels que leurs fournisseurs les publient. Les prix proviennent des pages de tarifs publiques et des API des fournisseurs – ou, lorsque leurs conditions n'autorisent pas la collecte automatique, du jeu de données ouvert models.dev – et sont vérifiés chaque jour.
Lorsque deux sources divergent sur un prix, le site n'en choisit pas une en silence : l'offre est marquée en conflit jusqu'à résolution.
Les prix affichés sont donnés à titre indicatif. La page du fournisseur fait foi : vérifiez le prix avant d'acheter.
Questions, corrections et demandes : hello@airatecard.com.
API et MCP : pour commencer
Deux façons d'obtenir les prix par une machine plutôt qu'à l'œil. Vous pouvez essayer les deux tout de suite, sans inscription ni paiement.
Demander à votre assistant IA (MCP)
Pour ceux qui utilisent Claude, ChatGPT ou Cursor. Vous connectez le site une fois, et l'assistant consulte lui-même les prix actuels quand vous posez une question avec vos mots. Sans programmation.
- Copiez l'adresse du serveur :
https://airatecard.com/mcp - Ajoutez-la à votre assistant comme connecteur – où cliquer dans chaque application est indiqué plus bas, dans la section Serveur MCP.
- Posez votre question avec vos mots, par exemple :
- Quel est le modèle le moins cher avec un contexte d'au moins 128K tokens ?
- Compare les prix de Llama 3.1 8B chez différents fournisseurs.
- Combien coûteront par mois 10 M de tokens en entrée et 2 M en sortie avec GPT OSS 120B ?
Récupérer les données dans un programme (API)
Pour les développeurs : de simples requêtes HTTP, la réponse en JSON. Vous pouvez commencer tout de suite sans clé ; une clé personnelle gratuite élargit la fenêtre par minute (tableau ci-dessous).
- Essayez une requête sans clé – copiez-la dans un terminal : les 5 offres de modèles de texte les moins chères.
curl -s 'https://airatecard.com/v1/offers?category=llm&pricing=usage&limit=5' - Besoin de plus de lignes ? Connectez-vous, créez une clé dans votre compte, rubrique Clés API, et envoyez-la dans l'en-tête X-API-Key.
- Toutes les requêtes et leurs paramètres : /openapi.json (Postman et les générateurs de clients le lisent).
Les principales requêtes
GET /v1/offers?category=llm&pricing=usage&limit=5 | les offres avec leurs prix ; les mêmes filtres que la page Modèles |
GET /v1/models?category=llm | les modèles et leur meilleur prix |
GET /v1/models/{model_id} | un modèle avec toutes ses offres |
GET /v1/cost?model={model_id}&input_tokens=10000000&output_tokens=2000000 | ce que coûte votre volume chez chaque fournisseur d'un modèle |
GET /v1/compare?models={a},{b} | deux à quatre modèles côte à côte |
GET /v1/analytics/cheapest?task=text&n=5 | les moins chers pour une tâche (texte, image, voix...) |
GET /v1/models/{model_id}/history | l'historique des prix d'un modèle (90 jours) |
GET /v1/articles | les articles du site |
GET /v1/meta | sur le catalogue : date de mise à jour, nombre d'offres |
Comment les prix sont collectés
Chaque prix d'AI Rate Card provient de la page de tarifs publique ou de l'API du fournisseur, lorsque ses conditions autorisent la collecte automatique, et sinon de models.dev – un jeu de données ouvert de prix de modèles publié sous licence MIT (Copyright (c) 2025 models.dev ; texte de la licence sur /static/licenses/models.dev.txt). Jamais une estimation ; vérifié chaque jour.
« Pas de données » signifie qu'aucune offre avec prix n'a encore été trouvée pour ce modèle chez ce fournisseur. « Gratuit » signifie que la page du fournisseur indique que l'offre ne coûte rien. « Retiré » signifie que l'offre figurait sur la page du fournisseur mais n'y est plus ; elle reste sur le site avec son dernier prix connu, marquée retirée, pour que son historique ne soit pas perdu.
Chaque changement de prix est conservé : l'historique complet d'une offre et du marché entier, jour après jour, se trouve sur sa page et sur /market.
Données
AI Rate Card sert à consulter et à choisir, pas à copier en masse : il n'existe pas de fichier du catalogue entier ni de son historique de prix. Ouvrez la fiche d'un modèle ou d'une offre pour la citer, ou interrogez /v1 ou le serveur MCP pour les prix actuels, page par page.
API REST
L'API JSON publique pour les agents et les scripts : aucune clé n'est nécessaire pour lire, une clé personnelle relève seulement la limite.
/v1/openapi.json
curl -s 'https://airatecard.com/v1/offers?max_price_input=1&cur=USD'Pagination
/v1/offers et /v1/models renvoient au plus 50 lignes par page (25 par défaut) ; paginez avec offset et limit ou affinez avec des filtres - le catalogue entier tient dans un fichier sur /export.
Analyses
Prix actuels par tâche, et non par type de modèle – ce qu'un acheteur veut réellement faire : le moins cher, le plus cher et la médiane pour embedding, image, moderation, rerank, stt, text, tts, video, vision. scope restreint à la catégorie propre d'une tâche (specialized) ou aux modèles multimodaux qui conviennent (universal) ; component choisit input_tokens, output_tokens ou l'unité propre de la tâche.
curl -s 'https://airatecard.com/v1/analytics/cheapest?task=text&n=5'curl -s 'https://airatecard.com/v1/analytics/dearest?task=image&n=5'curl -s 'https://airatecard.com/v1/analytics/median?task=vision&n=5'Niveaux d'accès
Les pages sont ouvertes à tous, à tout moteur de recherche et assistant d'IA. Les machines peuvent commencer sans clé ; une clé personnelle gratuite (inscription avec identifiant et mot de passe, sans e-mail, puis compte → clés API ; à envoyer dans l'en-tête X-API-Key) élargit la fenêtre par minute.
| Sans connexion | Free | |
|---|---|---|
| Pages, articles, filtres, comparaison, calculateurs | tout | tout |
| Télécharger un tableau : lignes par fichier, fichiers par heure | 100000 lignes, 20 par heure | 100000 lignes, 60 par heure |
| API pour développeurs : requêtes par minute (pas de limite journalière) | 60/min | 120/min |
| Historique des prix via l'API | jusqu'à 90 jours, un modèle par requête | jusqu'à 90 jours, un modèle par requête |
Limites et licence
Pas de plafond journalier : seulement des fenêtres par minute contre les abus (tableau ci-dessus), plus larges avec une clé personnelle gratuite (compte → clés API, en-tête X-API-Key). Chaque réponse contient X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset et X-Daily-Rows-Remaining ; au-delà, réponse 429 avec Retry-After. Licence : CC BY 4.0 : le catalogue, les téléchargements, les réponses de l’API et l’historique des prix sur 90 jours peuvent être utilisés, cités et redistribués librement, y compris à des fins commerciales, avec mention d’AI Rate Card (airatecard.com) et un lien vers la fiche ou la page d’où viennent les chiffres.
Comment citer
Chaque réponse de l'API et du MCP porte une ligne « cite », chaque téléchargement se termine par une : citez AI Rate Card, liez la fiche ou la page du modèle utilisée et donnez la date de vérification du prix - « Source: AI Rate Card, https://airatecard.com/c/offer:<id>, prices checked AAAA-MM-JJ ».
Export par filtre
GET /export renvoie les offres d'un filtre en JSON, CSV, YAML ou Excel : prix actuels seulement, en USD. Données ouvertes (CC BY), sans connexion : tout le catalogue en un fichier, jusqu'à 20 téléchargements par heure et par adresse (plus avec un compte). Les paramètres sont ceux de la page « Modèles » : définissez un filtre, ouvrez « Télécharger » et copiez l'adresse. Chaque fichier se termine par la ligne « Source: AI Rate Card, ... » à citer.
curl -s 'https://airatecard.com/export?format=json&category=llm&r_in=0-1&r_ctx=128k-&limit=100'curl -s 'https://airatecard.com/export?format=csv&provider=deepinfra&provider=together&sort=price_input'curl -s 'https://airatecard.com/export?format=yaml&name_q=qwen&input_modality=image'Essayer
format : json | csv | yaml ; plages en une valeur « de-à » (r_in, r_out, r_ctx, r_mo, r_params … ; 128k et 1m acceptés) ; répétez provider, region, input_modality … pour plusieurs valeurs ; sort et desc comme sur la page.
Serveur MCP
Un serveur MCP distant (Streamable HTTP), en lecture seule. Il répond aux questions de prix avec les outils cheapest_for_workload (le moins cher pour toute une tâche, avec des scénarios prêts : chatbot, coding_agent, rag, summarization, long_context, vision, embedding_index, trial), search_offers, get_model_prices, cheapest, compare_models, estimate_cost et get_card – chaque résultat porte l'URL de la fiche à citer. Il fonctionne sans clé ; avec une clé personnelle (en-tête X-API-Key), il renvoie plus de lignes, comme l'API. Prompts prêts pour l'utilisateur : cheapest_for_my_job, where_is_model_cheapest, compare_models.
https://airatecard.com/mcp
Claude.ai / Claude Desktop
Settings → Connectors → Add custom connector, puis collez cette URL :
https://airatecard.com/mcp
Claude Code
claude mcp add --transport http ai-rate-card https://airatecard.com/mcpChatGPT
Settings → Connectors (mode développeur), ajoutez un connecteur personnalisé avec cette URL :
https://airatecard.com/mcp
Cursor / VS Code
Ajoutez ceci à votre mcp.json :
{
"mcpServers": {
"ai-rate-card": {
"url": "https://airatecard.com/mcp"
}
}
}Tout client MCP
Un message JSON-RPC 2.0 sur HTTP, sans session :
curl -s https://airatecard.com/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"cheapest","arguments":{"category":"llm"}}}'Connecter votre propre agent
Tout agent qui parle MCP – avec n'importe quel framework ou API – se connecte au même serveur. Choisissez selon les limites voulues :
- Sans clé :
https://airatecard.com/mcp– limites invité, rien à configurer. - Votre agent avec vos limites :
https://airatecard.com/mcpet une clé personnelle de votre compte (Clés API), envoyée en Authorization: Bearerou X-API-Key: . - Un agent au service de plusieurs personnes, chacune avec son compte : https://airatecard.com/mcp/account avec OAuth – voir la section ci-dessus.
Les exemples lisent la clé dans la variable d'environnement AIRATECARD_KEY – ne mettez jamais une clé dans le code ou une URL. Sans clé, retirez la ligne Authorization.
Anthropic API (Messages, MCP connector)
import os, anthropic
client = anthropic.Anthropic()
resp = client.beta.messages.create(
model="claude-opus-5-5", max_tokens=1000,
messages=[{"role": "user", "content": "Cheapest model with 128K context?"}],
mcp_servers=[{"type": "url", "url": "https://airatecard.com/mcp", "name": "airatecard",
"authorization_token": os.environ["AIRATECARD_KEY"]}],
tools=[{"type": "mcp_toolset", "mcp_server_name": "airatecard"}],
betas=["mcp-client-2025-11-20"],
)
print(resp.content)OpenAI API (Responses, remote MCP)
import os
from openai import OpenAI
resp = OpenAI().responses.create(
model="YOUR_MODEL",
input="Cheapest model with 128K context?",
tools=[{"type": "mcp", "server_label": "airatecard", "server_url": "https://airatecard.com/mcp",
"authorization": os.environ["AIRATECARD_KEY"], "require_approval": "never"}],
)
print(resp.output_text)Claude Agent SDK (Python)
import asyncio, os
from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage
options = ClaudeAgentOptions(
mcp_servers={"airatecard": {"type": "http", "url": "https://airatecard.com/mcp",
"headers": {"Authorization": "Bearer " + os.environ["AIRATECARD_KEY"]}}},
allowed_tools=["mcp__airatecard__*"],
)
async def main():
async for m in query(prompt="Cheapest model with 128K context?", options=options):
if isinstance(m, ResultMessage):
print(m.result)
asyncio.run(main())OpenAI Agents SDK (Python)
import asyncio, os
from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp
async def main():
async with MCPServerStreamableHttp(name="airatecard", params={"url": "https://airatecard.com/mcp",
"headers": {"Authorization": "Bearer " + os.environ["AIRATECARD_KEY"]}}) as prices:
agent = Agent(name="buyer", instructions="Answer with AI Rate Card prices and cite them.",
mcp_servers=[prices])
print((await Runner.run(agent, "Cheapest model with 128K context?")).final_output)
asyncio.run(main())LangChain / LangGraph (langchain-mcp-adapters)
import asyncio, os
from langchain_mcp_adapters.client import MultiServerMCPClient
async def main():
client = MultiServerMCPClient({"airatecard": {
"url": "https://airatecard.com/mcp", "transport": "streamable_http",
"headers": {"Authorization": "Bearer " + os.environ["AIRATECARD_KEY"]}}})
tools = await client.get_tools() # give them to your agent, e.g. create_react_agent(model, tools)
print([t.name for t in tools])
asyncio.run(main())MCP SDK (Python, official)
import asyncio, os
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def main():
headers = {"Authorization": "Bearer " + os.environ["AIRATECARD_KEY"]}
async with streamablehttp_client("https://airatecard.com/mcp", headers=headers) as (read, write, _):
async with ClientSession(read, write) as s:
await s.initialize()
res = await s.call_tool("cheapest", {"category": "llm", "limit": 3})
print(res.content[0].text)
asyncio.run(main())MCP SDK (TypeScript, official)
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(new URL("https://airatecard.com/mcp"), {
requestInit: { headers: { Authorization: `Bearer ${process.env.AIRATECARD_KEY}` } },
});
const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(transport);
console.log(await client.callTool({ name: "cheapest", arguments: { category: "llm", limit: 3 } }));HTTP (curl, JSON-RPC)
curl -s https://airatecard.com/mcp \
-H "Authorization: Bearer $AIRATECARD_KEY" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"cheapest","arguments":{"category":"llm","limit":3}}}'Bon à savoir
Une clé par agent : vous pouvez alors en révoquer une sans arrêter les autres. Au-delà d'une limite, le serveur répond 429 avec Retry-After – attendez autant de secondes, ne changez pas de clé. Chaque résultat d'outil porte une ligne cite et un card_url : que l'agent les cite. Les outils : search_offers, get_model_prices, cheapest, compare_models, estimate_cost, get_card, cheapest_models, dearest_models, median_models, list_articles.
Votre compte dans les assistants et agents IA (OAuth)
Le serveur MCP a deux adresses. https://airatecard.com/mcp fonctionne pour tous sans connexion, avec les limites invité. https://airatecard.com/mcp/account fonctionne avec votre compte AI Rate Card : vos limites (Free ou Pro), et vous voyez et révoquez l'accès dans votre compte. Vous vous connectez une fois, sur ce site – l'assistant ne voit jamais votre mot de passe.
Claude.ai / Claude Desktop
Settings → Connectors → Add custom connector, collez l'adresse ci-dessous. Laissez le client OAuth sur « Register automatically ». Claude ouvre la page de connexion de ce site : connectez-vous et appuyez sur Autoriser.
https://airatecard.com/mcp/accountChatGPT
Settings → Connectors (mode développeur) → créez un connecteur avec l'adresse ci-dessous et l'authentification OAuth. ChatGPT ouvre la page de connexion de ce site : connectez-vous et appuyez sur Autoriser.
https://airatecard.com/mcp/accountClaude Code
Ajoutez le serveur, puis tapez /mcp dans Claude Code et choisissez Authenticate : le navigateur ouvre la page de connexion de ce site.
claude mcp add --transport http ai-rate-card-account https://airatecard.com/mcp/accountCursor / VS Code
Cursor, VS Code et autres clients MCP avec OAuth : mettez l'adresse dans mcp.json ; au premier appel le client ouvre la page de connexion de ce site.
{
"mcpServers": {
"ai-rate-card-account": {
"url": "https://airatecard.com/mcp/account"
}
}
}Scripts et agents en terminal : un code au lieu d'un navigateur
Un programme sans navigateur utilise le device flow (RFC 8628) : il demande un code, vous ouvrez l'adresse affichée sur n'importe quel appareil, vous vous connectez, vérifiez le code et appuyez sur Autoriser, et le programme obtient son jeton. Les quatre requêtes :
# 1. register your program once - keep the client_id
curl -s -X POST https://airatecard.com/oauth2/register -H 'Content-Type: application/json' \
-d '{"client_name":"my script","token_endpoint_auth_method":"none","scope":"api offline_access",
"grant_types":["urn:ietf:params:oauth:grant-type:device_code","refresh_token"]}'
# 2. ask for a code; open verification_uri_complete, sign in, press Allow
curl -s -X POST https://airatecard.com/oauth2/device/auth -d 'client_id=<client_id>&scope=api%20offline_access'
# 3. every few seconds until access_token comes
curl -s -X POST https://airatecard.com/oauth2/token -d 'grant_type=urn:ietf:params:oauth:grant-type:device_code' \
-d 'device_code=<device_code>&client_id=<client_id>'
# 4. use it
curl -s https://airatecard.com/v1/meta -H 'Authorization: Bearer <access_token>'Jetons, limites et révocation
Envoyez le jeton dans l'en-tête Authorization: Bearer <jeton> sur /v1 et /mcp/account. Il vit une heure ; renouvelez-le avec grant_type=refresh_token (le jeton de rafraîchissement vit 30 jours, jusqu'à révocation). Il compte avec les limites de votre compte, comme une clé personnelle. Chaque application autorisée figure dans votre compte sous Applications connectées, où un clic la révoque avec ses jetons.
Pour les agents : /auth.md. Métadonnées standard : /.well-known/oauth-authorization-server et /.well-known/oauth-protected-resource/mcp/account. Vous préférez une clé fixe ? Créez-la dans votre compte, rubrique Clés API, et envoyez-la en X-API-Key.
llms.txt
Un guide en texte brut pour les agents IA, selon la convention llmstxt.org : ce qu'est le site, l'API et le serveur MCP, et comment le citer – sur /llms.txt (aussi /.well-known/llms.txt). L'offre actuelle la moins chère des modèles les plus proposés, une ligne chacun, est sur /llms-full.txt.
Comment citer
CC BY 4.0 : le catalogue, les téléchargements, les réponses de l’API et l’historique des prix sur 90 jours peuvent être utilisés, cités et redistribués librement, y compris à des fins commerciales, avec mention d’AI Rate Card (airatecard.com) et un lien vers la fiche ou la page d’où viennent les chiffres.
Pour les agents IA, il y a /llms.txt et l'API publique sur /v1 – consulter, comparer et citer, jamais une copie en masse du catalogue ou de son historique de prix.
Source: AI Rate Card, https://airatecard.com/fr/c/offer:<id>
Pour les fournisseurs
Inscription gratuite, faite par vous dans votre espace. L'ordre de chaque liste ne dépend que du prix – l'argent ne fait monter personne.
Comment rejoindre : six étapes, environ 15 minutes
L'inscription est gratuite et se fait par vous, dans votre espace, en 15 minutes environ – sans e-mails ni attente :
- Créez un compte – identifiant et mot de passe, sans e-mail.
- Appuyez sur « Ajouter un nouveau fournisseur » et saisissez le nom et le site de l'entreprise.
- Prouvez le domaine : un fichier d'une ligne sous /.well-known/, un enregistrement DNS TXT ou une balise meta – puis « Vérifier maintenant ».
- Saisissez modèles et prix dans le formulaire ; il crée votre models.yaml.
- Placez ce fichier à /.well-known/airatecard-models.yaml et appuyez sur « Vérifier le fichier ».
- Appuyez sur « Publier » : le collecteur vous active automatiquement, généralement en moins de 10 minutes.
Ensuite le fichier est lu chaque jour : changez-y un prix, le catalogue suit le lendemain. Vos modèles apparaissent sur le site, dans l'API (/v1) et dans le serveur MCP pour les assistants IA, avec des liens vers vos pages.
Ajouter un nouveau fournisseur Pas à pas, avec exemples
D'où viennent vos prix
Vos prix viennent d'un seul endroit – votre propre site, pour qu'il n'y ait jamais deux versions de la vérité :
- votre page de prix publique (ou API de prix) – notre robot la lit chaque jour ;
- ou deux fichiers sur votre propre domaine – nous ne lisons alors qu'eux : seller.yaml, models.yaml (models.min.yaml)
Dans l'espace, un fournisseur confirmé ne règle que l'habillage de ses fiches, consulte ses statistiques et demande une nouvelle vérification de sa page ; les prix ne sont jamais saisis à la main ni envoyés par API.
Déjà dans le catalogue ?
Beaucoup de fournisseurs sont déjà listés : nous lisons leurs pages de prix publiques. Ouvrez votre fiche dans « Fournisseurs » et appuyez sur « C'est mon entreprise » – prouvez le domaine, et vous gérez la fiche : apparence, statistiques, revérification des prix. Vous préférez un fichier à votre page de prix ? Publiez models.yaml comme ci-dessus.
Pour les agents IA : tout le parcours via l'API et MCP
Chaque étape de l'assistant existe aussi en appel : un agent du fournisseur peut démarrer la fiche, vérifier le domaine, contrôler les fichiers, publier, puis lire ses offres et demander une revérification - mêmes contrôles, mêmes textes. Les prix ne passent jamais par l'API : le fournisseur publie models.yaml sur son site. Chaque réponse porte next_action et, en cas de problème, problems[] (fichier, ligne, modèle, champ, valeur, code, message, indice).
Comment l'agent signe ses appels
Les appels publics (check-domain, validate) n'exigent rien. Les autres agissent pour le compte de la personne : une clé personnelle créée dans le compte (clés API), envoyée en X-API-Key ou Bearer, ou OAuth avec le scope `provider` (la page de consentement dit ce que l'agent pourra faire ; un jeton limité à `api` reçoit 403).
Les appels, dans l'ordre
| REST | MCP (/mcp/account) | |
|---|---|---|
GET /v1/provider/check-domain?domain= | public: the key, whether the catalog lists a seller on the domain (then claim_url), what to publish | provider_start tells the same |
POST /v1/provider/validate | public: body = models.yaml text, or JSON {"models": ..., "seller": ..., "domain": ...} -> ok, problems[], preview | validate_provider_files |
GET /v1/me | the account: organizations, verified sellers, applications and their next_action | provider_whoami |
POST /v1/provider/applications | {name, domain, org_id?, verification: file|dns|meta} -> 201 the application (200 when the domain was started before); 409 with the claim link for a listed domain | provider_start |
GET /v1/provider/applications/{id} | steps (company, domain, files, publish) with status and problems, verification (token and where it goes), files.models_url, urls, next_action | provider_status |
POST /v1/provider/applications/{id}/verify-domain | [{verification}] -> result verified | not_found, looked_at, expected | provider_verify_domain |
POST /v1/provider/applications/{id}/check-files | [{models_url}] -> ok, fetched, problems[], preview[] | provider_check_files |
POST /v1/provider/applications/{id}/publish | reads the file again, queues the provider -> 202 {status: queued, eta_s, poll}; 409 with why when not verified or the file has problems | provider_publish |
GET /v1/provider/sellers/{key} | a verified seller as the cabinet shows it: the file and its last read, policy, services, last recheck | provider_seller |
GET /v1/provider/sellers/{key}/offers | its offers: prices, context, max output, status (active | pending | rejected | problem), card url | provider_offers |
POST /v1/provider/sellers/{key}/recheck | read the source now, once a day (429 + Retry-After before that) | provider_recheck |
GET /v1/provider/sellers/{key}/analytics?days=&format=json|csv | the premium analytics | - |
La même chose via MCP
Le serveur de compte https://airatecard.com/mcp/account (OAuth ou clé personnelle en Bearer) offre les mêmes étapes en outils ; le serveur ouvert https://airatecard.com/mcp a validate_provider_files. Appelez provider_whoami d'abord, puis suivez next_action.
Un exemple complet sur un domaine fictif
# 0. before anything: does the catalog know the domain, and is the file right?
curl -s 'https://airatecard.com/v1/provider/check-domain?domain=newco.example'
curl -s -X POST https://airatecard.com/v1/provider/validate?domain=newco.example --data-binary @models.yaml
# 1. start (the person's key K; the same domain again returns the same application)
curl -s -X POST https://airatecard.com/v1/provider/applications -H 'X-API-Key: am_...' -H 'Content-Type: application/json' \
-d '{"name": "NewCo", "domain": "newco.example", "verification": "file"}'
# -> data.id = 42, data.verification = {file_url: https://newco.example/.well-known/airatecard-verify.txt,
# file_body: airatecard-verify=...}, data.files.models_url = https://newco.example/.well-known/airatecard-models.yaml,
# data.next_action = {action: verify_domain, how: 'put a text file at ... with the line ...'}
# 2. the provider publishes the file with that line; then:
curl -s -X POST https://airatecard.com/v1/provider/applications/42/verify-domain -H 'X-API-Key: am_...'
# -> data.result = verified (or not_found with looked_at and expected)
# 3. the provider publishes models.yaml at files.models_url; then:
curl -s -X POST https://airatecard.com/v1/provider/applications/42/check-files -H 'X-API-Key: am_...'
# -> data.ok = false, data.problems = [{file: models.yaml, line: 11, model: t1, path: prices[0].amount,
# value: abc, code: number, message: "amount 'abc' - a number, without a currency sign", hint: 0.59}]
# fix the file, call again -> data.ok = true, data.preview = the models as the catalog will show them
# 4. publish, then poll
curl -s -X POST https://airatecard.com/v1/provider/applications/42/publish -H 'X-API-Key: am_...'
# -> 202 {status: queued, eta_s: 300, poll: .../applications/42}
curl -s https://airatecard.com/v1/provider/applications/42 -H 'X-API-Key: am_...'
# -> data.status = published, data.urls.card = https://airatecard.com/en/providers/newco
# 5. from then on: the daily run reads the file. The agent reads what the site has, or asks for a read now
curl -s https://airatecard.com/v1/provider/sellers/newco/offers -H 'X-API-Key: am_...'
curl -s -X POST https://airatecard.com/v1/provider/sellers/newco/recheck -H 'X-API-Key: am_...'Un fournisseur déjà listé
check-domain répond in_catalog: true avec claim_url - une personne de l'entreprise y prouve le domaine ; ensuite l'agent lit le vendeur, ses offres et demande des revérifications via /v1/provider/sellers/{key}...
OpenAPI: /openapi.json (tag provider) · /auth.md · /llms.txt
Parrainage
La présence au catalogue et chaque prix sont gratuits et identiques pour tous. Le parrainage est un don : il ajoute un badge et ne change jamais l'ordre.
Parrainage
Tout visiteur peut soutenir le site : le bouton « Soutenir le site » dans l'espace personnel. Chaque tranche de 5 $ donne un mois du badge doré SPONSOR à côté de votre identifiant dans l'en-tête et de votre pseudo dans les discussions, ainsi qu'une place sur la page des sponsors (si vous l'acceptez). 15 $ donnent trois mois, 60 $ un an ; une nouvelle contribution prolonge la période.
Un fournisseur : un SPONSOR doré à côté de son nom et un bord gauche doré sur les lignes de tous ses modèles dans les onglets « Modèles » et « Fournisseurs », une place sur la page des sponsors. 29 $ par mois, c'est le prix de lancement ; les premiers sponsors le conservent après sa hausse.
Règles
- Le parrainage ne change jamais l'ordre des cartes, le tri, les prix ni les résultats des comparaisons – seulement le badge.
- Les données du site sont ouvertes et gratuites pour tous ; les sponsors aident à ce qu'elles le restent.
Comment participer
- Inscrivez-vous (identifiant et mot de passe, sans e-mail).
- Une personne : espace personnel, « Soutenir le site », une période. Un fournisseur : créez une organisation, vérifiez le domaine, « Services » -> « Sponsoring ».
Le paiement en ligne n'est pas encore connecté : nous vous écrivons comment verser la contribution et activons le badge à la main. Questions : hello@airatecard.com.
Notre robot d'exploration
Dernière mise à jour : 2026-10-10
AIRateCardBot est le robot d'exploration d'AI Rate Card (https://airatecard.com). Il tient à jour le catalogue des prix des modèles d'IA.
Ce qu'il fait
- Il lit les pages publiques et les points d'accès publics qui listent des modèles et des prix, environ une fois par jour et par fournisseur.
- Il s'identifie avec le User-Agent
AIRateCardBot/1.0 (+https://airatecard.com/bot). - Il respecte robots.txt : les règles pour
AIRateCardBotou pour tous les robots (*) sont vérifiées avant chaque requête. - Il maintient un faible rythme de requêtes.
- Il ne lit que ce qui est public sans connexion ; il ne lit aucun contenu privé.
Ce que nous affichons
Sur la fiche d'un fournisseur, nous affichons les prix et un lien vers le site ou la page du modèle du fournisseur. Nous ne publions pas les adresses des pages ou points d'accès lus par le robot.
Fournisseurs : comment le contrôler
- L'arrêter : ajoutez à votre robots.txt
User-agent: AIRateCardBotDisallow: /Le robot s'arrête à sa prochaine visite. Votre fiche reste avec un lien vers votre site, sans prix collectés. - Envoyer vos prix vous-même : publiez vos prix dans notre format et nous ne lirons que ce fichier. Voir comment ajouter ou mettre à jour un fournisseur.
- Questions ou corrections : écrivez à providers@airatecard.com ou hello@airatecard.com.
Comment fonctionne le classement
Dernière mise à jour : 2026-10-10
Ceci est une traduction. En cas de divergence, la version anglaise prévaut.
Cette page explique comment AI Rate Card ordonne les modèles, les offres et les fournisseurs, et comment les placements payants sont affichés. Elle suit les règles de transparence du règlement européen promouvant l'équité et la transparence pour les entreprises utilisatrices de services d'intermédiation en ligne (2019/1150) et du règlement sur les services numériques.
1. D'où viennent les prix
Nous relevons les prix uniquement sur les sites des fournisseurs eux-mêmes : leurs pages tarifaires publiques et leurs API publiques, ou les fichiers seller.yaml/models.yaml qu'un fournisseur publie sur son propre domaine. Chaque prix indique sa source et sa date de vérification. Les prix sont vérifiés chaque jour. Lorsque deux sources d'un même fournisseur divergent, l'offre est signalée comme un conflit jusqu'à ce que l'écart soit résolu.
2. L'ordre par défaut
Les listes sont triées par prix, du plus bas au plus élevé, selon le prix d'entrée (pour les modèles de langage, le prix pour 1 million de tokens d'entrée). Les offres de même prix gardent un ordre fixe par fournisseur et identifiant de modèle, de sorte que l'ordre ne change pas d'une visite à l'autre. La liste des fournisseurs est triée par nombre de modèles proposés.
Certaines offres sont placées en fin de liste, quel que soit leur prix :
- les offres dont nous n'avons pas trouvé le prix (« pas de données ») ;
- les prix qui semblent erronés — par exemple très éloignés de tous les autres fournisseurs du même modèle — signalés par ⚠ jusqu'à vérification ;
Une offre n'est affichée au prix 0 que si le fournisseur la propose réellement gratuitement ; un zéro que le fournisseur n'a pas indiqué comme gratuit est traité comme « pas de données ».
Vous pouvez changer l'ordre à tout moment en cliquant sur un en-tête de colonne : prix, fenêtre de contexte, fournisseur, date de vérification et autres. Un second clic inverse l'ordre. Les filtres s'appliquent à toute la liste, pas seulement à la page affichée.
3. « Meilleur prix »
Le meilleur prix d'un modèle est le prix le plus bas parmi ses offres actuelles, non signalées comme douteuses et qui ne sont pas des offres d'essai gratuites. Il est calculé de la même façon pour chaque fournisseur.
4. Ce que le paiement peut et ne peut pas changer
Le paiement ne change jamais l'ordre d'une liste, le meilleur prix, les filtres ni les résultats de recherche.
Ce que les fournisseurs peuvent obtenir :
- Vérifié (gratuit) : le fournisseur a confirmé qu'il contrôle sa fiche, par exemple via son domaine. La fiche reçoit un badge « Vérifié » et le fournisseur peut gérer l'habillage de ses fiches et demander une nouvelle vérification de sa page de prix. Le badge indique qui gère la fiche, pas que le prix est meilleur.
- Publicité (payante, lorsqu'elle est proposée) : l'offre du fournisseur peut être affichée avec sa propre image, ses couleurs et une description plus longue, et apparaître dans des emplacements publicitaires signalés. Ce contenu est toujours marqué « Publicité » et nomme l'annonceur. Il n'est jamais placé à une position de liste qu'il n'a pas obtenue par son prix.
Les placements payants ne sont pas encore proposés.
5. Liens vers les fournisseurs
Les liens vers les fournisseurs passent par notre adresse /go/… afin que nous puissions mesurer l'intérêt pour chaque offre. Nous ne percevons aucune commission pour ces clics. Si cela change un jour, nous l'indiquerons sur cette page et à côté des liens.
6. Questions et réclamations
Si vous pensez qu'une offre est mal placée ou qu'un prix est erroné, utilisez la page « Signaler un problème » ou écrivez à hello@airatecard.com. Les fournisseurs peuvent aussi corriger leurs propres données via l'espace fournisseur.
FAQ
Les prix sont-ils à jour ?
Vérifiés chaque jour, directement depuis la page de tarifs ou l'API du fournisseur.
Que signifie un prix accompagné d'un avertissement ?
Il semble erroné par rapport à la lecture habituelle de cette page, mais il est affiché quand même, marqué douteux – vérifiez la page du fournisseur avant de vous y fier.
Que signifie « via X » ?
L'offre est servie via l'infrastructure d'une autre entreprise (un routeur), et non vendue directement par le créateur du modèle ; X est l'intermédiaire.
Que sont les régions ?
Où le fournisseur sert cette offre (résidence des données) – UE, US, Global… Une autre région est une autre offre avec son propre prix.
Pourquoi un fournisseur manque-t-il ?
Nous ne l'avons pas encore collecté – signalez-le sur /join et nous l'ajouterons.