Waitrose Categories API
Browse the public Waitrose grocery category taxonomy to discover categories for shelf product listings.
ReturnsJSON; every field is in the API referenceCompare Waitrose grocery products, prices and public offers.
What each one takes and what it returns. Open one for a real response, every input and every field.
Browse the public Waitrose grocery category taxonomy to discover categories for shelf product listings.
ReturnsJSON; every field is in the API referenceList products from a Waitrose grocery category with published prices and supported listing continuation.
Sendcategory_id
Returnsitemsnext_offsetreturnedtotal_products
Refresh a Waitrose product by its ID or official URL with published shelf prices, unit prices and offers.
Sendproduct_idorurl
Returnsproduct
Get the published aggregate rating and rating count for a Waitrose grocery product by ID or official URL.
Sendproduct_idorurl
ReturnsJSON; every field is in the API reference
List public product reviews with verified offset paging, rating filter and sort.
Sendproduct_idorurl
Returnsreview_countreviewsnext_offsetrating_averagerating_countrating_histogram
Read the seller and shelf offer published in a Waitrose product page for a supplied ID or official URL.
Sendproduct_idorurl
ReturnsJSON; every field is in the API reference
Search Waitrose groceries by keyword with published prices, pack sizes and ranked product results.
Sendquery
Returnsitemsnext_offsetreturnedtotal_products
Browse products and offers in the public Waitrose promotions collection with published price and deal information.
Sendcollection
Returnsitemsnext_offsetoffsetreturnedtotal_products
Every endpoint shows its price in credits before it runs. You buy credits once, with no subscription.
Credit packs| Per call | Endpoints |
|---|---|
| 1 credit | CategoriesProduct ratingProduct sellers |
| 2 credits | Product detailProduct reviews |
| 8 credits | Category productsProducts searchOffers |
One request shape for every Waitrose endpoint: the endpoint ID and its input. No SDK needed.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "waitrose.product.detail.get", "input": { "product_id": "053457-26759-26760" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "waitrose.product.detail.get", "input": { "product_id": "053457-26759-26760" }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "waitrose.product.detail.get", "input": { "product_id": "053457-26759-26760" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
{ "product": { "name": "Essential British Free Range Semi-Skimmed Milk 4 Pints", "available": null, "brand": "Waitrose Ltd", "gtin": "5000317979667", "image": "https://ecom-su-static-prod.wtrecom.com/images/products/9/LN_053457_BP_9.jpg", "pack_size": "2.272litre", "rating_average": 4.6549, "rating_count": 875, "retailer_product_id": "053457-26759-26760", "price": { "amount": 1.75, "currency": "GBP" }, "unit_price": { "amount": 0.77, "currency": "GBP", "unit": "per_litre" }, "member_prices": [], "promotions": [] }}
https://data.upscrape.com/mcp
With Upscrape, get the Waitrose product detail for product id "053457-26759-26760". Tell me what it costs before you run it, then show the results as a table.
With Upscrape, get the Waitrose product reviews for product id "053457-26759-26760" and sort "recent". Tell me what it costs before you run it, then show the results as a table.
The short answers. The docs have the long ones.
Categories, category products, product detail, product rating, product reviews, product sellers, products search and offers. Each is its own endpoint with a published input schema, and the response is JSON.
Waitrose endpoints cost from 1 credit per successful call, each priced before it runs. You buy credits once, with no subscription, and paid credits never expire. New accounts get free credits to try it.
No. Upscrape reads the pages Waitrose shows to any visitor, so you send the input the endpoint asks for and get the data back. Nothing runs on your account, and you share no password or cookie.
Yes. Connect any MCP client to the Upscrape MCP server with OAuth or an API key. The agent finds the Waitrose endpoint, checks its price and runs it with the same credits as the REST API.
Upscrape reads public pages only and needs no login. How you use the data is yours to decide under the laws that apply to you; we sign a data processing agreement for your legal review.
We fix the endpoint. Your request and the response fields stay the same.
Up to 100 free credits to start, no card needed.