Waitrose UK Groceries API & Scraper
Waitrose UK Groceries API returns live Waitrose UK Groceries data as clean JSON for waitrose uk groceries The primary endpoint, search, returns products, shelf price in GBP, unit price, promotions, separate public myWaitrose prices, availability and source total.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
First window only…. Developers reach for it when they need to track product listings, prices, availability, variants and reviews without maintaining one-off scraping code or separate API contracts. If you were about to build or fix a Waitrose UK Groceries scraper, this API is the maintained alternative — it returns the same data as clean JSON, with the proxies, rotation and anti-bot handling already solved. This page covers the live example, request shape, response shape and available actions: search, category, offers, detail. Every request uses the same ReefAPI envelope, one API key and one shared credit pool, so it fits alongside the rest of your data stack.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/waitrose/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "milk",
"limit": 12
}
}{
"ok": true,
"meta": {
"api": "waitrose",
"endpoint": "search",
"mode": "live",
"latency_ms": 1655.5,
"record_count": 12,
"bytes": 1822200,
"cache_hit": false,
"stop_reason": "cap_reached",
"upstream_requests": 1,
"warnings": [
"Unknown parameter ignored: include_pii",
"Only the first public result window is available; total is the source catalog count, not traversable coverage"
],
"charged_credits": 3,
"version": "0.1.0",
"request_id": "86e4b73f1179452d"
},
"data": {
"products": [
{
"id": "053457-26759-26760",
"line_number": "053457",
"name": "Essential British Free Range Semi-Skimmed Milk 4 Pints",
"url": "https://www.waitrose.com/ecom/products/essential-british-free-range-semi-skimmed-milk-4-pints/053457-26759-26760",
"size": "2.272litre",
"brand": "Waitrose Ltd",
"price": 1.75,
"price_display": "£1.75",
"currency": "GBP",
"base_price": 1.75,
"unit_price": {
"amount": 0.77,
"unit": "litre",
"currency": "GBP",
"display": "77.0p/litre"
},
"price_is_estimate": false,
"sale_quantity": {
"amount": 1,
"uom": "C62"
},
"member_price": null,
"member_program": null,
"member_offers": [],
"promotions": [],
"availability": {
"status": "available_to_order",
"scope": "anonymous_online",
"message": null
},
"categories": [
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"urlName": "[trimmed-depth]"
},
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"urlName": "[trimmed-depth]"
},
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"urlName": "[trimmed-depth]"
}
],
"image": "https://ecom-su-static-prod.wtrecom.com/images/products/9/LN_053457_BP_9.jpg",
"rating": 4.6556,
"review_count": 874,
"product_tags": [
{
"name": "[trimmed-depth]"
}
],
"sponsored": false
},
{
"id": "053448-26749-26750",
"line_number": "053448",
"name": "Essential British Free Range Semi-Skimmed Milk 2 Pints",
"url": "https://www.waitrose.com/ecom/products/essential-british-free-range-semi-skimmed-milk-2-pints/053448-26749-26750",
"size": "1.136litre",
"brand": "Waitrose Ltd",
"price": 1.25,
"price_display": "£1.25",
"currency": "GBP",
"base_price": 1.3,
"unit_price": {
"amount": 1.11,
"unit": "litre",
"currency": "GBP",
"display": "£1.11/litre"
},
"price_is_estimate": false,
"sale_quantity": {
"amount": 1,
"uom": "C62"
},
"member_price": null,
"member_program": null,
"member_offers": [],
"promotions": [
{
"id": "[trimmed-depth]",
"description": "[trimmed-depth]",
"type": "[trimmed-depth]",
"expires": "[trimmed-depth]",
"member_only": "[trimmed-depth]",
"program": "[trimmed-depth]",
"offer_price_display": "[trimmed-depth]",
"offer_unit_price_display": "[trimmed-depth]",
"groups": "[trimmed-depth]",
"discount": "[trimmed-depth]",
"promotion_unit_price": "[trimmed-depth]",
"hidden": "[trimmed-depth]"
}
],
"availability": {
"status": "available_to_order",
"scope": "anonymous_online",
"message": null
},
"categories": [
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"urlName": "[trimmed-depth]"
},
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"urlName": "[trimmed-depth]"
},
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"urlName": "[trimmed-depth]"
}
],
"image": "https://ecom-su-static-prod.wtrecom.com/images/products/9/LN_053448_BP_9.jpg",
"rating": 4.4137,
"review_count": 614,
"product_tags": [
{
"name": "[trimmed-depth]"
}
],
"sponsored": false
},
{
"id": "053404-26711-26712",
"line_number": "053404",
"name": "Essential British Free Range Whole Milk 4 Pints",
"url": "https://www.waitrose.com/ecom/products/essential-british-free-range-whole-milk-4-pints/053404-26711-26712",
"size": "2.272litre",
"brand": "Waitrose Ltd",
"price": 1.75,
"price_display": "£1.75",
"currency": "GBP",
"base_price": 1.75,
"unit_price": {
"amount": 0.77,
"unit": "litre",
"currency": "GBP",
"display": "77.0p/litre"
},
"price_is_estimate": false,
"sale_quantity": {
"amount": 1,
"uom": "C62"
},
"member_price": null,
"member_program": null,
"member_offers": [],
"promotions": [],
"availability": {
"status": "available_to_order",
"scope": "anonymous_online",
"message": null
},
"categories": [
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"urlName": "[trimmed-depth]"
},
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"urlName": "[trimmed-depth]"
},
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"urlName": "[trimmed-depth]"
}
],
"image": "https://ecom-su-static-prod.wtrecom.com/images/products/9/LN_053404_BP_9.jpg",
"rating": 4.6386,
"review_count": 368,
"product_tags": [
{
"name": "[trimmed-depth]"
}
],
"sponsored": false
}
],
"total": 512,
"source_displayed_products": 48,
"sponsored_dropped": 0,
"page": 1,
"last_page": 1,
"has_more": false,
"upstream_has_more": true,
"catalog_truncated": true,
"pagination_supported": false,
"facets": [
{
"group": "OFFER_TYPE",
"filters": [
{
"filterTag": "[trimmed-depth]",
"applied": "[trimmed-depth]"
}
]
},
{
"group": "DIETARY_AND_LIFESTYLE",
"filters": [
{
"filterTag": "[trimmed-depth]",
"applied": "[trimmed-depth]"
},
{
"filterTag": "[trimmed-depth]",
"applied": "[trimmed-depth]"
},
{
"filterTag": "[trimmed-depth]",
"applied": "[trimmed-depth]"
}
]
},
{
"group": "BRAND",
"filters": [
{
"filterTag": "[trimmed-depth]",
"applied": "[trimmed-depth]"
},
{
"filterTag": "[trimmed-depth]",
"applied": "[trimmed-depth]"
}
]
}
],
"subcategories": [],
"source_window_count": 49,
"limited_by_request": true,
"returned_count": 12
}
}What the Waitrose UK Groceries API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search the first public UK grocery result window. GTINs and the label sheet require detail. Source sorting and later pages are unavailable. | Pricing teams call search to search the first public UK grocery result window. | query |
| category | First public window of a groceries category path. | Marketplace operators call category to get first public window of a groceries category path.. | category |
| offers | Public regular offers or the public My Waitrose Offers list. Personal vouchers are account-specific and excluded. | Catalog enrichment teams call offers to get public regular offers or the public My Waitrose Offers list. | none |
| detail | Full public product detail. Supply id or url. | Retail analysts call detail to get full public product detail. | none |
Call search from your stack
curl -X POST https://api.reefapi.com/waitrose/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"milk","limit":12}'import requests
r = requests.post(
"https://api.reefapi.com/waitrose/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "milk",
"limit": 12
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/waitrose/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "milk",
"limit": 12
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.waitrose.search with {"query":"milk","limit":12}.Who uses this API and why
- Pricing teams use Waitrose UK Groceries to search the first public UK grocery result window.
- Marketplace operators use Waitrose UK Groceries to get first public window of a groceries category path..
- Catalog enrichment teams use Waitrose UK Groceries to get public regular offers or the public My Waitrose Offers list.
- Retail analysts use Waitrose UK Groceries to get full public product detail.
Questions developers ask before integrating
What is the Waitrose UK Groceries API?
Waitrose UK Groceries API is a ReefAPI endpoint group for waitrose uk groceries It returns live JSON through POST requests under /waitrose/v1.
Is the Waitrose UK Groceries API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Waitrose UK Groceries calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Waitrose UK Groceries login or account?
No login to Waitrose UK Groceries is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Waitrose UK Groceries data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Waitrose UK Groceries API use?
Waitrose UK Groceries actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Waitrose UK Groceries from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call waitrose actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Waitrose UK Groceries API a Waitrose UK Groceries scraper?
It is the managed alternative to a DIY Waitrose UK Groceries scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same waitrose uk groceries back as clean JSON.
Why does my Waitrose UK Groceries scraper keep getting blocked?
Most Waitrose UK Groceries scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked calls are free.