Endpoints
GET /api/v2/catalogueGET /api/v2/catalogue?limit=25&tier=identity_index&include=attributesGET /api/v2/catalogue/exportGET /api/v1/productsGET /api/v1/products/:slugGET /api/v1/products/:slug/evidence-reportGET /api/v1/identity-exclusionsGET /api/v1/products/:slug/decision-traceGET /api/v1/products/:slug/review-analysisGET /api/v1/guidesGET /api/v1/guides?slug=:slugGET /api/v1/readinessGET /api/v1/products/:slug/readinessGET /api/v1/categories/:category/recommendation-readinessGET /api/v1/compare?category=dehumidifier&minimum=20&priority=speciality&available=trueIdentity, ranking and advice are separate tiers
The v2 catalogue combines two public record types. ranked_evidence covers the existing 160 products with category methods and readiness profiles. identity_index covers 3,000 records selected deterministically from the global Open Products Facts community export after GTIN13 checksum, name, brand and category gates. They have exact GTINs and source-reported fields, but no established manufacturer model, current market, retailer SKU, offer, price or stock. Identity-index records always return null score and rank, false ranked-comparison eligibility and false purchase-advice eligibility.
Use limit from 1 to 100 and pass next_cursor back as cursor. Optional filters are q, category, tier and updated_since. Community attributes are omitted from list responses unless include=attributes is requested. A single identity record is available at /api/v2/catalogue/:id.
A cursor is bound to the combined ranked and identity snapshot and to the filters that produced it. Keep q, category, tier and updated_since unchanged when requesting the next page. A refreshed snapshot invalidates earlier cursors rather than mixing records from two data states.
Direct agent tools
A read-only MCP server is available at https://agentreviewdata.com/api/mcp over Streamable HTTP. It exposes search, fetch, compare_products and get_product_readiness. Search and fetch cover both catalogue publication tiers plus each category's primary review-led result, and return the role with every record. Comparison accepts either review-product IDs from the bounded earbud cohort or product IDs from one category. Product records expose their review-led outcome and keep the specification score secondary. Readiness accepts ranked-evidence IDs only. Identity-index IDs fail closed because they have no category score or readiness profile.
The tools are read-only and do not support purchase advice. Call search before fetch when the exact model or GTIN is unknown, and compare only products in the same category.
Use-case guide index
GET /api/v1/guides is the machine-readable discovery layer for the human guide pages. Without slug it returns the index of category, cross-category and methodology guides. With ?slug=... it returns a bounded shortlist with the questions the guide is answering, review coverage, publisher-group counts, an evidence-depth meter, secondary specification context and the freshness state of each tracked offer. A fresh offer may expose price and availability; a stale offer deliberately returns null for both. The guide order is a navigation aid, not a purchase-advice verdict, and every record keeps purchase_advice_supported: false.
Provenance-bearing facts
{
"value": 9000,
"unit": "BTU",
"display": "9,000 BTU",
"source_url": "https://…",
"source_class": "manufacturer_claim",
"retrieved_at": "2026-07-27T13:05:08.244Z"
}Use facts or comparison.metrics when citing a published input. The flat specs object remains in v1 for backward compatibility and is not the citation surface.
Decision scope and trace coverage
Every API v1 ranked product exposes decision_scope. Those 160 records support eligible_for_ranked_comparison, while eligible_for_purchase_advice remains false with named blocker codes. API v2 identity-only records stop before that gate and keep ranked eligibility false. Two ranked products additionally expose a validated Phase 1 trace from source artefact through atomic claim, relation, assessment and scoped outcome. The Anker trace retains a five-factor contribution ledger; the older Meaco trace explicitly declares that ledger missing. Unmodelled ranked products return the trace-not-modelled problem type with trace_status: not_modelled instead of synthetic claims.
Readiness receipts and sensitivity
Recommendation readiness covers all 20 ranks in each category. A receipt-integrity hash covers a canonical normalized field tuple and does not claim that the linked webpage is unchanged. Receipt origin states distinguish observed fields from configured values that were not re-extracted. Each product exposes two distinct retailer slots. The second remains missing unless a genuinely separate merchant observation has been collected. Every profile also has an explicit not_second_person_reviewed state. These records improve auditability but do not create purchase advice.
All-product evidence reports
Each ranked product list and detail record includes an additive evidence_report summary. The dedicated product endpoint returns its category report profile, critical topics, evidence coverage, specification-rank sensitivity, blockers and hands-on state. All 160 ranked products have reports. Identity-index records do not. An absent review corpus returns not_collected; the API does not generate a neutral verdict or fallback prose. Optional review synthesis remains qualitative in this report and cannot affect score, rank, offer or purchase advice. The profile_alignment field distinguishes complete category-profile coverage from a legacy contextual synthesis or no synthesis.
Review and test synthesis across category comparisons
Every category now exposes a primary endpoint at /api/v1/categories/:category/review-ranking. It preserves exact-model sources, test context, topic-specific strengths, limitations, disagreement and market gaps. Ordered or specialist outcomes require corroboration across two independent publisher groups. When the evidence cannot support an order, the endpoint returns insufficient_exact_model_review_evidence and leaves positions blank. It never creates a fallback score. Product-level synthesis remains qualitative and cannot change specification scores, category ranks, offers or purchase-advice gates.
Identity exclusions
The identity-exclusion endpoint preserves conflicting model, GTIN, market and source observations that were deliberately kept outside the ranking. A family page cannot silently rewrite one exact SKU into another. Each exclusion states what authoritative evidence is required before publication.
Freshness
Each offer, fact and image carries its own stored retrieval time. Review-led comparisons expose dataset and source-level checked times. The earbud comparison also exposes hands_on_documents_checked_at and states that individual review publication dates are not normalized in v1. generated_at stays null because response time is not evidence freshness. Offer projections expose a 48-hour freshness state for ranked records. The identity tier separates the community record's record_modified_at from the bulk export's export_retrieved_at. It does not expose an offer to make stale or source-reported fields look like current commerce.
Read lowest_checked_offer for the retailer action. It selects the lowest current price among the exact-product retailers tracked for that record, exposes the number compared and links through the attributable /go/ route. Its scope is tracked retailers, not the whole market.
Preference comparisons
The comparison endpoint keeps the API v1 recommendation_status and preference_rank fields for compatibility. New callers should also read comparison_status, outcome_status, purchase_advice_status, the full decision_scope object and each offer's freshness state. Filters apply only to the secondary specification results, so the primary review-led comparison or evidence-insufficient decision remains available while specification_comparison_status can be no_match. An ordered set remains a ranked comparison, not purchase advice.
Categories and ranking
category accepts portable-air-conditioner, dehumidifier, power-bank, air-fryer, cordless-vacuum, robot-vacuum, wireless-earbuds, air-purifier. Scores and ranks are comparable only inside one category. Comparison minimum values must be no greater than 100000; room_m2 remains a deprecated alias. Preference results remain ineligible for automated purchase advice because no Agent Review Data laboratory cohort exists yet.
Use, attribution and rate limits
Cite ranked records as “Agent Review Data” and link the specific product, category or API record. The 3,000-record identity layer contains information from Open Products Facts, is available under ODbL 1.0, and has individual contents under DbCL 1.0. Its complete projected database is available at /api/v2/catalogue/export. There is no contractual public request quota for the other endpoints; do not treat that as permission for disruptive bulk collection. Contact hello@agentreviewdata.com before sustained or redistributive use.