Where every price comes from
No guessed numbers. Each model price in Harpd is sourced from the provider's official pricing page, recorded with a verification date and source link, and published in one canonical file.
Quick answer
How does Harpd source and verify model prices?
Every price in Harpd is pulled from the model provider's official pricing page and stored with a sourceUrl and verifiedAt timestamp. Deprecated models are flagged, never deleted silently, and the canonical machine-readable source is /data/llm-pricing.json — Harpd never fabricates an unknown price.
- Source
- Official provider pages
- Per record
- sourceUrl + verifiedAt
- Canonical
- /data/llm-pricing.json
Data source: Harpd model pricing methodology
Why it matters
A price you cannot trace back to its source is just a guess. By capturing the source URL and verification date on every record, Harpd's pricing methodology turns a number into something a reader or an AI system can independently check and quote.
Limitations
- These are public list prices, not your price — enterprise contracts, committed-use discounts, caching and batch APIs can change the math 2–10×.
- A price is only as fresh as its verifiedAt timestamp; always check the date before quoting.
- Models the provider has retired stay in the dataset flagged deprecated so historical comparisons remain possible.
Data source: Harpd model pricing methodology
Every price in Harpd is pulled from the model provider's official pricing page and stored with a sourceUrl and verifiedAt timestamp. Deprecated models are flagged. The canonical machine-readable source is /data/llm-pricing.json — we never fabricate an unknown price.
- Sourced from official provider pricing pages
- Every entry has
verifiedAt+sourceUrl - Deprecated models flagged, never deleted silently
- One canonical file:
/data/llm-pricing.json
Procedure
- 1
Fetch the official price
We read the provider's published pricing page for each model — input, output, cached input, and batch rates where the provider publishes them.
- 2
Record provenance
Each entry stores the
sourceUrlwe read and averifiedAtISO timestamp of when we captured it. - 3
Flag deprecated models
Models the provider has retired are kept but marked
deprecated: trueso historical comparisons stay possible without silently dropping data. - 4
Publish one canonical file
The result is generated from
src/lib/pricing-registry.tsinto/data/llm-pricing.jsonand/data/llm-pricing.csv. Every price shown on Harpd traces back to this file.
Data schema
Each record in the dataset carries the following fields:
| Field | Type | Meaning |
|---|---|---|
| id | string | Stable model identifier |
| provider | string | Provider name (e.g. openai, anthropic) |
| displayName | string | Human-readable model name |
| inputPerMillion | number | Input price per 1M tokens (USD) |
| outputPerMillion | number | Output price per 1M tokens (USD) |
| cachedInputPerMillion | number | null | Cached input price per 1M tokens, if published |
| batchInputPerMillion | number | null | Batch input price per 1M tokens, if published |
| batchOutputPerMillion | number | null | Batch output price per 1M tokens, if published |
| contextWindow | number | null | Context window in tokens, if published |
| sourceUrl | string | Official pricing page the price came from |
| sourceName | string | Short label for the source |
| verifiedAt | string | ISO timestamp of verification |
| deprecated | boolean | True if the provider has retired the model |
What we do not do
We never fabricate a price we cannot source. If a provider does not publish a rate (for example, a batch price that isn't available), the field is null — not an estimate. Any derived "estimated cost" shown on the site is computed from real published fields and labeled as a calculation, not presented as a new price.