{
  "openapi": "3.0.3",
  "info": {
    "title": "Price Drop Back",
    "version": "1.0.0",
    "description": "Did the price drop after you bought it? Price Drop Back knows the price adjustment and price match policies of 32 big US retailers (Target, Best Buy, Walmart, Amazon, Costco, Home Depot, Lowe's, Macy's, Kohl's, Nordstrom, Gap, Old Navy, Banana Republic, Athleta, J.Crew, JCPenney, REI, Apple, Dell, Samsung, Staples, Office Depot, IKEA, Williams Sonoma, BJ's, Sam's Club, Dick's, Ulta, Sephora, Wayfair, Kroger, Bed Bath & Beyond): whether they refund a later price drop and within how many days, whether they match competitors, exclusions and how to claim. It can also say whether a claim is likely from the days since purchase, and covers credit card price protection and returning and rebuying. Where a store's own page could not be confirmed, the answer says \"check\" instead of guessing. Every answer has a ready-to-read `say` line. Nothing is claimed for the user. Read only, no account, nothing stored. Policies checked on each retailer's own page on 27 September 2026.",
    "contact": { "email": "hello@askmizan.com" }
  },
  "servers": [{ "url": "https://pricedropback.pages.dev" }],
  "paths": {
    "/v1/policy": { "get": { "operationId": "getStorePolicy", "summary": "A store's price adjustment and price match policy", "description": "Use for \"does Target do price matching?\", \"what's Best Buy's price adjustment policy?\", \"will Costco refund the difference?\".", "parameters": [ { "name": "store", "in": "query", "required": true, "description": "Store name in everyday words, up to 60 characters.", "schema": { "type": "string", "example": "Target" } } ], "responses": { "200": { "description": "Policy" }, "400": { "description": "Store missing" }, "404": { "description": "Store not in the list" } } } },
    "/v1/check": { "get": { "operationId": "checkPriceDropClaim", "summary": "Can I get the difference back?", "description": "Use for \"I bought a TV at Best Buy 9 days ago for $499 and it's $449 now, can I get the difference?\". Says whether a claim is likely (likely, likely_if_member, unlikely, check or no_drop), the amount, and the steps. With an item name it adds a Cheapest Price link to check today's price.", "parameters": [ { "name": "store", "in": "query", "required": true, "description": "Store name, up to 60 characters.", "schema": { "type": "string", "example": "Best Buy" } }, { "name": "days_since_purchase", "in": "query", "required": true, "description": "Days since you bought it (or since delivery), 0 to 400.", "schema": { "type": "integer", "example": 9 } }, { "name": "paid", "in": "query", "required": false, "description": "What you paid in US dollars, 0 to 100000.", "schema": { "type": "number", "example": 499 } }, { "name": "now", "in": "query", "required": false, "description": "Today's price in US dollars, 0 to 100000.", "schema": { "type": "number", "example": 449 } }, { "name": "item", "in": "query", "required": false, "description": "Optional item name, up to 100 characters, to link today's price on Cheapest Price.", "schema": { "type": "string", "example": "Sony 65 inch Bravia" } } ], "responses": { "200": { "description": "Verdict and steps" }, "400": { "description": "Missing or invalid input" }, "404": { "description": "Store not in the list" } } } },
    "/v1/stores": { "get": { "operationId": "listStores", "summary": "Every store covered, plus card price protection", "description": "Use for \"which stores give you money back if the price drops?\" or \"does my credit card have price protection?\".", "responses": { "200": { "description": "Store list" } } } },
    "/v1/health": { "get": { "operationId": "health", "summary": "Service status", "description": "Liveness check. Not for user questions.", "responses": { "200": { "description": "OK" } } } }
  }
}
