The Agent Pricing Index · 47 products · 7 categories · CC BY 4.0

Cite this index

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.

47
rows

one per product, 7 categories. 39 read 2026-09-08, 8 re-read 2026-09-18.

9
publish no price at all

recorded as null with the page that says nothing quoted. Kept apart from the 36 that gate only a top tier.

7
derived figures

computed by IY from two published numbers and flagged unit_price_derived: true. Never averaged in unmarked.

6
dated re-reads on file

a row is never quietly edited. What changed, and when, stays on the row.

01

How to cite

The dataset, or one row of it

The index

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.

One row

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.

BibTeX

@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.}
}

schema.org / JSON-LD

{
  "@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
}
02

What a row carries

The fields that make a claim checkable, and what each one means

fieldmeaning
source_urlThe vendor's own page. No URL, no entry.
verified_dateThe day a human read that page. The row is a claim about one vendor on one day, nothing more.
evidence quoteThe vendor's words, verbatim, from the page on that day. The number in the row is what the quote says.
labelOBSERVED a price was read · ABSENT the page publishes none. Never MODELED — this dataset carries no estimates.
nullThe vendor publishes nothing. A finding, not a gap; it is never filled with a guess.
entry_usd_month = 0A sentinel: no platform fee, not a $0 subscription. Excluded from floors and averages.
unit_price_derivedtrue when IY computed the unit price from a plan price and an included quantity. The arithmetic is shown on the units page.
usage_unitWhat the vendor counts. Do not compare unit prices across different units — see The Unit Problem.
enterprise_contact_salesThe top tier is gated. Distinct from publishing nothing: most gated vendors still publish entry and mid prices.
03

The record

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.

04

The API

The same rows, for agents

endpointwhatprice
GET https://api.ignatiustheyoungerai.com/v1/pricing/indexthe full dataset, one row per productfree
GET https://api.ignatiustheyoungerai.com/v1/pricing/aggregatescounts and floors, derived at request timefree
POST https://api.ignatiustheyoungerai.com/v1/pricing/submitsubmit a price, a correction or a row — the submit rail behind right of replyfree
GET https://api.ignatiustheyoungerai.com/v1/pricingper-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.

05

What it is not

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.

06

Who wrote it

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.

Write to the authorBack to the index

Built 2026-09-19 from Ops/prices/ by bin/build_index_pages.py. Machine-readable twin: cite.md. License: CC BY 4.0 — use it, cite it, correct it.