Stable read-only contract

APIDir pricing API

Read source-linked provider and model records without losing configuration or freshness context.

Endpoints

  • GET /api/v1/providers — 92 public provider records with tracked model counts, accepted observation counts, model slugs, billing meters, and publication status.
  • GET /api/v1/models — 22 canonical model and model-family records with provider counts, provider slugs, accepted observation counts, and billing meters.
  • GET /api/v1/prices — accepted observations with provider, model, variant, source, check time, and freshness.
  • GET /api/v1/prices?model=kling-3 — one model family.
  • GET /api/v1/prices?provider=fal — one provider channel.
  • GET /api/v1/cheapest?model=gpt-oss-120b — reviewed meter groups; a winner appears only after the exact three-provider evidence gate passes.
  • GET /api/v1/delta/latest — published change events only.
  • POST /mcp — read-only MCP tools for verified prices and evidence-gated cheapest results.

Contract rules

Coverage counts include accepted catalog evidence only. They show where evidence exists; they do not imply that different billing meters are comparable or that a cheapest provider exists. Price observations use integer USD nanos internally and return both machine values and source metadata. Stale evidence remains labelled. A withheld cheapest result is a valid no-winner state, not an error or fallback. API consumers must preserve APIDir attribution and follow each linked provider's terms.

{
  "offerId": "price-kling-fal-standard-noaudio",
  "providerSlug": "fal",
  "modelSlug": "kling-3",
  "billingUnit": "per_video_second",
  "usdNanos": 84000000,
  "freshness": "fresh",
  "sourceUrl": "https://fal.ai/models/fal-ai/kling-video/v3/standard/text-to-video"
}

Caching and corrections

Successful GET responses include cache-control metadata and an ETag so clients can cache and revalidate deliberately. Corrections preserve the observation trail instead of silently replacing evidence.