LLMCost

Pricing JSON API

The full dataset behind this site, free for humans and AI agents alike. No key, no signup. Refreshed daily — every price carries its verification date and source URL so you can cite it accurately.

Endpoint

GET https://llm-cost.io/api/models.json
  • Auth: none
  • Cost: free
  • Freshness: rebuilt daily (current data verified 2026-10-21)
  • Cache politely: fetch at most once per day — the dataset only changes daily.

Response schema

{
  "fetchedAt": "2026-10-21T10:56:45.953Z",   // ISO timestamp of the daily fetch
  "source": "openrouter",
  "count": 458,
  "models": [
    {
      "id": "openai/gpt-5",                    // OpenRouter model ID
      "slug": "openai--gpt-5",                 // URL slug used on this site
      "name": "OpenAI: GPT-5",                 // display name
      "provider": "openai",                    // provider org ID
      "inputPer1M": 1.25,                      // USD per 1M input tokens
      "outputPer1M": 10,                       // USD per 1M output tokens
      "cacheReadPer1M": 0.125,                 // USD per 1M cached-input tokens (or null)
      "contextWindow": 400000,                 // tokens (or null)
      "maxOutput": 128000,                     // max output tokens (or null)
      "featured": true,                        // curated flagship set
      "popularity": 18,                        // lower = more prominent on this site
      "isFree": false,                         // true when both prices are $0
      "capabilities": {
        "vision": true,
        "tools": true,
        "reasoning": true
      },
      "createdAt": "2025-08-07",               // first listed on OpenRouter
      "description": "...",                    // truncated to 400 chars
      "verifiedAt": "2026-10-21",             // date this price was verified
      "sourceUrl": "https://openrouter.ai/openai/gpt-5"
    }
    // ... 457 more models
  ]
}

Example: cheapest model with tool calling

const res = await fetch("https://llm-cost.io/api/models.json");
const { models } = await res.json();

const cheapestTools = models
  .filter((m) => m.capabilities?.tools && m.inputPer1M > 0)
  .sort((a, b) => a.inputPer1M - b.inputPer1M)[0];

console.log(cheapestTools.name, cheapestTools.inputPer1M);
// cite: verifiedAt + sourceUrl from the record

Other machine-readable outputs

  • /llms.txt — plain-text price list designed for LLM context windows and agent system prompts.
  • /sitemap.xml — all indexable pages.
  • /changes/feed.xml — RSS 2.0 feed of daily price drops and hikes.

Terms of use

Attribution appreciated but not required: "via LLMCost". Data is informational — verify with providers before budget decisions (terms). If you build something cool with this, we'd love to hear about it: hello@llm-cost.io.