Discover/Tesco API
live

Tesco APItesco.com

Access Tesco's grocery catalog via API: search products, browse categories, get nutrition and allergen data, ingredients, promotions, and customer reviews.

Endpoint health
verified 2h ago
search_products
get_suggestions
list_category
get_product_details
4/4 passing latest checkself-healing
Endpoints
4
Updated
22d ago

What is the Tesco API?

The Tesco API covers 4 endpoints that expose Tesco's grocery catalog, including product search, category browsing, detailed product pages, and autocomplete suggestions. The get_product_details endpoint returns over a dozen structured fields per product — ingredients, allergen info, nutrition data, storage instructions, recycling info, promotions with date ranges, and paginated customer reviews with ratings and author text.

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 · 4 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 (e.g. 'lactose free milk') and returns paginated arrays of product objects. Each product includes identifiers (tpnc, tpnb, gtin), title, brand, image_url, department metadata, price, unit_price, and unit. Pagination is controlled via page and count parameters, and the response includes a pagination object with total, page, count, and pageSize fields.

The list_category endpoint works the same way but takes a facet ID instead of a search query, letting you enumerate all products in a given aisle or category. For example, b;RnJlc2glMjBGb29k maps to Fresh Food. The response structure mirrors search_products, making it straightforward to paginate through entire departments.

Detailed Product Data

The get_product_details endpoint takes a tpnc product ID — obtained from search or category results — and returns the full product record. The details object includes ingredients, allergenInfo, storage, nutritionInfo, netContents, recyclingInfo, and features. Promotions come back as a structured array with description, startDate, endDate, attributes, and discounted price. Reviews are returned under a reviews object containing paginated entries (each with rating, author, summary, and text) and aggregate stats including overallRating. Review pagination is controlled by reviews_limit and reviews_offset.

Search Suggestions

The get_suggestions endpoint returns an array of autocomplete strings for a partial or full query input. An optional limit parameter caps how many suggestions come back. This is useful for building type-ahead interfaces or for discovering how Tesco's catalog indexes specific product terms before running a full search.

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
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
  • Build a nutrition tracker that pulls ingredient and allergen data from get_product_details for scanned or searched grocery items.
  • Monitor Tesco promotion prices and date ranges across a product category using list_category combined with the promotions array.
  • Aggregate customer review ratings and text from get_product_details to compare competing products in the same category.
  • Implement a grocery search interface with autocomplete powered by get_suggestions and full results from search_products.
  • Extract unit price data across categories to build a grocery price comparison dataset.
  • Populate a dietary app with structured nutritionInfo and allergenInfo fields for Tesco-stocked products.
  • Track brand presence within specific aisles by iterating list_category results and grouping by the brand 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 Tesco have an official developer API?+
Tesco previously offered a public grocery API but retired it. There is currently no official developer-facing API available for Tesco's grocery catalog.
What does `get_product_details` return beyond basic product info?+
Beyond name and price, the endpoint returns a details object containing ingredients, allergenInfo, storage, nutritionInfo, netContents, recyclingInfo, and features. It also returns a promotions array with structured promotion dates and prices, and a reviews object with individual review text and aggregate rating stats.
Does the API cover Tesco marketplace or non-grocery products such as clothing or electronics?+
The API covers Tesco's grocery catalog. Non-grocery categories like clothing, electronics, or Tesco marketplace third-party seller listings are not currently included. You can fork this API on Parse and revise it to add endpoints targeting those additional departments.
Can I retrieve a full product list for an entire category without knowing exact product IDs?+
Yes. The list_category endpoint takes a facet ID and returns paginated product arrays including tpnc identifiers for every product in that category. You can then pass those tpnc values to get_product_details for full records.
Is store availability or stock level data included in the API responses?+
Store-level stock availability is not currently exposed. The API returns catalog data including price, unit price, promotions, and product details, but not per-store inventory status. You can fork this API on Parse and revise it to add an endpoint targeting store availability if that data is accessible from the source.
Page content last updated . Spec covers 4 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.
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.
coles.com.au API
Search and browse Coles supermarket products by category, view detailed product information, and discover current specials all in one place. Find exactly what you're looking for with powerful search functionality and organized category navigation.
products.checkers.co.za API
Search and browse products from Checkers South Africa's online store, compare prices, and discover current specials and deals. Explore the complete product catalog by category to find items and get detailed product information all in one place.
marksandspencer.com API
marksandspencer.com API
Tesco API – Grocery Products, Nutrition & Reviews · Parse