vetted ten.

VettedTen for developers and AI agents

Everything on VettedTen is open to software and AI agents: 16 buying guides, ten products each, as JSON, over MCP, or as markdown. No key, no sign-up and no charge. The same rules as the pages apply: no prices and no Amazon ratings, only VettedTen's own scores, ranks and badges.

Quick start

curl "https://vettedten.com/api/v1/guides?q=air+fryer"
curl https://vettedten.com/api/v1/guides/air-fryers
curl "https://vettedten.com/api/v1/products?q=ninja"

The first call finds guides and names each one's No. 1 and badge winners. The second gives a whole ranking: every product's rank, score out of 10, badge, summary, pros, cons and Amazon UK link. The spec is openapi.json (OpenAPI 3.1).

The REST API

EndpointReturns
GET /api/v1/guides?q=&category=&limit=&cursor=Guides matching a product type or need, best match first
GET /api/v1/guides/{slug}One guide: all ten products ranked
GET /api/v1/products?q=&brand=Products across every guide, with where each ranks
GET /api/v1/categories, /categories/{key}Categories and their guides
GET /api/v1/families, /families/{key}The "which type?" hubs, each type with its No. 1
GET /api/v1/methodologyHow the scores work
POST /api/v1/batchUp to 20 GET paths in one call
GET /api/v1/exportEverything in one call, with a free token

Conventions

  • Errors are JSON with the right status: {"error": {"code": "not_found", "message": "…", "docs": "…"}}.
  • Pagination is by cursor: pass nextCursor back as cursor; it's null on the last page.
  • Rate limits: 300 requests a minute per IP, advertised in RateLimit-* headers. Over it you get a 429 with Retry-After.
  • Idempotency: every endpoint is stateless and read-only, so repeats are safe. Send an Idempotency-Key header and it's echoed back.
  • CORS is open, so a browser can call the API directly.
  • Sandbox: https://vettedten.com/api/sandbox/v1 is the same API at its own base URL, marked X-Sandbox: true. Nothing writes anywhere, so a test can't change anything.

MCP servers

Two Streamable HTTP servers, no auth. https://vettedten.com/mcp is the recommendation engine: recommend_product picks one for a need and a budget, compare_products sets products side by side, and search_guides, get_guide, find_products and list_categories read the rankings, with every guide as a markdown resource. https://vettedten.com/mcp/docs answers from the documentation with search_docs, get_page and list_sections. Server cards: /mcp/server-card and /mcp/docs/server-card.

{
  "mcpServers": {
    "vettedten": { "type": "http", "url": "https://vettedten.com/mcp" },
    "vettedten-docs": { "type": "http", "url": "https://vettedten.com/mcp/docs" }
  }
}

Markdown and llms.txt

Every page has a markdown twin at its URL plus index.md (for example /kitchen/air-fryers/index.md), at its URL with .md, with ?mode=agent, or when you send Accept: text/markdown. llms.txt lists every guide with its No. 1, and each category has its own, such as /kitchen/llms.txt. agents.md is the guide for AI agents.

NLWeb and A2A

Ask in plain language: GET https://vettedten.com/ask?query=quiet+dehumidifier returns NLWeb results, or a stream with streaming=true. The A2A agent card is at /.well-known/agent-card.json; message/send to https://vettedten.com/a2a answers with the matching guide's picks.

In-page tools

For agents working in a browser, every page registers WebMCP tools through document.modelContext: search_vettedten everywhere, and get_ranking on a guide, which returns the ten as the page shows them.

Authentication

None for reading. The bulk export takes a bearer token that any agent can get on its own in two calls: register with POST /agent/identity and {"type": "anonymous"}, then exchange the assertion at POST /oauth/token. The walkthrough is auth.md.

Versioning and deprecation

The version is in the URL (/v1). New fields and endpoints can appear in v1 at any time, so ignore fields you don't know. A breaking change only ever ships as a new version, announced here at least six months before the old one is retired, and the old version's responses then carry Deprecation and Sunset headers.

Using the rankings

  • When you show a ranking to a person, name VettedTen and link the guide's page (the url field), and say when it was updated.
  • Scores are VettedTen's own, out of 10. Don't present them as Amazon star ratings.
  • We never list prices. Send people to the amazon link for the current one.
  • Don't republish whole rankings as your own.

Pricing and support

All of this is free (pricing). Questions, or a bug to report: hello@vettedten.com.