↑ ↓ to move ↵ to open
Tesco API · Endpoint

Tesco Product Detail API

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

  • 1 credit per call
  • Failed calls are free
  • Updated
  • tesco.product.detail.get
Response completed
{  "product": {    "title": "Tesco Pink Lady Apples 5 Pack",    "aisleId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q0FwcGxlcyUyMCYlMjBQZWFycw==",    "aisleName": "Apples & Pears",    "averageWeight": null,    "baseProductId": "77091643",    "brandName": "TESCO",    "bulkBuyLimit": 99,    "bulkBuyLimitGroupId": null,    "bulkBuyLimitMessage": null,    "catchWeightList": null,    "departmentId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA==",    "departmentName": "Fresh Fruit",    "depositAmount": null,    "displayType": "Quantity",    "groupBulkBuyLimit": 0,    "gtin": "00000003249833",    "id": "284477542",    "isForSale": true,    "isInFavourites": null,    "isNew": false,    "isRestrictedOrderAmendment": null,    "maxWeight": null,    "minWeight": null,    "multiPackDetails": null,    "productType": "SingleProduct",    "seller": null,    "shelfId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q0FwcGxlcyUyMCYlMjBQZWFycyU3Q1BpbmslMjAmJTIwUmVkJTIwQXBwbGVz",    "shelfLife": null,    "shelfName": "Pink & Red Apples",    "status": "AvailableForSale",    "superDepartmentId": "b;RnJlc2glMjBGb29k",    "superDepartmentName": "Fresh Food",    "tpnb": "77091643",    "tpnc": "284477542",    "price": {      "actual": 2.9,      "unitOfMeasure": "each",      "unitPrice": 0.58    },    "reviews": {      "info": {        "count": 10,        "offset": 0,        "page": 1,        "total": 193      },      "stats": {        "noOfReviews": 193,        "overallRating": 2.9,        "ratingsDistribution": [          {            "name": "1.0",            "value": "62"          },          {            "name": "2.0",            "value": "36"          }        ]      }    },    "details": {      "additives": null,      "alcoholInfo": null,      "allergenInfo": null,      "boxContents": null,      "brandMarketing": null,      "clothingInfo": null,      "directions": null,      "dosage": null,      "drainedWeight": null,      "features": null,      "freezingInstructions": null,      "hazardInfo": null,      "healthClaims": null,      "healthmark": null,      "lowerAgeLimit": null,      "manufacturerMarketing": null,      "nappyInfo": null,      "netContents": "Minimum 5",      "numberOfUses": "Variable Servings",      "nutritionalClaims": null,      "otherInformation": null,      "otherNutritionInformation": null,      "preparationGuidelines": null,      "recyclingInfo": null,      "safetyWarning": null,      "storage": null,      "upperAgeLimit": null,      "warnings": null,      "cookingInstructions": {        "microwave": {          "chilled": {            "detail": null,            "instructions": []          },          "frozen": {            "detail": null,            "instructions": []          }        },        "oven": {          "chilled": {            "temperature": null,            "time": null,            "instructions": []          },          "frozen": {            "temperature": null,            "time": null,            "instructions": []          }        },        "cookingGuidelines": [],        "cookingMethods": [],        "cookingPrecautions": [],        "otherInstructions": []      },      "energyEfficiency": {        "class": null,        "energyClassUrl": null,        "productInfoDoc": null      },      "guidelineDailyAmount": {        "title": "One typical apple",        "dailyAmounts": [          {            "name": "Energy",            "rating": "-",            "percent": "4",            "value": "313kJ 74kcal"          },          {            "name": "Fat",            "rating": "LOW",            "percent": "1",            "value": "0.7g"          }        ]      },      "components": [        {          "isLowEverydayPricing": false,          "isLowPricePromise": false        }      ],      "ingredients": [        "Apple"      ],      "legalLabelling": [],      "nutritionInfo": [        {          "name": "Typical Values",          "perComp": "100g contains",          "perServing": "A serving contains",          "referenceIntake": "%RI*",          "referencePercentage": "RI*"        },        {          "name": "Energy",          "perComp": "236kJ / 56kcal",          "perServing": "313kJ / 74kcal",          "referenceIntake": "4%",          "referencePercentage": "8400kJ / 2000kcal"        }      ],      "originInformation": [        {          "title": "Produce of",          "value": "Produce of Argentina, Australia, Chile, Spain, France, United Kingdom, Italy, New Zealand, USA, South Africa"        }      ],      "packSize": [        {          "units": "SNGL",          "value": null        }      ],      "preparationAndUsage": [        "<p>Wash before use.</p>"      ],      "productMarketing": [        "Sweet & Sparkling Hand picked and grown longer for their pink blush and distinctive fizz At Tesco we believe in the importance of expertly …"      ],      "specifications": []    },    "images": {      "display": [        {          "default": {},          "zoom": {}        }      ]    },    "media": {      "defaultImage": {        "aspectRatio": 1      },      "videos": []    },    "sellers": {      "totalCount": 1,      "results": [        {          "id": "284477542",          "isForSale": true,          "returnDetails": null,          "seller": null,          "status": "AvailableForSale",          "unavailabilityReasons": null,          "price": {            "actual": 2.9,            "unitOfMeasure": "each",            "unitPrice": 0.58          },          "promotions": []        }      ]    },    "charges": [],    "description": [      "Apples."    ],    "foodIcons": [],    "icons": [],    "promotions": [],    "restrictions": []  },  "raw": {    "status": 200,    "data": {      "product": {        "title": "Tesco Pink Lady Apples 5 Pack",        "aisleId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q0FwcGxlcyUyMCYlMjBQZWFycw==",        "aisleName": "Apples & Pears",        "averageWeight": null,        "baseProductId": "77091643",        "brandName": "TESCO",        "bulkBuyLimit": 99,        "bulkBuyLimitGroupId": null,        "bulkBuyLimitMessage": null,        "catchWeightList": null,        "departmentId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA==",        "departmentName": "Fresh Fruit",        "depositAmount": null,        "displayType": "Quantity",        "groupBulkBuyLimit": 0,        "gtin": "00000003249833",        "id": "284477542",        "isForSale": true,        "isInFavourites": null,        "isNew": false,        "isRestrictedOrderAmendment": null,        "maxWeight": null,        "minWeight": null,        "multiPackDetails": null,        "productType": "SingleProduct",        "seller": null,        "shelfId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q0FwcGxlcyUyMCYlMjBQZWFycyU3Q1BpbmslMjAmJTIwUmVkJTIwQXBwbGVz",        "shelfLife": null,        "shelfName": "Pink & Red Apples",        "status": "AvailableForSale",        "superDepartmentId": "b;RnJlc2glMjBGb29k",        "superDepartmentName": "Fresh Food",        "tpnb": "77091643",        "tpnc": "284477542",        "price": {          "actual": 2.9,          "unitOfMeasure": "each",          "unitPrice": 0.58        },        "reviews": {          "info": {            "count": 10,            "offset": 0,            "page": 1,            "total": 193          },          "stats": {            "noOfReviews": 193,            "overallRating": 2.9,            "ratingsDistribution": [              {                "name": "1.0",                "value": "62"              },              {                "name": "2.0",                "value": "36"              }            ]          }        },        "details": {          "additives": null,          "alcoholInfo": null,          "allergenInfo": null,          "boxContents": null,          "brandMarketing": null,          "clothingInfo": null,          "directions": null,          "dosage": null,          "drainedWeight": null,          "features": null,          "freezingInstructions": null,          "hazardInfo": null,          "healthClaims": null,          "healthmark": null,          "lowerAgeLimit": null,          "manufacturerMarketing": null,          "nappyInfo": null,          "netContents": "Minimum 5",          "numberOfUses": "Variable Servings",          "nutritionalClaims": null,          "otherInformation": null,          "otherNutritionInformation": null,          "preparationGuidelines": null,          "recyclingInfo": null,          "safetyWarning": null,          "storage": null,          "upperAgeLimit": null,          "warnings": null,          "cookingInstructions": {            "microwave": {              "chilled": {                "detail": null,                "instructions": []              },              "frozen": {                "detail": null,                "instructions": []              }            },            "oven": {              "chilled": {                "temperature": null,                "time": null,                "instructions": []              },              "frozen": {                "temperature": null,                "time": null,                "instructions": []              }            },            "cookingGuidelines": [],            "cookingMethods": [],            "cookingPrecautions": [],            "otherInstructions": []          },          "energyEfficiency": {            "class": null,            "energyClassUrl": null,            "productInfoDoc": null          },          "guidelineDailyAmount": {            "title": "One typical apple",            "dailyAmounts": [              {                "name": "Energy",                "rating": "-",                "percent": "4",                "value": "313kJ 74kcal"              },              {                "name": "Fat",                "rating": "LOW",                "percent": "1",                "value": "0.7g"              }            ]          },          "components": [            {              "isLowEverydayPricing": false,              "isLowPricePromise": false            }          ],          "ingredients": [            "Apple"          ],          "legalLabelling": [],          "nutritionInfo": [            {              "name": "Typical Values",              "perComp": "100g contains",              "perServing": "A serving contains",              "referenceIntake": "%RI*",              "referencePercentage": "RI*"            },            {              "name": "Energy",              "perComp": "236kJ / 56kcal",              "perServing": "313kJ / 74kcal",              "referenceIntake": "4%",              "referencePercentage": "8400kJ / 2000kcal"            }          ],          "originInformation": [            {              "title": "Produce of",              "value": "Produce of Argentina, Australia, Chile, Spain, France, United Kingdom, Italy, New Zealand, USA, South Africa"            }          ],          "packSize": [            {              "units": "SNGL",              "value": null            }          ],          "preparationAndUsage": [            "<p>Wash before use.</p>"          ],          "productMarketing": [            "Sweet & Sparkling Hand picked and grown longer for their pink blush and distinctive fizz At Tesco we believe in the importance of expertly …"          ],          "specifications": []        },        "images": {          "display": [            {              "default": {},              "zoom": {}            }          ]        },        "media": {          "defaultImage": {            "aspectRatio": 1          },          "videos": []        },        "sellers": {          "totalCount": 1,          "results": [            {              "id": "284477542",              "isForSale": true,              "returnDetails": null,              "seller": null,              "status": "AvailableForSale",              "unavailabilityReasons": null,              "price": {                "actual": 2.9,                "unitOfMeasure": "each",                "unitPrice": 0.58              },              "promotions": []            }          ]        },        "charges": [],        "description": [          "Apples."        ],        "foodIcons": [],        "icons": [],        "promotions": [],        "restrictions": []      }    }  }}
Try it live, free
Input

What you send

The input object of the request, with every field the endpoint accepts.

  • Send the Tesco product link or the numeric TPNC from it. Keep the TPNC with your saved results so later checks refer to the same product.
FieldTypeRequiredWhat it doesExample
tpnc string yes Numeric Tesco product id (tpnc), or a full tesco.com product URL such as https://www.tesco.com/groceries/en-GB/products/284477542. https://www.tesco.com/groceries/en-GB/products/…
include_raw boolean no Include the faithful GraphQL response envelope under raw. Defaults to false (normalized product only). Default: false.
Response

Fields it returns

What each record in the response holds, with the values from the sample above.

FieldTypeWhat it isExample
product object The product record. 46 fields
product.aisleId string Tesco's ID for the aisle. b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdCU3Q0FwcGxlcyUyMCYlMjBQZ…
product.aisleName string The aisle name, such as Apples & Pears. Apples & Pears
product.averageWeight null Average weight for products sold by weight. null
product.baseProductId string Tesco's base product number, shared by pack sizes of one product. 77091643
product.brandName string The brand, such as TESCO. TESCO
product.bulkBuyLimit integer The most of this product one order can hold. 99
product.bulkBuyLimitGroupId null The group of products that share one order limit. null
product.bulkBuyLimitMessage null Tesco's message about the order limit. null
product.catchWeightList null Weight options for products sold by weight. null
product.charges array Deposit return charges on the product, when there are any. empty in this sample
product.departmentId string Tesco's ID for the department. b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA==
product.departmentName string The department name, such as Fresh Fruit. Fresh Fruit
product.depositAmount null The deposit on the product, when it carries one. null
product.description array The product description, in parts. Apples.
product.details object Product details. 40 fields
product.details.additives null Additives listed on the label. null
product.details.alcoholInfo null Alcohol details, for drinks with alcohol. null
product.details.allergenInfo null Allergen information from the label. null
product.details.boxContents null What comes in the box, when stated. null
product.details.brandMarketing null Marketing text from the brand. null
product.details.clothingInfo null Clothing details, for clothing products. null
product.details.components array The parts of the product description. 1 records
product.details.cookingInstructions object Cooking instructions from the label. 6 fields
product.details.directions null Directions for use from the label. null
product.details.dosage null Dosage information, for health products. null
product.details.drainedWeight null Drained weight, for tinned and jarred products. null
product.details.energyEfficiency object Energy efficiency rating, for electrical products. 3 fields
product.details.features null The product's features, when listed. null
product.details.freezingInstructions null Freezing instructions from the label. null
product.details.guidelineDailyAmount object Nutrition per serving with traffic-light ratings. 2 fields
product.details.hazardInfo null Hazard information from the label. null
product.details.healthClaims null Health claims on the label. null
product.details.healthmark null The health mark on the label. null
product.details.ingredients array The ingredients list. Apple
product.details.legalLabelling array Legal notes from the label. empty in this sample
product.details.lowerAgeLimit null The lowest age the product is for, when stated. null
product.details.manufacturerMarketing null Marketing text from the manufacturer. null
product.details.nappyInfo null Nappy details, for baby products. null
product.details.netContents string The net contents, as the label states them. Minimum 5
product.details.numberOfUses string How many servings or uses the pack gives. Variable Servings
product.details.nutritionInfo array The nutrition table from the label. 11 records
product.details.nutritionalClaims null Nutrition claims on the label. null
product.details.originInformation array Where the product comes from. 1 records
product.details.otherInformation null Other information from the label. null
product.details.otherNutritionInformation null Other nutrition notes from the label. null
product.details.packSize array The pack size and its units. 1 records
product.details.preparationAndUsage array Preparation and usage notes. <p>Wash before use.</p>
product.details.preparationGuidelines null Preparation guidelines from the label. null
product.details.productMarketing array Marketing text about the product. Sweet & Sparkling Hand picked and grown longer for their pink b…
product.details.recyclingInfo null Recycling information. null
product.details.safetyWarning null Safety warnings from the label. null
product.details.specifications array Technical specifications, when listed. empty in this sample
product.details.storage null Storage instructions. null
product.details.upperAgeLimit null The highest age the product is for, when stated. null
product.details.warnings null Warnings from the label. null
product.displayType string How the price is shown, such as by quantity or by weight. Quantity
product.foodIcons array Diet icons on the product, when there are any. empty in this sample
product.groupBulkBuyLimit integer The order limit shared across a group of products. 0
product.gtin string Product barcode as text; preserve its leading zeros. 00000003249833
REST API · MCP server

Call it from your code, or ask your agent

Set UPSCRAPE_API_KEY to your key and copy a working request.

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.product.detail.get",  "input": {    "tpnc": "https://www.tesco.com/groceries/en-GB/products/284477542"  }}'
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

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

The agent finds the endpoint, shows you the price, and runs it with your credits.
Tesco

More from the Tesco API

Same data, other platforms

The same data from other platforms

Questions

Tesco Product Detail API FAQ

The short answers. The docs have the long ones.

Still have a question? Talk to the people who build the endpoints.
How much does the Tesco Product Detail API cost?

1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.

What do I send?

Send tpnc. The input fields below list every option with its type and limits.

Do I need a Tesco login?

No. It reads public Tesco data; nothing runs on your account.

Can my AI agent call it?

Yes, over MCP: the agent finds tesco.product.detail.get, checks its price and runs it with the same credits as the REST API.

Get started

Your first Tesco call is free.

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