API
JSON endpoints for LLM API prices, offers and price history.
- Free
- No key needed
- JSON
- CORS open
curl "https://api.inferindex.dev/cheapest?model=deepseek/deepseek-v3.2"
- cheapest.provider
- GMICloud
- cheapest.input_per_1M
- 0.2088
- cheapest.blended_per_1M
- 0.234
Response right now · HTTP 200See the response
{
"model": {
"id": "deepseek/deepseek-v3.2",
"name": "DeepSeek: DeepSeek V3.2",
"new_listing": null,
"retirement": null
},
"cheapest": {
"provider": "GMICloud",
"via": "openrouter",
"input_per_1M": 0.2088,
"output_per_1M": 0.3096,
"blended_per_1M": 0.234,
"currency": "USD",
"quantization": "fp8",
"context_length": 163840,
"promo": true,
"price_before_promo": {
"input_per_1M": 0.29,
"output_per_1M": 0.43
},
"checked_at": "2026-10-31T08:50:41.527Z",
"stale": false
},
"offers_total": 21,
"fetched_at": "2026-10-31T10:05:51.479Z"
}
Returned by the API while this page was generated, trimmed to the main fields.
Start here
- Find the model id
/models?search=deepseekreturns ids such as deepseek/deepseek-v3.2. - Ask for the cheapest offer
/cheapest?model=deepseek/deepseek-v3.2one request, no key. - Read the answer
cheapest.provider, cheapest.via and cheapest.blended_per_1Mthe provider serving the model, where you buy it (direct or through an aggregator), and its blended price in USD per million tokens.
Rate limit · per minute
- Without a key
- 60
- With a free key
- 300
The API works without a key, at 60 requests a minute. A free key raises that to 300. Get a free key
Examples
What does a model cost right now, and who sells it?
curl "https://api.inferindex.dev/cheapest?model=meta-llama/llama-3.3-70b-instruct&limit=3"
Response as of 2026-10-16, abridged.
{
"model": { "id": "meta-llama/llama-3.3-70b-instruct", "name": "Meta: Llama 3.3 70B Instruct" },
"offers_total": 41,
"cheapest": {
"provider": "NanoGPT",
"via": "nanogpt",
"via_name": "NanoGPT",
"input_per_1M": 0.05,
"output_per_1M": 0.23,
"blended_per_1M": 0.095,
"promo": false,
"checked_at": "2026-10-16T07:40:37.737Z"
}
}
Read: blended_per_1M is the price at a 3:1 input:output mix, and via_name the seller when the offer is sold through an aggregator. promo flags a drop or a promotion (false here; probable is a drop we saw, not announced by the seller) and checked_at is when the price was last confirmed.
What would my workload cost per month?
curl "https://api.inferindex.dev/cheapest?model=openai/gpt-oss-120b&prompt_tokens=2000&output_tokens=500&requests_per_day=1000&limit=3"
Response as of 2026-10-16, abridged.
{
"model": { "id": "openai/gpt-oss-120b", "name": "OpenAI: gpt-oss-120b" },
"usage": { "prompt_tokens": 2000, "output_tokens": 500, "cached_ratio": 0, "requests_per_day": 1000 },
"cheapest": {
"provider": "Runware",
"via_name": "LLM Gateway",
"input_per_1M": 0.032,
"output_per_1M": 0.14,
"estimated_cost_per_request": 0.000134,
"estimated_cost_per_month": 4.02,
"estimate_approx": false,
"estimate_notes": ["context_unknown", "max_output_unknown"]
}
}
Read: estimated_cost_per_month covers 30 days at the stated workload, for the offer that is cheapest for that workload; estimate_approx is true when the source does not fully publish its tiers or cache price; estimate_notes lists caveats such as context_unknown.
Which of two models is cheaper for the same workload?
There is no route that compares two models. Call /cheapest once per model with the same workload and compare estimated_cost_per_month:
curl "https://api.inferindex.dev/cheapest?model=meta-llama/llama-3.3-70b-instruct&prompt_tokens=2000&output_tokens=500&requests_per_day=1000&limit=1"
curl "https://api.inferindex.dev/cheapest?model=openai/gpt-oss-120b&prompt_tokens=2000&output_tokens=500&requests_per_day=1000&limit=1"
Responses as of 2026-10-16, abridged.
{ "model": { "id": "meta-llama/llama-3.3-70b-instruct" }, "cheapest": { "provider": "NanoGPT", "via_name": "NanoGPT", "estimated_cost_per_month": 6.45 } }
{ "model": { "id": "openai/gpt-oss-120b" }, "cheapest": { "provider": "Runware", "via_name": "LLM Gateway", "estimated_cost_per_month": 4.02 } }
Read: the two figures are comparable because the workload is the same; the website's comparison page shows them side by side. No route lists every offer of one provider either: the provider pages of the website do.
Has the price changed?
curl "https://api.inferindex.dev/history?model=deepseek/deepseek-v3.2&days=7&granularity=day&provider=DeepInfra"
Response as of 2026-10-16, first two points of sixteen.
{
"model": { "id": "deepseek/deepseek-v3.2" },
"days": 7,
"granularity": "day",
"history": [
{ "period": "2026-10-09", "provider": "DeepInfra", "quantization": "fp4", "variant": "", "input_min": 0.26, "input_max": 0.26, "input_last": 0.26, "output_min": 0.38, "output_max": 0.38, "output_last": 0.38 },
{ "period": "2026-10-09", "provider": "DeepInfra", "quantization": "fp4", "variant": "flex", "input_min": 0.208, "input_max": 0.208, "input_last": 0.208, "output_min": 0.304, "output_max": 0.304, "output_last": 0.304 }
]
}
Read: one point per day and per offer; equal min, max and last mean the price did not move that day. variant: "flex" is a lower-priority tier, not the standard price.
Who offers it in the EU, without training on my prompts?
curl "https://api.inferindex.dev/resellers?model=meta-llama/llama-3.3-70b-instruct®ion=eu&no_training=true&strict=true&limit=3"
Response as of 2026-10-16, abridged.
{
"model": { "id": "meta-llama/llama-3.3-70b-instruct" },
"total_offers": 4,
"filters_unknown": { "region": 54, "no_training": 26, "quantization": 9 },
"excluded": { "region_unknown_strict": 54, "region_mismatch": 8, "training_unknown_strict": 26, "training_not_excluded": 6 },
"offers": [
{ "provider": "CloudFerro", "blended_per_1M": 0.4763, "conditions": { "provider": { "regions": { "value": "EU (Poland)" }, "training_on_prompts": { "value": "no" } } } },
{ "provider": "IONOS", "blended_per_1M": 0.7285, "conditions": { "provider": { "regions": { "value": "Germany (EU)" }, "training_on_prompts": { "value": "no" } } } }
]
}
Read: without strict=true, offers whose region or policy is not published are kept and counted in filters_unknown; "not published" is not "no". With strict=true they are excluded, which is why the list is short; excluded says how many fell out and why.
Rent a GPU or pay the API?
curl "https://api.inferindex.dev/self-host?model=qwen/qwen3-32b&tokens_per_day=50000000"
Response as of 2026-10-16, abridged.
{
"status": "ok",
"verdict": "api_cheaper",
"headline": "At 50 million tokens a day, the API is cheaper whatever the throughput ($0.123/M at a 3:1 input:output mix; self-hosting breaks even at 68.6 million tokens a day).",
"threshold_m_tokens_per_day": 68.57,
"required_tokens_per_second": { "at_utilization": 1587.4, "utilization_percent": 50 },
"api": { "provider": "Nscale", "usd_per_m_tokens": 0.1225, "offers_compared": 21 },
"assumptions": ["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, …", "…"],
"configuration": { "gpu_name": "RTX A6000 48GB", "gpus_needed": 1, "provider": "Thunder Compute", "usd_per_day": 8.4, "throughput_evidence": "none" }
}
Read: threshold_m_tokens_per_day is the volume at which a rented configuration costs the same as the cheapest API; above it, renting wins only if the setup sustains required_tokens_per_second, a condition and not a promise. The figures cover hardware rental only; assumptions lists what is left out.
Where does the market stand, by model family?
curl "https://api.inferindex.dev/index?series=market"
Response for the publication of 2026-10-12, abridged.
{
"index": "InferIndex market index",
"series": "market",
"published_at": "2026-10-12T00:00:00.000Z",
"method_version": "1.2",
"unit": "USD per 1M tokens, blended 3:1 (input:output)",
"compared_to": "2026-10-05T00:00:00.000Z",
"families": [
{ "family": "open_small", "value": 0.125, "models": 54, "change_on_same_models_pct": 0, "same_models": 54 },
{ "family": "open_medium", "value": 0.2953, "models": 30, "change_on_same_models_pct": 2.16, "same_models": 30 }
],
"corrections": []
}
Read: each family's value is the median blended price of the models counted; change_on_same_models_pct compares only the models counted in both publications, so a model entering or leaving does not move it. corrections lists any value corrected after publication, with the reason (empty here).
Where does a model stand in the public leaderboards?
curl "https://api.inferindex.dev/rankings?model=deepseek/deepseek-v3.2"
Response as of 2026-10-16, abridged.
{
"model": { "id": "deepseek/deepseek-v3.2" },
"rankings": [
{ "source": "Arena", "bench": "text_style_control", "listed_as": "deepseek-v3.2", "rank": 123, "out_of": 415, "score": 1424.67, "votes": 48134, "published_on": "2026-10-13",
"scale": { "score_name": "Arena Score", "count_name": "votes" } }
],
"attribution": { "license": "CC BY 4.0", "license_url": "https://creativecommons.org/licenses/by/4.0/" }
}
Read: the rank and score are the source's, never computed by us; scale says what the score is called and what the count is. Keep the attribution object when you reuse the data: it is licensed under CC BY 4.0.
Endpoints
GET/cheapestThe cheapest current offer for a model, with its conditions and why it was chosen.
model- Model id or name (required)
no_trainingThe provider's published policy says the text you send is not used to train models. We only show what is published; we can't check it ourselves.- true: exclude offers that may train on prompts (unpublished policy kept and flagged unless strict=true)
regionWhere the provider says your requests are processed (for example the EU or the US). It matters for data-protection rules; "unknown" means the provider doesn't say.- eu, us…: processing region of provider and aggregator; unknown region kept unless strict=true
7 more parameters
quantizationHow finely the model's numbers are stored on the provider's servers. Lower precision (fp8, fp4) is cheaper to run and can slightly change answer quality; "unknown" means the provider doesn't say.- fp8, fp4…: precision
min_contextThe maximum amount of text, counted in tokens, the model can take in and write in a single request. Past this limit, the request is refused or cut.- Minimum context length
tools, json, vision- true: capability declared by the source
strict- true: exclude offers missing the filtered data
prompt_tokens, output_tokens, requests_per_dayThe small pieces of text models read and write, roughly three quarters of an English word each. Prices are given per million tokens.- Estimated cost per request and per month
offers, limit- offers=false: winner only; limit: first N offers
More- sort, include_tiers, include_stale, explain, min_uptime, no_waitlist, cached_ratio: see the full list on the API root
GET/resellersEvery current offer for a model, direct and via aggregators, one line per offer (provider, source, precision, tier).
model- Model id or name (required)
region, no_training, no_waitlist, strict- Same conditions as /cheapest
include_tiers- flex, batch: show lower-priority tiers
1 more parameter
sort, limit, cursor- Order and pagination
curl "https://api.inferindex.dev/resellers?model=deepseek/deepseek-v3.2&limit=2"
{
"model": {
"id": "deepseek/deepseek-v3.2",
"name": "DeepSeek: DeepSeek V3.2",
"new_listing": null,
"retirement": null
},
"total_offers": 53,
"offers": [
{
"provider": "NanoGPT",
"via": "nanogpt",
"via_name": "NanoGPT",
"blended_per_1M": 0.234,
"promo": "probable",
"stale": false
},
{
"provider": "GMICloud",
"via": "openrouter",
"via_name": "OpenRouter",
"blended_per_1M": 0.234,
"promo": true,
"stale": false
}
]
}
Returned by the API while this page was generated, trimmed to the main fields.
GET/historyPrice history: the cheapest offer of each day, every offer day by day, or the prices in force at a date, plus the lab's official prices back to 2023.
model- Model id or name (required)
series=cheapest- The offer /cheapest would have selected at 00:00 UTC each day
days, from, to, at- Period, or a single instant
2 more parameters
granularity- raw, day, week
provider, limit, cursor- Filter and pagination
curl "https://api.inferindex.dev/history?model=deepseek/deepseek-v3.2&series=cheapest&days=7"
{
"model": {
"id": "deepseek/deepseek-v3.2",
"name": "DeepSeek: DeepSeek V3.2",
"new_listing": null
},
"series": "cheapest",
"count": 7,
"cheapest_by_day": [
{
"date": "2026-10-30",
"at": "2026-10-30T00:00:00.000Z",
"cheapest": {
"provider": "GMICloud",
"via": "openrouter",
"variant": null,
"quantization": "fp8",
"input_per_1M": 0.2088,
"output_per_1M": 0.3096,
"blended_per_1M": 0.234,
"promo": true,
"platform_fee_rate": 0.055
},
"providers": 22
},
{
"date": "2026-10-31",
"at": "2026-10-31T00:00:00.000Z",
"cheapest": {
"provider": "GMICloud",
"via": "openrouter",
"variant": null,
"quantization": "fp8",
"input_per_1M": 0.2088,
"output_per_1M": 0.3096,
"blended_per_1M": 0.234,
"promo": true,
"platform_fee_rate": 0.055
},
"providers": 22
}
]
}
Returned by the API while this page was generated, trimmed to the main fields.
GET/modelsSearch the model catalogue.
search- Model or lab name
curl "https://api.inferindex.dev/models?search=deepseek"
{
"count": 20,
"models": [
{
"id": "deepseek/deepseek-v4.1-flash-1017",
"name": "DeepSeek: DeepSeek V4.1 Flash 1017"
},
{
"id": "deepseek/deepseek-v4.1-flash",
"name": "DeepSeek: DeepSeek V4.1 Flash"
},
{
"id": "deepseek/deepseek-v4-flash-vision-exp",
"name": "DeepSeek: DeepSeek V4 Flash Vision Exp"
}
]
}
Returned by the API while this page was generated, trimmed to the main fields.
GET/indexThe weekly market index: median price per model family, published every Monday.
series- market (offers we collect) or official (labs' list prices)
at- YYYY-MM-DD: the latest publication on or before that date
curl "https://api.inferindex.dev/index?series=market"
{
"index": "InferIndex market index",
"series": "market",
"published_at": "2026-10-26T00:00:00.000Z",
"method_version": "1.3",
"unit": "USD per 1M tokens, blended 3:1 (input:output)",
"compared_to": "2026-10-19T00:00:00.000Z",
"families": [
{
"family": "frontier_closed",
"value": 3.5,
"models": 95,
"model_ids": [
"aion-labs/aion-2.0",
"aion-labs/aion-3.0",
"aion-labs/aion-3.5",
"amazon/nova-premier-v1",
"amazon/nova-pro-v1",
"anthropic/claude-fable-5",
"anthropic/claude-fable-5.1",
"anthropic/claude-opus-4.5",
"anthropic/claude-opus-4.6",
"anthropic/claude-opus-4.7",
"anthropic/claude-opus-4.8",
"anthropic/claude-opus-5",
"anthropic/claude-opus-5.5",
"anthropic/claude-sonnet-4.5",
"anthropic/claude-sonnet-4.6",
"anthropic/claude-sonnet-5",
"anthropic/claude-sonnet-5.5",
"bytedance-seed/doubao-seed-2.1-pro",
"bytedance-seed/doubao-seed-2.1-turbo",
"bytedance-seed/seed-1.6",
"bytedance-seed/seed-2-1-turbo",
"google/gemini-2.5-pro",
"google/gemini-2.5-pro-preview",
"google/gemini-3.1-pro-preview",
"google/gemini-3.1-pro-preview-customtools",
"inception/mercury-2",
"inception/mercury-3",
"meta/muse-spark-1.1",
"meta/muse-spark-1.2",
"meta/muse-spark-1.2-contributor",
"meta/muse-spark-1.3",
"meta/muse-spark-1.3-contributor",
"meta/muse-spark-open",
"minimax/minimax-m2-her",
"mistralai/mistral-medium-3",
"mistralai/mistral-medium-3.1",
"mistralai/mistral-saba",
"openai/gpt-3.5-turbo-16k",
"openai/gpt-4.1",
"openai/gpt-4o",
"openai/gpt-4o-2024-08-06",
"openai/gpt-4o-2024-11-20",
"openai/gpt-5",
"openai/gpt-5-pro",
"openai/gpt-5.1",
"openai/gpt-5.2",
"openai/gpt-5.2-chat",
"openai/gpt-5.2-pro",
"openai/gpt-5.4",
"openai/gpt-5.4-pro",
"openai/gpt-5.5",
"openai/gpt-5.5-pro",
"openai/gpt-5.6-sol",
"openai/gpt-5.6-sol-pro",
"openai/gpt-5.6-terra",
"openai/gpt-5.6-terra-pro",
"openai/gpt-6-astra",
"openai/gpt-6-astra-pro",
"openai/gpt-6-sol",
"openai/gpt-6-sol-pro",
"openai/gpt-6.1-sol",
"openai/gpt-6.1-sol-pro",
"openai/gpt-chat-latest",
"openai/o3",
"openai/o3-pro",
"perceptron/perceptron-mk1",
"perceptron/perceptron-mk1.5",
"perplexity/sonar-deep-research",
"perplexity/sonar-pro",
"perplexity/sonar-reasoning-pro",
"qwen/qwen-plus",
"qwen/qwen3-max",
"qwen/qwen3-max-thinking",
"qwen/qwen3-vl-plus",
"qwen/qwen3.5-plus",
"qwen/qwen3.6-plus",
"qwen/qwen3.7-max",
"qwen/qwen3.7-plus",
"qwen/qwen3.8-max",
"qwen/qwen3.8-max-0902",
"qwen/qwen3.8-max-prime",
"sakana/fugu-max",
"sakana/fugu-ultra",
"sakana/fugu-ultra-v2",
"upstage/solar-pro-3",
"upstage/solar-pro4",
"writer/palmyra-x5",
"x-ai/grok-4.20",
"x-ai/grok-4.20-multi-agent",
"x-ai/grok-4.3",
"x-ai/grok-4.5",
"x-ai/grok-4.6",
"x-ai/grok-4.7",
"x-ai/grok-build-0.1",
"z-ai/glm-5v-turbo"
],
"change_on_same_models_pct": 0,
"same_models": 94,
"models_entered": [
"inception/mercury-3"
],
"models_left": [
"anthropic/claude-opus-4",
"anthropic/claude-opus-4.1",
"anthropic/claude-sonnet-4",
"openai/gpt-3.5-turbo",
"openai/gpt-4",
"openai/gpt-4-turbo",
"openai/gpt-4o-2024-05-13",
"openai/o1",
"openai/o1-pro"
],
"excluded_from_change": []
},
{
"family": "compact_closed",
"value": 0.4625,
"models": 37,
"model_ids": [
"aion-labs/aion-3.0-mini",
"aion-labs/aion-3.5-mini",
"amazon/nova-2-lite-v1",
"amazon/nova-lite-v1",
"amazon/nova-micro-v1",
"anthropic/claude-haiku-4.5",
"anthropic/claude-haiku-5.5",
"bytedance-seed/seed-1.6-flash",
"bytedance-seed/seed-2.0-lite",
"bytedance-seed/seed-2.0-mini",
"google/gemini-2.5-flash",
"google/gemini-2.5-flash-lite",
"google/gemini-3-flash-preview",
"google/gemini-3.1-flash-lite",
"google/gemini-3.1-flash-lite-preview",
"google/gemini-3.5-flash-lite",
"google/gemini-3.6-flash",
"google/gemini-3.8-flash",
"inception/mercury-2.5",
"openai/gpt-4.1-mini",
"openai/gpt-4o-mini",
"openai/gpt-4o-mini-2024-07-18",
"openai/gpt-5-mini",
"openai/gpt-5-nano",
"openai/gpt-5.4-mini",
"openai/gpt-5.4-nano",
"openai/gpt-5.6-luna",
"openai/gpt-5.6-luna-pro",
"openai/gpt-6-luna",
"openai/gpt-6-luna-pro",
"openai/o3-mini-high",
"openai/o4-mini-high",
"perplexity/sonar",
"qwen/qwen3.5-flash",
"qwen/qwen3.6-flash",
"qwen/qwen3.7-flash",
"z-ai/glm-5.3-flashx"
],
"change_on_same_models_pct": 0,
"same_models": 37,
"models_entered": [],
"models_left": [
"openai/gpt-4.1-nano",
"openai/o3-mini",
"openai/o4-mini"
],
"excluded_from_change": []
},
{
"family": "code",
"value": 0.4625,
"models": 10,
"model_ids": [
"bytedance-seed/seed-2.0-code",
"mistralai/codestral-2508",
"mistralai/devstral-2512",
"moonshotai/kimi-k2.7-code",
"openai/gpt-5.3-codex",
"qwen/qwen-2.5-coder-32b-instruct",
"qwen/qwen3-coder",
"qwen/qwen3-coder-30b-a3b-instruct",
"qwen/qwen3-coder-flash",
"qwen/qwen3-coder-next"
],
"change_on_same_models_pct": 0,
"same_models": 10,
"models_entered": [],
"models_left": [
"openai/gpt-5.1-codex",
"openai/gpt-5.1-codex-max",
"openai/gpt-5.1-codex-mini",
"openai/gpt-5.2-codex"
],
"excluded_from_change": []
},
{
"family": "open_large",
"value": 0.5,
"models": 61,
"model_ids": [
"arcee-ai/trinity-large-thinking",
"deepseek/deepseek-chat",
"deepseek/deepseek-chat-v3-0324",
"deepseek/deepseek-chat-v3.1",
"deepseek/deepseek-r1",
"deepseek/deepseek-r1-0528",
"deepseek/deepseek-v3.1-terminus",
"deepseek/deepseek-v3.2",
"deepseek/deepseek-v3.2-exp",
"deepseek/deepseek-v3.2-exp-thinking",
"deepseek/deepseek-v4-flash",
"deepseek/deepseek-v4-flash-0731",
"deepseek/deepseek-v4-flash-vision-exp",
"deepseek/deepseek-v4-pro",
"deepseek/deepseek-v4-pro-0813",
"deepseek/deepseek-v4.1-flash",
"inclusionai/ling-3.1-flash",
"meituan/longcat-2.0",
"meta-llama/llama-4-maverick",
"minimax/minimax-01",
"minimax/minimax-m1",
"minimax/minimax-m2",
"minimax/minimax-m2.1",
"minimax/minimax-m2.5",
"minimax/minimax-m2.7",
"minimax/minimax-m3",
"minimaxai/minimax-m1-80k",
"moonshotai/kimi-k2",
"moonshotai/kimi-k2-0905",
"moonshotai/kimi-k2-thinking",
"moonshotai/kimi-k2.5",
"moonshotai/kimi-k2.6",
"moonshotai/kimi-k3",
"nousresearch/hermes-3-llama-3.1-405b",
"nousresearch/hermes-4-405b",
"nvidia/nemotron-3-ultra-550b-a55b",
"qwen/qwen3-235b-a22b",
"qwen/qwen3-235b-a22b-2507",
"qwen/qwen3-235b-a22b-thinking-2507",
"qwen/qwen3-vl-235b-a22b-instruct",
"qwen/qwen3-vl-235b-a22b-thinking",
"qwen/qwen3.5-397b-a17b",
"qwen/qwen3.8-2.4t-a95b",
"stepfun/step-3.7-flash",
"stepfun/step-5-preview",
"tencent/hy3",
"tencent/hy3-preview",
"tencent/hy4-preview",
"thinkingmachines/inkling",
"thinkingmachines/inkling-small",
"xiaomi/mimo-v2.5",
"xiaomi/mimo-v2.5-pro",
"xiaomi/mimo-v2.6-pro",
"z-ai/glm-4.5",
"z-ai/glm-4.6",
"z-ai/glm-4.7",
"z-ai/glm-5",
"z-ai/glm-5.1",
"z-ai/glm-5.2",
"z-ai/glm-5.3",
"z-ai/glm-5.3-flash"
],
"change_on_same_models_pct": 11.06,
"same_models": 61,
"models_entered": [],
"models_left": [],
"excluded_from_change": []
},
{
"family": "open_medium",
"value": 0.329,
"models": 30,
"model_ids": [
"anthracite-org/magnum-v4-72b",
"cohere/command-a",
"cohere/command-r-plus-08-2024",
"deepseek/deepseek-r1-distill-llama-70b",
"inclusionai/ling-3.0-flash",
"inclusionai/ling-3.0-flash-fin",
"inclusionai/ling-3.0-flash-vl",
"meta-llama/llama-3.1-70b-instruct",
"meta-llama/llama-3.3-70b-instruct",
"meta-llama/llama-4-scout",
"mistralai/mistral-large-2407",
"mistralai/mistral-medium-3-5",
"mistralai/mistral-small-2603",
"mistralai/mixtral-8x22b-instruct",
"nousresearch/hermes-3-llama-3.1-70b",
"nvidia/nemotron-3-super-120b-a12b",
"openai/gpt-oss-120b",
"poolside/laguna-s-2.1",
"qwen/qwen-2.5-72b-instruct",
"qwen/qwen2.5-vl-72b-instruct",
"qwen/qwen3-next-80b-a3b-instruct",
"qwen/qwen3-next-80b-a3b-thinking",
"qwen/qwen3.5-122b-a10b",
"qwen/qwen3.8-flash",
"sao10k/l3.3-euryale-70b",
"stepfun/step-3.5-flash",
"xiaomi/mimo-v2.6-flash",
"z-ai/glm-4.5-air",
"z-ai/glm-4.5v",
"z-ai/glm-4.6v"
],
"change_on_same_models_pct": 0,
"same_models": 30,
"models_entered": [],
"models_left": [],
"excluded_from_change": []
},
{
"family": "open_small",
"value": 0.1275,
"models": 56,
"model_ids": [
"aion-labs/aion-rp-llama-3.1-8b",
"aisingapore/gemma-sea-lion-v4-27b-it",
"aisingapore/qwen-sea-lion-v4-32b-it",
"bytedance/ui-tars-1.5-7b",
"cohere/command-r-08-2024",
"cohere/command-r7b-12-2024",
"google/gemma-2-27b-it",
"google/gemma-3-12b-it",
"google/gemma-3-27b-it",
"google/gemma-3-4b-it",
"google/gemma-4-26b-a4b-it",
"google/gemma-4-31b-it",
"ibm-granite/granite-4.0-h-micro",
"ibm-granite/granite-4.2-8b",
"liquid/lfm-2.5-24b-a2b",
"meta-llama/llama-3.1-8b-instruct",
"meta-llama/llama-3.2-1b-instruct",
"meta-llama/llama-3.2-3b-instruct",
"meta/muse-glimmer-30b",
"microsoft/phi-4",
"mistralai/ministral-14b-2512",
"mistralai/ministral-3b-2512",
"mistralai/ministral-8b-2512",
"mistralai/mistral-nemo",
"mistralai/mistral-small-24b-instruct-2501",
"mistralai/mistral-small-3.1-24b-instruct",
"mistralai/mistral-small-3.2-24b-instruct",
"mistralai/voxtral-small-24b-2507",
"nex-agi/nex-n2.5-mini",
"nvidia/nemotron-3-nano-30b-a3b",
"nvidia/nemotron-3.5-lightning",
"openai/gpt-oss-20b",
"poolside/laguna-xs-2.1",
"qwen/qwen-2.5-7b-instruct",
"qwen/qwen3-14b",
"qwen/qwen3-30b-a3b",
"qwen/qwen3-30b-a3b-instruct-2507",
"qwen/qwen3-30b-a3b-thinking-2507",
"qwen/qwen3-32b",
"qwen/qwen3-8b",
"qwen/qwen3-vl-30b-a3b-instruct",
"qwen/qwen3-vl-30b-a3b-thinking",
"qwen/qwen3-vl-8b-instruct",
"qwen/qwen3.5-27b",
"qwen/qwen3.5-35b-a3b",
"qwen/qwen3.5-9b",
"qwen/qwen3.6-27b",
"qwen/qwen3.6-35b-a3b",
"qwen/qwen3.8-27b",
"rekaai/reka-edge",
"sao10k/l3-8b-stheno-v3.2",
"sao10k/l3-lunaris-8b",
"speakleash/bielik-11b-v3.0-instruct",
"thedrummer/unslopnemo-12b",
"z-ai/glm-4.7-flash",
"zai-org/glm-4.6v-flash"
],
"change_on_same_models_pct": 0,
"same_models": 56,
"models_entered": [],
"models_left": [],
"excluded_from_change": []
}
],
"available_dates": [
"2026-10-26",
"2026-10-19",
"2026-10-12",
"2026-10-05"
],
"archives": [
{
"kind": "publication",
"url": "https://api.inferindex.dev/index/archive/2026-10-26/publication.json",
"sha256": "adf67e5ddd08017daa47cce43cf51ea5cbf554a5b017637db9541feb7a8e3a0b",
"bytes": 18739,
"archived_at": "2026-10-26T00:04:07.203Z"
},
{
"kind": "correction",
"url": "https://api.inferindex.dev/index/archive/2026-10-26/correction-2026-10-30T19-35-01-503Z.json",
"sha256": "4682871037e8d1638ce3c81f34e52f8dd8eead6076e065fed6a073f3fdd9d7ae",
"bytes": 16015,
"archived_at": "2026-10-30T19:35:01.503Z"
}
],
"corrections": []
}
Returned by the API while this page was generated, trimmed to the main fields.
GET/provider-rankingProviders ranked by their median gap to the market price, refreshed every hour.
curl "https://api.inferindex.dev/provider-ranking"
{
"computed_at": "2026-10-31T09:13:08.405Z",
"min_models": 10,
"min_providers": 3,
"providers": [
{
"provider": "Wafer",
"cheapest_count": 0,
"score_pct": -44.6,
"models_measured": 10,
"rank": 1
},
{
"provider": "Relace",
"cheapest_count": 2,
"score_pct": -44.1,
"models_measured": 10,
"rank": 2
},
{
"provider": "Darkbloom",
"cheapest_count": 4,
"score_pct": -43.4,
"models_measured": 10,
"rank": 3
}
]
}
Returned by the API while this page was generated, trimmed to the main fields.
Signals on every offer
- Temporary prices among the 3 cheapest offers for their model
- The published end date has passed: this price may no longer apply.
- Converted from points or credits: the amount paid depends on how points are bought.
- This offer has not been rechecked recently.
- Price shown at off-peak hours; a higher rate applies at peak hours.
- Resold clearly below the price the lab charges, without a declared discount.
- The router bills this price itself without naming who serves the model.
- One price published for several unnamed backends.
Full documentationSelf-host or API?MCP server
InferIndex only reports prices: it does not route your requests or sell access, and no key is required. An offer with a signal stays listed; some signals keep it from being selected as the cheapest. /cheapest, /resellers, /history, /self-host, /gpus and /gpu-rentals allow 60 uncached requests per minute per IP. /cheapest and /resellers answer at once with the last computed response, up to 30 minutes old, and refresh it in the background. The Age header gives its age in seconds, X-InferIndex-Computed-At the time it was computed, and each offer's checked_at the last time its price was read.