# Product detail get

Fetch the full Tesco product detail record by tpnc or product URL: price, promotions, product status, reviews, nutrition, and ingredients.

- Platform: [Tesco](https://docs.upscrape.com/docs/platforms/tesco)
- Capability ID: `tesco.product.detail.get`
- Cost: 1 credit per request
- Maximum runtime: 30 seconds
- Execute endpoint: `POST https://data.upscrape.com/execute`

## Request

Use the exact public capability ID in the shared execute envelope.

```bash
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 '{
  "input": {
    "tpnc": "284477542"
  },
  "capability": "tesco.product.detail.get"
}'
```

## Input


| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `include_raw` | `boolean` | No | Include the faithful GraphQL response envelope under `raw`. Defaults to false (normalized `product` only). Default: `false`. |
| `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. |

### Example input

```json
{
  "tpnc": "284477542"
}
```

## Response

Successful output is returned in `results[0].data`.

Raw platform output is intentionally open-ended and may evolve with the upstream source.

### Illustrative sample output

This example shows one response. Values and optional fields vary with the data available.

```json
{
  "product": {
    "foodIcons": [],
    "gtin": "00000003249833",
    "icons": [],
    "departmentId": "b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA==",
    "departmentName": "Fresh Fruit",
    "seller": null,
    "charges": [],
    "isRestrictedOrderAmendment": null,
    "promotions": [
      {
        "attributes": [
          "CLUBCARD_PRICING"
        ],
        "description": "£1.99 Clubcard Price",
        "endDate": "2026-08-10T23:00:00Z",
        "id": "101748027",
        "info": null,
        "metaData": {
          "seo": {
            "afterDiscountPrice": 1.99
          }
        },
        "price": {
          "afterDiscount": 2.9,
          "beforeDiscount": null
        },
        "promotionType": null,
        "qualities": [
          "membership:UKClubcard",
          "price_cut",
          "discount"
        ],
        "startDate": "2026-07-27T23:00:00Z",
        "unitSellingInfo": "£0.40/each"
      }
    ],
    "isNew": false,
    "reviews": {
      "entries": [
        {
          "author": {
            "authoredByMe": false,
            "nickname": null
          },
          "promotionalReview": false,
          "rating": {
            "range": 5,
            "value": 1
          },
          "reviewId": "trn:tesco:ugc:rnr:uuid:736e0d6a-0439-4c11-b03f-61d2993415be",
          "sampledReview": false,
          "status": "Approved",
          "submissionDateTime": "2026-07-28T14:42:40.330Z",
          "summary": "Bad qualit",
          "syndicated": false,
          "syndicationSource": {
            "clientUrl": null,
            "name": null
          },
          "text": "Bad quality, used to be a 6 pack too.. Now it is a 5 pack for the same price with a lower grade.",
          "verifiedBuyer": true
        },
        {
          "author": {
            "authoredByMe": false,
            "nickname": null
          },
          "promotionalReview": false,
          "rating": {
            "range": 5,
            "value": 2
          },
          "reviewId": "trn:tesco:ugc:rnr:uuid:34faff1a-34fc-476f-9ed3-9df2441c7343",
          "sampledReview": false,
          "status": "Approved",
          "submissionDateTime": "2026-05-27T22:24:18.251Z",
          "summary": "Will not be buying them again",
          "syndicated": false,
          "syndicationSource": {
            "clientUrl": null,
            "name": null
          },
          "text": "The apples were tasteless and the flesh weird to chew",
          "verifiedBuyer": true
        },
        {
          "author": {
            "authoredByMe": false,
            "nickname": null
          },
          "promotionalReview": false,
          "rating": {
            "range": 5,
            "value": 1
          },
          "reviewId": "trn:tesco:ugc:rnr:uuid:eaf505fb-bed6-4d03-80bb-0d0ee4e9e261",
          "sampledReview": false,
          "status": "Approved",
          "submissionDateTime": "2026-05-25T22:03:30.341Z",
          "summary": "Disappointing ",
          "syndicated": false,
          "syndicationSource": {
            "clientUrl": null,
            "name": null
          },
          "text": "What a shame. Our favourite apples and every one is damaged... and I can't find the place to get a refund. Asda is easy... I might just go back to them ",
          "verifiedBuyer": true
        }
      ],
      "info": {
        "count": 10,
        "offset": 0,
        "page": 1,
        "total": 191
      },
      "stats": {
        "noOfReviews": 191,
        "overallRating": 2.9,
        "ratingsDistribution": [
          {
            "name": "1.0",
            "value": "61"
          },
          {
            "name": "2.0",
            "value": "37"
          },
          {
            "name": "3.0",
            "value": "19"
          }
        ]
      }
    },
    "isInFavourites": null,
    "brandName": "TESCO",
    "tpnb": "77091643",
    "importerAddress": null,
    "minWeight": null,
    "manufacturer": null,
    "status": "AvailableForSale",
    "description": [
      "Apples."
    ],
    "id": "284477542",
    "returnTo": {
      "addressLine1": "Tesco Stores Ltd.",
      "addressLine10": "9am-6pm",
      "addressLine11": null,
      "addressLine12": null,
      "addressLine13": null,
      "addressLine14": null,
      "addressLine15": null,
      "addressLine16": null,
      "addressLine18": null,
      "addressLine19": null,
      "addressLine2": "Welwyn Garden City AL7 1GA",
      "addressLine20": null,
      "addressLine3": "U.K. Freephone 0800 50 55 55 Mon-Sat",
      "addressLine4": "9am-6pm & Tesco Ireland Ltd.",
      "addressLine5": "Gresham House",
      "addressLine6": "Marine Road",
      "addressLine7": "Dun Laoghaire",
      "addressLine8": "Co. Dublin. Freephone 1800 248 123",
      "addressLine9": "Mon-Sat"
    },
    "multiPackDetails": null,
    "baseProductId": "77091643",
    "depositAmount": null,
    "restrictions": [],
    "price": {
      "actual": 2.9,
      "unitOfMeasure": "each",
      "unitPrice": 0.58
    },
    "details": {
      "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
        }
      ],
      "boxContents": null,
      "features": null,
      "numberOfUses": "Variable Servings",
      "upperAgeLimit": null,
      "guidelineDailyAmount": {
        "dailyAmounts": [
          {
            "name": "Energy",
            "percent": "4",
            "rating": "-",
            "value": "313kJ 74kcal"
          },
          {
            "name": "Fat",
            "percent": "1",
            "rating": "LOW",
            "value": "0.7g"
          },
          {
            "name": "Saturates",
            "percent": "1",
            "rating": "LOW",
            "value": "0.2g"
          }
        ],
        "title": "One typical apple"
      },
      "manufacturerMarketing": null,
      "ingredients": [
        "Apple"
      ],
      "specifications": [],
      "alcoholInfo": null,
      "drainedWeight": null,
      "otherInformation": null,
      "otherNutritionInformation": null,
      "netContents": "Minimum 5",
      "recyclingInfo": null,
      "additives": null,
      "safetyWarning": null,
      "preparationAndUsage": [
        "<p>Wash before use.</p>"
      ],
      "healthmark": null,
      "components": [
        {
          "isLowEverydayPricing": false,
          "isLowPricePromise": false
        }
      ],
      "nutritionalClaims": null,
      "brandMarketing": null,
      "storage": null,
      "cookingInstructions": {
        "cookingGuidelines": [],
        "cookingMethods": [],
        "cookingPrecautions": [],
        "microwave": {
          "chilled": {
            "detail": null,
            "instructions": []
          },
          "frozen": {
            "detail": null,
            "instructions": []
          }
        },
        "otherInstructions": [],
        "oven": {
          "chilled": {
            "instructions": [],
            "temperature": null,
            "time": null
          },
          "frozen": {
            "instructions": [],
            "temperature": null,
            "time": null
          }
        }
      },
      "freezingInstructions": null,
      "directions": null,
      "nutritionInfo": [
        {
          "name": "Typical Values",
          "perComp": "100g contains",
          "perServing": "A serving contains",
          "referenceIntake": null,
          "referencePercentage": null
        },
        {
          "name": "Energy",
          "perComp": "236kJ / 56kcal",
          "perServing": "313kJ / 74kcal",
          "referenceIntake": null,
          "referencePercentage": null
        },
        {
          "name": "Fat",
          "perComp": "0.5g",
          "perServing": "0.7g",
          "referenceIntake": null,
          "referencePercentage": null
        }
      ],
      "warnings": null,
      "productMarketing": [
        "Sweet & Sparkling Hand picked and grown longer for their pink blush and distinctive fizz At Tesco we believe in the importance of expertly selecting our seasonal produce for its freshness and quality. All our Pink Lady ® apples come from trusted growers around the world. A longer growing season with warm days and cool nights means our Pink Lady apples spend more time in the sun to give them their …"
      ],
      "preparationGuidelines": null,
      "energyEfficiency": {
        "class": null,
        "energyClassUrl": null,
        "productInfoDoc": null
      },
      "allergenInfo": null,
      "healthClaims": null,
      "hazardInfo": null,
      "dosage": null,
      "legalLabelling": [],
      "lowerAgeLimit": null,
      "nappyInfo": null,
      "clothingInfo": null
    },
    "images": {
      "display": [
        {
          "default": {},
          "zoom": {}
        }
      ]
    },
    "averageWeight": null,
    "sellers": {
      "results": [
        {
          "id": "284477542",
          "isForSale": true,
          "price": {
            "actual": 2.9,
            "unitOfMeasure": "each",
            "unitPrice": 0.58
          },
          "promotions": [
            {
              "attributes": [
                "CLUBCARD_PRICING"
              ],
              "description": "£1.99 Clubcard Price",
              "endDate": "2026-08-10T23:00:00Z",
              "id": "101748027",
              "info": null,
              "metaData": {
                "seo": {
                  "afterDiscountPrice": 1.99
                }
              },
              "price": {
                "afterDiscount": 2.9,
                "beforeDiscount": null
              },
              "promotionType": null,
              "qualities": [
                "membership:UKClubcard",
                "price_cut",
                "discount"
              ],
              "startDate": "2026-07-27T23:00:00Z",
              "unitSellingInfo": "£0.40/each"
            }
          ],
          "returnDetails": null,
          "seller": null,
          "status": "AvailableForSale",
          "unavailabilityReasons": null
        }
      ],
      "totalCount": 1
    },
    "displayType": "Quantity",
    "bulkBuyLimitGroupId": null,
    "media": {
      "defaultImage": {
        "aspectRatio": 1
      },
      "videos": []
    },
    "shelfId": "b;[redacted:token]",
    "superDepartmentId": "b;RnJlc2glMjBGb29k",
    "maxWeight": null,
    "aisleId": "b;[redacted:token]==",
    "aisleName": "Apples & Pears",
    "shelfLife": null,
    "bulkBuyLimit": 99,
    "groupBulkBuyLimit": 0,
    "productType": "SingleProduct",
    "bulkBuyLimitMessage": null,
    "title": "Tesco Pink Lady Apples 5 Pack",
    "catchWeightList": null,
    "tpnc": "284477542",
    "isForSale": true,
    "shelfName": "Pink & Red Apples",
    "distributorAddress": null,
    "superDepartmentName": "Fresh Food"
  }
}
```
### Illustrative output fields

Derived from the sample above for orientation only. These fields are not a fixed response schema.

| Path | Observed type | Example |
| --- | --- | --- |
| `product` | `object` | 50 fields |
| `product.aisleId` | `string` | b;[redacted:token]== |
| `product.aisleName` | `string` | Apples & Pears |
| `product.averageWeight` | `null` | null |
| `product.baseProductId` | `string` | 77091643 |
| `product.brandName` | `string` | TESCO |
| `product.bulkBuyLimit` | `integer` | 99 |
| `product.bulkBuyLimitGroupId` | `null` | null |
| `product.bulkBuyLimitMessage` | `null` | null |
| `product.catchWeightList` | `null` | null |
| `product.charges` | `array` | 0 items |
| `product.departmentId` | `string` | b;RnJlc2glMjBGb29kJTdDRnJlc2glMjBGcnVpdA== |
| `product.departmentName` | `string` | Fresh Fruit |
| `product.depositAmount` | `null` | null |
| `product.description` | `array` | 1 items |
| `product.details` | `object` | 40 fields |
| `product.displayType` | `string` | Quantity |
| `product.distributorAddress` | `null` | null |
| `product.foodIcons` | `array` | 0 items |
| `product.groupBulkBuyLimit` | `integer` | 0 |
| `product.gtin` | `string` | 00000003249833 |
| `product.icons` | `array` | 0 items |
| `product.id` | `string` | 284477542 |
| `product.images` | `object` | 1 fields |
| `product.importerAddress` | `null` | null |
| `product.isForSale` | `boolean` | true |
| `product.isInFavourites` | `null` | null |
| `product.isNew` | `boolean` | false |
| `product.isRestrictedOrderAmendment` | `null` | null |
| `product.manufacturer` | `null` | null |
| `product.maxWeight` | `null` | null |
| `product.media` | `object` | 2 fields |
| `product.minWeight` | `null` | null |
| `product.multiPackDetails` | `null` | null |
| `product.price` | `object` | 3 fields |
| `product.productType` | `string` | SingleProduct |
| `product.promotions` | `array` | 1 items |
| `product.restrictions` | `array` | 0 items |
| `product.returnTo` | `object` | 19 fields |
| `product.reviews` | `object` | 3 fields |
| `product.seller` | `null` | null |
| `product.sellers` | `object` | 2 fields |
| `product.shelfId` | `string` | b;[redacted:token] |
| `product.shelfLife` | `null` | null |
| `product.shelfName` | `string` | Pink & Red Apples |
| `product.status` | `string` | AvailableForSale |
| `product.superDepartmentId` | `string` | b;RnJlc2glMjBGb29k |
| `product.superDepartmentName` | `string` | Fresh Food |
| `product.title` | `string` | Tesco Pink Lady Apples 5 Pack |
| `product.tpnb` | `string` | 77091643 |
| `product.tpnc` | `string` | 284477542 |

## Execution behavior

A `200` response completed inline. A `202` response was queued; poll `GET /jobs/{id}` until the job reaches `completed` or `failed`. Use an `Idempotency-Key` when retrying must not create a duplicate logical job.

## Related documentation

- [Authentication](https://docs.upscrape.com/docs/api/authentication)
- [Jobs and results](https://docs.upscrape.com/docs/api/jobs)
- [Errors and retries](https://docs.upscrape.com/docs/api/errors)
- [Idempotency](https://docs.upscrape.com/docs/api/idempotency)
