Discover/Currys API
live

Currys APIcurrys.co.uk

Retrieve live product listings, pricing, stock availability, and technical specifications from Currys.co.uk across electronics categories including phones and laptops.

Endpoint health
verified 1d ago
list_mobile_phones
search_products
get_product_details
list_mini_pc_products
4/4 passing latest checkself-healing
Endpoints
4
Updated
26d ago

What is the Currys API?

The Currys.co.uk API provides 4 endpoints to search and retrieve electronics product data from the UK's largest consumer electronics retailer. Use search_products to query across all categories by keyword, get_product_details to pull full technical specifications grouped by category, or list_mobile_phones to browse the phone catalog with paginated results including pricing, availability, payment options, and promotional offers.

Try it
Number of products to return per page.
The starting index (offset) for pagination.
api.parse.bot/scraper/8d2033de-f0a2-40c7-a815-1925c4b445eb/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/8d2033de-f0a2-40c7-a815-1925c4b445eb/list_mobile_phones?limit=5&start=0' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 currys-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.

from parse_apis.currys_co_uk_products_api import Currys, Product, MobilePhone, Listing, Price, Availability, ProductNotFound

# Initialize the client
currys = Currys()

# Search for Samsung products
for product in currys.products.search(query="samsung", limit=5):
    print(product.name, product.brand, product.url)
    for price in product.price:
        print(price.revenue, price.currency)
    for avail in product.availability:
        print(avail.stock_status, avail.availability_type)

# Get detailed product information by ID
detail = currys.products.get(product_id="10290129")
print(detail.name, detail.brand, detail.sku)
print(detail.full_specifications)
print(detail.promotions)

# List mobile phones
for phone in currys.mobilephones.list(limit=3):
    print(phone.name, phone.brand, phone.url)
    for price in phone.price:
        print(price.revenue, price.currency)

# Search using the full page scraper for listings
for listing in currys.listings.search(query="laptop", limit=10):
    print(listing.name, listing.price, listing.savings)
    print(listing.specs, listing.image_url)
All endpoints · 4 totalmissing one? ·

List products in the mobile phones category on Currys.co.uk. Returns paginated results with full product data including pricing, availability, payment options, and offers. Each product includes structured data from Currys' internal data layer. Paginate using the start offset; each page returns up to limit products.

Input
ParamTypeDescription
limitintegerNumber of products to return per page.
startintegerThe starting index (offset) for pagination.
Response
{
  "type": "object",
  "fields": {
    "limit": "integer - number of products requested per page",
    "start": "integer - current pagination offset",
    "products": "array of product objects with id, name, brand, price, availability, payment options, offers, and URLs",
    "total_items": "integer - total number of products in the mobile phones category"
  },
  "sample": {
    "data": {
      "limit": 5,
      "start": 0,
      "products": [
        {
          "id": "10299101",
          "url": "https://www.currys.co.uk/products/samsung-galaxy-s26-ultra-256-gb-cobalt-violet-10299101.html",
          "name": "SAMSUNG Galaxy S26 Ultra - 256 GB, Cobalt Violet",
          "brand": "SAMSUNG",
          "price": [
            {
              "tax": 213.17,
              "revenue": 1279,
              "currency": "GBP",
              "baseRevenue": 1279
            }
          ],
          "image_url": "https://media.currys.biz/i/currysprod/10299101?$g-small$&fmt=auto",
          "availability": [
            {
              "stockStatus": "IN_STOCK",
              "availabilityType": "Delivery available",
              "availabilityStatus": "shipping"
            }
          ]
        }
      ],
      "total_items": 20
    },
    "status": "success"
  }
}

About the Currys API

Product Search and Category Browsing

The search_products endpoint accepts a required query string (e.g., 'samsung', 'iphone', 'laptop') and optional limit and start parameters for pagination. It returns a products array alongside total_items, so you can walk through result pages using the start offset. Each product object includes id, name, brand, price, availability, payment options, offers, and a product URL. The list_mobile_phones endpoint mirrors this shape but is scoped to the mobile phones category, useful when you want category-specific inventory without constructing a search query.

Product Detail and Specifications

get_product_details takes a required product_id (the unique numeric identifier, e.g., '10290129') and an optional url. When a url is supplied, the endpoint fetches specifications directly from that page rather than resolving the URL first. The response includes a full_specifications object with technical specs grouped by category labels such as OVERVIEW, CAMERA, and SCREEN, making it straightforward to extract structured hardware attributes. The promotions field returns an array of current promotional strings, and availability includes stock status and shipping information.

General Search with Extended Pagination

list_mini_pc_products accepts a query string and a max_pages integer. Setting max_pages to 0 fetches all available pages, with 20 products returned per page. The response differs slightly from the other endpoints: each product object includes product_id, name, url, price, savings, specs, and image_url. The products_returned field tells you how many records were actually returned versus the total_items count reported by the search index.

Coverage Notes

All endpoints return UK-market data from currys.co.uk, including GBP pricing and UK stock status. The price field on detailed responses is an array of price objects containing baseRevenue, currency, revenue, tax, and offers, allowing you to distinguish base price from promotional pricing.

Reliability & maintenanceVerified

The Currys API is a managed, monitored endpoint for currys.co.uk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when currys.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 currys.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.

Last verified
1d ago
Latest check
4/4 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track price changes on specific products using get_product_details with a stored product_id.
  • Compare mobile phone availability and payment options across the catalog using list_mobile_phones.
  • Build a product feed for a price-comparison site using search_products with paginated start offsets.
  • Extract technical specifications grouped by category (e.g., CAMERA, SCREEN) for product comparison tools.
  • Monitor promotional offers and savings on a search term using list_mini_pc_products with max_pages.
  • Collect brand-specific inventory by passing a brand name as the query to search_products.
  • Aggregate UK electronics stock status for out-of-stock alerting using the availability field.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Currys have an official public developer API?+
Currys does not publish a public developer API for product data. There is no documented REST or GraphQL API available to third-party developers on their website.
What does the `full_specifications` field in `get_product_details` actually contain?+
It is a structured object with specs grouped under category keys such as OVERVIEW, CAMERA, and SCREEN. The exact keys depend on the product type — a phone will have different groups than a laptop. You must supply a valid product_id; the optional url parameter skips the URL-resolution step and can speed up the call if you already have the product page address.
How does pagination work across the different endpoints?+
search_products and list_mobile_phones both use a start integer offset alongside limit to page through results; the total_items field tells you when you have reached the end. list_mini_pc_products uses a max_pages parameter instead, fetching 20 products per page, with 0 meaning fetch all pages. The two pagination models are not interchangeable.
Does the API return customer reviews or ratings for products?+
Not currently. The endpoints cover pricing, specifications, availability, payment options, and promotional offers. Customer review text and star ratings are not included in any current response field. You can fork this API on Parse and revise it to add an endpoint that retrieves review data from individual product pages.
Is the data limited to UK pricing and availability?+
Yes. Currys.co.uk is a UK retailer, so all pricing is in GBP and availability reflects UK stock. There is no support for other regional Currys storefronts. If you need to compare against other regional markets, you would need a separate data source. You can fork this API on Parse and revise it to target a different regional domain if one exists.
Page content last updated . Spec covers 4 endpoints from currys.co.uk.
Related APIs in EcommerceSee all →
pccomponentes.com API
Search and browse PC components across categories and retrieve detailed product information including technical specifications, pricing, availability, and customer reviews. Ideal for comparing hardware options across processors, graphics cards, laptops, and more.
scan.co.uk API
Search and compare computer hardware and tech products from Scan.co.uk. Access detailed product specifications, pricing in GBP, stock availability, customer reviews, and daily special offers across all categories including GPUs, CPUs, storage, peripherals, and more.
darty.com API
Search and browse electronics products from Darty.com, view detailed specifications and pricing information, and add items directly to your cart. Discover product details like features, availability, and technical specs to help you find exactly what you need.
coolblue.be API
Search and browse electronics products from Coolblue Belgium, including CPUs, GPUs, and smartphones, with instant access to detailed specifications, pricing, and availability. Find exactly what you need by category or search query, and check real-time stock and price information across their entire catalog.
argos.co.uk API
argos.co.uk API
euronics.it API
Browse and search the complete Euronics Italy product catalog with real-time pricing information across all categories. Find exactly what you're looking for with powerful keyword search or explore products by category with full pagination support.
microcenter.com API
Search for computer hardware and electronics products, view detailed specs and customer reviews, and check real-time inventory across Micro Center store locations. Browse current deals and explore products by category to find the best prices on tech gear.
amazon.co.uk API
Access data from amazon.co.uk.