# Argos API scraper — argos.co.uk (UK): search and browse the catalogue, read the full product with price, was-price, multi-buy offers and Nectar points kept apart, specs, images, variants and breadcrumb; customer reviews, Q&A and special offers. Browserless.

> Search argos.co.uk by keyword. Each product carries the price, the was-price and saving of a price drop, the offer text, clearance flag, the search index's rating and review count, delivery and click & collect flags, delivery cost, seller type and variant options. Sort by price or rating; filter by brand, category, offers, new in or minimum rating. A misspelling with no matches is re-run against Argos's own spelling correction (reported in matched_query).
> ReefAPI engine `argos` · 6 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/argos/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, `Authorization: Bearer <key>`) and your assistant can call these actions directly.

## Endpoints

### POST /argos/v1/search — 1 credit
Search argos.co.uk by keyword. Each product carries the price, the was-price and saving of a price drop, the offer text, clearance flag, the search index's rating and review count, delivery and click & collect flags, delivery cost, seller type and variant options. Sort by price or rating; filter by brand, category, offers, new in or minimum rating. A misspelling with no matches is re-run against Argos's own spelling correction (reported in matched_query).

**Parameters:**
- `query` (string, required) — Search keyword, as typed on argos.co.uk. When a misspelling returns nothing, Argos's own spelling correction is applied and reported in matched_query.
- `page` (integer, optional, default 1) — 1-based page.
- `page_size` (integer, optional, default 24) — Products per page (1-60).
- `sort` (enum, optional, default "relevance") — Order of the results. [one of: relevance, price_asc, price_desc, rating]
- `brands` (array, optional) — Only these brands (names as shown in filters_available.brands).
- `category_id` (string, optional) — Restrict to one Argos category id (from a breadcrumb or filters_available.category).
- `offers_only` (boolean, optional, default false) — Only products on a special offer (price drop or multi-buy).
- `new_only` (boolean, optional, default false) — Only 'New in' products.
- `min_rating` (enum, optional) — Minimum customer rating. [one of: 4, 3, 2, 1]

**Returns:** results[]{product_id, title, brand, url, image, price, currency, price_is_from, was_price, savings, discount_percent, offer_text, clearance, search_index_rating, rating_scale, search_index_review_count, has_variations, variant_options, deliverable, click_and_collect, free_delivery, delivery_cost, seller_type, fulfilment_agent, badges[]}, count, total_results, page, page_size, has_more, sort_applied, filters_applied[], filters_available[]{facet, label, values[]{id, label, count}}, sponsored_dropped, query, matched_query, category_applied{category_id, name}

**Example request body:**
```json
{
  "query": "kettle"
}
```

### POST /argos/v1/product/detail — 1 credit
One Argos product in full: price, was-price and saving, the offer text, every multi-buy offer it is part of (never subtracted from the price), Nectar points, rating and review count, availability, delivery and click & collect flags, delivery cost, EAN when published, images, videos, description, feature list and specifications, breadcrumb, size/colour variants with their own prices, badges and warranties.

**Parameters:**
- `product_id` (string, required) — Argos catalogue number (7 digits, e.g. 3102039), a Tu clothing id (tuc…), a marketplace id, or an argos.co.uk/product/ URL.

**Returns:** product{product_id, title, brand, url, ean, price, currency, was_price, savings, discount_percent, offer_text, multibuy_offers[]{offer_id, title, description, offer_type, mechanic, starts_at, ends_at, min_quantity, eligible_product_count}, nectar_points, nectar_multiplier, rating, rating_scale, review_count, availability, deliverable, click_and_collect, free_delivery, delivery_cost, delivery_cost_varies, end_of_line, made_to_order, max_quantity, age_restricted, seller_type, fulfilment_agent, images[], videos[], documents[], description, features[], specifications{}, breadcrumb[]{category_id, name, url}, category_id, variants[]{product_id, attributes{}, price, url}, badges[], warranties[], energy, dimensions, safety_text, exclusion_text}

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

### POST /argos/v1/product/reviews — 1 credit
Customer reviews of one Argos product, paged, sortable and filterable by star rating, with the average, the 1-5 distribution, the recommend percentage and per-aspect averages.

**Parameters:**
- `product_id` (string, required) — Argos catalogue number (7 digits, e.g. 3102039), a Tu clothing id (tuc…), a marketplace id, or an argos.co.uk/product/ URL.
- `page` (integer, optional, default 1) — 1-based page.
- `page_size` (integer, optional, default 10) — Reviews per page (1-50).
- `sort` (enum, optional, default "newest") — Review order. [one of: newest, oldest, highest_rating, lowest_rating, most_helpful]
- `rating` (integer, optional) — Only reviews with exactly this star rating.

**Returns:** product_id, reviews[]{review_id, rating, rating_scale, title, text, author, author_location, submitted_at, recommended, syndicated, badges[], secondary_ratings{}, reviewer_context{}, helpful_votes, unhelpful_votes, photos[], responses[]}, count, total_results, rating, rating_scale, total_reviews, rating_distribution{1..5}, recommended_percent, secondary_rating_averages{}, rating_filter, page, page_size, has_more

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

### POST /argos/v1/product/questions — 1 credit
Customer questions about one Argos product with their answers (staff, brand and best-answer flags).

**Parameters:**
- `product_id` (string, required) — Argos catalogue number (7 digits, e.g. 3102039), a Tu clothing id (tuc…), a marketplace id, or an argos.co.uk/product/ URL.
- `page` (integer, optional, default 1) — 1-based page.
- `page_size` (integer, optional, default 10) — Questions per page (1-50).
- `sort` (enum, optional, default "newest") — Question order. [one of: newest, oldest]

**Returns:** product_id, questions[]{question_id, question, details, author, submitted_at, answer_count, answers[]{answer_id, text, author, submitted_at, best_answer, brand_answer, staff_answer, helpful_votes, unhelpful_votes}}, count, total_results, page, page_size, has_more

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

### POST /argos/v1/category — 1 credit
Every product in one Argos category, paged, with the same rows, sorting and filters as search.

**Parameters:**
- `category_id` (string, required) — Argos category id (the number after c: in a /browse/ URL, or from a breadcrumb).
- `page` (integer, optional, default 1) — 1-based page.
- `page_size` (integer, optional, default 24) — Products per page (1-60).
- `sort` (enum, optional, default "relevance") — Order of the results. [one of: relevance, price_asc, price_desc, rating]
- `brands` (array, optional) — Only these brands (names as shown in filters_available.brands).
- `offers_only` (boolean, optional, default false) — Only products on a special offer (price drop or multi-buy).
- `new_only` (boolean, optional, default false) — Only 'New in' products.
- `min_rating` (enum, optional) — Minimum customer rating. [one of: 4, 3, 2, 1]

**Returns:** results[]{product_id, title, brand, url, image, price, currency, price_is_from, was_price, savings, discount_percent, offer_text, clearance, search_index_rating, rating_scale, search_index_review_count, has_variations, variant_options, deliverable, click_and_collect, free_delivery, delivery_cost, seller_type, fulfilment_agent, badges[]}, count, total_results, page, page_size, has_more, sort_applied, filters_applied[], filters_available[]{facet, label, values[]{id, label, count}}, sponsored_dropped, category_id

### POST /argos/v1/deals — 1 credit
Products currently on a special offer at Argos (price drops and multi-buys), optionally narrowed by keyword, category or brand, with the same rows and sorting as search.

**Parameters:**
- `query` (string, optional) — Optional keyword to narrow the offers.
- `category_id` (string, optional) — Restrict to one Argos category id (from a breadcrumb or filters_available.category).
- `brands` (array, optional) — Only these brands (names as shown in filters_available.brands).
- `page` (integer, optional, default 1) — 1-based page.
- `page_size` (integer, optional, default 24) — Products per page (1-60).
- `sort` (enum, optional, default "relevance") — Order of the results. [one of: relevance, price_asc, price_desc, rating]

**Returns:** results[]{product_id, title, brand, url, image, price, currency, price_is_from, was_price, savings, discount_percent, offer_text, clearance, search_index_rating, rating_scale, search_index_review_count, has_variations, variant_options, deliverable, click_and_collect, free_delivery, delivery_cost, seller_type, fulfilment_agent, badges[]}, count, total_results, page, page_size, has_more, sort_applied, filters_applied[], filters_available[]{facet, label, values[]{id, label, count}}, sponsored_dropped, query, category_id

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