search_models
Search models
Find the exact id of an LLM tracked by InferIndex from a name or partial name (e.g. 'deepseek', 'qwen3 max', 'claude opus'). Returns matching model ids and names, best match first.
query必填
io.github.InferIndex由 GitHub 帳號 InferIndex 發布v1.0.0更新於 Oct 24, 2026
LLM API prices across 70+ providers: cheapest offer, comparisons, history and cost estimates.
遠端 MCP 伺服器,讓助理比較 60 多家供應商的 LLM API 價格、查看價格歷史、估算成本,並權衡自架主機與呼叫 API
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/io.github.InferIndex%2Finferindex/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。把它新增到你客戶端的 mcpServers 設定中。
{
"mcpServers": {
"inferindex": {
"type": "http",
"url": "https://mcp.inferindex.dev/mcp"
}
}
}InferIndex finds the cheapest provider for a given LLM, across more than 60 tracked pricing sources — direct provider APIs and aggregators/routers — with price history and promotion detection.
Live API: https://api.inferindex.dev
Service status: https://status.inferindex.dev (external uptime monitoring)
This repository holds the public documentation, examples and (eventually) a client SDK for that API. The backend itself — collection, parsers, data model — lives in a separate private repository.
Example response as of 2026-10-07 — prices, providers and statuses change.
Prices are in USD per million tokens, converted at the day's ECB rate when the source publishes another
currency. blended_per_1M is (3 × input + output) / 4, a rough proxy for a typical chat workload.
Each offer appears once, at its cheapest source: via is "direct" or the aggregator it comes from, and
also_via lists other sources selling the same offer. promo is false unless a promotion was detected, in
which case confidence and price_before_promo are filled in.
Early / actively developed. The API is public and free to use, without authentication, but there is no uptime guarantee, no versioned API contract yet, and endpoints or response shapes may change. If you build something on it, expect to adjust when they do. Feedback and issues are welcome.
Service status: https://status.inferindex.dev (external uptime monitoring). It shows current and past availability; it is not an uptime guarantee.
Provider pricing pages disagree, change without notice, and rarely show what resellers actually charge for the same model. InferIndex collects prices from more than 60 sources, each read from its own listing on its own schedule (from hourly to daily depending on the source), stores every change, and answers "who is cheapest for model X right now" from that history — client requests never trigger a live call to a provider.
Cache-Control: public, max-age=300 (5 minutes) (except /health/ready, never cached). On the custom domain, responses are additionally held in Cloudflare's
edge cache for the same 5 minutes./cheapest, /history, /resellers, /self-host, /gpus and /gpu-rentals, counting only
requests not answered from cache. An optional API key (x-api-key header) raises this to 300 requests per
minute per key; free keys will be offered, self-service sign-up isn't available yet. An invalid key returns
401. Over the limit, requests get 429. The MCP server has its own limits, see
Use with AI assistants.prompt_tokens, output_tokens, cached_ratio and requests_per_day to /cheapest
or /resellers to get an estimated cost per request and per month for each offer, and
sort=estimated_cost to rank by it. See docs/api.md.flex, batch — lower priority, variable latency, in
exchange for a lower price) are excluded from /cheapest and /resellers unless you ask for them with
include_tiers=flex,batch. The number hidden is reported in hidden_tiers.Data corrections are listed in the changelog.
InferIndex is a comparison tool, not a source of truth. Treat every price as "what our collector last saw", not as a guarantee of what you will be billed:
/cheapest filterssort=blended\|input\|output — sort order (default blended)min_context=100000 — minimum context windowquantization=fp8,bf16 — accepted quantizationsmin_uptime=95 — minimum 30-minute uptime (%), as observed by an aggregator (not measured by InferIndex)tools=true, json=true, vision=true — only offers declared to support tool calling, JSON output, image inputregion=eu — only offers processed in that region (eu, us, cn, uk, ch, sg, id, my, vn, kr, jp, in, ca, au), per the providers' official documentsno_training=true — only offers whose providers state they don't train on promptsno_waitlist=true — only providers whose signup is open to everyonestrict=true — also drop offers for which the filtered data is unknown (by default they're kept and flagged
in unverified, counted in filters_unknown)include_tiers=flex,batch — include degraded service tiers (excluded by default, see above)explain=true — list every excluded offer with its reason codes (an explanation summary is always included)Offers also carry conditions (data region, retention, training on prompts, and what it takes to open an
account — each with its official source link), quantization_source (whether the compute precision is declared
by the source or inferred), and, on /resellers, reliability from the providers' official status pages. See
docs/api.md.
/historygranularity=raw returns one row per price change; day / week (weeks start Monday) return one point per
period and per offer (provider, quantization, variant) with min, max and last price. Use days or from/to
for a period, or at=2026-09-15 for the prices in force at a given moment. Prices are converted to USD at the
ECB rate of the day of the price.
Model search (/models):
Example response as of 2026-09-15 — prices, providers and statuses change.
/health/readyExample response as of 2026-09-15 — prices, providers and statuses change.
status is ok, degraded (a non-critical part is having trouble — see the degraded array for which) or
unavailable (no usable price data). HTTP 200 for ok/degraded, 503 for unavailable. Useful as an
uptime-monitor target if you depend on this API.
Full route and parameter reference: docs/api.md.
InferIndex is also available as a remote MCP server, so an AI assistant can look up prices for you:
https://mcp.inferindex.dev/mcp (Streamable HTTP)
(https://api.inferindex.dev/mcp also works, as an alias)io.github.InferIndex/inferindex.x-api-key header./mcp, at most 10 JSON-RPC messages per batch and 64 KB per
request (otherwise 400 or 413 with JSON-RPC error -32600). Over the rate limit: 429 with JSON-RPC error
-32000. Each tool call also counts toward the limit of the API route it uses (/cheapest, /resellers,
/history, /self-host, /gpus, /gpu-rentals).Every result includes api_url, the equivalent API call, so you can check or reuse it.
cheapest, compare_providers and estimate_cost return a compact view by default: the winner in detail and one short
line per other offer. Pass detail: "full" to get every field of every offer. In the compact view, an absent condition
was not published by the provider (it never means "no"), and a flag that is not listed in signals is false.
For Cline and other agents that install servers themselves, see llms-install.md.
Claude Code
With an API key, add --header "x-api-key: YOUR_KEY".
Claude Desktop / claude.ai: Settings → Connectors → Add custom connector, URL https://mcp.inferindex.dev/mcp.
Older Claude Desktop versions, in claude_desktop_config.json:
Cursor: one click, or add it by hand.
In ~/.cursor/mcp.json:
With an API key, add "headers": { "x-api-key": "YOUR_KEY" } next to "url".
Codex CLI
Or in ~/.codex/config.toml:
With an API key, add env_http_headers = { "x-api-key" = "INFERINDEX_API_KEY" } to that table and set the
INFERINDEX_API_KEY environment variable.
Documentation fixes and example contributions are welcome — open a pull request or an issue. This repository covers the public API surface only; the backend itself is not open source.
docs/): CC BY 4.0. Reuse and adapt it freely, with credit
to InferIndex.These licenses cover this repository only, not the InferIndex backend or its price data.
來源:README.md,提交 0344797
Search models
Find the exact id of an LLM tracked by InferIndex from a name or partial name (e.g. 'deepseek', 'qwen3 max', 'claude opus'). Returns matching model ids and names, best match first.
query必填Cheapest offers for a model
Cheapest current API offers for one model across direct providers and aggregators, in USD per 1M tokens (input, output, blended 3:1). Stale prices, and flex/batch tiers, are excluded by default. Optional filters (context, tools, JSON, vision, region, no training on prompts, open sign-up) and usage (tokens per request, requests per day) to get an estimated cost per request and per month. Returns the winner in detail and one short line per following offer. A condition that is absent was not published by the provider, it never means "no"; a flag not listed in signals is false.
jsonlimitmodel必填toolsdetailregionstrictvisionmin_contextno_trainingno_waitlistcached_ratio另有 4 個Compare providers for a model
Current offers for one model, one line per provider and source (direct or via an aggregator), cheapest first (10 by default), with price, quantization, signals and training on prompts when published; the cheapest offer comes in detail. Pass detail: "full" for context, every published condition (data regions, sign-up) and reliability from official status pages on each offer.
sortlimitmodel必填detailregionstrictno_trainingno_waitlistcached_ratioinclude_tiersoutput_tokensprompt_tokens另有 1 個Price history of a model
Price history of one model: every offer tracked by InferIndex (daily or weekly min/max/last price in USD, or raw price changes), plus the official price of the model's lab over time. Give either days, or from/to (YYYY-MM-DD), or at (a date) for the prices in effect that day.
attodaysfromlimitmodel必填providergranularityEstimate the cost of a workload
Estimated cost of a workload on one model at each provider: cost per request, and per month if requests_per_day is given, taking the provider's tiered pricing and prompt-cache price into account. Offers sorted by estimated cost, cheapest first: the cheapest in detail, then one short line per offer with its estimated cost.
limitmodel必填detailcached_ratiooutput_tokensprompt_tokensrequests_per_dayGPU types tracked for rental prices
GPU types whose rental price InferIndex tracks (H100, A100, L40S…), with the lowest price per GPU per hour in USD for each tier (guaranteed, community, spot) and the number of GPUs of that configuration. Prices are per GPU per hour, as published by each provider, and dated. Tiers are different products and are never compared with each other.
無需輸入參數。
Rental offers for one GPU, by tier
Rental offers for one GPU type: provider, price in USD per GPU per hour, number of GPUs in the published configuration, billing and region when published. One block per tier (guaranteed, community, spot), each with its own cheapest offer, also given per configuration (cheapest_by_gpu_count: the price per GPU of a single GPU and of a multi-GPU node are not comparable); tiers are never compared with each other. guaranteed: capacity the provider presents as not interrupted; community: third-party hosts; spot: interruptible capacity. Prices are as published by the provider, and dated. Get the GPU id from list_gpus.
gpu必填tierdetailregiongpu_countSelf-host an open model or use the API?
Is it cheaper to host an open-weights model yourself on rented GPUs, or to use the cheapest API offer? Returns a one-sentence verdict (headline) and the numbers behind it: the break-even volume in million tokens per day, the throughput the whole configuration must deliver for self-hosting to cost less (required_tokens_per_second: compare it with what your setup does), the break-even utilization when a throughput is known, the GPU configuration and its hourly price, and what the verdict rests on (confidence). Without a volume you still get the verdict and the break-even volume. It is an estimate: the throughput is a published measurement (measured), an estimate scaled from one (derived; estimated for a wide range), or a published minimum (lower_bound: a floor, valid for requests of up to 2,048 tokens in total, that can show self-hosting wins, never that the API is cheaper); or you give your own tokens_per_second. When no published figure decides, the headline gives the break-even volume and the required throughput, to compare with yours, rather than a yes or no, and may point out a dearer setup that published figures do decide (settled_alternative: for comparison, not a recommendation). headline_kind and headline_values give the headline as fields. It declines to give a number (status refused, with a reason) when it cannot do so reliably, for example a closed model, weights that do not fit the requested GPU, or a GPU nobody rents. Hardware rental only: the hourly price the provider publishes for the machine. It does not count the engineering to deploy and run the model, monitoring, redundancy, start-up time, or storage and network costs billed separately.
gputiermodel必填detailgpu_countutilizationquantizationoutput_tokensprompt_tokenstokens_per_dayweights_marginrequests_per_day另有 1 個已滿足適用檢查項的 100%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
curl "https://api.inferindex.dev/cheapest?model=deepseek/deepseek-v3.2"{ "query": "deepseek/deepseek-v3.2", "model": { "id": "deepseek/deepseek-v3.2", "name": "DeepSeek: DeepSeek V3.2" }, "other_matches": [], "sort": "blended", "cheapest": { "provider": "GMICloud", "via": "openrouter", "via_name": "OpenRouter", "offer_url": "https://openrouter.ai/models", "offer_url_kind": "pricing", "tier": "standard", "input_per_1M": 0.2088, "output_per_1M": 0.3096, "cache_read_per_1M": 0.0216, "blended_per_1M": 0.234, "currency": "USD", "quantization": "fp8", "quantization_source": "declared", "context_length": 163840, "promo": true, "also_via": [ "kilo" ], "unverified": [] }, "offers": [ { "provider": "GMICloud", "via": "openrouter", "via_name": "OpenRouter", "blended_per_1M": 0.234, "…": "…" }, { "provider": "Nous Portal", "via": "nous", "via_name": "Nous Portal", "blended_per_1M": 0.234, "…": "…" } ], "hidden_tiers": { "flex": 1 }, "filters_unknown": {}, "strict": false}curl "https://api.inferindex.dev/models?search=deepseek"{ "count": 19, "models": [ { "id": "deepseek/deepseek-v3.2", "name": "DeepSeek: DeepSeek V3.2" }, { "id": "deepseek/deepseek-v4.1-flash", "name": "DeepSeek: DeepSeek V4.1 Flash" } ]}{ "ready": true, "status": "ok", "failures": [], "degraded": [], "warnings": ["2 price source(s) in error", "1 announcement source(s) in error"], "prices": { "current_offers": 5664, "latest_check_at": "2026-09-15T05:01:05.639Z", "latest_check_age_minutes": 1.5 }, "watcher": { "active_sources": 84, "errors": 1, "persistent_errors": 0, "latest_check_at": "2026-09-15T05:02:08.890Z", "latest_check_age_minutes": 0.4 }, "schedulers": { "active": 62, "ok": 62, "starting": 0, "late": 0, "not_started": 0 }, "source_errors": { "count": 1, "persistent": 0 }, "version": { "id": "…", "tag": "", "deployed_at": "…" }, "checked_at": "2026-09-15T05:02:34.383Z"}claude mcp add --transport http inferindex https://mcp.inferindex.dev/mcp{ "mcpServers": { "inferindex": { "command": "npx", "args": ["-y", "mcp-remote", "https://mcp.inferindex.dev/mcp"] } } }{ "mcpServers": { "inferindex": { "url": "https://mcp.inferindex.dev/mcp" } } }codex mcp add inferindex --url https://mcp.inferindex.dev/mcp[mcp_servers.inferindex]url = "https://mcp.inferindex.dev/mcp"