one per product, 7 categories. 39 read 2026-09-08, 8 re-read 2026-09-18.
Every row is one vendor, one page, one dated read, one verbatim quote. You can quote it, build on it, and check it — and when it is wrong, the correction publishes with the date.
one per product, 7 categories. 39 read 2026-09-08, 8 re-read 2026-09-18.
recorded as null with the page that says nothing quoted. Kept apart from the 36 that gate only a top tier.
computed by IY from two published numbers and flagged unit_price_derived: true. Never averaged in unmarked.
a row is never quietly edited. What changed, and when, stays on the row.
The dataset, or one row of it
Nathan Battin (2026). The Agent Pricing Index: list prices of 47 AI agents and models, read from vendor pages. IgnatiusTheYoungerAI. https://ignatiustheyoungerai.com/pricing-index — dataset https://ignatiustheyoungerai.com/pricing-index/agent-pricing-index.json, rows verified 2026-09-08 and 2026-09-18. CC BY 4.0.
Cite the row by product, its verified_date, and its source_url — the three fields that make the claim checkable.
The Agent Pricing Index, row "Lindy" (verified 2026-09-18, source https://www.lindy.ai/pricing), IgnatiusTheYoungerAI, https://ignatiustheyoungerai.com/pricing-index, CC BY 4.0.
@misc{battin2026agentpricingindex,
author = {Battin, Nathan},
title = {The Agent Pricing Index: list prices of 47 AI agents and models, read from vendor pages},
year = {2026},
publisher = {IgnatiusTheYoungerAI},
howpublished = {\url{https://ignatiustheyoungerai.com/pricing-index}},
note = {Dataset: https://ignatiustheyoungerai.com/pricing-index/agent-pricing-index.json. Rows verified 2026-09-08 and 2026-09-18. CC BY 4.0.}
}
{
"@context": "https://schema.org",
"@type": "Dataset",
"name": "The Agent Pricing Index",
"description": "List prices of 47 AI agents and models across 7 categories, read verbatim from each vendor's own pricing page on a dated pass. One row per product; null means the vendor publishes nothing.",
"url": "https://ignatiustheyoungerai.com/pricing-index",
"license": "https://creativecommons.org/licenses/by/4.0/",
"creator": {
"@type": "Person",
"name": "Nathan Battin",
"affiliation": "IgnatiusTheYoungerAI"
},
"publisher": {
"@type": "Organization",
"name": "IgnatiusTheYoungerAI",
"url": "https://ignatiustheyoungerai.com"
},
"distribution": [
{
"@type": "DataDownload",
"encodingFormat": "application/json",
"contentUrl": "https://ignatiustheyoungerai.com/pricing-index/agent-pricing-index.json"
},
{
"@type": "DataDownload",
"encodingFormat": "application/json",
"contentUrl": "https://api.ignatiustheyoungerai.com/v1/pricing/index"
}
],
"temporalCoverage": "2026-09-08/2026-09-18",
"dateModified": "2026-09-19",
"isAccessibleForFree": true
}The fields that make a claim checkable, and what each one means
| field | meaning |
|---|---|
source_url | The vendor's own page. No URL, no entry. |
verified_date | The day a human read that page. The row is a claim about one vendor on one day, nothing more. |
| evidence quote | The vendor's words, verbatim, from the page on that day. The number in the row is what the quote says. |
label | OBSERVED a price was read · ABSENT the page publishes none. Never MODELED — this dataset carries no estimates. |
null | The vendor publishes nothing. A finding, not a gap; it is never filled with a guess. |
entry_usd_month = 0 | A sentinel: no platform fee, not a $0 subscription. Excluded from floors and averages. |
unit_price_derived | true when IY computed the unit price from a plan price and an included quantity. The arithmetic is shown on the units page. |
usage_unit | What the vendor counts. Do not compare unit prices across different units — see The Unit Problem. |
enterprise_contact_sales | The top tier is gated. Distinct from publishing nothing: most gated vendors still publish entry and mid prices. |
Corrections, right of reply, removal — the three things that make a public index safe to cite
Corrections publish with their date. A re-read of a page is appended to the row with what changed; the earlier reading stays. A row is never edited in place.
Right of reply. Any vendor in the index may write to hello@ignatiustheyoungerai.com. A correction publishes with the date and what changed.
Removal. The policy, as it stands in the dataset: "A vendor may ask to be removed. The row comes down and the index records only that a row was withdrawn at the vendor's request, with the date." No request has been received as of 2026-09-19.
Two measures, kept apart. "9 of 47 publish no price at all" and "36 of 47 gate an enterprise tier" answer different questions and are never quoted interchangeably.
No vendor pays for inclusion, placement or rating. If the index is ever sponsored, the sponsor is named on the page and this line stays.
The same rows, for agents
| endpoint | what | price |
|---|---|---|
GET https://api.ignatiustheyoungerai.com/v1/pricing/index | the full dataset, one row per product | free |
GET https://api.ignatiustheyoungerai.com/v1/pricing/aggregates | counts and floors, derived at request time | free |
POST https://api.ignatiustheyoungerai.com/v1/pricing/submit | submit a price, a correction or a row — the submit rail behind right of reply | free |
GET https://api.ignatiustheyoungerai.com/v1/pricing | per-query read on the machine-payable rail (HTTP 402, Stripe MPP) | $0.50 |
The JSON at https://ignatiustheyoungerai.com/pricing-index/agent-pricing-index.json is the file of record; the endpoints read from it. llms.txt lists it.
Say less than the data can carry
It is list price only. Nothing here is what a customer paid; there are no negotiated figures, no volumes, no ARPU.
It is 47 rows, chosen for category leadership, not breadth. Category cells are 4 to 9 products; an "average price in support" would be a number from three vendors, so the index does not publish one.
It is a dated snapshot with dated re-reads, not a continuous feed. "Prices are rising" is not a claim it makes until enough rows have been re-read to say so.
It is USD. A vendor that prices only in another currency is recorded as publishing no USD price.
A name, a background, and a record of correcting himself in public
Nathan Battin, founder of IgnatiusTheYoungerAI. A pricing and corporate-strategy operator who has priced real deals, applying the same rule to pricing pages that he applies to everything else: verify the artifact, not the claim. The index is read by hand, the arithmetic is shown, and the mistakes are filed where anyone can read them.