For agents and the people who build them
Everything the price guide knows, as JSON and as an MCP server. Free. Attribution required. Nothing for sale here: every listing links to the dealer, forum or seller it came from.
2,088 price-guide pages · 222,697 listings indexed, 66% in the guide, as of 2026-10-21 · data-use policy
MCP server
Streamable HTTP at https://benchlot.com/mcp. Six tools: get_price_guide, search_price_guide, search_listings, get_coverage, identify_tool, create_alert.
Claude Code
claude mcp add --transport http benchlot https://benchlot.com/mcp
# optional, raises the limits:
claude mcp add --transport http benchlot https://benchlot.com/mcp --header "Authorization: Bearer bl_live_…"Claude Desktop, Cursor, and other clients that take an HTTP URL
{ "mcpServers": { "benchlot": { "type": "http", "url": "https://benchlot.com/mcp" } } }Clients that only speak stdio
{ "mcpServers": { "benchlot": { "command": "npx", "args": ["-y", "mcp-remote", "https://benchlot.com/mcp"] } } }REST API
Base URL https://benchlot.com/api/v1. Machine-readable description at openapi.json. Every response is { data, meta, errors }; meta.attribution says what to print.
| Endpoint | What |
|---|---|
GET /prices?type=&brand=&model=|size= | What a tool sells for: sold median and quartiles, asking prices, what is for sale now, with confidence, freshness and coverage. |
GET /prices/search?q= | Find price-guide pages by free text. |
GET /listings?q=&type=&brand=&status= | Listings for sale now, or recorded sales. Every row links its source. |
GET /listings/{id} | One listing. |
GET /types | The tool types the guide knows, with evidence counts. |
GET /brands?type= | Makers with price-guide pages. |
GET /meta | Coverage, freshness, sources, thresholds, licensing. Read it first. |
POST /identify | Identify a tool from one to five photos, with the guide band and live listings. 5 scans per 15 minutes without a key, 20 with one. |
POST /alerts | Email alert when a tool is newly listed. The address confirms by email. |
POST /keys | Request a free key by email. |
Example
curl "https://benchlot.com/api/v1/prices?type=bench%20plane&brand=stanley&model=no.%204" | jq '.data | {confidence, sold, guide_url}'Reading the numbers honestly
confidence: high is 20 or more recorded sales, medium 8 to 19, low fewer than 8. Below 8 no sold median is published; do not state one.freshness.last_sale_atandsales_last_365dsay how current the evidence is.coverage.sourcessays where it came from; specialist dealers skew prices up.- Asking prices are not selling prices. The two blocks are kept apart on purpose.
- On listings,
price_status: stalemeans the source does not allow the asking price to be repeated past 24 hours (eBay). Link the listing instead. - Breaking changes get a new version prefix.
/api/v1stays stable.
Keys and limits
Everything works without a key: 30 requests a minute per address, and 5 photo identifications per 15 minutes. A key is free, raises those to 120 and 20, and makes your usage attributable so we can help if something breaks. Send it as Authorization: Bearer bl_live_…. We log route, status, latency, key and a salted hash of the IP; never request bodies.
What we ask
Say via Benchlot and link the guide_url or source_url next to any figure or listing you show. Send people to the source, unaltered: no wrapping, no tracking parameters. Don’t mirror the dataset. That is the whole policy.
We cannot see what agents do with the answers, and we do not try to: no redirect tracker, no UTM on seller links. Questions: rob@benchlot.com.