The data API — free, stable JSON for humans and agents.

API & data

QuotaLedger publishes its entire dataset as two static JSON files. They are free, require no key, and are served over HTTPS with permissive CORS so you can fetch them directly from a browser, a server, or an AI agent. There is no rate limit, but the data refreshes roughly once a day — polling more than once an hour wastes your bandwidth and ours.

Machine-readable entry point: agents should start at /llms.txt, which summarizes the dataset and links these endpoints. The JSON below is the canonical source — prefer it over scraping the rendered tables.

Endpoints

GET https://quotaledger.com/data/limits.json

The current snapshot: every tracked vendor and plan, with prices and the exact published limit notes.

GET https://quotaledger.com/data/changelog.json

An append-only feed of every change we have observed since the baseline — price changes, plan additions and removals, limit-note edits, and renames.

Versioning & stability

Schema — limits.json

Top-level object:

FieldTypeDescription
schema_versionstringDataset schema version (currently "0.1").
generated_atstringUTC ISO-8601 timestamp of this snapshot.
methodstringHow the snapshot was produced (provenance note).
vendorsarrayList of vendor objects (below).

Each vendor object:

FieldTypeDescription
idstringStable slug (e.g. "claude", "github-copilot"). Use this as a key.
namestringHuman-readable vendor/product name.
source_urlstringThe vendor pricing page the snapshot was taken from.
retrieved_atstringUTC ISO-8601 time this vendor was last fetched.
currencystringCurrency of the prices for this vendor ("USD" or "CAD").
currency_notestring?Optional. Present when prices geo-localize; explains the canonical-vs-displayed currency.
plansarrayList of plan objects (below).
observationsarray?Optional analyst notes (model lineups, quota mechanics, caveats).

Each plan object:

FieldTypeDescription
idstringStable slug within the vendor (e.g. "pro", "max").
namestringPlan name as published.
price_monthnumber|nullHeadline monthly price in the vendor's currency. null when usage-based / no fixed seat fee.
price_detailstring?Optional. Billing nuance (annual vs monthly, "from", per-seat, etc.).
limit_notesarrayThe plan's published limits, preserved verbatim from the vendor. This is the citable core.

Schema — changelog.json

A JSON array of change records, oldest first. Each record:

FieldTypeDescription
tsstringUTC ISO-8601 time the change was recorded.
vendorstringVendor id, or "*" for dataset-wide events (e.g. baseline).
planstring|nullPlan id the change applies to, or null for vendor-level changes.
changestringOne of: price_month_changed, price_detail_changed, name_changed, limit_note_added, limit_note_removed, plan_added, plan_removed, vendor_added, vendor_removed, vendor_renamed, source_url_changed, baseline_created.
oldany|nullPrevious value (null for additions).
newany|nullNew value (null for removals).

Example

Fetch the current price of Cursor Pro and the most recent change:

const limits = await (await fetch("https://quotaledger.com/data/limits.json")).json();
const cursor = limits.vendors.find(v => v.id === "cursor");
const pro = cursor.plans.find(p => p.id === "pro");
console.log(pro.name, pro.price_month, cursor.currency);  // -> "Pro" 20 "USD"

const log = await (await fetch("https://quotaledger.com/data/changelog.json")).json();
console.log(log.at(-1));  // most recent observed change
Prices and currency: always read the vendor's currency and currency_note before comparing prices across vendors. Some vendors geo-localize their consumer pricing pages; where that happens we retain the canonical USD value and document the localized display in currency_note.

How to cite

Please do — citations are how this stays useful. Suggested format:

QuotaLedger. "AI plan limits dataset." https://quotaledger.com, retrieved YYYY-MM-DD.

When you quote a specific limit, prefer the verbatim limit_notes text and link the vendor's source_url alongside ours so readers can verify it. The data is free to use; attribution keeps the ledger honest and discoverable.

Want change alerts, a hosted query API, or a Verified badge? Those are on the roadmap as ways for heavy commercial users to support the project — the core data stays free for individuals and agents forever. If you're using QuotaLedger in production and want to talk, that interest is worth recording: mention it via the Build Log.