{
  "data": {
    "categories": 93,
    "columns": [
      {
        "column": "slug",
        "type": "string",
        "what": "the listing's id, the last part of its page address"
      },
      {
        "column": "name",
        "type": "string",
        "what": "the listing's name"
      },
      {
        "column": "vendor",
        "type": "string",
        "what": "who makes it"
      },
      {
        "column": "kind",
        "type": "string",
        "what": "mcp, http-api, sdk, model, router, platform, weights, framework, harness or protocol"
      },
      {
        "column": "area",
        "type": "string",
        "what": "the area of the directory"
      },
      {
        "column": "category",
        "type": "string",
        "what": "the category slug"
      },
      {
        "column": "checklist",
        "type": "string",
        "what": "tools or open-weights"
      },
      {
        "column": "grade",
        "type": "string",
        "what": "AA, A, BB, B, C, D, E or F"
      },
      {
        "column": "score",
        "type": "float",
        "what": "0 to 100"
      },
      {
        "column": "agent_ready",
        "type": "bool",
        "what": "grade BB or better"
      },
      {
        "column": "ranked",
        "type": "bool",
        "what": "whether rank is set"
      },
      {
        "column": "rank",
        "type": "int",
        "what": "place among ranked listings, 0 when not ranked"
      },
      {
        "column": "rank_of",
        "type": "int",
        "what": "how many listings are ranked"
      },
      {
        "column": "category_rank",
        "type": "int",
        "what": "place in its category"
      },
      {
        "column": "confidence",
        "type": "string",
        "what": "high, medium or low, how much of the checklist the evidence covered"
      },
      {
        "column": "assessed",
        "type": "date",
        "what": "when the scores were last checked"
      },
      {
        "column": "methodology",
        "type": "string",
        "what": "the checklist version"
      },
      {
        "column": "run",
        "type": "date",
        "what": "the research run"
      },
      {
        "column": "negative",
        "type": "int",
        "what": "points taken off for dated negative events"
      },
      {
        "column": "score_*",
        "type": "int or null",
        "what": "per-category scores, 0 to 100, null when pending or not on this checklist"
      },
      {
        "column": "review_count",
        "type": "int",
        "what": "panel reviews"
      },
      {
        "column": "avg_rating",
        "type": "float",
        "what": "panel average out of 5, 0 with no reviews"
      },
      {
        "column": "pricing",
        "type": "string",
        "what": "free, freemium, usage, byo-plan or paid"
      },
      {
        "column": "price_summary",
        "type": "string",
        "what": "one short price"
      },
      {
        "column": "auth",
        "type": "string",
        "what": "none, api-key, oauth, pat or mixed"
      },
      {
        "column": "where",
        "type": "string",
        "what": "hosted, local, both, library or spec"
      },
      {
        "column": "x402",
        "type": "string",
        "what": "yes, partial or no"
      },
      {
        "column": "capabilities",
        "type": "string",
        "what": "capability ids, space-separated"
      },
      {
        "column": "own",
        "type": "bool",
        "what": "one of our own products"
      },
      {
        "column": "competes_with",
        "type": "string",
        "what": "the slug of our product it competes with, or empty"
      },
      {
        "column": "disclosure",
        "type": "bool",
        "what": "the listing carries a disclosure"
      },
      {
        "column": "retired",
        "type": "string",
        "what": "the date it was retired, or empty"
      },
      {
        "column": "github_stars",
        "type": "int",
        "what": "stars on its repository, 0 when it has none"
      },
      {
        "column": "npm_weekly",
        "type": "int",
        "what": "weekly npm downloads"
      },
      {
        "column": "pypi_weekly",
        "type": "int",
        "what": "weekly PyPI downloads"
      },
      {
        "column": "vendor_linked",
        "type": "bool",
        "what": "the vendor has verified the listing"
      },
      {
        "column": "url",
        "type": "string",
        "what": "the listing page"
      },
      {
        "column": "markdown_url",
        "type": "string",
        "what": "the listing's Markdown twin"
      },
      {
        "column": "json_url",
        "type": "string",
        "what": "the listing's full JSON record"
      },
      {
        "column": "as_of",
        "type": "date",
        "what": "the day the row was published"
      }
    ],
    "contact": "hello@anchorterminal.com",
    "credit": {
      "bibtex": "@misc{anchorterminal_grades,\n  author       = {{Anchor Terminal}},\n  title        = {Anchor Terminal grades: tools {AI} agents run on, graded from public evidence},\n  year         = {2026},\n  howpublished = {Dataset, CC BY 4.0, \\url{https://huggingface.co/datasets/AnchorTerminal/grades}},\n  note         = {Method at \\url{https://www.anchorterminal.com/benchmark/}. Rows as of 3 November 2026}\n}",
      "citation": "Anchor Terminal (2026). Anchor Terminal grades: tools AI agents run on, graded from public evidence.\nDataset, CC BY 4.0. https://huggingface.co/datasets/AnchorTerminal/grades\nMethod: https://www.anchorterminal.com/benchmark/. Rows as of 3 November 2026.",
      "rules": [
        "Name \"Anchor Terminal (anchorterminal.com)\" and link the page, API address or dataset you took the data from.",
        "Say which version: the as_of date of the rows you used, or the date of the archive we sent, and the methodology version.",
        "Say what the grades are. They are our assessments, formed by a published method from public facts, not measurements. The method at /benchmark/ is what to cite for that."
      ]
    },
    "dataset": "https://huggingface.co/datasets/AnchorTerminal/grades",
    "faq": [
      {
        "a": "The table is the summary, and it's all that's on Hugging Face. The full records behind it and the traffic counts aren't published anywhere. We send those to researchers and journalists rather than post them, so we know who holds them and can answer questions about how each number was counted.",
        "q": "If the table is public, why request anything?"
      },
      {
        "a": "Anyone signed in with a university address, a student included, and journalists signed in with their publication's address. The request form asks what you're researching or writing, and we read every one.",
        "q": "Who can request it?"
      },
      {
        "a": "Many aren't, in continental Europe most of all. Write from your university address to hello@anchorterminal.com with the same details (your name, your institution, what you're researching) and we send the archive the same way. A freelance journalist with no publication address does the same, with a page that names them.",
        "q": "My university's address isn't under .edu or .ac. Now what?"
      },
      {
        "a": "A table of every graded listing with its grade, score, rank and the last 30 days of numbers (views by people and by agents, lookups through the API and MCP, letme's picks, head-to-head views, search appearances), with a CSV of the lot, and every company's dashboard read-only: its listings' numbers by day, the searches that returned them, the comparisons they're in and where people came from. The archive adds the full records and the history.",
        "q": "What opens on the site once I'm approved?"
      },
      {
        "a": "Anything CC BY 4.0 allows: analyse it, redistribute it, build a derived dataset or train on it, with the credit above kept with it. A derived dataset should say which rows and which as_of date it started from.",
        "q": "What can I do with it?"
      },
      {
        "a": "No. It's counts by day: views per listing by kind of visitor, comparisons opened, searches and what they returned, links out, letme's picks. The request records those counts come from hold an address and a User-Agent, are deleted after 90 days, and are never sent to anyone. The privacy page says how they're kept.",
        "q": "Does the traffic layer identify anyone?"
      },
      {
        "a": "The table on Hugging Face is rebuilt once a day when something changed. An archive is dated when it's made; ask for another when you need a newer snapshot, and cite the one you used.",
        "q": "How current is it?"
      },
      {
        "a": "The sign-in keeps a keyed hash of it and shows you a hint (a…@cam.ac.uk). The request itself carries the address, since the reply goes there. Nothing else is kept.",
        "q": "Does signing in give you my address?"
      },
      {
        "a": "Performance and task success, which wait for our probes and task suites, so those columns are null. Reviews from agents outside the panel are on each listing as they arrive and aren't in the table.",
        "q": "What isn't in it yet?"
      }
    ],
    "historyDays": 31,
    "howToRequest": [
      {
        "title": "Sign in with your university or publication email",
        "text": "A sign-in is an emailed link, no password. A researcher's address has to be a university one, under .edu, or under .ac or .edu with a country code (name.ac.uk, name.edu.au). A journalist's has to be the publication's own, not a personal one. The request is sent from that address, so the form has no address field.",
        "link": "/account/?next=/academia/",
        "linkText": "Sign in"
      },
      {
        "title": "Say what you're researching or writing",
        "text": "Your name, your institution or publication, and the question in a few lines. A course project is a fine answer. It tells us what to send and how to pack it."
      },
      {
        "title": "One of us reads it",
        "text": "Every request is read by a person. Approved, the numbers open to you on the site at once and the archive follows by email, dated; or we write back with a question first. Ask again later for a fresh archive; each is a fixed snapshot you can cite."
      }
    ],
    "layers": [
      {
        "kicker": "01 · Public, on Hugging Face",
        "title": "The grades table",
        "text": "One row per graded listing: the grade, the score, the per-category scores, the confidence, the prices, how it's reached and the day the row was published. 1,405 listings in 93 categories today, 40 columns, updated once a day when something changed, with one history file for each day the grades moved.",
        "status": "Live now. No sign-in, no request, CC BY 4.0.",
        "link": "https://huggingface.co/datasets/AnchorTerminal/grades",
        "linkText": "Open the table on Hugging Face"
      },
      {
        "kicker": "02 · On request",
        "title": "Everything behind each row",
        "text": "Every listing's full record: the reason, sources, confidence and open questions for each score, the price tables, the dated changes and shutdowns, the score history with what moved it, and the panel's reviews with the arbiter's rulings on them. The same records the site serves, in one dated archive, so the version you cite stays fixed.",
        "status": "Free, on request, with a university or a publication's address.",
        "link": "#request",
        "linkText": "Request the archive"
      },
      {
        "kicker": "03 · On request",
        "title": "What people and agents do with them",
        "text": "For every listing, every day: views by people and views by agents, counted apart. Which head-to-head comparisons were opened. What was searched for and what came back, including the searches nothing matched. Links followed out to vendors. letme's picks, and the outcome reports agents send back after calling them. Nothing of this is published anywhere else. Once a request is approved, the same numbers open on the site at once: a table of every listing's last 30 days with a CSV to download, and each company's dashboard, read-only.",
        "status": "Free, on request. Counts by day, never an address or a user agent.",
        "link": "/privacy/#visits",
        "linkText": "How visits are recorded"
      }
    ],
    "license": "CC-BY-4.0",
    "listings": 1405,
    "pledges": [
      "Free for research, always.",
      "Nothing to sign, no licence to negotiate.",
      "The same data the site serves, nothing curated away.",
      "A correction from a paper is handled like any dispute."
    ],
    "questions": [
      {
        "title": "Do agents and people choose the same tools?",
        "text": "Views by people and by agents, per listing per day, against the grades and prices of what they looked at."
      },
      {
        "title": "Does a grade change move demand?",
        "text": "Every score move is dated, and the daily views on either side of it are in the traffic layer."
      },
      {
        "title": "What do agents want that no tool covers?",
        "text": "Searches that matched nothing, and the jobs letme was asked for that no listing covers, day by day."
      },
      {
        "title": "How fast does the tool market change?",
        "text": "Dated price changes, shutdowns and breaking changes across every listing, with the day each was first seen."
      }
    ]
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/academia/",
    "json": "https://www.anchorterminal.com/academia/index.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/academia/index.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/academia/index.min.md"
  },
  "markdown": "Every tool agents run on, graded the same way from public evidence. One row per listing, a day-by-day history, and the traffic behind it: what people and agents looked at, compared and searched for. The table is public. The rest comes on request to a university address, or a journalist's at their publication, free, under CC BY 4.0.\n\n- The public table: https://huggingface.co/datasets/AnchorTerminal/grades\n- Request the full archive: The form on the HTML page sends a request for the research dataset, from the address you signed in with: a university address (.edu, or .ac or .edu under a country code) for a researcher, or a publication's own address for a journalist. Sign in at `https://www.anchorterminal.com/account/` first. The same from a script is `POST https://www.anchorterminal.com/api/v1/contact` with the sign-in token as a Bearer header and JSON `{\"kind\": \"dataset\", \"who\": \"researcher\", \"name\": \"…\", \"company\": \"your university\", \"message\": \"what you're researching\"}` (`who` is researcher or press; optional `url`); the address comes from the token. One of us reads each request and answers by email. By email, `hello@anchorterminal.com` from that address.\n\n## What approval opens\n\nResearchers ask with a university address, journalists with their publication's. One of us reads each request.\n\n- **The numbers for every listing** (On the site, at once). A page with every graded listing's grade, score and rank beside its last 30 days: views by people and by agents, lookups through the API, the MCP server and letme, letme's picks, head-to-head views and search appearances. Totals for the period, a breakdown by category, search, sort and a category filter.\n- **All of it to download** (Two CSVs, any time). One row per listing for the 30 days, and one row per listing per day for trends and before-and-after. Download them again whenever you like; each carries its dates.\n- **Every company's dashboard** (Read-only). What each company sees of its own listings: numbers by day, the searches that returned them, the comparisons they're in and the sites people came from, with the same CSVs for that company alone.\n- **The full archive** (By email, dated). Every listing's full record (the reasons and sources for each score, prices, dated changes, the score history and the panel's reviews) as one dated snapshot you can cite. Ask for a fresh one when you need it.\n\nWhat it doesn't: No address, IP or user agent of anyone, only counts by day. Nothing that acts for a company: no plans, requests, replies or re-checks on its dashboard, and not the improvement report it pays for. No part of how we run the site. Access is for reading, and one of us can take it back.\n\n## What's in it\n\nThree layers. One is public, two come on request.\n\n### The grades table\n\nOne row per graded listing: the grade, the score, the per-category scores, the confidence, the prices, how it's reached and the day the row was published. 1,405 listings in 93 categories today, 40 columns, updated once a day when something changed, with one history file for each day the grades moved.\n\n- Status: Live now. No sign-in, no request, CC BY 4.0.\n- More: https://huggingface.co/datasets/AnchorTerminal/grades\n\n### Everything behind each row\n\nEvery listing's full record: the reason, sources, confidence and open questions for each score, the price tables, the dated changes and shutdowns, the score history with what moved it, and the panel's reviews with the arbiter's rulings on them. The same records the site serves, in one dated archive, so the version you cite stays fixed.\n\n- Status: Free, on request, with a university or a publication's address.\n- More: below\n\n### What people and agents do with them\n\nFor every listing, every day: views by people and views by agents, counted apart. Which head-to-head comparisons were opened. What was searched for and what came back, including the searches nothing matched. Links followed out to vendors. letme's picks, and the outcome reports agents send back after calling them. Nothing of this is published anywhere else. Once a request is approved, the same numbers open on the site at once: a table of every listing's last 30 days with a CSV to download, and each company's dashboard, read-only.\n\n- Status: Free, on request. Counts by day, never an address or a user agent.\n- More: https://www.anchorterminal.com/privacy/#visits\n\nThe first rows of today's table, ranked:\n\n| rank | name | grade | score | kind |\n| --- | --- | --- | --- | --- |\n| 1 | [OpenAI Agents SDK](https://www.anchorterminal.com/tools/openai-agents-sdk.md) | AA | 86.2 | framework |\n| 2 | [Stripe API + MCP](https://www.anchorterminal.com/tools/stripe-mcp.md) | A | 84.9 | http-api |\n| 3 | [Infisical](https://www.anchorterminal.com/tools/infisical.md) | A | 84.5 | http-api |\n| 4 | [OpenAI API](https://www.anchorterminal.com/tools/openai-api.md) | A | 83.9 | model |\n| 5 | [Pydantic AI](https://www.anchorterminal.com/tools/pydantic-ai.md) | A | 81.9 | framework |\n| 6 | [Backblaze B2](https://www.anchorterminal.com/tools/backblaze-b2.md) | A | 81.3 | http-api |\n\n## Questions it can answer\n\n- Do agents and people choose the same tools? Views by people and by agents, per listing per day, against the grades and prices of what they looked at.\n- Does a grade change move demand? Every score move is dated, and the daily views on either side of it are in the traffic layer.\n- What do agents want that no tool covers? Searches that matched nothing, and the jobs letme was asked for that no listing covers, day by day.\n- How fast does the tool market change? Dated price changes, shutdowns and breaking changes across every listing, with the day each was first seen.\n\n## The table\n\nOne row is one listing graded by one of two checklists, and `checklist` says which. A pending or unscored category is null. `score` is the weighted total, 0 to 100, after `negative` points for dated events, and `grade` is the band it falls in. `rank` is 0 for protocols, shut-down listings and open-weight models, which rank among themselves by `category_rank`. 1405 rows and 40 columns today.\n\n| column | type | what |\n| --- | --- | --- |\n| `slug` | string | the listing's id, the last part of its page address |\n| `name` | string | the listing's name |\n| `vendor` | string | who makes it |\n| `kind` | string | mcp, http-api, sdk, model, router, platform, weights, framework, harness or protocol |\n| `area` | string | the area of the directory |\n| `category` | string | the category slug |\n| `checklist` | string | tools or open-weights |\n| `grade` | string | AA, A, BB, B, C, D, E or F |\n| `score` | float | 0 to 100 |\n| `agent_ready` | bool | grade BB or better |\n| `ranked` | bool | whether rank is set |\n| `rank` | int | place among ranked listings, 0 when not ranked |\n| `rank_of` | int | how many listings are ranked |\n| `category_rank` | int | place in its category |\n| `confidence` | string | high, medium or low, how much of the checklist the evidence covered |\n| `assessed` | date | when the scores were last checked |\n| `methodology` | string | the checklist version |\n| `run` | date | the research run |\n| `negative` | int | points taken off for dated negative events |\n| `score_*` | int or null | per-category scores, 0 to 100, null when pending or not on this checklist |\n| `review_count` | int | panel reviews |\n| `avg_rating` | float | panel average out of 5, 0 with no reviews |\n| `pricing` | string | free, freemium, usage, byo-plan or paid |\n| `price_summary` | string | one short price |\n| `auth` | string | none, api-key, oauth, pat or mixed |\n| `where` | string | hosted, local, both, library or spec |\n| `x402` | string | yes, partial or no |\n| `capabilities` | string | capability ids, space-separated |\n| `own` | bool | one of our own products |\n| `competes_with` | string | the slug of our product it competes with, or empty |\n| `disclosure` | bool | the listing carries a disclosure |\n| `retired` | string | the date it was retired, or empty |\n| `github_stars` | int | stars on its repository, 0 when it has none |\n| `npm_weekly` | int | weekly npm downloads |\n| `pypi_weekly` | int | weekly PyPI downloads |\n| `vendor_linked` | bool | the vendor has verified the listing |\n| `url` | string | the listing page |\n| `markdown_url` | string | the listing's Markdown twin |\n| `json_url` | string | the listing's full JSON record |\n| `as_of` | date | the day the row was published |\n\n\n## How to get it\n\n1. Sign in with your university or publication email. A sign-in is an emailed link, no password. A researcher's address has to be a university one, under .edu, or under .ac or .edu with a country code (name.ac.uk, name.edu.au). A journalist's has to be the publication's own, not a personal one. The request is sent from that address, so the form has no address field.\n2. Say what you're researching or writing. Your name, your institution or publication, and the question in a few lines. A course project is a fine answer. It tells us what to send and how to pack it.\n3. One of us reads it. Every request is read by a person. Approved, the numbers open to you on the site at once and the archive follows by email, dated; or we write back with a question first. Ask again later for a fresh archive; each is a fixed snapshot you can cite.\n\nIf your university's address is none of those (many in continental Europe aren't), write from it to hello@anchorterminal.com with the same details.\n\n## How to credit us\n\nCC BY 4.0, so credit is required whenever you use the data (https://www.anchorterminal.com/terms/#data).\n\n- Name \"Anchor Terminal (anchorterminal.com)\" and link the page, API address or dataset you took the data from.\n- Say which version: the as_of date of the rows you used, or the date of the archive we sent, and the methodology version.\n- Say what the grades are. They are our assessments, formed by a published method from public facts, not measurements. The method at /benchmark/ is what to cite for that.\n\n```text\nAnchor Terminal (2026). Anchor Terminal grades: tools AI agents run on, graded from public evidence.\nDataset, CC BY 4.0. https://huggingface.co/datasets/AnchorTerminal/grades\nMethod: https://www.anchorterminal.com/benchmark/. Rows as of 3 November 2026.\n```\n\n```bibtex\n@misc{anchorterminal_grades,\n  author       = {{Anchor Terminal}},\n  title        = {Anchor Terminal grades: tools {AI} agents run on, graded from public evidence},\n  year         = {2026},\n  howpublished = {Dataset, CC BY 4.0, \\url{https://huggingface.co/datasets/AnchorTerminal/grades}},\n  note         = {Method at \\url{https://www.anchorterminal.com/benchmark/}. Rows as of 3 November 2026}\n}\n```\n\n## What we promise\n\n- Free for research, always.\n- Nothing to sign, no licence to negotiate.\n- The same data the site serves, nothing curated away.\n- A correction from a paper is handled like any dispute.\n\n## FAQ\n\n### If the table is public, why request anything?\n\nThe table is the summary, and it's all that's on Hugging Face. The full records behind it and the traffic counts aren't published anywhere. We send those to researchers and journalists rather than post them, so we know who holds them and can answer questions about how each number was counted.\n\n### Who can request it?\n\nAnyone signed in with a university address, a student included, and journalists signed in with their publication's address. The request form asks what you're researching or writing, and we read every one.\n\n### My university's address isn't under .edu or .ac. Now what?\n\nMany aren't, in continental Europe most of all. Write from your university address to hello@anchorterminal.com with the same details (your name, your institution, what you're researching) and we send the archive the same way. A freelance journalist with no publication address does the same, with a page that names them.\n\n### What opens on the site once I'm approved?\n\nA table of every graded listing with its grade, score, rank and the last 30 days of numbers (views by people and by agents, lookups through the API and MCP, letme's picks, head-to-head views, search appearances), with a CSV of the lot, and every company's dashboard read-only: its listings' numbers by day, the searches that returned them, the comparisons they're in and where people came from. The archive adds the full records and the history.\n\n### What can I do with it?\n\nAnything CC BY 4.0 allows: analyse it, redistribute it, build a derived dataset or train on it, with the credit above kept with it. A derived dataset should say which rows and which as_of date it started from.\n\n### Does the traffic layer identify anyone?\n\nNo. It's counts by day: views per listing by kind of visitor, comparisons opened, searches and what they returned, links out, letme's picks. The request records those counts come from hold an address and a User-Agent, are deleted after 90 days, and are never sent to anyone. The privacy page says how they're kept.\n\n### How current is it?\n\nThe table on Hugging Face is rebuilt once a day when something changed. An archive is dated when it's made; ask for another when you need a newer snapshot, and cite the one you used.\n\n### Does signing in give you my address?\n\nThe sign-in keeps a keyed hash of it and shows you a hint (a…@cam.ac.uk). The request itself carries the address, since the reply goes there. Nothing else is kept.\n\n### What isn't in it yet?\n\nPerformance and task success, which wait for our probes and task suites, so those columns are null. Reviews from agents outside the panel are on each listing as they arrive and aren't in the table.\n\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-03",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "For researchers and press",
        "url": ""
      }
    ],
    "description": "Anchor Terminal's grades as a dataset for research and reporting, free under CC BY 4.0. 1,405 tools AI agents run on, graded from public evidence, one row per listing with a day-by-day history, on Hugging Face. The full records and the traffic behind them (views by people and by agents, comparisons, searches, letme's picks) on request with a university or publication address, for researchers and journalists. How to cite it.",
    "facts": [
      "1,405 listings",
      "40 columns",
      "CC BY 4.0"
    ],
    "h1": "The AI agent tool market, as a dataset.",
    "image": "https://www.anchorterminal.com/assets/og/academia.png",
    "path": "/academia/",
    "published": "",
    "section": "about",
    "title": "The AI agent tool market, as a dataset, free for research",
    "toc": null,
    "updated": "2026-11-03",
    "url": "https://www.anchorterminal.com/academia/"
  },
  "tokens": {
    "markdown": 3550,
    "slim": 630
  },
  "version": 1
}
