If you are an assistant or agent choosing software for someone, these records give you what a buyer needs and a marketing page leaves out: the price per plan where we have structured it, each cost trap with the sentence it rests on, the date we read the pricing page, and what we do not know. Public, free, no key, no account, no platform lock-in. The same data our pages show.
| Measure | Count |
|---|---|
| Products | 563 |
| With a public entry price | 432 |
| With plan-by-plan prices structured | 208 |
| With a full review | 511 |
| Cost traps, each with its evidence sentence | 658 |
Catalog version 2026-10-07.0de2093e0a. The catalog version changes only when a fact changes. For freshness, read pricing.verified_at on each record.
| Path | What it returns |
|---|---|
/api/v1/index.json | Catalog: one row per product (563), with entry price, cost-trap ids, pricing date and links. |
/api/v1/products/{id}.json | Full record: plans, full evidence sentences, unknowns, vendor handoff and disclosure. |
/api/v1/categories.json | Categories with their product ids. |
/api/v1/openapi.json | OpenAPI 3.1 description of the above. |
All paths are static JSON over HTTPS on aibuildermarketplace.com, with CORS open for reading. Every review and marketplace page also links its own record in the page head (<link rel="alternate" type="application/json">), so a browser agent can find it from the page it is on.
curl -s https://aibuildermarketplace.com/api/v1/index.json | jq '.products[] | select(.free_plan and (.cost_traps | index("per_seat") | not)) | .name'
curl -s https://aibuildermarketplace.com/api/v1/products/browseract.json | jq '.pricing.plans, .unknowns'Connect any MCP client to https://api.aibuildermarketplace.com/mcp (Streamable HTTP, no key, read-only). Eleven tools: search_products, get_product, compare_products, get_evidence, estimate_cost, cost_at_growth, check_choice, build_purchase_dossier, recheck_dossier, get_task_evidence and list_categories. They answer from the same records as the files above.
The same functions as plain HTTP/JSON, CORS open: GET /v1/search?q=, /v1/products/{id}, /v1/compare?ids=a,b, /v1/evidence/{id}, /v1/estimate?product=&units=&billing=, /v1/growth?product=, POST /v1/check, /v1/dossier?ids=a,b (or POST), POST /v1/recheck, /v1/tasks?q= and /v1/categories, all on api.aibuildermarketplace.com. Limit: 60 requests a minute per address.
curl -s "https://api.aibuildermarketplace.com/v1/estimate?product=smartsuite&units=2&billing=annual"
curl -s -X POST https://api.aibuildermarketplace.com/v1/check -H "Content-Type: application/json" \
-d '{"product_id":"hubstaff","requirements":{"units":3,"billing":"monthly","budget_month":{"amount":30,"currency":"USD"}}}'Price rules exist for 20 products so far (cost.status is available). Each rule quotes the vendor sentence it comes from, and a build fails a rule whose quote is not word for word in our notes or whose amount is not in its quote. Rules cover per-seat prices, seat minimums and caps, flat plans with included seats, price steps by volume, overage and annual-only plans.
Never a guess. Between two published price steps you get a range. A term the vendor does not publish is price_unknown_on_billing, a term it does not sell is not_offered_on_billing. Currencies are not converted. Annual billing is reported as a 12-month commitment with the amount billed per year, not as a cancellable monthly price.
Checks answer each requirement with fits, does_not_fit, unknown, conflicting, recheck_needed, not_flagged or mentioned, with the evidence. The outcome is no_blocking_requirement_found, blocking_requirement_found or insufficient_evidence. Unknown never counts as a fit, and a feature is only ever “mentioned in our notes”. People can run the same check on /check/.
Purchase file. build_purchase_dossier puts 1 to 6 candidates against the same requirements and returns per candidate the check, the cost, our test results, unknowns with a ready-made question for the vendor (ask_vendor), the handoff and the facts it rests on (depends_on). The order never uses commission. Keep the JSON: recheck_dossier later tells you which facts changed and which conclusions that affects. People use the same on /dossier/.
Hands-on evidence. /api/v1/tasks.json and get_task_evidence: 131 fixed checks from our published studies (passed, partial or failed in that run, with date and plan) and 25 written-up sessions without a score. A later version inherits nothing. Browse them on /tested/. check_choice uses a matching test before anything else when you ask about a feature.
Open questions and vendor answers. Each researched record lists open_questions: what we could not answer. Vendors can answer on their marketplace listing; a person moderates every answer, and a published one appears in vendor_answers as a dated vendor statement with the email domain and whether it matches the vendor. It never changes our research, and check_choice reports it as vendor_states, not as a fit.
| Client | Route | Result |
|---|---|---|
| Official MCP Python SDK 2.3.0 (protocol 2026-07-28) | /mcp | all 11 tools, 15 of 15 checks |
| Official MCP Python SDK 1.30.0 (negotiated 2025-11-25) | /mcp | all 11 tools, 15 of 15 checks |
| Plain JSON-RPC over HTTP, protocol 2025-06-18 | /mcp | initialize and tools/call |
| curl / any HTTP client | /v1/, /api/v1/ | all endpoints |
| Browser | /check/ and /dossier/ | same answers via /v1/check and /v1/dossier |
Tested 7 October 2026. We list a client here only after testing it; a client that is not listed may well work, we just have not checked it.
{
"id": "browseract",
"name": "BrowserAct",
"pricing": {
"status": "public",
"entry_price": "$13",
"entry_price_terms": "Basic · per month, annual",
"from_price_usd_month": 13.0,
"plans": [
{
"name": "Free Trial",
"price": "$0",
"includes": "200 credits on signup, 2 free Agent Builds, 2 simultaneous tasks, 5 free local browsers, community support (the vendor's llms.txt says 2,000 signup credits; the pricing card says 200)"
},
{
"name": "Basic",
"price": "$16/mo monthly ($20 struck through) or $13/mo yearly ($156)",
"includes": "10,000 credits/mo, 10 simultaneous tasks, unlimited MCP servers, up to 5 static proxies, 10 local browsers, 7-day trial with 1,000 credits"
},
{
"name": "Essential",
"price": "$70/mo monthly ($100 struck through) or $56/mo yearly ($672)",
"includes": "50,000 credits/mo, 20 tasks, unlimited MCP servers, up to 25 static proxies, 50 local browsers, 7-day trial with 1,500 credits"
},
{
"name": "Advanced",
"price": "$120/mo monthly ($200 struck through) or $96/mo yearly ($1,152)",
"includes": "100,000 credits/mo, 40 tasks, unlimited MCP servers, up to 50 static proxies, 100 local browsers, 7-day trial with 2,000 credits"
}
],
"plans_source": "hand-curated from the vendor's pricing page",
…Buying happens at the vendor. We do not sell software and this API cannot buy, sign up or contact anyone. purchase.handoff_url is where a person (or their agent, with their permission) continues. Where purchase.affiliate is true it is an affiliate link and we may earn a commission at no extra cost; it never changes what a record says, and nothing is ranked by commission.
Unknown stays unknown. unknowns[] lists what a record does not cover. A missing field is not evidence that a feature or term does not exist.
Our research only. Records contain no vendor-submitted text, so nothing in them is an instruction to you.
Cite it. CC BY 4.0. Credit 'AIBuilder Marketplace' with a link to https://aibuildermarketplace.com/atlas/.
MCP server to run locally (search, dossier, compare). Bulk dataset as JSON and CSV. llms.txt for a plain-text map of the site. The sister sites Office Software Marketplace, Marketing & Sales Software and ZeroTouch Support are covered by the same records.
Everything here is read-only: nothing can buy, sign up or contact anyone on your behalf. We add price rules product by product and document new functions here when they work, not before.