# Waitrose UK Groceries

> Search the first public UK grocery result window. GTINs and the label sheet require detail. Source sorting and later pages are unavailable.
> ReefAPI engine `waitrose` · 4 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/waitrose/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed calls are free except verified SHEIN NOT_FOUND on product/detail and price (4 credits).
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http). Send the key as `Authorization: Bearer <key>`, or put it in the URL (`?key=<key>`) when the client has no header field, as ChatGPT does.

## Endpoints

### POST https://api.reefapi.com/waitrose/v1/search — 3 credits
Search the first public UK grocery result window. GTINs and the label sheet require detail. Source sorting and later pages are unavailable.

**Parameters:**
- `query` (string, required) — Grocery search term.
- `limit` (integer, optional, default 48) — Maximum returned products from the first public result window; no later-page traversal.
- `offers_only` (boolean, optional, default false) — Only products with published promotions.
- `organic` (boolean, optional, default false) — Apply Waitrose Organic filter.

**Returns:** products, shelf price in GBP, unit price, promotions, separate public myWaitrose prices, availability and source total. First window only; sponsored rows excluded.

**Example request body:**
```json
{
  "query": "milk",
  "limit": 12
}
```

### POST https://api.reefapi.com/waitrose/v1/category — 1 credit
First public window of a groceries category path.

**Parameters:**
- `category` (string, required) — Path after /ecom/shop/browse/, beginning groceries/.
- `limit` (integer, optional, default 48) — Maximum returned products from the first public result window; no later-page traversal.

**Returns:** products, total, facets and subcategories, with shelf price, unit price and promotions. First window only; no pagination.

**Example request body:**
```json
{
  "category": "groceries/fresh_and_chilled/milk_butter_and_eggs/milk"
}
```

### POST https://api.reefapi.com/waitrose/v1/offers — 1 credit
Public regular offers or the public My Waitrose Offers list. Personal vouchers are account-specific and excluded.

**Parameters:**
- `kind` (enum, optional, default "all") — Regular offers or publicly listed myWaitrose offers. [one of: all, member]
- `limit` (integer, optional, default 48) — Maximum returned products from the first public result window; no later-page traversal.

**Returns:** products and total; shelf price remains separate from member_price/member_program. First window only.

**Example request body:**
```json
{
  "kind": "member"
}
```

### POST https://api.reefapi.com/waitrose/v1/detail — 3 credits
Full public product detail. Supply id or url.

**Parameters:**
- `id` (string, optional) — Composite product id from search; preserve leading zeros.
- `url` (string, optional) — HTTPS Waitrose product URL, alternatively to id.

**Returns:** One product: shelf price, unit price, public member offers, barcodes as strings, checksum-valid GTINs, availability, ingredients, nutrition, full label, packaging, storage, restrictions and published alcohol/wine facts.

**Example request body:**
```json
{
  "url": "https://www.waitrose.com/ecom/products/essential-british-free-range-semi-skimmed-milk-4-pints/053457-26759-26760"
}
```

## At scale
- **Volume:** 5M+ requests a day, measured at 60 requests a second across the fleet with no
  central bottleneck. Per-key limits are raised for high-volume accounts; volume pricing on request.
- **Missing a source:** tell us a site we do not cover and it becomes an engine. A customer asked
  for bestprice.gr on 21 Sep 2026 and it was in the catalog on 22 Sep.
- **Support:** 2 minute median time from a question in the live chat to the first answer. Setup
  help included, no support tier to buy.
- **One key, one credit pool** across every API. No per-site plans, no separate subscriptions.

## More
- Try it live, no code: https://reefapi.com/playground?engine=waitrose
- Human docs page: https://reefapi.com/docs/waitrose
- Overview page: https://reefapi.com/waitrose-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
