Dokumentation
Alles an einem Ort: was AI Rate Card ist, die offenen Daten, die API und der MCP-Server, wie man zitiert und wie ein Anbieter dazukommt.
Inhalt
Was AI Rate Card ist
AI Rate Card listet die Preise von KI-Modellen – Sprach-, Bild-, Sprachausgabe- und weitere Modelle – so, wie ihre Anbieter sie veröffentlichen. Die Preise stammen von den öffentlichen Preisseiten und APIs der Anbieter – oder, wenn deren Bedingungen keine automatische Erfassung erlauben, aus dem offenen Datensatz models.dev – und werden täglich geprüft.
Wenn zwei Quellen bei einem Preis nicht übereinstimmen, wählt die Website nicht stillschweigend einen aus: Das Angebot wird als Konflikt markiert, bis der Unterschied geklärt ist.
Die Preise hier dienen nur zur Information. Maßgeblich ist die Seite des Anbieters: Prüfen Sie den Preis dort vor dem Kauf.
Fragen, Korrekturen und Anliegen: hello@airatecard.com.
API und MCP: so geht's los
Zwei Wege, die Preise per Maschine statt mit dem Auge zu holen. Beide können Sie sofort ausprobieren – ohne Anmeldung und ohne Bezahlung.
Ihren KI-Assistenten fragen (MCP)
Für alle, die Claude, ChatGPT oder Cursor nutzen. Sie verbinden die Website einmal, und der Assistent schaut selbst die aktuellen Preise nach, wenn Sie in normalen Worten fragen. Ohne Programmieren.
- Kopieren Sie die Adresse des Servers:
https://airatecard.com/mcp - Fügen Sie sie Ihrem Assistenten als Konnektor hinzu – wo Sie in jeder App klicken, steht unten im Abschnitt MCP-Server.
- Fragen Sie in normalen Worten, zum Beispiel:
- Welches ist das günstigste Modell mit mindestens 128K Tokens Kontext?
- Vergleiche die Preise von Llama 3.1 8B bei verschiedenen Anbietern.
- Was kosten 10 M Eingabe- und 2 M Ausgabe-Tokens im Monat mit GPT OSS 120B?
Daten in einem Programm abrufen (API)
Für Entwickler: normale HTTP-Anfragen, die Antwort in JSON. Ohne Schlüssel können Sie sofort loslegen; ein kostenloser persönlicher Schlüssel erweitert das Minutenfenster (Tabelle unten).
- Probieren Sie eine Anfrage ohne Schlüssel – in ein Terminal kopieren: die 5 günstigsten Angebote für Textmodelle.
curl -s 'https://airatecard.com/v1/offers?category=llm&pricing=usage&limit=5' - Mehr Zeilen nötig? Melden Sie sich an, erstellen Sie im Konto unter API-Schlüssel einen Schlüssel und senden Sie ihn im Header X-API-Key.
- Alle Anfragen mit ihren Parametern: /openapi.json (Postman und Client-Generatoren lesen es).
Die wichtigsten Anfragen
GET /v1/offers?category=llm&pricing=usage&limit=5 | Angebote mit Preisen; dieselben Filter wie auf der Seite Modelle |
GET /v1/models?category=llm | Modelle und ihr bester Preis |
GET /v1/models/{model_id} | ein Modell mit allen Angeboten |
GET /v1/cost?model={model_id}&input_tokens=10000000&output_tokens=2000000 | was Ihr Volumen bei jedem Anbieter eines Modells kostet |
GET /v1/compare?models={a},{b} | zwei bis vier Modelle nebeneinander |
GET /v1/analytics/cheapest?task=text&n=5 | die günstigsten für eine Aufgabe (Text, Bild, Sprache...) |
GET /v1/models/{model_id}/history | die Preishistorie eines Modells (90 Tage) |
GET /v1/articles | die Artikel der Website |
GET /v1/meta | zum Katalog: wann aktualisiert, wie viele Angebote |
Wie die Preise erhoben werden
Jeder Preis auf AI Rate Card stammt von der öffentlichen Preisseite oder API des Anbieters, wo dessen Bedingungen eine automatische Erfassung erlauben, und sonst von models.dev – einem offenen Datensatz von Modellpreisen unter der MIT-Lizenz (Copyright (c) 2025 models.dev; Lizenztext unter /static/licenses/models.dev.txt). Nie geschätzt; täglich geprüft.
„Keine Daten“ heißt, dass für dieses Modell bei diesem Anbieter noch kein Angebot mit Preis gefunden wurde. „Kostenlos“ heißt, dass die Seite des Anbieters das Angebot als kostenlos ausweist. „Zurückgezogen“ heißt, dass das Angebot früher auf der Seite des Anbieters stand, dort aber nicht mehr geführt wird; es bleibt mit seinem letzten Preis auf der Website, als zurückgezogen markiert, damit sein Verlauf nicht verloren geht.
Jede Preisänderung wird aufbewahrt: der vollständige Verlauf eines Angebots und des ganzen Markts Tag für Tag steht auf seiner Seite und unter /market.
Daten
AI Rate Card ist zum Ansehen und Auswählen da, nicht zum massenhaften Kopieren: Es gibt keine Datei des ganzen Katalogs oder seines Preisverlaufs. Öffnen Sie die eigene Karte eines Modells oder Angebots, um es zu zitieren, oder fragen Sie /v1 bzw. den MCP-Server seitenweise nach aktuellen Preisen.
REST-API
Die öffentliche JSON-API für Agenten und Skripte: Zum Lesen ist kein Schlüssel nötig, ein persönlicher Schlüssel hebt nur das Limit an.
/v1/openapi.json
curl -s 'https://airatecard.com/v1/offers?max_price_input=1&cur=USD'Seitenweise Abfrage
/v1/offers und /v1/models liefern höchstens 50 Zeilen pro Seite (standardmäßig 25); blättern Sie mit offset und limit oder grenzen Sie mit Filtern ein - den ganzen Katalog gibt es als eine Datei unter /export.
Analysen
Aktuelle Preise nach Aufgabe statt nach Modelltyp – was ein Käufer tatsächlich erledigen will: günstigster, teuerster und Median für embedding, image, moderation, rerank, stt, text, tts, video, vision. scope beschränkt auf die eigene Kategorie einer Aufgabe (specialized) oder stattdessen auf die passenden multimodalen Modelle (universal); component wählt input_tokens, output_tokens oder die eigene Einheit der Aufgabe.
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'Zugangsstufen
Seiten sind für alle offen, für jede Suchmaschine und jeden KI-Assistenten. Maschinen können ohne Schlüssel starten; ein kostenloser persönlicher Schlüssel (Registrierung mit Login und Passwort, ohne E-Mail, dann Konto → API-Schlüssel; als Header X-API-Key senden) erweitert das Minutenfenster.
| Ohne Anmeldung | Free | |
|---|---|---|
| Seiten, Artikel, Filter, Vergleich, Rechner | alles | alles |
| Tabelle herunterladen: Zeilen je Datei, Dateien je Stunde | 100000 Zeilen, 20 pro Stunde | 100000 Zeilen, 60 pro Stunde |
| API für Entwickler: Anfragen pro Minute (kein Tageslimit) | 60/min | 120/min |
| Preisverlauf über die API | bis zu 90 Tage, ein Modell je Anfrage | bis zu 90 Tage, ein Modell je Anfrage |
Limits und Lizenz
Es gibt keine Tageslimits, nur Minutenfenster gegen Missbrauch (Tabelle oben), breiter mit einem kostenlosen persönlichen Schlüssel (Konto → API-Schlüssel, Header X-API-Key). Jede Antwort enthält X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset und X-Daily-Rows-Remaining; über dem Limit kommt 429 mit Retry-After. Lizenz: CC BY 4.0: Katalog, Downloads, API-Antworten und die 90-Tage-Preishistorie dürfen frei genutzt, zitiert und weitergegeben werden, auch kommerziell, mit Nennung von AI Rate Card (airatecard.com) und einem Link auf die Karte oder Seite, von der die Zahlen stammen.
Wie zitieren
Jede API- und MCP-Antwort trägt eine „cite“-Zeile, jeder Download endet mit einer: Nennen Sie AI Rate Card, verlinken Sie die genutzte Karte oder Modellseite und geben Sie das Prüfdatum des Preises an - „Source: AI Rate Card, https://airatecard.com/c/offer:<id>, prices checked JJJJ-MM-TT“.
Export nach Filter
GET /export liefert die Angebote eines Filters als JSON, CSV, YAML oder Excel: nur aktuelle Preise, in USD. Offene Daten (CC BY), ohne Anmeldung: der ganze Katalog in einer Datei, bis zu 20 Downloads pro Stunde und Adresse (mit Konto mehr). Die Parameter sind die der Seite „Modelle“: dort einen Filter setzen, „Herunterladen“ öffnen und die Adresse kopieren. Jede Datei endet mit der Zeile „Source: AI Rate Card, ...“ zum Zitieren.
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'Ausprobieren
format: json | csv | yaml; Bereiche als ein Wert „von-bis“ (r_in, r_out, r_ctx, r_mo, r_params …; 128k und 1m erlaubt); provider, region, input_modality … für mehrere Werte wiederholen; sort und desc wie auf der Seite.
MCP-Server
Ein entfernter MCP-Server (Streamable HTTP), nur lesend. Er beantwortet Preisfragen mit den Werkzeugen cheapest_for_workload (das Günstigste für eine ganze Aufgabe, mit fertigen Szenarien: chatbot, coding_agent, rag, summarization, long_context, vision, embedding_index, trial), search_offers, get_model_prices, cheapest, compare_models, estimate_cost und get_card – jedes Ergebnis enthält die URL der Karte zum Zitieren. Er funktioniert ohne Schlüssel; mit einem persönlichen Schlüssel (Header X-API-Key) liefert er mehr Zeilen, wie die API. Fertige Prompts für Nutzer: cheapest_for_my_job, where_is_model_cheapest, compare_models.
https://airatecard.com/mcp
Claude.ai / Claude Desktop
Settings → Connectors → Add custom connector, dann diese URL einfügen:
https://airatecard.com/mcp
Claude Code
claude mcp add --transport http ai-rate-card https://airatecard.com/mcpChatGPT
Settings → Connectors (Entwicklermodus), einen eigenen Connector mit dieser URL hinzufügen:
https://airatecard.com/mcp
Cursor / VS Code
Fügen Sie dies in Ihre mcp.json ein:
{
"mcpServers": {
"ai-rate-card": {
"url": "https://airatecard.com/mcp"
}
}
}Jeder MCP-Client
Eine JSON-RPC-2.0-Nachricht über HTTP, keine Sitzung nötig:
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"}}}'Eigenen Agenten verbinden
Jeder Agent, der MCP spricht – mit jedem Framework oder jeder API – verbindet sich mit demselben Server. Wählen Sie nach den benötigten Limits:
- Ohne Schlüssel:
https://airatecard.com/mcp– Gast-Limits, nichts einzurichten. - Eigener Agent mit Ihren Limits:
https://airatecard.com/mcpund ein persönlicher Schlüssel aus Ihrem Konto (API-Schlüssel), gesendet als Authorization: Beareroder X-API-Key: . - Ein Agent für viele Personen, jede mit eigenem Konto: https://airatecard.com/mcp/account mit OAuth – siehe Abschnitt oben.
Die Beispiele lesen den Schlüssel aus der Umgebungsvariable AIRATECARD_KEY – nie einen Schlüssel in Code oder URL schreiben. Ohne Schlüssel die Authorization-Zeile weglassen.
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}}}'Gut zu wissen
Ein Schlüssel pro Agent: dann lässt er sich widerrufen, ohne die anderen zu stoppen. Über einem Limit antwortet der Server mit 429 und Retry-After – so viele Sekunden warten, keine Schlüssel wechseln. Jedes Tool-Ergebnis trägt eine cite-Zeile und eine card_url: der Agent soll sie zitieren. Die Tools: search_offers, get_model_prices, cheapest, compare_models, estimate_cost, get_card, cheapest_models, dearest_models, median_models, list_articles.
Ihr Konto in KI-Assistenten und Agenten (OAuth)
Der MCP-Server hat zwei Adressen. https://airatecard.com/mcp funktioniert für alle ohne Anmeldung, mit den Gast-Limits. https://airatecard.com/mcp/account arbeitet mit Ihrem AI-Rate-Card-Konto: Ihre Limits (Free oder Pro), und Sie sehen und widerrufen den Zugriff in Ihrem Konto. Sie melden sich einmal auf dieser Website an – der Assistent sieht Ihr Passwort nie.
Claude.ai / Claude Desktop
Settings → Connectors → Add custom connector, fügen Sie die Adresse unten ein. Lassen Sie den OAuth-Client auf „Register automatically“. Claude öffnet die Anmeldeseite dieser Website: anmelden und „Erlauben“ drücken.
https://airatecard.com/mcp/accountChatGPT
Settings → Connectors (Entwicklermodus) → einen Connector mit der Adresse unten und OAuth-Authentifizierung anlegen. ChatGPT öffnet die Anmeldeseite dieser Website: anmelden und „Erlauben“ drücken.
https://airatecard.com/mcp/accountClaude Code
Server hinzufügen, dann in Claude Code /mcp eingeben und Authenticate wählen: der Browser öffnet die Anmeldeseite dieser Website.
claude mcp add --transport http ai-rate-card-account https://airatecard.com/mcp/accountCursor / VS Code
Cursor, VS Code und andere MCP-Clients mit OAuth: Adresse in mcp.json eintragen; beim ersten Aufruf öffnet der Client die Anmeldeseite dieser Website.
{
"mcpServers": {
"ai-rate-card-account": {
"url": "https://airatecard.com/mcp/account"
}
}
}Skripte und Terminal-Agenten: ein Code statt Browser
Ein Programm ohne Browser nutzt den Device Flow (RFC 8628): es fordert einen Code an, Sie öffnen die angezeigte Adresse auf einem beliebigen Gerät, melden sich an, prüfen den Code und drücken „Erlauben“, und das Programm erhält sein Token. Die vier Anfragen:
# 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, Limits und Widerruf
Senden Sie das Token als Header Authorization: Bearer <Token> an /v1 und /mcp/account. Es gilt eine Stunde; erneuern Sie es mit grant_type=refresh_token (das Refresh-Token gilt 30 Tage, bis Sie es widerrufen). Es zählt mit den Limits Ihres Kontos, wie ein persönlicher Schlüssel. Jede erlaubte App steht in Ihrem Konto unter Verbundene Apps, wo ein Klick sie samt Tokens widerruft.
Für Agenten: /auth.md. Standard-Metadaten: /.well-known/oauth-authorization-server und /.well-known/oauth-protected-resource/mcp/account. Lieber ein fester Schlüssel? Erstellen Sie ihn in Ihrem Konto unter API-Schlüssel und senden Sie ihn als X-API-Key.
llms.txt
Ein Klartext-Leitfaden für KI-Agenten nach der Konvention von llmstxt.org: was die Website ist, API und MCP-Server und wie man zitiert – unter /llms.txt (auch /.well-known/llms.txt). Das aktuell günstigste Angebot der meistangebotenen Modelle, je eine Zeile, steht unter /llms-full.txt.
So zitieren Sie
CC BY 4.0: Katalog, Downloads, API-Antworten und die 90-Tage-Preishistorie dürfen frei genutzt, zitiert und weitergegeben werden, auch kommerziell, mit Nennung von AI Rate Card (airatecard.com) und einem Link auf die Karte oder Seite, von der die Zahlen stammen.
Für KI-Agenten gibt es /llms.txt und die öffentliche API unter /v1 – ansehen, vergleichen und zitieren, nie eine Massenkopie des Katalogs oder seines Preisverlaufs.
Source: AI Rate Card, https://airatecard.com/de/c/offer:<id>
Für Anbieter
Kostenloser Eintrag, den Sie selbst im Konto erledigen. Die Reihenfolge jeder Liste richtet sich nur nach dem Preis – Geld hebt niemanden an.
So kommen Sie hinein: sechs Schritte, etwa 15 Minuten
Der Eintrag ist kostenlos und Sie erledigen ihn selbst im Konto, in etwa 15 Minuten – ohne Briefe und Warten:
- Legen Sie ein Konto an – Login und Passwort, keine E-Mail.
- Drücken Sie „Neuen Anbieter hinzufügen“ und geben Sie Name und Website ein.
- Weisen Sie die Domain nach: eine einzeilige Datei unter /.well-known/, ein DNS-TXT-Eintrag oder ein Meta-Tag – dann „Jetzt prüfen“.
- Tragen Sie Modelle und Preise ins Formular ein; es erstellt Ihr models.yaml.
- Legen Sie die Datei unter /.well-known/airatecard-models.yaml ab und drücken Sie „Datei prüfen“.
- Drücken Sie „Veröffentlichen“: Der Sammler schaltet Sie automatisch frei, meist innerhalb von 10 Minuten.
Danach wird die Datei täglich gelesen: Ändern Sie darin einen Preis, folgt der Katalog am nächsten Tag. Ihre Modelle erscheinen auf der Website, in der API (/v1) und im MCP-Server für KI-Assistenten, mit Links zu Ihren Seiten.
Neuen Anbieter hinzufügen Schritt für Schritt, mit Beispielen
Woher Ihre Preise kommen
Ihre Preise kommen nur aus einer Quelle – Ihrer eigenen Website, damit es nie zwei Wahrheiten gibt:
- Ihre öffentliche Preisseite (oder Preis-API) – unser Robot liest sie täglich;
- oder zwei Dateien auf Ihrer eigenen Domain – dann lesen wir nur diese: seller.yaml, models.yaml (models.min.yaml)
Im Konto gestaltet ein bestätigter Anbieter nur das Aussehen seiner Karten, sieht seine Analytik und fordert eine Neuprüfung seiner Seite an; Preise werden nie von Hand oder per API eingegeben.
Schon im Katalog?
Viele Anbieter sind schon gelistet: Wir lesen ihre öffentlichen Preisseiten. Öffnen Sie Ihre Karte unter „Anbieter“ und drücken Sie „Das ist mein Unternehmen“ – weisen Sie die Domain nach, dann verwalten Sie die Karte: Gestaltung, Analysen, erneute Preisprüfung. Lieber eine Datei statt der Preisseite? Veröffentlichen Sie models.yaml wie oben beschrieben.
Für KI-Agenten: der ganze Weg über API und MCP
Jeder Schritt des Assistenten ist auch ein Aufruf: ein Agent des Anbieters kann den Eintrag starten, die Domain bestätigen, die Dateien prüfen, veröffentlichen und später seine Angebote lesen und eine Neuprüfung anfordern - mit denselben Prüfungen und Texten. Preise gehen nie über die API: der Anbieter veröffentlicht models.yaml auf seiner Site. Jede Antwort trägt next_action und bei Problemen problems[] mit Datei, Zeile, Modell, Feld, Wert, Code, Meldung und Hinweis.
Wie der Agent seine Aufrufe signiert
Die öffentlichen Aufrufe (check-domain, validate) brauchen nichts. Die übrigen handeln für das Konto der Person: ein persönlicher Schlüssel aus dem Konto (API-Schlüssel) als X-API-Key oder Bearer, oder OAuth mit dem Scope `provider` (die Zustimmungsseite sagt, was der Agent darf; ein Token nur mit `api` erhält 403).
Die Aufrufe, in Reihenfolge
| 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 | - |
Dasselbe über MCP
Der Kontoserver https://airatecard.com/mcp/account (OAuth oder persönlicher Schlüssel als Bearer) bietet dieselben Schritte als Tools; der offene Server https://airatecard.com/mcp hat validate_provider_files. Zuerst provider_whoami, dann next_action folgen.
Ein vollständiges Beispiel mit erfundener Domain
# 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_...'Ein bereits gelisteter Anbieter
check-domain antwortet in_catalog: true mit claim_url - eine Person der Firma bestätigt dort die Domain; danach liest der Agent den Anbieter, seine Angebote und fordert Neuprüfungen über /v1/provider/sellers/{key}... an.
OpenAPI: /openapi.json (tag provider) · /auth.md · /llms.txt
Sponsoring
Der Eintrag und jeder Preis sind kostenlos und für alle gleich. Sponsoring ist eine Spende: Es fügt ein Abzeichen hinzu und ändert nie die Reihenfolge.
Sponsoring
Jeder Besucher kann die Website unterstützen: die Schaltfläche „Die Website unterstützen“ im Konto. Je 5 $ sind ein Monat des goldenen SPONSOR-Abzeichens neben Ihrem Login in der Kopfzeile und Ihrem Spitznamen in den Diskussionen sowie ein Platz auf der Sponsorenseite (wenn Sie zustimmen). 15 $ sind drei Monate, 60 $ ein Jahr; ein neuer Beitrag verlängert den Zeitraum.
Ein Anbieter: ein goldenes SPONSOR neben seinem Namen und ein goldener linker Rand an den Zeilen aller seiner Modelle in den Tabs „Modelle“ und „Anbieter“, ein Platz auf der Sponsorenseite. 29 $ im Monat ist der Startpreis; die ersten Sponsoren behalten ihn auch nach einer Erhöhung.
Regeln
- Sponsoring ändert nie die Reihenfolge der Karten, die Sortierung, die Preise oder die Ergebnisse des Vergleichs – nur das Abzeichen.
- Die Daten der Website sind offen und für alle kostenlos; Sponsoren helfen, dass es so bleibt.
So machen Sie mit
- Registrieren Sie sich (Login und Passwort, keine E-Mail).
- Eine Person: Konto, „Die Website unterstützen“, ein Zeitraum. Ein Anbieter: Legen Sie eine Organisation an, bestätigen Sie die Domain, „Leistungen“ -> „Sponsoring“.
Online-Zahlung ist noch nicht angebunden: Wir schreiben Ihnen, wie Sie den Beitrag überweisen, und schalten das Abzeichen von Hand frei. Fragen: hello@airatecard.com.
Unser Crawler
Zuletzt aktualisiert: 2026-10-10
AIRateCardBot ist der Crawler von AI Rate Card (https://airatecard.com). Er hält den Katalog der KI-Modellpreise aktuell.
Was er tut
- Er liest öffentliche Seiten und öffentliche Endpunkte, die Modelle und Preise auflisten, etwa einmal täglich pro Anbieter.
- Er identifiziert sich mit dem User-Agent
AIRateCardBot/1.0 (+https://airatecard.com/bot). - Er befolgt robots.txt: Regeln für
AIRateCardBotoder für alle Crawler (*) werden vor jeder Anfrage geprüft. - Er hält seine Anfragerate niedrig.
- Er liest nur, was ohne Anmeldung öffentlich ist; private Inhalte liest er nicht.
Was wir zeigen
Auf der Karte eines Anbieters zeigen wir die Preise und einen Link zur eigenen Website oder Modellseite des Anbieters. Die Adressen der Seiten oder Endpunkte, die der Bot liest, veröffentlichen wir nicht.
Anbieter: so steuern Sie ihn
- Stoppen: fügen Sie Ihrer robots.txt hinzu
User-agent: AIRateCardBotDisallow: /Der Bot stoppt bei seinem nächsten Besuch. Ihr Eintrag bleibt mit einem Link zu Ihrer Website, ohne erfasste Preise. - Preise selbst senden: Veröffentlichen Sie Ihre Preise in unserem Format, dann lesen wir nur diese Datei. Siehe wie man einen Anbieter hinzufügt oder aktualisiert.
- Fragen oder Korrekturen: schreiben Sie an providers@airatecard.com oder hello@airatecard.com.
Wie die Reihenfolge entsteht
Zuletzt aktualisiert: 2026-10-10
Dies ist eine Übersetzung. Bei Abweichungen gilt die englische Fassung.
Diese Seite erklärt, wie AI Rate Card Modelle, Angebote und Anbieter ordnet und wie bezahlte Platzierungen angezeigt werden. Sie folgt den Transparenzregeln der EU-Verordnung über Plattformen und Unternehmen (2019/1150) und des Gesetzes über digitale Dienste.
1. Woher die Preise stammen
Wir übernehmen Preise nur von den eigenen Websites der Anbieter: ihren öffentlichen Preisseiten und öffentlichen APIs oder den Dateien seller.yaml/models.yaml, die ein Anbieter auf seiner eigenen Domain veröffentlicht. Jeder Preis zeigt seine Quelle und das Prüfdatum. Preise werden täglich geprüft. Wenn zwei Quellen desselben Anbieters voneinander abweichen, wird das Angebot als Konflikt markiert, bis der Unterschied geklärt ist.
2. Die Standardreihenfolge
Listen sind nach Preis geordnet, vom niedrigsten zum höchsten, nach dem Eingabepreis (bei Sprachmodellen der Preis pro 1 Million Eingabe-Tokens). Angebote mit gleichem Preis behalten eine feste Reihenfolge nach Anbieter und Modell-ID, sodass sich die Reihenfolge zwischen Besuchen nicht ändert. Die Anbieterliste ist nach der Zahl der Modelle eines Anbieters geordnet.
Manche Angebote werden unabhängig von ihrem Preis ans Ende der Liste gesetzt:
- Angebote, deren Preis wir nicht finden konnten („keine Daten“);
- Preise, die falsch aussehen — zum Beispiel weit entfernt von allen anderen Anbietern desselben Modells —, bis zur Prüfung mit ⚠ markiert;
Ein Angebot wird nur dann mit dem Preis 0 gezeigt, wenn der Anbieter es wirklich kostenlos anbietet; eine Null, die der Anbieter nicht als kostenlos gekennzeichnet hat, gilt als „keine Daten“.
Sie können die Reihenfolge jederzeit durch einen Klick auf eine Spaltenüberschrift ändern: Preis, Kontextfenster, Anbieter, Prüfdatum und andere. Ein zweiter Klick kehrt die Reihenfolge um. Filter gelten für die ganze Liste, nicht nur für die angezeigte Seite.
3. „Bester Preis“
Der beste Preis eines Modells ist der niedrigste Preis unter seinen Angeboten, die aktuell sind, nicht als zweifelhaft markiert und keine kostenlosen Testtarife sind. Er wird für jeden Anbieter auf dieselbe Weise berechnet.
4. Was Bezahlung ändern kann und was nicht
Bezahlung ändert nie die Reihenfolge einer Liste, den besten Preis, die Filter oder die Suchergebnisse.
Was Anbieter erhalten können:
- Verifiziert (kostenlos): Der Anbieter hat bestätigt, dass er seinen Eintrag kontrolliert, zum Beispiel über seine Domain. Der Eintrag erhält ein Abzeichen „Verifiziert“, und der Anbieter kann das Aussehen seiner Karten gestalten und eine Neuprüfung seiner Preisseite anfordern. Das Abzeichen sagt, wer den Eintrag verwaltet, nicht dass der Preis besser ist.
- Werbung (kostenpflichtig, wenn angeboten): Das Angebot des Anbieters kann mit eigenem Bild, eigenen Farben und einer längeren Beschreibung gezeigt werden und in gekennzeichneten Werbeplätzen erscheinen. Solche Inhalte sind immer als „Anzeige“ gekennzeichnet und nennen den Werbetreibenden. Sie werden nie an einer Listenposition gezeigt, die nicht durch den Preis verdient ist.
Bezahlte Platzierungen werden noch nicht angeboten.
5. Links zu Anbietern
Links zu Anbietern laufen über unsere Adresse /go/…, damit wir das Interesse an jedem Angebot zählen können. Wir erhalten für diese Klicks keine Provision. Sollte sich das jemals ändern, sagen wir es auf dieser Seite und neben den Links.
6. Fragen und Beschwerden
Wenn Sie meinen, dass ein Angebot an der falschen Stelle steht oder ein Preis falsch ist, nutzen Sie die Seite „Problem melden“ oder schreiben Sie an hello@airatecard.com. Anbieter können ihre eigenen Daten auch über das Anbieterkonto korrigieren.
FAQ
Wie aktuell sind die Preise?
Täglich geprüft, direkt von der Preisseite oder API des Anbieters.
Was bedeutet ein Preis mit Warnhinweis?
Er wirkt im Vergleich zu dem, wie diese Seite sonst aussieht, falsch, wird aber trotzdem angezeigt und als zweifelhaft markiert – prüfen Sie die Seite des Anbieters, bevor Sie sich darauf verlassen.
Was bedeutet „über X“?
Das Angebot läuft über die Infrastruktur eines anderen Unternehmens (einen Router) und wird nicht direkt vom Hersteller des Modells verkauft; X ist, über wen es verkauft wird.
Was sind Regionen?
Wo der Anbieter dieses Angebot bereitstellt (Datenresidenz) – EU, US, Global … Eine andere Region ist ein anderes Angebot mit eigenem Preis.
Warum fehlt ein Anbieter?
Wir haben ihn noch nicht erfasst – nennen Sie ihn uns unter /join, dann nehmen wir ihn auf.