Argos APIargos.co.uk ↗
Search, browse, and retrieve product details from Argos UK. Access prices, reviews, promotions, category navigation, and store stock via 5 endpoints.
What is the Argos API?
The Argos UK API gives developers access to 5 endpoints covering product search, category browsing, product details, category navigation, and store stock availability. The search_products endpoint returns up to 60 products per page with sorting by relevance, price, or rating, while get_product_details returns structured attributes including brand, pricing, delivery and collection flags, review statistics, and active promotions.
curl -X GET 'https://api.parse.bot/scraper/01541198-68b1-4b54-9e28-1fe4fec44226/search_products?page=1&sort=Relevance&query=laptop' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace argos-co-uk-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Argos UK Product API — search, browse categories, get product details."""
from parse_apis.argos_uk_product_api import Argos, Sort, ProductNotFound
client = Argos()
# Search for laptops sorted by price ascending, capped at 5 items.
for item in client.productsummaries.search(query="laptop", sort=Sort.PRICE_ASC, limit=5):
print(item.id, item.title)
# Drill into the first search result for full product details.
first = client.productsummaries.search(query="gaming chair", limit=1).first()
if first:
detail = first.details()
print(detail.name, detail.brand, detail.price)
# Browse a category to see available products.
for product in client.categoryproducts.browse(
category_slug="technology/laptops-and-pcs/laptops", category_id="30049", limit=3
):
print(product.id, product.name, product.price, product.brand)
# List navigation categories.
for cat in client.categories.list(limit=5):
print(cat.name, cat.url)
# Get a product by ID with typed error handling.
try:
product = client.products.get(product_id="7806544")
print(product.name, product.brand, product.avg_rating, product.review_count)
except ProductNotFound as exc:
print(f"Product not found: {exc}")
print("exercised: productsummaries.search / .details / categoryproducts.browse / categories.list / products.get")
Search for products by keyword with optional pagination and sorting. Returns up to 60 products per page from the Argos catalogue. Results include product IDs and titles. When Akamai protection blocks the request, proxy rotation resolves it.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sort order for results. |
| queryrequired | string | Search keyword (e.g. 'laptop', 'gaming chair') |
{
"type": "object",
"fields": {
"version": "string, data format version",
"products": "array of product objects with id and title",
"totalPages": "integer, total number of pages available",
"currentPage": "integer, current page number",
"totalNumberOfAllProducts": "integer, total matching products count"
},
"sample": {
"data": {
"version": "1.0",
"products": [
{
"id": "8398037",
"title": "HP 14-ep2001na 14in Intel N1504GB 128GB Laptop"
},
{
"id": "7825697",
"title": "Samsung Galaxy 14in 4GB 64GB Chromebook Go - Silver"
}
],
"totalPages": 7,
"currentPage": 1,
"rank1CountForCurrentPage": 60,
"totalNumberOfAllProducts": 368
},
"status": "success"
}
}About the Argos API
Product Search and Browsing
The search_products endpoint accepts a query string and optional page and sort parameters. Accepted sort values are Relevance, PriceAsc, PriceDesc, and TopRated. The response includes a products array alongside totalPages, currentPage, and totalNumberOfAllProducts — enough to build full paginated result sets. The browse_category endpoint takes a category_slug and category_id pair (discoverable via get_categories) and behaves differently depending on category type: leaf categories return a products array with filters and breadcrumbs, while hub categories return a subcategories array and an empty products array.
Product Details and Related Data
get_product_details takes a single product_id and returns a data object containing the product's name, brand, description, deliverable and collectable booleans, and price information, plus a relationships block. The included array contains related resources: prices, review statistics, and any active promotions attached to the product. This makes it straightforward to surface availability modes and promotional state alongside core listing data.
Category Navigation and Store Stock
get_categories requires no inputs and returns the full top-level and nested category structure from the Argos homepage, with each entry carrying a name and url field usable directly as category_slug input. check_stock_by_postcode accepts a UK postcode and product_id and returns a stores array indicating nearby store availability. Note that this endpoint is documented as intermittently blocked by site protection, so applications relying on it should handle failure cases.
The Argos API is a managed, monitored endpoint for argos.co.uk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when argos.co.uk changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official argos.co.uk API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a UK retail price tracker that monitors Argos product prices over time using
get_product_details - Aggregate Argos promotions and active deals by polling
includedpromotion resources from product detail responses - Create a product comparison tool using brand, price, and review statistics from
get_product_details - Map the full Argos category hierarchy for site navigation or taxonomy analysis using
get_categoriesandbrowse_category - Check in-store stock availability at nearby Argos locations for a given product using
check_stock_by_postcode - Build a search results page or shopping feed filtered and sorted by price or rating via
search_products - Identify top-rated products within a specific Argos leaf category using
browse_categorywith theTopRatedsort
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Argos have an official public developer API?+
What does browse_category return for hub categories versus leaf categories?+
subcategories array and an empty products array. For leaf (PLP) pages — the deepest navigable categories — it returns a populated products array along with filters, breadcrumbs, categoryName, and totalProducts. Use get_categories to find valid category_slug and category_id pairs before calling this endpoint.Does check_stock_by_postcode always return reliable results?+
Does the API expose Argos seller marketplace data or third-party seller listings?+
Can I retrieve individual customer review text through these endpoints?+
get_product_details endpoint returns review statistics (aggregate rating data) via the included array, but individual review text and reviewer details are not returned. You can fork this API on Parse and revise it to add a dedicated reviews endpoint that returns per-review content.