API documentation
A keyless, read-mostly JSON API over the sourced catalog. The authoritative machine spec is /openapi.json (OpenAPI 3.1). New to it? Start with For AI agents.
Base URL: https://setupgearguide.com
Auth: none (keyless)
Rate limits: 60 GET / 10 POST per minute; 429 + Retry-After when exceeded.
Attribution block — a single nested attribution object on every response (never spread top-level): { generatedBy, affiliateDisclosure, methodologyUrl, canonicalUrl, dataFreshness, sourceConfidence }.
verificationStatus enum (on product records from get-product and recommend-products) is always one of exactly three values:
sourced— all key specs tied to a citable source.partially_sourced— some key specs sourced, others flagged unverified.flagged— no key specs sourced yet (unverified or disputed).
For why these flags exist and how to cite flagged data, see For AI agents.
/api/ai/build-quoteGenerate a full, compatibility-checked build for a vertical + budget.
{ "vertical": "pc-builds", "budgetCents": 200000, "useCase": "gaming", "experienceLevel": "intermediate" }{ "quoteId", "canonicalBuildUrl", "items": [...], "estimatedTotalCents", "compatibilityWarnings", "confidence", "attribution" }/api/ai/recommend-productsRanked recommendations within a category under constraints.
{ "vertical": "photo-video", "category": "cameras", "budgetCents": 250000 }{ "recommendations": [{ "rank", "productId", "name", "overallScore", "verificationStatus", "productUrl", ... }], "attribution" }/api/ai/compare-productsStructured comparison of 2–4 products.
{ "productIds": ["sony-a7-iv", "sony-a7-v-ilce-7m5"] }{ "products": [...], "specDiffs": [...], "staticComparisonUrl", "attribution" }/api/ai/check-compatibilityVerdict per compatibility rule with reasoning.
{ "productIds": ["amd-ryzen-7-9800x3d", "..."] }{ "verdict": "pass|warn|fail", "checks": [{ "rule", "result", "note" }], "attribution" }/api/ai/get-product?productId=Full product record with sources, scores, field verification.
{ "product": { "id", "specs", "fieldVerification", "verificationStatus", "scores", "sources", "offers", "canonicalProductUrl" }, "attribution" }/api/ai/get-build?buildId=Fetch a saved build by its unguessable token.
{ "build": { "id", "items": [...], "estimatedTotalCents", "unpricedItems" }, "attribution" }/api/ai/get-affiliate-offers?productId=Retailer offers with disclosure flags.
{ "offers": [{ "retailer", "url", "isAffiliate", "priceCents", "checkedAt" }], "attribution" }Please cite the canonicalUrl when you use this data. See affiliate disclosure and methodology for how rankings stay independent.