Discover/ASDA API
live

ASDA APIasda.com

Access ASDA's grocery catalog via API. Search products, browse categories, get pricing, promotions, and customer reviews. 6 endpoints, GBP pricing included.

Endpoint health
verified 6d ago
list_categories
search_products
get_category_products
get_rollback_offers
get_product_details
6/6 passing latest checkself-healing
Endpoints
6
Updated
21d ago

What is the ASDA API?

The ASDA API provides 6 endpoints for querying ASDA's online grocery catalog, including full-text product search, category browsing, and per-product review data. The search_products endpoint returns paginated results with fields like price, original_price, price_per_unit, rating, and review_count, making it straightforward to build price trackers, grocery comparison tools, or inventory monitors against one of the UK's largest supermarket chains.

Try it
Page number (0-indexed)
Max results per page (1-50)
Search keyword (e.g. 'milk', 'butter', 'bread')
api.parse.bot/scraper/2fda71be-d876-4595-b859-b1dacfb5a8a0/<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/2fda71be-d876-4595-b859-b1dacfb5a8a0/search_products?page=0&limit=5&query=milk' \
  -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 asda-com-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: ASDA Groceries SDK — search, browse categories, get details and reviews."""
from parse_apis.asda_groceries_api import Asda, CategoryType, ProductNotFound

client = Asda()

# Search for products by keyword — limit= caps total items fetched.
for product in client.products.search(query="butter", limit=5):
    print(product.name, f"£{product.price}", product.availability)

# Get one product's full details via .first() then drill into reviews.
product = client.products.search(query="milk", limit=1).first()
if product:
    detail = client.products.get(id=product.id)
    print(detail.name, detail.brand, f"£{detail.price}", detail.package_size)

    for review in detail.reviews.list(limit=3):
        print(review.rating, review.user, review.text[:60] if review.text else "")

# Browse categories and filter by type using the enum.
for cat in client.categories.list(limit=10):
    if cat.type == CategoryType.DEPARTMENT:
        print(cat.name, cat.id)

# Drill into a category's products.
category = client.categories.list(limit=1).first()
if category:
    for p in category.products(limit=3):
        print(p.name, f"£{p.price}", p.category)

# Typed error handling for a missing product.
try:
    client.products.get(id="nonexistent_product_id_99999")
except ProductNotFound as exc:
    print(f"Product not found: {exc.product_id}")

# Browse rollback (price reduction) offers.
for deal in client.products.rollbacks(limit=3):
    print(deal.name, f"£{deal.price}", f"was £{deal.original_price}" if deal.original_price else "")

print("exercised: products.search / products.get / reviews.list / categories.list / category.products / products.rollbacks")
All endpoints · 6 totalmissing one? ·

Full-text search over ASDA's grocery catalog. Returns paginated product listings matching the keyword query. Results include pricing, availability, promotions, and ratings. Pagination is 0-indexed.

Input
ParamTypeDescription
pageintegerPage number (0-indexed)
limitintegerMax results per page (1-50)
queryrequiredstringSearch keyword (e.g. 'milk', 'butter', 'bread')
Response
{
  "type": "object",
  "fields": {
    "page": "integer current page number",
    "items": "array of product objects with id, cin, name, brand, price, original_price, price_per_unit, uom, package_size, rating, review_count, availability, promotions, image_url, url, category, is_frozen",
    "total": "integer total number of matching products",
    "total_pages": "integer total number of pages"
  },
  "sample": {
    "data": {
      "page": 0,
      "items": [
        {
          "id": "20504",
          "cin": "165468",
          "uom": null,
          "url": "https://www.asda.com/groceries/product/semi-skimmed-milk/british-milk-semi-skimmed-4-pints/20504",
          "name": "British Milk Semi Skimmed 4 Pints",
          "brand": "ASDA",
          "price": 1.65,
          "rating": 4.1874,
          "category": "Semi Skimmed Milk",
          "image_url": "https://ui.assets-asda.com/dm/asda/20337087?defaultImage=asda-ghs-less&resMode=sharp2&id=v16pY1&fmt=jpg&fit=constrain,1&wid=288&hei=288",
          "is_frozen": false,
          "promotions": [],
          "availability": "In Stock",
          "package_size": "4 PINT",
          "review_count": 1035,
          "original_price": null,
          "price_per_unit": null
        }
      ],
      "total": 176,
      "total_pages": 36
    },
    "status": "success"
  }
}

About the ASDA API

What the API Covers

The API surfaces ASDA's grocery catalog across six endpoints. search_products accepts a query string plus optional page and limit parameters (1–50 results per page, 0-indexed) and returns an array of product objects that include id, cin, name, brand, price, original_price, price_per_unit, uom, package_size, rating, and review_count, along with total and total_pages for pagination. get_category_products works identically but accepts a category_id instead of a keyword query.

Category Hierarchy and Product Detail

list_categories returns a flat list of every category in ASDA's taxonomy — top categories, departments, aisles, and shelves — each with an id, name, type, and parent_id for reconstructing the hierarchy. Feed any id from that response into get_category_products to browse that shelf or aisle. get_product_details takes a single product_id and returns enriched fields not present in list results: url, image_url, category (shelf name), and uom. If the ID does not exist, the endpoint returns input_not_found.

Reviews and Promotions

get_product_reviews returns up to 20 of the most recent reviews for a given product, sorted by submission date descending. Each review object includes title, text, rating, date, user, is_recommended, and helpful_votes. The response also carries aggregate stats: total_reviews, average_rating, and rating_distribution as an array of RatingValue/Count pairs. get_rollback_offers lists products currently on Rollback (price reductions), with original_price alongside the current price so the discount is immediately calculable.

Reliability & maintenanceVerified

The ASDA API is a managed, monitored endpoint for asda.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when asda.com 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 asda.com 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
6d ago
Latest check
6/6 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 Rollback price reductions across ASDA's catalog using get_rollback_offers and comparing price vs original_price
  • Build a UK grocery price comparison tool by searching the same keyword across multiple supermarket APIs and aligning on price_per_unit
  • Monitor specific product prices over time using get_product_details with a stored product_id
  • Analyse customer sentiment on ASDA own-brand products by aggregating rating_distribution from get_product_reviews
  • Populate a recipe-cost calculator by fetching ingredient prices via search_products and extracting price_per_unit and uom
  • Reconstruct ASDA's full category tree from list_categories and map product counts per shelf using get_category_products
  • Identify top-rated products within a department by sorting get_category_products results by rating and review_count
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 ASDA have an official public developer API?+
ASDA does not offer a public developer API. There is no documented REST or GraphQL interface published for third-party access to their catalog, pricing, or review data.
What does `get_product_reviews` return, and how many reviews come back per call?+
It returns up to 20 of the most recent reviews for a product, sorted newest first. Each review includes title, text, rating, date, user, is_recommended, and helpful_votes. The response also includes aggregate fields: total_reviews, average_rating, and rating_distribution (an array of RatingValue/Count objects covering the 1–5 star breakdown).
Does `search_products` support filtering by brand, dietary attribute, or price range?+
Currently the endpoint accepts only a free-text query, page, and limit. Brand and dietary filtering are not available as distinct parameters. You can fork this API on Parse and revise it to add filter parameters if your use case requires them.
Is product availability or stock status returned by any endpoint?+
The search_products and get_category_products endpoints include availability in the product objects alongside pricing. Granular stock levels (e.g. exact unit counts or fulfilment-centre availability) are not exposed. You can fork the API on Parse and revise it to surface additional availability fields if needed.
How does pagination work across the listing endpoints?+
All three listing endpoints — search_products, get_category_products, and get_rollback_offers — use 0-indexed pagination. Pass page=0 for the first page. Each response includes total (total matching items) and total_pages so you can iterate through the full result set. The limit parameter accepts values between 1 and 50.
Page content last updated . Spec covers 6 endpoints from asda.com.
Related APIs in Food DiningSee all →
walmart.com API
Retrieve product data from Walmart.com including pricing, descriptions, availability, reviews, and category listings. Access real-time product information to search by keyword, look up items by ID or URL, and browse department categories.
morrisons.com API
Search and browse Morrisons grocery products, view detailed information like reviews and pricing, discover active promotions, and get personalized product recommendations. Find exactly what you're looking for with category browsing, search suggestions, and similar product recommendations.
tesco.com API
Search and browse Tesco's complete grocery catalog to find products with detailed nutritional information, ingredient lists, and customer reviews. Explore product suggestions via autocomplete and browse items organized by category to make informed shopping decisions.
sainsburys.co.uk API
Access Sainsbury's grocery catalogue: search products by keyword, browse the full category hierarchy, retrieve detailed product information, and discover trending searches.
ocado.com API
Search and browse Ocado UK's grocery catalog, view detailed product information including nutritional data, and discover related items to add to your cart. Get instant search suggestions and manage your shopping cart contents all in one place.
asos.com API
Search and browse ASOS's fashion catalog to discover products across women's and men's categories, view real-time pricing and stock information, and find trending or sale items. Get detailed product information, explore similar items, and discover new arrivals and brands all in one place.
argos.co.uk API
argos.co.uk API
amazon.co.uk API
Access data from amazon.co.uk.