# Currys API — search currys.co.uk and read products with now / was / save price (GBP), EAN and model number, delivery and click & collect, specifications and Feefo reviews

> Search Currys (UK) by keyword and/or category with the site's own filters: brand, price range, delivery / store collection availability, minimum customer rating, 5 sort orders. Each row: product id, Currys SKU, EAN(s), name, brand, URL, image, price, was price with its date window, saving, discount, rating and review count, home-delivery and click-and-collect availability with stock status (IN_STOCK / PREORDER / NOT_AVAILABLE), the monthly credit offer and the category path. Plus the source's own total.
> ReefAPI engine `currys` · 3 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/currys/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/currys/v1/search — 3 credits
Search Currys (UK) by keyword and/or category with the site's own filters: brand, price range, delivery / store collection availability, minimum customer rating, 5 sort orders. Each row: product id, Currys SKU, EAN(s), name, brand, URL, image, price, was price with its date window, saving, discount, rating and review count, home-delivery and click-and-collect availability with stock status (IN_STOCK / PREORDER / NOT_AVAILABLE), the monthly credit offer and the category path. Plus the source's own total.

**Parameters:**
- `query` (string, optional) — Search words as typed into the Currys search box. Either `query` or `category_id` (or both) is required.
- `category_id` (string, optional) — Currys category id as a row's category_ids returns it (e.g. all-laptops-laptops-computing). An unknown id is refused (the site would silently return the whole catalogue).
- `brand` (string, optional) — Brand exactly as rows print it (upper case, e.g. SAMSUNG, LG, RUSSELL HOBBS). Several brands: separate with | (BREVILLE|RUSSELL HOBBS). An unknown brand returns 0 rows.
- `min_price` (number, optional) — Lowest price in GBP.
- `max_price` (number, optional) — Highest price in GBP.
- `availability` (enum, optional) — Only products that can be delivered, or collected from a store. [one of: delivery, collect]
- `min_rating` (integer, optional) — Only products rated at least this many stars (1-5).
- `sort` (enum, optional, default "relevance") — Result order. [one of: relevance, price_asc, price_desc, rating, newest]
- `page` (integer, optional, default 1) — Result page.
- `page_size` (enum, optional, default "20") — Rows per page: 20, 30 or 50 (the site's own choices). [one of: 20, 30, 50]

**Returns:** results[]{product_id, sku, ean, eans[], name, brand, url, image, price, was_price, save_amount, discount_pct, was_price_from, was_price_to, currency, rating, review_count, delivery_available, delivery_status, collection_available, collection_status, monthly_credit{amount, months, apr}, categories[], category_ids[], price_mismatch} + total, page, page_size, last_page, has_more

**Example request body:**
```json
{
  "query": "tv",
  "brand": "SAMSUNG"
}
```

### POST https://api.reefapi.com/currys/v1/product — 3 credits
Full Currys product record: name, brand, Currys SKU, EAN(s), manufacturer model number, price, was price and its date window, saving, discount, availability, home delivery and store collection (click & collect), pre-order / back-order flags, key features, description, grouped technical specifications, unboxed dimensions, images, breadcrumbs, monthly credit offer, promotions, plus the Feefo rating, review count and star distribution.

**Parameters:**
- `product_id` (string, optional) — Currys product id exactly as a search row returns it (product_id, 6-9 digits; the number at the end of the product URL). A currys.co.uk product URL is accepted too.

**Returns:** {product_id, sku, ean, eans[], model_number, name, brand, url, images[], price, was_price, save_amount, discount_pct, was_price_from, was_price_to, currency, available, availability_message, delivery_available, delivery_message, collection_available, collection_message, click_and_collect, pre_order, back_order, box_type, max_order_quantity, key_features[], description, specifications[]{group, name, value}, dimensions_unboxed{}, breadcrumbs[], category_id, planning_group, monthly_credit{}, promotions[]{id, text}, supplier, excluded_from_price_promise, online_only, rating, review_count, rating_distribution{}}

**Example request body:**
```json
{
  "product_id": "10282701"
}
```

### POST https://api.reefapi.com/currys/v1/reviews — 2 credits
Buyer reviews of a Currys product from Currys' Feefo review service: stars, text, date, reviewer display name and country, verification state, helpful votes, sub-ratings (e.g. value for money), newest first, plus the total review count.

**Parameters:**
- `product_id` (string, optional) — Currys product id exactly as a search row returns it (product_id, 6-9 digits; the number at the end of the product URL). A currys.co.uk product URL is accepted too.
- `page` (integer, optional, default 1) — Review page.
- `page_size` (integer, optional, default 20) — Reviews per page (1-50).

**Returns:** reviews[]{review_id, product_id, rating, text, date, author, author_location, verification, helpful_votes, sub_ratings{}, product_name, url} + total, page, page_size, has_more

**Example request body:**
```json
{
  "product_id": "10282701"
}
```

## 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=currys
- Human docs page: https://reefapi.com/docs/currys
- Overview page: https://reefapi.com/currys-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
