Documentação
Tudo em um só lugar: o que é o AI Rate Card, os dados abertos, a API e o servidor MCP, como citá-lo e como um provedor entra.
Conteúdo
O que é o AI Rate Card
O AI Rate Card lista os preços de modelos de IA – de linguagem, imagem, voz e outros – como seus provedores os publicam. Os preços vêm das páginas públicas de preços e APIs dos provedores – ou, quando os termos não permitem coleta automática, do conjunto de dados aberto models.dev – e são verificados diariamente.
Quando duas fontes divergem sobre um preço, o site não escolhe uma em silêncio: a oferta fica marcada como conflito até a diferença ser resolvida.
Os preços aqui são apenas informativos. Vale a página do provedor: confira o preço lá antes de comprar.
Perguntas, correções e pedidos: hello@airatecard.com.
API e MCP: como começar
Duas formas de obter os preços por máquina em vez de a olho. Pode experimentar as duas já, sem registo nem pagamento.
Perguntar ao seu assistente de IA (MCP)
Para quem usa o Claude, o ChatGPT ou o Cursor. Liga o site uma vez e o assistente consulta ele próprio os preços atuais quando pergunta por palavras suas. Sem programar.
- Copie o endereço do servidor:
https://airatecard.com/mcp - Adicione-o ao seu assistente como conector – onde clicar em cada aplicação está indicado abaixo, na secção Servidor MCP.
- Pergunte por palavras suas, por exemplo:
- Qual é o modelo mais barato com um contexto de pelo menos 128K tokens?
- Compara os preços do Llama 3.1 8B em diferentes fornecedores.
- Quanto custarão por mês 10 M de tokens de entrada e 2 M de saída com o GPT OSS 120B?
Obter os dados num programa (API)
Para desenvolvedores: requisições HTTP simples, resposta em JSON. Dá para começar já sem chave; uma chave pessoal gratuita amplia a janela por minuto (tabela abaixo).
- Experimente um pedido sem chave – copie-o para um terminal: as 5 ofertas mais baratas de modelos de texto.
curl -s 'https://airatecard.com/v1/offers?category=llm&pricing=usage&limit=5' - Precisa de mais linhas? Inicie sessão, crie uma chave na sua conta, em Chaves API, e envie-a no cabeçalho X-API-Key.
- Todos os pedidos com os seus parâmetros: /openapi.json (o Postman e os geradores de clientes leem-no).
Os principais pedidos
GET /v1/offers?category=llm&pricing=usage&limit=5 | ofertas com preços; os mesmos filtros da página Modelos |
GET /v1/models?category=llm | modelos e o seu melhor preço |
GET /v1/models/{model_id} | um modelo com todas as suas ofertas |
GET /v1/cost?model={model_id}&input_tokens=10000000&output_tokens=2000000 | quanto custa o seu volume em cada fornecedor de um modelo |
GET /v1/compare?models={a},{b} | dois a quatro modelos lado a lado |
GET /v1/analytics/cheapest?task=text&n=5 | os mais baratos para uma tarefa (texto, imagem, voz...) |
GET /v1/models/{model_id}/history | o histórico de preços de um modelo (90 dias) |
GET /v1/articles | os artigos do site |
GET /v1/meta | sobre o catálogo: quando foi atualizado, quantas ofertas |
Como os preços são coletados
Cada preço no AI Rate Card vem da página pública de preços ou da API do provedor, quando os termos permitem coleta automática, e caso contrário do models.dev – um conjunto de dados aberto de preços de modelos publicado sob a licença MIT (Copyright (c) 2025 models.dev; texto da licença em /static/licenses/models.dev.txt). Nunca uma estimativa; verificado diariamente.
«Sem dados» significa que ainda não foi encontrada uma oferta com preço para esse modelo nesse provedor. «Grátis» significa que a página do provedor informa que a oferta não custa nada. «Retirada» significa que a oferta estava na página do provedor mas não aparece mais; ela continua no site com o último preço conhecido, marcada como retirada, para que o histórico não se perca.
Cada mudança de preço é guardada: o histórico completo de uma oferta, e do mercado inteiro dia a dia, está na página dela e em /market.
Dados
O AI Rate Card serve para consultar e escolher, não para copiar em massa: não há arquivo do catálogo inteiro nem do histórico de preços. Abra o cartão de um modelo ou oferta para citá-lo, ou consulte /v1 ou o servidor MCP para preços atuais, página por página.
API REST
A API JSON pública para agentes e scripts: não é preciso chave para ler, uma chave pessoal apenas aumenta o limite.
/v1/openapi.json
curl -s 'https://airatecard.com/v1/offers?max_price_input=1&cur=USD'Paginação
/v1/offers e /v1/models devolvem no máximo 50 linhas por página (25 por padrão); pagine com offset e limit ou refine com filtros; o catálogo inteiro está num só arquivo em /export.
Análises
Preços atuais por tarefa, não por tipo de modelo – o que um comprador realmente quer fazer: mais barato, mais caro e mediana para embedding, image, moderation, rerank, stt, text, tts, video, vision. scope restringe à categoria própria de uma tarefa (specialized) ou aos modelos multimodais que se qualificam (universal); component escolhe input_tokens, output_tokens ou a unidade própria da tarefa.
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'Níveis de acesso
As páginas são abertas a todos, a qualquer buscador e assistente de IA. Máquinas podem começar sem chave; uma chave pessoal gratuita (cadastro com login e senha, sem e-mail, depois conta → chaves de API; enviada no cabeçalho X-API-Key) amplia a janela por minuto.
| Sem entrar | Free | |
|---|---|---|
| Páginas, artigos, filtros, comparação, calculadoras | tudo | tudo |
| Descarregar uma tabela: linhas por ficheiro, ficheiros por hora | 100000 linhas, 20 por hora | 100000 linhas, 60 por hora |
| API para programadores: pedidos por minuto (sem limite diário) | 60/min | 120/min |
| Histórico de preços pela API | até 90 dias, um modelo por pedido | até 90 dias, um modelo por pedido |
Limites e licença
Não há limites diários: só janelas por minuto contra abuso (tabela acima), mais amplas com uma chave pessoal gratuita (conta → chaves de API, cabeçalho X-API-Key). Toda resposta traz X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset e X-Daily-Rows-Remaining; acima do limite, resposta 429 com Retry-After. Licença: CC BY 4.0: o catálogo, as transferências, as respostas da API e o histórico de preços de 90 dias podem ser usados, citados e redistribuídos livremente, inclusive comercialmente, com atribuição a AI Rate Card (airatecard.com) e uma ligação para a ficha ou página de onde vêm os números.
Como citar
Cada resposta da API e do MCP traz uma linha «cite» e cada download termina com uma: indique o AI Rate Card, ligue para o cartão ou a página do modelo que usou e dê a data em que o preço foi verificado - «Source: AI Rate Card, https://airatecard.com/c/offer:<id>, prices checked AAAA-MM-DD».
Exportar por filtro
GET /export devolve as ofertas de um filtro em JSON, CSV, YAML ou Excel: só preços atuais, em USD. Dados abertos (CC BY), sem login: todo o catálogo num ficheiro, até 20 descargas por hora por endereço (mais com conta). Os parâmetros são os da página «Modelos»: defina um filtro, abra «Descarregar» e copie o endereço. Cada ficheiro termina com a linha «Source: AI Rate Card, ...» para citar.
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'Experimentar
format: json | csv | yaml; intervalos como um único valor «de-até» (r_in, r_out, r_ctx, r_mo, r_params …; 128k e 1m permitidos); repita provider, region, input_modality … para vários valores; sort e desc como na página.
Servidor MCP
Um servidor MCP remoto (Streamable HTTP), só de leitura. Responde a perguntas de preços com as ferramentas cheapest_for_workload (o mais barato para uma tarefa inteira, com cenários prontos: chatbot, coding_agent, rag, summarization, long_context, vision, embedding_index, trial), search_offers, get_model_prices, cheapest, compare_models, estimate_cost e get_card – cada resultado traz o URL do cartão para citar. Funciona sem chave; com uma chave pessoal (cabeçalho X-API-Key) devolve mais linhas, como a API. Prompts prontos para o usuário: cheapest_for_my_job, where_is_model_cheapest, compare_models.
https://airatecard.com/mcp
Claude.ai / Claude Desktop
Settings → Connectors → Add custom connector e cole esta URL:
https://airatecard.com/mcp
Claude Code
claude mcp add --transport http ai-rate-card https://airatecard.com/mcpChatGPT
Settings → Connectors (modo desenvolvedor), adicione um conector personalizado com esta URL:
https://airatecard.com/mcp
Cursor / VS Code
Adicione isto ao seu mcp.json:
{
"mcpServers": {
"ai-rate-card": {
"url": "https://airatecard.com/mcp"
}
}
}Qualquer cliente MCP
Uma mensagem JSON-RPC 2.0 via HTTP, sem sessão:
curl -s https://airatecard.com/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"cheapest_offers","arguments":{"category":"llm"}}}'Ligar o seu próprio agente
Qualquer agente que fale MCP – em qualquer framework ou API – liga-se ao mesmo servidor. Escolha conforme os limites de que precisa:
- Sem chave:
https://airatecard.com/mcp– limites de convidado, nada a configurar. - O seu agente com os seus limites:
https://airatecard.com/mcpe uma chave pessoal da sua conta (Chaves API), enviada como Authorization: Bearerou X-API-Key: . - Um agente para muitas pessoas, cada uma com a sua conta: https://airatecard.com/mcp/account com OAuth – ver a secção acima.
Os exemplos leem a chave da variável de ambiente AIRATECARD_KEY – nunca ponha uma chave no código ou num URL. Sem chave, retire a linha 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_offers", {"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_offers", 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}}}'Bom saber
Uma chave por agente: assim pode revogar uma sem parar as outras. Acima de um limite o servidor responde 429 com Retry-After – espere esses segundos, não troque de chave. Cada resultado de ferramenta traz uma linha cite e um card_url: o agente deve citá-los. As ferramentas: search_offers, get_model_prices, cheapest, compare_models, estimate_cost, get_card, cheapest_models, dearest_models, median_models, list_articles.
A sua conta em assistentes e agentes de IA (OAuth)
O servidor MCP tem dois endereços. https://airatecard.com/mcp funciona para todos sem iniciar sessão, com os limites de convidado. https://airatecard.com/mcp/account funciona com a sua conta AI Rate Card: os seus limites (Free ou Pro), e vê e revoga o acesso na sua conta. Inicia sessão uma vez, neste site – o assistente nunca vê a sua palavra-passe.
Claude.ai / Claude Desktop
Settings → Connectors → Add custom connector, cole o endereço abaixo. Deixe o cliente OAuth em “Register automatically”. O Claude abre a página de entrada deste site: inicie sessão e carregue em Permitir.
https://airatecard.com/mcp/accountChatGPT
Settings → Connectors (modo de programador) → crie um conector com o endereço abaixo e autenticação OAuth. O ChatGPT abre a página de entrada deste site: inicie sessão e carregue em Permitir.
https://airatecard.com/mcp/accountClaude Code
Adicione o servidor, depois escreva /mcp no Claude Code e escolha Authenticate: o navegador abre a página de entrada deste site.
claude mcp add --transport http ai-rate-card-account https://airatecard.com/mcp/accountCursor / VS Code
Cursor, VS Code e outros clientes MCP com OAuth: ponha o endereço no mcp.json; na primeira chamada o cliente abre a página de entrada deste site.
{
"mcpServers": {
"ai-rate-card-account": {
"url": "https://airatecard.com/mcp/account"
}
}
}Scripts e agentes de terminal: um código em vez do navegador
Um programa sem navegador usa o device flow (RFC 8628): pede um código, abre o endereço mostrado em qualquer dispositivo, inicia sessão, confirma o código e carrega em Permitir, e o programa recebe o token. Os quatro pedidos:
# 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>'Tokens, limites e revogação
Envie o token no cabeçalho Authorization: Bearer <token> para /v1 e /mcp/account. Dura uma hora; renove-o com grant_type=refresh_token (o token de atualização dura 30 dias, até o revogar). Conta com os limites da sua conta, como uma chave pessoal. Cada aplicação autorizada aparece na sua conta em Aplicações ligadas, onde um clique a revoga com os seus tokens.
Para agentes: /auth.md. Metadados padrão: /.well-known/oauth-authorization-server e /.well-known/oauth-protected-resource/mcp/account. Prefere uma chave fixa? Crie-a na sua conta em Chaves API e envie-a como X-API-Key.
llms.txt
Um guia em texto simples para agentes de IA, na convenção llmstxt.org: o que é o site, a API e o servidor MCP, e como citá-lo – em /llms.txt (também /.well-known/llms.txt). A oferta atual mais barata dos modelos mais oferecidos, uma linha cada, está em /llms-full.txt.
Como citar
CC BY 4.0: o catálogo, as transferências, as respostas da API e o histórico de preços de 90 dias podem ser usados, citados e redistribuídos livremente, inclusive comercialmente, com atribuição a AI Rate Card (airatecard.com) e uma ligação para a ficha ou página de onde vêm os números.
Para agentes de IA há /llms.txt e a API pública em /v1 – consultar, comparar e citar, nunca uma cópia em massa do catálogo ou do seu histórico de preços.
Source: AI Rate Card, https://airatecard.com/pt/c/offer:<id>
Para provedores
Cadastro gratuito, feito por você na conta. A ordem de todas as listas é só por preço – dinheiro não sobe ninguém.
Como entrar: seis passos, cerca de 15 minutos
O cadastro é grátis e feito por você, na sua conta, em cerca de 15 minutos – sem e-mails nem espera:
- Crie uma conta – login e senha, sem e-mail.
- Aperte "Adicionar um novo provedor" e digite o nome e o site da empresa.
- Comprove o domínio: um arquivo de uma linha em /.well-known/, um registro DNS TXT ou uma meta tag – e aperte "Verificar agora".
- Digite modelos e preços no formulário; ele gera seu models.yaml.
- Coloque o arquivo em /.well-known/airatecard-models.yaml e aperte "Verificar o arquivo".
- Aperte "Publicar": o coletor ativa você automaticamente, normalmente em até 10 minutos.
Depois o arquivo é lido uma vez por dia: mude um preço e o catálogo acompanha no dia seguinte. Seus modelos aparecem no site, na API (/v1) e no servidor MCP para assistentes de IA, com links para suas páginas.
Adicionar um novo provedor Passo a passo, com exemplos
De onde vêm seus preços
Os seus preços vêm de um só lugar – o seu próprio site, para nunca haver duas versões da verdade:
- a sua página pública de preços (ou API de preços) – o nosso robô lê-a todos os dias;
- ou dois ficheiros no seu próprio domínio – então lemos só esses: seller.yaml, models.yaml (models.min.yaml)
Na conta, um fornecedor confirmado só muda o visual dos seus cartões, vê a sua análise e pede uma nova verificação da sua página; os preços nunca são escritos à mão nem enviados por API.
Já está no catálogo?
Muitos provedores já estão listados: lemos suas páginas públicas de preços. Abra seu cartão em "Provedores" e aperte "Esta é a minha empresa" – comprove o domínio e você gerencia o cartão: aparência, análises, nova verificação de preços. Prefere um arquivo à página de preços? Publique models.yaml como acima.
Para agentes de IA: todo o caminho pela API e MCP
Cada passo do assistente existe também como chamada: um agente do fornecedor pode iniciar a listagem, verificar o domínio, verificar os ficheiros, publicar e depois ler as suas ofertas e pedir nova verificação - com as mesmas verificações e textos. Os preços nunca passam pela API: o fornecedor publica models.yaml no seu site. Cada resposta traz next_action e, havendo problema, problems[] (ficheiro, linha, modelo, campo, valor, código, mensagem, dica).
Como o agente assina as chamadas
As chamadas públicas (check-domain, validate) não precisam de nada. As restantes agem pela conta da pessoa: uma chave pessoal criada na conta (chaves API), enviada como X-API-Key ou Bearer, ou OAuth com o scope `provider` (a página de consentimento diz o que o agente poderá fazer; um token só com `api` recebe 403).
As chamadas, por ordem
| 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 | - |
O mesmo via MCP
O servidor de conta https://airatecard.com/mcp/account (OAuth ou chave pessoal como Bearer) oferece os mesmos passos como ferramentas; o servidor aberto https://airatecard.com/mcp tem validate_provider_files. Chame primeiro provider_whoami e siga next_action.
Um exemplo completo com um domínio fictício
# 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_...'Um fornecedor já listado
check-domain responde in_catalog: true com claim_url - uma pessoa da empresa prova aí o domínio; depois o agente lê o vendedor, as suas ofertas e pede novas verificações com /v1/provider/sellers/{key}...
OpenAPI: /openapi.json (tag provider) · /auth.md · /llms.txt
Patrocínio
A listagem e cada preço são grátis e iguais para todos. O patrocínio é uma doação: acrescenta um selo e nunca muda a ordem.
Patrocínio
Qualquer visitante pode apoiar o site: o botão «Apoiar o site» na conta. Cada US$ 5 é um mês do selo dourado SPONSOR ao lado do seu login no cabeçalho e do seu apelido nas discussões, e um lugar na página de patrocinadores (se você concordar). US$ 15 são três meses, US$ 60 um ano; uma nova contribuição estende o período.
Um provedor: um SPONSOR dourado ao lado do nome e uma borda esquerda dourada nas linhas de todos os seus modelos nas abas «Modelos» e «Provedores», um lugar na página de patrocinadores. US$ 29 por mês é o preço de lançamento; os primeiros patrocinadores o mantêm depois do aumento.
Regras
- O patrocínio nunca muda a ordem dos cartões, a ordenação, os preços nem os resultados das comparações – só o selo.
- Os dados do site são abertos e gratuitos para todos; os patrocinadores ajudam a mantê-los assim.
Como participar
- Cadastre-se (login e senha, sem e-mail).
- Uma pessoa: conta, «Apoiar o site», um período. Um provedor: crie uma organização, verifique o domínio, «Serviços» -> «Patrocínio».
O pagamento online ainda não está conectado: escrevemos para você como enviar a contribuição e ativamos o selo manualmente. Dúvidas: hello@airatecard.com.
Nosso rastreador
Última atualização: 2026-10-10
AIRateCardBot é o rastreador do AI Rate Card (https://airatecard.com). Ele mantém atualizado o catálogo de preços de modelos de IA.
O que ele faz
- Lê páginas públicas e endpoints públicos que listam modelos e preços, cerca de uma vez por dia por provedor.
- Identifica-se com o User-Agent
AIRateCardBot/1.0 (+https://airatecard.com/bot). - Segue o robots.txt: as regras para
AIRateCardBotou para todos os rastreadores (*) são verificadas antes de cada requisição. - Mantém baixa a sua taxa de requisições.
- Lê apenas o que é público sem login; não lê conteúdo privado.
O que mostramos
No cartão de um provedor, mostramos os preços e um link para o site ou a página do modelo do próprio provedor. Não publicamos os endereços das páginas ou endpoints que o bot lê.
Provedores: como controlá-lo
- Pará-lo: adicione ao seu robots.txt
User-agent: AIRateCardBotDisallow: /O bot para na próxima visita. Seu registro continua com um link para o seu site, sem preços coletados. - Enviar os preços você mesmo: publique seus preços no nosso formato e leremos só esse arquivo. Veja como adicionar ou atualizar um provedor.
- Dúvidas ou correções: escreva para providers@airatecard.com ou hello@airatecard.com.
Como funciona a ordenação
Última atualização: 2026-10-10
Esta é uma tradução. Em caso de divergência, prevalece a versão em inglês.
Esta página explica como o AI Rate Card ordena modelos, ofertas e provedores, e como os posicionamentos pagos são exibidos. Ela segue as regras de transparência do Regulamento europeu sobre plataformas e empresas (2019/1150) e do Regulamento dos Serviços Digitais.
1. De onde vêm os preços
Coletamos preços apenas nos próprios sites dos provedores: suas páginas públicas de preços e APIs públicas, ou os arquivos seller.yaml/models.yaml que um provedor publica no próprio domínio. Cada preço mostra sua fonte e a data em que foi verificado. Os preços são verificados todos os dias. Quando duas fontes do mesmo provedor divergem, a oferta é marcada como conflito até a diferença ser resolvida.
2. A ordem padrão
As listas são ordenadas por preço, do menor para o maior, pelo preço de entrada (para modelos de linguagem, o preço por 1 milhão de tokens de entrada). Ofertas com o mesmo preço mantêm uma ordem fixa por provedor e id do modelo, para que a ordem não mude entre visitas. A lista de provedores é ordenada pelo número de modelos que cada provedor oferece.
Algumas ofertas vão para o fim da lista, seja qual for o preço:
- ofertas cujo preço não conseguimos encontrar («sem dados»);
- preços que parecem errados — por exemplo, muito distantes de todos os outros provedores do mesmo modelo —, marcados com ⚠ até serem verificados;
Uma oferta só aparece com preço 0 quando o provedor realmente a oferece de graça; um zero que o provedor não marcou como gratuito é tratado como «sem dados».
Você pode mudar a ordem a qualquer momento clicando no cabeçalho de uma coluna: preço, janela de contexto, provedor, data da verificação e outras. Um segundo clique inverte a ordem. Os filtros se aplicam à lista inteira, não só à página que você vê.
3. «Melhor preço»
O melhor preço de um modelo é o menor preço entre suas ofertas atuais, não marcadas como duvidosas e que não sejam planos de teste gratuitos. Ele é calculado da mesma forma para todos os provedores.
4. O que o pagamento pode e não pode mudar
O pagamento nunca muda a ordem de nenhuma lista, o melhor preço, os filtros ou os resultados de busca.
O que os provedores podem obter:
- Verificado (gratuito): o provedor confirmou que controla seu registro, por exemplo pelo seu domínio. O registro recebe um selo «Verificado» e o provedor pode gerenciar a aparência de seus cartões e pedir uma nova verificação da sua página de preços. O selo diz quem gerencia o registro, não que o preço é melhor.
- Publicidade (paga, quando oferecida): a oferta do provedor pode aparecer com imagem, cores próprias e uma descrição mais longa, e em espaços publicitários marcados. Esse conteúdo é sempre marcado como «Anúncio» e identifica o anunciante. Ele nunca é colocado em uma posição da lista que não conquistou pelo preço.
Posicionamentos pagos ainda não são oferecidos.
5. Links para provedores
Os links para provedores passam pelo nosso endereço /go/… para que possamos contar o interesse em cada oferta. Não recebemos comissão por esses cliques. Se isso mudar algum dia, diremos nesta página e ao lado dos links.
6. Dúvidas e reclamações
Se você acha que uma oferta está no lugar errado ou que um preço está errado, use a página «Informar um problema» ou escreva para hello@airatecard.com. Os provedores também podem corrigir seus próprios dados pela conta de provedor.
Perguntas frequentes
Quão atualizados são os preços?
Verificados diariamente, direto da página de preços ou da API do provedor.
O que significa um preço com aviso?
Ele parece errado em relação ao que essa página costuma mostrar, mas é exibido mesmo assim, marcado como duvidoso – confira a página do provedor antes de confiar.
O que significa «via X»?
A oferta é servida pela infraestrutura de outra empresa (um roteador), não vendida diretamente pelo criador do modelo; X é por meio de quem é vendida.
O que são regiões?
Onde o provedor atende essa oferta (residência de dados) – UE, EUA, Global… Outra região é outra oferta com preço próprio.
Por que falta um provedor?
Ainda não o coletamos – conte-nos em /join e vamos adicioná-lo.