# BuyRecord > Verified purchase outcomes (kept, returned, complained) for products. Every outcome is tied to a proof of purchase. Scores run from 0 to 100, are shown from 5 verified outcomes, and carry a confidence level (low under 10, medium under 30, high from 30). Reading needs no key. Market: US online stores (public catalog from Shopify stores), products in 15 categories at all prices (categories: home_kitchen, apparel, beauty, health, jewelry, toys_baby, sports_outdoors, electronics, pets, food_drink, arts_crafts, garden, automotive, office, other). Verified outcomes come from connected stores and from agent reports proven by a purchase receipt. ## API - [OpenAPI spec](https://api.buyrecord.app/openapi.json): REST under https://api.buyrecord.app/v1 - Use BuyRecord in ChatGPT (available where ChatGPT offers plugins, currently outside the EU): https://chatgpt.com/plugins/plugin_asdk_app_6ac9d5b253708191ae714a03d40c753e - MCP server (streamable HTTP): https://api.buyrecord.app/mcp - MCP Registry name: app.buyrecord/buyrecord (registry.modelcontextprotocol.io) - MCP client config: `{"mcpServers": {"buyrecord": {"type": "http", "url": "https://api.buyrecord.app/mcp"}}}`; Claude Code: `claude mcp add --transport http buyrecord https://api.buyrecord.app/mcp` - Auth: none for reading; submit_outcome takes OAuth 2.1 with PKCE (discovery at https://api.buyrecord.app/.well-known/oauth-protected-resource) or an API key from https://buyrecord.app/keys.html - Operations: search_products, get_product_outcomes, compare_products, get_merchant_profile, submit_outcome - Verified stays (hotels and rentals, REST only): search_stays (`GET /v1/stays/search`), get_stay_outcomes (`GET /v1/stays/{property_id}`), submit_stay_outcome (`POST /v1/stays/outcomes`, API key) ## Documentation - [Methodology: how outcomes are verified and scored](https://buyrecord.app/methodology.html) - [Privacy policy](https://buyrecord.app/privacy.html) - [Terms of service](https://buyrecord.app/terms.html) ## Data - [Sitemap of product pages](https://buyrecord.app/sitemap.xml): one HTML and one JSON page per product at /p/ - Outcomes: kept_silent, kept_positive, complained, returned - Reasons: size, quality, not_as_described, late_delivery, damaged, other - Proofs for submit_outcome: `shopify_order` (shop_domain, order_number, confirmation_number) is checked against the shop's order record and counts when it matches; if the shop is not connected yet it stays pending until it is. `email_receipt` (the merchant's original DKIM-signed order confirmation email as base64 .eml, the order number and the product name as written in it) is verified by its signature and works for any merchant, including outside Shopify; the email is not stored. `payment_receipt` is stored as quarantined and never counted. - Products are named by `product_id` or `product_url`. - `retailer_offers`: the same product (exact GTIN match) at big retailers, from their official APIs: price, availability, the retailer's rating, link, source and fetch time. Shown as published by the retailer, never counted in scores, never used for ranking. `affiliate_link: true` marks links that may earn BuyRecord a commission. - Stays: outcomes stayed_as_described, stayed_with_issues, cancelled_by_property, left_early; reasons not_as_described, cleanliness, noise, check_in_problem, safety, overbooked, other. Proof `stay_confirmation`: the platform's original DKIM-signed booking confirmation (Booking.com, Airbnb, Accor) as base64 .eml, with the reservation number, property name, city and dates as written in it. Accepted only after check-out and within 12 months; the email is not stored. Scores from 5 verified stays.