InferIndex
Language, English, EN
Account

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
Response right now · HTTP 200
{
  "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
  1. Find the model id/models?search=deepseekreturns ids such as deepseek/deepseek-v3.2.
  2. Ask for the cheapest offer/cheapest?model=deepseek/deepseek-v3.2one request, no key.
  3. Read the answercheapest.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
curl "https://api.inferindex.dev/cheapest?model=meta-llama/llama-3.3-70b-instruct&limit=3"

Response as of 2026-10-16, abridged.

JSON
{
  "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
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.

JSON
{
  "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
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.

JSON
{ "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
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.

JSON
{
  "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
curl "https://api.inferindex.dev/resellers?model=meta-llama/llama-3.3-70b-instruct&region=eu&no_training=true&strict=true&limit=3"

Response as of 2026-10-16, abridged.

JSON
{
  "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
curl "https://api.inferindex.dev/self-host?model=qwen/qwen3-32b&tokens_per_day=50000000"

Response as of 2026-10-16, abridged.

JSON
{
  "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
curl "https://api.inferindex.dev/index?series=market"

Response for the publication of 2026-10-12, abridged.

JSON
{
  "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
curl "https://api.inferindex.dev/rankings?model=deepseek/deepseek-v3.2"

Response as of 2026-10-16, abridged.

JSON
{
  "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
Request
curl "https://api.inferindex.dev/resellers?model=deepseek/deepseek-v3.2&limit=2"
Response right now · HTTP 200
{
  "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
Request
curl "https://api.inferindex.dev/history?model=deepseek/deepseek-v3.2&series=cheapest&days=7"
Response right now · HTTP 200
{
  "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
Request
curl "https://api.inferindex.dev/models?search=deepseek"
Response right now · HTTP 200
{
  "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
Request
curl "https://api.inferindex.dev/index?series=market"
Response right now · HTTP 200
{
  "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.
Request
curl "https://api.inferindex.dev/provider-ranking"
Response right now · HTTP 200
{
  "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.

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.