Discover/Tesco API
live

Tesco APItesco.com

Access Tesco's grocery catalog via API. Search products, browse categories, retrieve nutrition and allergen data, customer reviews, and active promotions.

This API takes change requests — .
Endpoint health
verified 2h ago
get_promotions
get_product_details
list_category
get_suggestions
search_products
5/5 passing latest checkself-healing
Endpoints
5
Updated
1mo ago

What is the Tesco API?

The Tesco API provides 5 endpoints covering Tesco's UK grocery catalog, from full-text product search to detailed nutrition panels and live promotional offers. The search_products endpoint returns paginated listings with pricing, brand, GTIN, department hierarchy, and per-unit pricing. Use get_product_details to retrieve ingredients, allergen information, storage instructions, and paginated customer reviews for any product identified by its TPNC.

This call costs1 credit / call— charged only on success
Try it
Page number to retrieve
Number of items to return per page
Search keyword (e.g. 'milk', 'bread', 'lactose free milk')
api.parse.bot/scraper/f638033e-e80b-4d9a-9bd7-09fbd184bef1/<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/f638033e-e80b-4d9a-9bd7-09fbd184bef1/search_products?page=1&count=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 tesco-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.

"""
Tesco Groceries API – search products, browse categories, inspect nutrition and reviews.
"""

from parse_apis.tesco_groceries_api import Tesco, Product, ProductDetail, Category

tesco = Tesco()

# Search for products
for product in tesco.products.search(query="oat milk", count=5):
    print(product.title, product.price, product.unit_of_measure)

# Get full product details by tpnc
detail = tesco.productdetails.get(tpnc="262586694")
print(detail.title, detail.brand_name)
print(detail.details.features)
for item in detail.details.nutrition_info or []:
    print(item.name, item.per_comp)

# Browse reviews
for review in detail.reviews.entries:
    print(review.rating.value, review.summary, review.verified_buyer)

# Browse a category
cat = tesco.category(facet="b;RnJlc2glMjBGb29k")
for product in cat.list_products(count=5):
    print(product.title, product.brand, product.rating)

# Autocomplete suggestions
for term in tesco.suggestions.search(query="choc"):
    print(term)
All endpoints · 5 totalmissing one? ·

Full-text search over Tesco's grocery catalog. Returns paginated product listings with pricing, promotions, and ratings. Each result carries enough identity (tpnc) to drill into full details via get_product_details. Pagination via integer page counter; server default is 24 items per page.

Input
ParamTypeDescription
pageintegerPage number to retrieve
countintegerNumber of items to return per page
queryrequiredstringSearch keyword (e.g. 'milk', 'bread', 'lactose free milk')
Response
{
  "type": "object",
  "fields": {
    "products": "array of product objects with id, tpnc, tpnb, gtin, title, brand, description, image_url, department info, price, unit_price, unit_of_measure, promotions, rating, review_count, url",
    "pagination": "object with total, page, count, pageSize"
  },
  "sample": {
    "data": {
      "products": [
        {
          "id": "262586694",
          "url": "https://www.tesco.com/groceries/en-GB/products/262586694",
          "gtin": "05036589201601",
          "tpnb": "61332466",
          "tpnc": "262586694",
          "aisle": "Milk",
          "brand": "Yeo Valley",
          "price": 3.15,
          "shelf": "Whole Milk",
          "title": "Yeo Valley Organic Fresh Whole Milk 2L",
          "rating": 4.7,
          "image_url": "https://digitalcontent.api.tesco.com/v2/media/ghs/9fe281fc-c5c0-41ef-8d14-e5d4b0f72f7c/ff990aaa-bd88-438a-8169-36d10d436d1e_1491621793.jpeg?h=225&w=225",
          "department": "Milk, Butter & Eggs",
          "promotions": [],
          "unit_price": 1.58,
          "description": null,
          "review_count": 131,
          "unit_of_measure": "litre",
          "super_department": "Fresh Food"
        }
      ],
      "pagination": {
        "page": 1,
        "count": 6,
        "total": 381,
        "pageSize": 5,
        "__typename": "ListInfoType"
      }
    },
    "status": "success"
  }
}

About the Tesco API

Product Search and Category Browsing

The search_products endpoint accepts a query string and returns paginated product arrays, each containing tpnc, tpnb, gtin, title, brand, description, image_url, department hierarchy fields, price, unit_price, and unit. Pagination is controlled with page and count parameters; the server default page size is 24. The list_category endpoint mirrors this response shape but filters by a facet ID — a base64-encoded category identifier found in Tesco's site navigation (for example, b;RnJlc2glMjBGb29k for Fresh Food).

Product Details, Nutrition, and Reviews

get_product_details takes a tpnc identifier from any search or category result and returns the full product record. The details object includes ingredients, allergenInfo, storage, nutritionInfo, netContents, recyclingInfo, and features. The reviews object includes per-entry review data alongside aggregate stats such as overallRating, noOfReviews, and ratingsDistribution. Review pagination uses reviews_offset and reviews_limit parameters. Active promotions on the product are returned as an array with description, startDate, endDate, attributes, and promotional price.

Promotions and Autocomplete

get_promotions returns currently active public grocery promotions — Clubcard Prices, standard reductions, and multibuy offers — paginated with a maximum count of 50 per page. Each promoted product includes super_department, department, aisle, and promotional pricing fields. Marketplace products, clothing, and electronics are excluded from this endpoint. get_suggestions accepts a partial query string and returns an array of ranked suggestion strings, useful for building type-ahead search or discovering popular query variations.

Reliability & maintenanceVerified

The Tesco API is a managed, monitored endpoint for tesco.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tesco.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 tesco.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
2h ago
Latest check
5/5 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
  • Build a grocery price tracker by polling search_products and recording price and unit_price over time
  • Power a dietary filter tool using allergenInfo and nutritionInfo from get_product_details
  • Aggregate active promotions from get_promotions to surface Clubcard Prices and multibuy deals in a deal-finding app
  • Populate a product comparison table with ingredients, netContents, and nutritionInfo across multiple TPNCs
  • Implement type-ahead search in a grocery shopping app using get_suggestions with partial query strings
  • Browse an entire category by facet ID with list_category to catalog department-level product ranges and pricing
  • Analyze customer sentiment by collecting ratingsDistribution and individual review entries from get_product_details
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Tesco have an official developer API?+
Tesco previously offered a public developer API at dev.tescolabs.com, but that program has been discontinued and is no longer accepting new registrations. The Parse Tesco API provides structured access to the same grocery catalog data through these 5 endpoints.
What does `get_product_details` return beyond basic product info?+
Beyond title, brand, and price, the endpoint returns a details object containing ingredients, allergenInfo, storage, nutritionInfo, netContents, recyclingInfo, and features. It also includes a reviews object with individual review entries, aggregate overallRating, noOfReviews, and a ratingsDistribution breakdown, plus an array of active promotions with dates and promotional pricing.
How do category facet IDs work in `list_category`?+
The facet parameter accepts a base64-encoded category identifier — for example, b;RnJlc2glMjBGb29k maps to Fresh Food. These identifiers correspond to category nodes in Tesco's site navigation. The endpoint returns the same product object shape as search_products, so pagination via page and count works identically.
Does the API cover Tesco's Marketplace third-party sellers or non-grocery departments like clothing and electronics?+
Not currently. The API covers Tesco's core grocery catalog, including fresh food, packaged goods, and related categories. Marketplace products, clothing, and electronics are explicitly excluded from get_promotions and are not part of the standard grocery catalog endpoints. You can fork this API on Parse and revise it to add an endpoint targeting those product segments.
Are store availability or stock levels included in any endpoint?+
Stock levels and per-store availability are not part of any current endpoint response. The API returns pricing, unit pricing, promotions, and product details at the catalog level. You can fork this API on Parse and revise it to add a store-availability endpoint if that data is a requirement.
Page content last updated . Spec covers 5 endpoints from tesco.com.
Related APIs in Food DiningSee all →
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.
asda.com API
Access data from asda.com.
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.
aldi.co.uk API
Search and browse Aldi UK's product catalog with detailed information about items, categories, and real-time suggestions to help you find exactly what you're looking for. Get instant access to product details, pricing, and category navigation across Aldi's full range of groceries and goods.
waitrose.com API
Search Waitrose & Partners' online grocery catalog to find products with detailed information including pricing, current promotions, and availability. Get autocomplete suggestions for faster browsing and access complete product details to compare items and find the best deals.
carrefour.eu API
Search and browse Carrefour's European online product catalog to access pricing, promotions, availability, and detailed product information including nutritional data. Retrieve comprehensive product details across categories to compare prices and find current deals in real-time.
carrefour.be API
Search and browse Carrefour Belgium's grocery catalog to find products with detailed nutritional information, ingredients, and pricing. Explore product categories and discover items that match your shopping needs.