What’s the Token? — Price Explorer
OpenAPI JSON
wtt://prices/all

LIVE RATE-CARD REGISTRY

The exact price of a token.

Compare public list prices across frontier labs and inference providers—with context band, delivery mode, cache meters, freshness, and official evidence attached.

Checking latest refresh…

Current list prices

Loading verified rate cards…

Input Cache read Output

Standard, Batch, Flex, Priority, and Fast are delivery modes. Cache read and cache write are separate provider-billed meters inside a mode; they apply only to eligible reused or newly cached input.

Reading the latest dataset… Checking prices, conditions, and source freshness.

API QUICKSTART

Use the same prices in one request

cURL

curl --fail-with-body --get 'https://whatsthetoken.com/v1/prices' \
  -H 'Accept: application/json' \
  --data-urlencode 'provider=openai' \
  --data-urlencode 'mode=standard'

The read API requires no authentication and answers cross-origin browser requests. Administration routes and raw archived snapshot bytes remain owner-only.

GET request parameters

/v1/prices or /v1/price
Accepted pricing API query parameters
ParameterAccepted value
providerExact provider slug. Required by /v1/price.
modelExact provider-scoped API ID or alias. Required by /v1/price.
modestandard, batch, flex, priority, or fast.
regionExact region label, such as global.
context_tokensNon-negative pricing-band token count. Check thresholdRule to see whether the provider counts input, prompt, or context tokens.
scheduleExact pricing schedule label.
customer_tierExact published tier, such as public_list.
service_familyExact provider offering family, such as inference.
dimension[<key>]Exact provider-specific dimension; repeat once per distinct key.
as_ofISO 8601 timestamp; defaults to now.
include_provisionalBoolean; defaults to false.

/v1/prices lists every applicable variant. /v1/price requires provider and model and returns 409 when more dimensions are needed.

Response shape

Exact strings · abridged live example
{
  "data": [{
    "provider": { "slug": "openai", "display_name": "OpenAI Direct" },
    "requested_model": null,
    "resolved_model": { "canonical_slug": "gpt-5.6-sol" },
    "identifiers": [{ "namespace": "openai.api", "value": "gpt-5.6-sol", "kind": "api_id" }],
    "rate_card_id": "…",
    "rates": [{ "meter": "input_token", "amount": "…", "currency": "USD", "per": "1000000", "unit": "token" }],
    "conditions": { "service_mode": "standard", "region": "global", "customer_tier": "public_list", "dimensions": {} },
    "verification_status": "verified"
  }],
  "meta": { "schema_version": "1.0", "dataset_revision": "…" }
}

Amounts and denominators are exact strings. A response object is one rate-card variant—not one model—and meters can be absent when a provider does not publish them.

Latest refresh by source

Checking…
  • Loading latest provider outcomes…

Dataset status

/v1/health
API
Connecting
Dataset
—
Last refresh
—
Freshness window
24 hours maximum
Cadence
Every 6 hours
Archive
D1 + private R2

Checking the latest global refresh…

How to read this

README.TXT

Prices are public list price per provider-billed token, not normalized task cost. Tokenizers, quality, reasoning tokens, and tool fees differ.

  • Price strings are displayed exactly as published by the API.
  • Context and service mode are never silently inferred.
  • Freshness uses one global refresh time and a maximum 24-hour window.
  • Every verified rate should point to an official source snapshot.