Authorization: Bearer ast_try · try without an account: model elliot, 20 requests a day for free
Tell us once what you need: score or model, model family, region, speed, capabilities, price. Your API key gets exactly that — today and with every new model generation, without changing a line. LLMs, images, speech and transcription with one key; prices compared live, performance measured by us, account and billing via API too. You pay the provider's price plus 5% — no subscription, no base fee.
40models compared
64platforms
0.083USD per 1M output, from
Many providers, one route: every request goes to the cheapest one that meets your rules.
You set the criteria. We keep them current.
Decide once what matters — your API key gets exactly that, re-decided on every request. All fields are part of the same OpenAI-compatible API.
Score or model
The best measured model per use case, a level (solid, strong, top), your own minimum score — say 0.80 in coding — or a fixed model name. Otherwise we take the cheapest one that meets it.
category + level | min_score · model
Model family
For example claude, qwen3 or deepseek/deepseek-v4. When a new generation ships, it is included as soon as it is on the market — with min_score, as soon as we have measured it.
family
Region
Switzerland, EU, USA or Asia: only providers whose execution region we have recorded (eu includes ch).
region
Speed
Rank by measured throughput when response time matters.
sort: "speed"
Capabilities
Tools, structured output, reasoning, image input, minimum context — every chosen provider must support it.
capabilities · min_context
Price
Cheapest first, best score per franc, or a hard maximum price per million tokens.
sort: "price" | "value" · max_price
Integrate once. Never chase models again.
If you build a platform or a tool, today you commit to a model — and tomorrow you switch when a better or cheaper one appears. Here you commit to your requirements, not to a model. The interface stays the same; we keep re-making the choice behind it.
New model generations arrive without code changes.
If a provider fails, the next one that meets your rules takes over.
Market price cuts reach you automatically.
If nothing meets your rules, we say so clearly (409) — no silent fallback.
Platform list prices in USD per 1 million tokens (daily rate, without our margin), checked every 15 minutes. Bars make price and speed comparable; index = Artificial Analysis via OpenRouter (pre-selection only — we commit only to what we measure ourselves). Region: as recorded by us — otherwise "global" (provider-dependent). Our own models (origin "llm-broker") show our selling price and only our own measurements.
Performance map
Each dot is a model: cheap on the left, strong at the top. The glowing line is the efficiency frontier — no other model is both cheaper and better. Bubble size = context window.
Reasoning and coding are external indices (Artificial Analysis). Speed and HumanEval+ we measure ourselves; our own models appear there. ×2.2 = most expensive ÷ cheapest platform price of a model, −55 % = saving against the most expensive provider. Price ↓ 90 % = output price over the period (first to last day); ↓ means cheaper.
Price range per platform
The same model costs different amounts on each platform. The glowing dot is the cheapest — that's where we route.
0.1110100
GPT 6 Astra
×2.0 · −50 %
GPT 6.1 Sol
×2.0 · −50 %
GPT 6.1 Terra
×2.2 · −55 %
Gemini 4 Argon
×2.0 · −50 %
Kimi K3.1 Pro
×1.4 · −30 %
GPT 6 Sol
×2.0 · −50 %
Ling 3.1 Flash
×1.7 · −40 %
GPT 5.6 Terra
×2.2 · −55 %
GLM 5.3
×3.8 · −73 %
Grok 4.6
×1.1 · −9 %
Mimo V2.6 Pro
×12.3 · −92 %
Minimax M3.1 Flash
×2.0 · −50 %
Price movement
Cheapest output price (USD per 1M tokens) across all platforms — candles per interval, red = more expensive, teal = cheaper.
Candle = 1 day · since 09.10.26 23:32 · 1304 price changes
0.0830
▼ 55.6 %
Candle = 1 day · since 09.10.26 23:32 · 1025 price changes
0.203
▼ 69.3 %
Candle = 1 day · since 17.10.26 10:32 · 709 price changes
0.150
▼ 74.9 %
Candle = 1 day · since 10.10.26 00:17 · 643 price changes
1.743
▼ 41.9 %
Candle = 1 day · since 09.10.26 23:17 · 570 price changes
1.399
▼ 68.2 %
Value for money
Index points per USD of output price · price movement over the last 30 days.
Not just LLMs: image generation, speech and transcription from the market, with the same OpenAI-compatible API and the same billing. You name a market id, we pick the cheapest provider. Prices in USD, including our margin, live from /api/v1/broker/models?type=….
Image generation
From quick drafts to print quality: FLUX, Qwen-Image, Seedream and more — or iris, our own image model.
iris0.0079 USD per image
stabilityai/sdxl-turbo0.00021 USD per image
black-forest-labs/FLUX-1-schnell0.000525 USD per image
Paste the prompt into Claude Code, Cursor, Codex, OpenCode or any other coding assistant. It reads our docs, opens the account via API, stores the key safely, wires up the API and checks it with a smoke test. You only confirm the payment.
Claude Code: paste the prompt into the session · Cursor/Windsurf: into the agent chat · OpenCode: opencode run "…" · Codex: codex "…"
Set up LLM Broker in this project (https://llm-broker.net) — one OpenAI-compatible API for LLMs, images, speech
and transcription with a single key. Work on your own; only ask me when a payment must be confirmed or a secret
must be entered.
1. Read the descriptions first, don't guess:
- https://llm-broker.net/llms.txt (entry point for agents)
- https://llm-broker.net/api/openapi (all endpoints and schemas)
- https://astrioncore.wiki/api and https://astrioncore.wiki/api#konto (account and billing via API)
2. Key: if BROKER_API_KEY (starts with ast_sk_) is not set, open an account via the API:
POST https://llm-broker.net/api/v1/broker/accounts
{"billing": "topup", "amount": 25, "currency": "USD"} (every request picks its level via "routing")
Show me the checkout_url (the card is entered once at Stripe), then poll status_url until it returns 200.
The api_key is shown EXACTLY ONCE: store it right away in .env as BROKER_API_KEY, add .env to .gitignore,
never log or commit it. base_url is in the same response.
3. Integrate: the OpenAI SDK of the project's language with base_url and BROKER_API_KEY. Models are listed at
GET /api/v1/broker/models?type=chat|image|speech|transcription (no key needed).
- LLM: POST /api/v1/chat/completions, model "james-direct" with "routing" (category, level|min_score, sort,
region, family, capabilities, max_price) or a market id such as "deepseek/deepseek-v4.1-flash".
- Images: POST /api/v1/images/generations, speech: POST /api/v1/audio/speech,
transcription: POST /api/v1/audio/transcriptions — each with a market id of the matching type.
4. Add a small client layer (configuration from the environment, no hard-coded model names — prefer routing),
write a smoke test with one short chat call and run it.
5. Billing: GET /api/v1/broker/billing shows balance and spend; top up or change the monthly limit with
PATCH /api/v1/broker/billing, the card with POST|DELETE /api/v1/broker/card.
Errors: 402 insufficient_balance (top up), 409 no_matching_offer (relax routing),
404 model_not_found (check the market list), 429 rate_limited (retry later).
Finish with a summary of what is set up and where the key is stored.
Richte in diesem Projekt den LLM Broker ein (https://llm-broker.net) — eine OpenAI-kompatible API für LLM, Bilder,
Sprachausgabe und Transkription mit einem Schlüssel. Arbeite selbstständig; frag mich nur, wenn eine Zahlung
bestätigt oder ein Geheimnis eingegeben werden muss.
1. Lies zuerst die Beschreibungen, nicht raten:
- https://llm-broker.net/llms.txt (Einstieg für Agenten)
- https://llm-broker.net/api/openapi (alle Endpunkte und Schemata)
- https://astrioncore.wiki/api und https://astrioncore.wiki/api#konto (Konto und Bezahlung per API)
2. Schlüssel: Ist BROKER_API_KEY (beginnt mit ast_sk_) nicht gesetzt, eröffne ein Konto per API:
POST https://llm-broker.net/api/v1/broker/accounts
{"billing": "topup", "amount": 25, "currency": "USD"} (Leistung wählt jede Anfrage per "routing")
Zeig mir die checkout_url (die Karte wird einmal bei Stripe eingegeben) und frag danach status_url ab,
bis 200 kommt. Der api_key erscheint GENAU EINMAL: sofort in .env als BROKER_API_KEY speichern,
.env in .gitignore, nie ins Log oder in einen Commit. base_url steht in derselben Antwort.
3. Einbinden: OpenAI-SDK der Projektsprache mit base_url und BROKER_API_KEY. Modelle findest du unter
GET /api/v1/broker/models?type=chat|image|speech|transcription (ohne Schlüssel lesbar).
- LLM: POST /api/v1/chat/completions, model "james-direct" mit "routing" (category, level|min_score, sort,
region, family, capabilities, max_price) oder direkt eine Markt-ID wie "deepseek/deepseek-v4.1-flash".
- Bilder: POST /api/v1/images/generations, Sprache: POST /api/v1/audio/speech,
Transkription: POST /api/v1/audio/transcriptions — jeweils mit einer Markt-ID der passenden type.
4. Lege eine kleine Client-Schicht an (Konfiguration aus der Umgebung, keine festen Modellnamen im Code —
lieber routing), schreibe einen Rauchtest mit einem kurzen Chat-Aufruf und führe ihn aus.
5. Abrechnung: GET /api/v1/broker/billing zeigt Guthaben und Verbrauch; Aufladen oder Monatsrahmen ändern
mit PATCH /api/v1/broker/billing, Karte mit POST|DELETE /api/v1/broker/card.
Fehler: 402 insufficient_balance (aufladen), 409 no_matching_offer (routing lockern),
404 model_not_found (Marktliste prüfen), 429 rate_limited (später erneut).
Fasse am Ende zusammen, was eingerichtet ist und wo der Schlüssel liegt.
Performance per request
On every request you decide how strong the model has to be — via routing in the same OpenAI-compatible API. A level is a minimum score in OUR measurements per use case, best the highest-measured model; set your own threshold with "min_score": 0.85. The price is today's customer price (in the selected currency per 1M tokens in/out, including our margin) of the cheapest model that meets the level — works for taylor, james-direct and every market id.
Codingmeasured with HumanEval+"category": "coding"
Solid ≥ 70 %
0.00 / 0.00
15 models qualify
"level": "solid"
Strong ≥ 80 %
0.00 / 0.00
14 models qualify
"level": "strong"
Top ≥ 88 %
0.00 / 0.00
10 models qualify
"level": "top"
Best top score
5.54 / 27.69
1 model qualifies
"level": "best"
Reasoning & knowledgemeasured with MMLU-Pro + GPQA Diamond"category": "reasoning"
Solid ≥ 55 %
0.06 / 0.19
13 models qualify
"level": "solid"
Strong ≥ 65 %
0.06 / 0.19
13 models qualify
"level": "strong"
Top ≥ 75 %
0.06 / 0.19
11 models qualify
"level": "top"
Best top score
1.11 / 5.54
1 model qualifies
"level": "best"
Mathmeasured with MATH"category": "math"
Solid ≥ 60 %
0.00 / 0.00
17 models qualify
"level": "solid"
Strong ≥ 75 %
0.00 / 0.00
17 models qualify
"level": "strong"
Top ≥ 85 %
0.06 / 0.19
14 models qualify
"level": "top"
Best top score
11.08 / 55.39
1 model qualifies
"level": "best"
Instruction followingmeasured with IFEval"category": "instruction_following"
Solid ≥ 75 %
0.00 / 0.00
15 models qualify
"level": "solid"
Strong ≥ 82 %
0.00 / 0.00
14 models qualify
"level": "strong"
Top ≥ 88 %
0.16 / 0.63
7 models qualify
"level": "top"
Best top score
1.11 / 5.54
1 model qualifies
"level": "best"
Get your key
Add a card once and you're set. Only Stripe sees the card number — we never do.
Sign up and pay — all via API
A program or agent opens the account, fetches the key and manages billing on its own. Money before key: no free credit, the key is created only after payment.
1 · ACCOUNT
Open an account
Choose billing — a level is optional, every request picks it via routing. The response contains checkout_url and status_url.
After that everything runs without humans: top-ups with the stored card, monthly billing, cancellation. Only the very first card entry still needs a browser at Stripe today. Details: Wiki: account & billing via API.
Which model do I get with taylor?
Without a level, the most capable one; with a level (per request or as the key's default), the cheapest of all models that reach it in our measurements. The table above shows the market; which model answers a single request is decided by the price at that moment. Want the strongest instead of the cheapest: "routing": {"category": "…", "level": "best"} — works for taylor, james-direct and every market id.
What does "measured" mean?
We test every model ourselves on open benchmarks (samples, identical settings) and re-measure regularly — all without thinking mode so the numbers are comparable; reasoning models often do better on hard tasks with thinking switched on. You control that per request with reasoning_effort (e.g. "none"). Third-party indices are used for pre-selection only.
And if no model meets the level?
Then the API answers with level_unavailable and charges nothing — never a silent fallback to a weaker model.
Are there image and speech models too?
Yes: image generation, speech and transcription from the market with the same key — market ids under /api/v1/broker/models?type=image|speech|transcription, plus our own models iris and quill.
How does billing work?
Pay as you go at the daily price — tokens, images, characters or minutes — by credit card only: automatic top-up or monthly in arrears. No subscription, no free credit.