↑ ↓ to move ↵ to open
Commerce & delivery · REST API · MCP server

Tesco API

Compare Tesco shelf prices by pack, then check the product behind each Tesco link or TPNC.

  • 1 credit per call
  • Failed calls are free
  • Updated
tesco.category.products.list 5 rows completed
# Product TPNC Aisle id Aisle name Average weight Base product id Brand name Bulk buy limit Bulk buy limit message Department id
1 Tesco Pink Lady Apples 5 Pack 284477542 b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q0FwcGxlcyUyMCYlMjBQZ… Apples & Pears 0 77091643 TESCO 99 b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA==
2 Jaffa Easy Peelers 600g 288135169 b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q09yYW5nZXMsJTIwTGVtb… Oranges, Lemons & Citrus Fruit 0 78922224 TESCO 99 b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA==
3 Parrs Toffee Apples Each 267479525 b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q0FwcGxlcyUyMCYlMjBQZ… Apples & Pears 0 66759086 PARRS 6 You have reached the maximum quantity of 6 for this item. b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA==
4 Tesco Blueberries 150G 287356888 b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q0JlcnJpZXMlMjAmJTIwQ… Berries & Cherries 0 78538719 TESCO 16 You have reached the maximum quantity of 16 for this item. b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA==
5 Tesco Finest Sweet Easy Peelers 600g 288115395 b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q09yYW5nZXMsJTIwTGVtb… Oranges, Lemons & Citrus Fruit 0 78911934 TESCO finest 99 b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA==
Endpoints

Tesco API endpoints

What each one takes and what it returns. Open one for a real response, every input and every field.

Tesco Category Products API

Pass a category facet to collect one page of Tesco products.

Sendfacet Returnstitletpncpack_priceunit_priceunitoffer
1–8 credits

Tesco Product Detail API

Send a Tesco product link or TPNC to read its price, description and product information where supplied.

Sendtpnc Returnstitletpncbrandgtinpack_priceunit_price
1 credit

Tesco Categories API

Read Tesco’s nested category tree, then reuse the returned facet for the category you want to collect.

Sendinclude_raw ReturnscategoryfacetchildrennamecatIdimages
1 credit
Use cases

What teams build with Tesco data

Price, offer and range checks on Tesco’s online grocery catalog.

Pricing

What the Tesco API costs

Every endpoint shows its price in credits before it runs. You buy credits once, with no subscription.

Credit packs
Per callEndpoints
1 credit Product detailCategories
1–8 credits Category products
Know before you build

How Tesco data behaves

REST API · MCP server

Call it from your code, or ask your agent

One request shape for every Tesco endpoint: the endpoint ID and its input. No SDK needed.

curl --request POST \  --url https://data.upscrape.com/execute \  --header "Authorization: Bearer $UPSCRAPE_API_KEY" \  --header "Content-Type: application/json" \  --header "Prefer: wait=30" \  --data '{  "capability": "tesco.category.products.list",  "input": {    "count": 5,    "facet": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA==",    "page": 1,    "sort_by": "relevance"  }}'
Response
{  "total_count": 181,  "page": {    "count": 5,    "matchType": null,    "offset": 0,    "pageId": null,    "pageNo": 1,    "pageSize": 5,    "totalCount": 181,    "query": {      "actualTerm": null,      "queryPhase": "primary",      "searchTerm": null    }  },  "raw": {    "status": 200,    "data": {      "category": {        "facets": null,        "options": {          "sortBy": [            "relevance",            "price-ascending"          ]        },        "pageInformation": {          "count": 5,          "matchType": null,          "offset": 0,          "pageId": null,          "pageNo": 1,          "pageSize": 5,          "totalCount": 181,          "query": {            "actualTerm": null,            "queryPhase": "primary",            "searchTerm": null          }        },        "facetLists": [          {            "category": "Superdepartment",            "categoryId": "superDepartment",            "facets": [              {                "binCount": 280,                "facetId": "Fresh Food",                "facetName": "Fresh Food",                "isSelected": true              }            ]          },          {            "category": "Department",            "categoryId": "department",            "facets": [              {                "binCount": 280,                "facetId": "Fresh Fruit",                "facetName": "Fresh Fruit",                "isSelected": true              }            ]          }        ],        "results": [          {            "node": {              "title": "Tesco Pink Lady Apples 5 Pack",              "adId": null,              "aisleId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q0FwcGxlcyUyMCYlMjBQZWFycw==",              "aisleName": "Apples & Pears",              "averageWeight": 0,              "baseProductId": "77091643",              "brandName": "TESCO",              "bulkBuyLimit": 99,              "bulkBuyLimitGroupId": null,              "bulkBuyLimitMessage": null,              "catchWeightList": null,              "context": null,              "departmentId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA==",              "departmentName": "Fresh Fruit",              "displayType": "Quantity",              "groupBulkBuyLimit": 0,              "gtin": "00000003249833",              "id": "284477542",              "increment": 0,              "isInFavourites": null,              "isNew": false,              "isRestrictedOrderAmendment": null,              "maxQuantityAllowed": 99,              "maxWeight": 0,              "minWeight": 0,              "modelMetadata": null,              "productType": "SingleProduct",              "quantityInBasket": null,              "restrictedDelivery": null,              "shelfId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q0FwcGxlcyUyMCYlMjBQZWFycyU3Q1BpbmslMjAmJTIwUmVkJTIwQXBwbGVz",              "shelfName": "Pink & Red Apples",              "shortDescription": "Apples.",              "superDepartmentId": "b;RnJlc2glMjBGb29k",              "superDepartmentName": "Fresh Food",              "timeRestrictedDelivery": null,              "tpnb": "77091643",              "tpnc": "284477542",              "typename": "ProductType",              "reviews": {                "stats": {                  "noOfReviews": 193,                  "overallRating": 2.9,                  "overallRatingRange": 5                }              },              "details": {                "components": [                  {                    "isLowEverydayPricing": false                  }                ]              },              "images": {                "display": [                  {                    "default": {}                  }                ]              },              "media": {                "defaultImage": {                  "aspectRatio": 1                }              },              "sellers": {                "results": [                  {                    "fulfilment": null,                    "id": "284477542",                    "isForSale": true,                    "seller": null,                    "status": "AvailableForSale",                    "price": {                      "price": 2.9,                      "actual": 2.9,                      "unitOfMeasure": "each",                      "unitPrice": 0.58                    },                    "promotions": []                  }                ]              },              "description": [                "Apples."              ],              "restrictions": []            }          },          {            "node": {              "title": "Jaffa Easy Peelers 600g",              "adId": null,              "aisleId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q09yYW5nZXMsJTIwTGVtb25zJTIwJiUyMENpdHJ1cyUyMEZydWl0",              "aisleName": "Oranges, Lemons & Citrus Fruit",              "averageWeight": 0,              "baseProductId": "78922224",              "brandName": "TESCO",              "bulkBuyLimit": 99,              "bulkBuyLimitGroupId": null,              "bulkBuyLimitMessage": null,              "catchWeightList": null,              "context": null,              "departmentId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA==",              "departmentName": "Fresh Fruit",              "displayType": "Quantity",              "groupBulkBuyLimit": 0,              "gtin": "00000003260630",              "id": "288135169",              "increment": 0,              "isInFavourites": null,              "isNew": false,              "isRestrictedOrderAmendment": null,              "maxQuantityAllowed": 99,              "maxWeight": 0,              "minWeight": 0,              "modelMetadata": null,              "productType": "SingleProduct",              "quantityInBasket": null,              "restrictedDelivery": null,              "shelfId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q09yYW5nZXMsJTIwTGVtb25zJTIwJiUyMENpdHJ1cyUyMEZydWl0JTdDQ2xlbWVudGluZXMlMjAmJTIwRWFzeSUyMFBlZWxlc…",              "shelfName": "Clementines & Easy Peelers",              "shortDescription": "Clementines, Mandarin",              "superDepartmentId": "b;RnJlc2glMjBGb29k",              "superDepartmentName": "Fresh Food",              "timeRestrictedDelivery": null,              "tpnb": "78922224",              "tpnc": "288135169",              "typename": "ProductType",              "reviews": {                "stats": {                  "noOfReviews": 401,                  "overallRating": 2.4,                  "overallRatingRange": 5                }              },              "details": {                "components": [                  {                    "isLowEverydayPricing": false                  }                ]              },              "images": {                "display": [                  {                    "default": {}                  }                ]              },              "media": {                "defaultImage": {                  "aspectRatio": 1                }              },              "sellers": {                "results": [                  {                    "fulfilment": null,                    "id": "288135169",                    "isForSale": true,                    "seller": null,                    "status": "AvailableForSale",                    "price": {                      "price": 2.2,                      "actual": 2.2,                      "unitOfMeasure": "kg",                      "unitPrice": 3.67                    },                    "promotions": [                      {                        "description": "£1.49 Clubcard Price",                        "endDate": "2026-11-03T00:00:00Z",                        "id": "102760175",                        "promotionType": null,                        "startDate": "2026-10-05T23:00:00Z",                        "unitSellingInfo": "£2.48/kg",                        "price": {                          "afterDiscount": 2.2,                          "beforeDiscount": null                        },                        "attributes": [                          "CLUBCARD_PRICING"                        ]                      }                    ]                  }                ]              },              "description": [                "Clementines, Mandarin"              ],              "restrictions": []            }          }        ]      }    }  },  "items": [    {      "title": "Tesco Pink Lady Apples 5 Pack",      "adId": null,      "aisleId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q0FwcGxlcyUyMCYlMjBQZWFycw==",      "aisleName": "Apples & Pears",      "averageWeight": 0,      "baseProductId": "77091643",      "brandName": "TESCO",      "bulkBuyLimit": 99,      "bulkBuyLimitGroupId": null,      "bulkBuyLimitMessage": null,      "catchWeightList": null,      "context": null,      "departmentId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA==",      "departmentName": "Fresh Fruit",      "displayType": "Quantity",      "groupBulkBuyLimit": 0,      "gtin": "00000003249833",      "id": "284477542",      "increment": 0,      "isInFavourites": null,      "isNew": false,      "isRestrictedOrderAmendment": null,      "maxQuantityAllowed": 99,      "maxWeight": 0,      "minWeight": 0,      "modelMetadata": null,      "productType": "SingleProduct",      "quantityInBasket": null,      "restrictedDelivery": null,      "shelfId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q0FwcGxlcyUyMCYlMjBQZWFycyU3Q1BpbmslMjAmJTIwUmVkJTIwQXBwbGVz",      "shelfName": "Pink & Red Apples",      "shortDescription": "Apples.",      "superDepartmentId": "b;RnJlc2glMjBGb29k",      "superDepartmentName": "Fresh Food",      "timeRestrictedDelivery": null,      "tpnb": "77091643",      "tpnc": "284477542",      "typename": "ProductType",      "reviews": {        "stats": {          "noOfReviews": 193,          "overallRating": 2.9,          "overallRatingRange": 5        }      },      "details": {        "components": [          {            "isLowEverydayPricing": false          }        ]      },      "images": {        "display": [          {            "default": {}          }        ]      },      "media": {        "defaultImage": {          "aspectRatio": 1        }      },      "sellers": {        "results": [          {            "fulfilment": null,            "id": "284477542",            "isForSale": true,            "seller": null,            "status": "AvailableForSale",            "price": {              "price": 2.9,              "actual": 2.9,              "unitOfMeasure": "each",              "unitPrice": 0.58            },            "promotions": []          }        ]      },      "description": [        "Apples."      ],      "restrictions": []    },    {      "title": "Jaffa Easy Peelers 600g",      "adId": null,      "aisleId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q09yYW5nZXMsJTIwTGVtb25zJTIwJiUyMENpdHJ1cyUyMEZydWl0",      "aisleName": "Oranges, Lemons & Citrus Fruit",      "averageWeight": 0,      "baseProductId": "78922224",      "brandName": "TESCO",      "bulkBuyLimit": 99,      "bulkBuyLimitGroupId": null,      "bulkBuyLimitMessage": null,      "catchWeightList": null,      "context": null,      "departmentId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA==",      "departmentName": "Fresh Fruit",      "displayType": "Quantity",      "groupBulkBuyLimit": 0,      "gtin": "00000003260630",      "id": "288135169",      "increment": 0,      "isInFavourites": null,      "isNew": false,      "isRestrictedOrderAmendment": null,      "maxQuantityAllowed": 99,      "maxWeight": 0,      "minWeight": 0,      "modelMetadata": null,      "productType": "SingleProduct",      "quantityInBasket": null,      "restrictedDelivery": null,      "shelfId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q09yYW5nZXMsJTIwTGVtb25zJTIwJiUyMENpdHJ1cyUyMEZydWl0JTdDQ2xlbWVudGluZXMlMjAmJTIwRWFzeSUyMFBlZWxlc…",      "shelfName": "Clementines & Easy Peelers",      "shortDescription": "Clementines, Mandarin",      "superDepartmentId": "b;RnJlc2glMjBGb29k",      "superDepartmentName": "Fresh Food",      "timeRestrictedDelivery": null,      "tpnb": "78922224",      "tpnc": "288135169",      "typename": "ProductType",      "reviews": {        "stats": {          "noOfReviews": 401,          "overallRating": 2.4,          "overallRatingRange": 5        }      },      "details": {        "components": [          {            "isLowEverydayPricing": false          }        ]      },      "images": {        "display": [          {            "default": {}          }        ]      },      "media": {        "defaultImage": {          "aspectRatio": 1        }      },      "sellers": {        "results": [          {            "fulfilment": null,            "id": "288135169",            "isForSale": true,            "seller": null,            "status": "AvailableForSale",            "price": {              "price": 2.2,              "actual": 2.2,              "unitOfMeasure": "kg",              "unitPrice": 3.67            },            "promotions": [              {                "description": "£1.49 Clubcard Price",                "endDate": "2026-11-03T00:00:00Z",                "id": "102760175",                "promotionType": null,                "startDate": "2026-10-05T23:00:00Z",                "unitSellingInfo": "£2.48/kg",                "price": {                  "afterDiscount": 2.2,                  "beforeDiscount": null                },                "attributes": [                  "CLUBCARD_PRICING"                ]              }            ]          }        ]      },      "description": [        "Clementines, Mandarin"      ],      "restrictions": []    }  ]}
In your AI agent Claude · Cursor · any MCP client
1Add the Upscrape MCP server
https://data.upscrape.com/mcp
2Ask for the data in plain words

With Upscrape, get the Tesco category products for facet "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA==" and sort by "relevance". Tell me what it costs before you run it, then show the results as a table.

Use Upscrape to read Tesco product 284477542. Show the pack price and unit price with its unit. Keep the product ID in the answer.

Use Upscrape to find Tesco’s Fresh Fruit category and collect its first five products. Show the product ID, title, pack price and unit price. Only compare unit prices with matching units.

The agent finds the endpoint, shows you the price, and runs it with your credits.
Commerce & delivery
Questions

Tesco API FAQ

The short answers. The docs have the long ones.

Still have a question? Talk to the people who build the endpoints.
Is this an official Tesco API?

This is Upscrape’s Tesco grocery data API. It reads public catalog information through Upscrape’s service and uses your Upscrape API key. It does not connect to your Tesco shopping account. The request and response examples here describe this service, rather than an older Tesco developer API.

What data can I get from Tesco?

You can browse the category tree, collect products from a category and read a product by its Tesco link or ID. Product fields depend on what Tesco supplies. Inspect the sample JSON for the returned structure before choosing the columns your report needs.

Can I search Tesco products by keyword?

Keyword search is not available yet. Start from the category tree to find a shelf, then collect its products. If you already have a product, send its Tesco link or TPNC directly.

Can I get stock or prices for my postcode?

These endpoints take no postcode or store. They return Tesco's public UK catalog, so an availability field describes the catalog, not stock, delivery or the checkout price at a particular address. Store-level stock is not part of it.

Can I sort Tesco category products by price?

Yes. Category requests can sort by relevance or by price, low or high first, and Tesco does the sorting. Tesco’s order can differ from a plain sort of pack prices, so compare unit prices on the same basis when judging value.

Does it include Clubcard data or place orders?

No. It reads Tesco’s public catalog for research and reporting. It does not read Clubcard accounts, points or purchase histories, and it does not create a basket, book a delivery slot or place an order. Public promotions, including Clubcard conditions where Tesco lists them, come with the product.

Does the API include historical Tesco prices?

It returns the catalog as it is now, not a ready-made price history. Build your own by scheduling requests and saving the time, product IDs and results of each run. Compare the same packs across runs, and keep missing values as unknown rather than zero.

How much does the Tesco API cost?

Tesco endpoints cost from 1 credit per successful call, each priced before it runs. You buy credits once, with no subscription, and paid credits never expire. New accounts get free credits to try it.

Get started

Your first Tesco call is free.

Up to 100 free credits to start, no card needed.