# Tesco UK & Ireland Scraper (`parsebird/tesco-scraper`) Actor

Scrape Tesco.com and Tesco.ie grocery products by search, category or URL. Get prices, Clubcard prices, promotions, unit prices, stock, ingredients, allergens, nutrition, ratings and reviews. Export JSON, CSV, Excel.

- **URL**: https://apify.com/parsebird/tesco-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.39 / 1,000 products

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Tesco UK & Ireland Scraper

Tesco UK & Ireland Scraper extracts grocery product data from [Tesco.com](https://www.tesco.com/groceries/) and [Tesco.ie](https://www.tesco.ie/groceries/) by search keyword, category or URL, with prices, Clubcard prices, promotions, ingredients, nutrition, ratings and reviews.

<table><tr>
<td style="border-left:4px solid #00539F;padding:12px 16px;font-weight:600">
Search Tesco by keyword, pick whole departments, or paste product, search and category links from tesco.com and tesco.ie, and get 80+ fields per product, from shelf price, Clubcard price and Aldi Price Match to ingredients, allergens, nutrition per 100g and customer reviews.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```text
Tesco UK & Ireland Scraper (Apify actor parsebird/tesco-scraper) scrapes grocery products from tesco.com (UK, GBP) and tesco.ie (Ireland, EUR). Call it with the Apify API client: client.actor("parsebird/tesco-scraper").call(run_input={"searchQueries": ["milk"], "region": "UK", "maxItems": 100}). Inputs: searchQueries (array of strings, keywords); startUrls (array of strings; Tesco product URLs /groceries/en-GB/products/<id>, search URLs /groceries/en-GB/search?query=<kw>, category URLs /groceries/en-GB/shop/<department>/<aisle>/all or /shop/en-GB/browse/..., tesco.ie en-IE equivalents; region comes from the domain); categories (array of department slugs: fresh-food, bakery, frozen-food, treats-and-snacks, food-cupboard, drinks, baby-and-toddler, health-and-beauty, pets, household, home-and-furniture, home-and-living, tesco-finest, garden-diy-and-car-care, electronics-and-gaming, toys-and-games, parties-and-seasonal, sports-and-leisure, hobbies-and-stationery, marketplace); region ("UK" or "IE", default "UK"); maxItems (integer, default 100); includeProductDetails (boolean, default true); includeReviews (boolean, default false); maxReviewsPerProduct (integer 1-500, default 20); reviewsPostedWithin (string like "90 days", "6 months", "1 year" or "2026-01-31"); sortBy ("relevance", "price-ascending", "price-descending"); startPage (integer, default 1); maxPagesPerSource (integer, 0 = all); deduplicateProducts (boolean, default true). Output: one row per product with product_id, base_product_id, tpnb, gtin, name, brand_name, url, region, currency, price, unit_price, unit_of_measure, clubcard_price, promotions, is_low_everyday_pricing, is_low_price_promise, price_matches_competitor, competitors, in_stock, status, is_new, is_sponsored, buy_limit, super_department, department, aisle, shelf, image_url, total_reviews, overall_rating, and with details: description, images, pack_size, net_contents, ingredients, allergens, allergens_highlighted, nutrition, nutrition_per_serving, nutrition_table, storage_instructions, cooking_instructions, origin_information, recycling_info, warnings, features, marketing_text, manufacturer_address, ratings_distribution; with reviews: reviews (review_id, posted_at, rating, title, text, verified_buyer). API docs: https://apify.com/parsebird/tesco-scraper/api. Get a token: https://console.apify.com/settings/integrations
```

### What is Tesco UK & Ireland Scraper?

**Tesco UK & Ireland Scraper** turns Tesco's online grocery store into structured data. It covers both [Tesco UK](https://www.tesco.com/groceries/en-GB/) (prices in GBP) and [Tesco Ireland](https://www.tesco.ie/groceries/en-IE/) (prices in EUR). Give it a keyword like `protein yoghurt`, a whole department like Fresh Food, or any Tesco link, and it returns **every matching product with price, Clubcard price, unit price, promotions, stock status, barcode (GTIN), category path, ingredients, allergens, nutrition and reviews**.

It works as a **Tesco API** alternative: no Tesco account, no login, no browser. The easiest way to try it is to keep the example keyword `milk`, click **Start**, and download your Tesco product data as JSON, CSV or Excel a few seconds later.

### What can Tesco UK & Ireland Scraper do?

- 🔎 **Search by keyword**: scrape Tesco search results for any number of keywords in the UK or Ireland store.
- 🗂️ **Scrape whole categories**: pick departments such as Fresh Food, Drinks or Health & Beauty, or paste any aisle or shelf link for a narrower scrape.
- 🔗 **Paste any Tesco URL**: product, search and category pages from tesco.com and tesco.ie, including the newer `/shop/en-GB/browse/...` links. Each URL keeps its own region.
- 💷 **Track prices and offers**: shelf price, unit price, numeric **Clubcard price**, every active promotion with start and end dates, Low Everyday Price and Aldi Price Match flags.
- 🥗 **Full product details**: ingredients, allergens highlighted in bold on Tesco, nutrition per 100g and per serving, reference intakes, storage, cooking and freezing instructions, origin, recycling and manufacturer address.
- ⭐ **Ratings and reviews**: overall rating, star distribution and customer reviews, with a date window such as `90 days` and a per-product limit.
- ↕️ **Sort and page like the site**: relevance or price order, start page and max pages per search or category.

As an Apify Actor it also gives you [scheduling](https://docs.apify.com/platform/schedules) for daily price monitoring, a [REST API](https://docs.apify.com/api/v2), [integrations](https://apify.com/integrations) with Google Sheets, Zapier, Make, Slack and webhooks, and exports to JSON, CSV, Excel, XML and HTML.

### What data can you extract from Tesco?

| Field | Description |
|-------|-------------|
| `product_id`, `tpnb`, `base_product_id` | Tesco product IDs (the `product_id` is the number in the product URL) |
| `gtin` | Barcode (GTIN / EAN) |
| `name`, `brand_name`, `url`, `image_url`, `images` | Product name, brand, product page and images |
| `region`, `currency` | `UK` / `GBP` or `IE` / `EUR` |
| `price`, `unit_price`, `unit_of_measure` | Shelf price and price per kg, litre or each |
| `clubcard_price` | Single-item Clubcard price as a number, e.g. `0.5` for "50p Clubcard Price" |
| `promotions` | Every promotion: text, start and end date, Clubcard flag, unit selling info |
| `is_low_everyday_pricing`, `is_low_price_promise`, `price_matches_competitor`, `competitors` | Tesco pricing badges and Aldi Price Match |
| `in_stock`, `status`, `buy_limit`, `is_new`, `is_sponsored` | Availability, max quantity per order, new and sponsored flags |
| `super_department`, `department`, `aisle`, `shelf` | Tesco category path |
| `ingredients`, `allergens`, `allergens_highlighted` | Ingredients text, allergen advice and the allergens Tesco shows in bold |
| `nutrition`, `nutrition_per_serving`, `nutrition_table` | Nutrition per 100g/100ml and per serving, with reference intakes |
| `pack_size`, `net_contents`, `number_of_uses` | Pack size, net contents and servings |
| `storage_instructions`, `cooking_instructions`, `freezing_instructions` | Storage and preparation |
| `origin_information`, `recycling_info`, `warnings`, `manufacturer_address` | Origin, packaging recycling, warnings and manufacturer |
| `total_reviews`, `overall_rating`, `ratings_distribution`, `reviews` | Ratings and customer reviews |

### How to scrape Tesco

1. Open [Tesco UK & Ireland Scraper](https://apify.com/parsebird/tesco-scraper) in Apify Console.
2. Type one or more **Search keywords**, pick **Categories**, or paste **Tesco URLs** from [tesco.com](https://www.tesco.com/groceries/) or [tesco.ie](https://www.tesco.ie/groceries/).
3. Choose the **Region** (United Kingdom or Ireland) for keywords and categories.
4. Set **Max products**. Turn on **Include reviews** if you need customer reviews.
5. Click **Start** and wait for the run to finish.
6. Download the data from the **Output** tab as JSON, CSV, Excel, XML or HTML, or read it through the [API](https://apify.com/parsebird/tesco-scraper/api).

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `searchQueries` | array of strings | No\* | — | Keywords to search Tesco with, e.g. `["milk", "protein bars"]` |
| `startUrls` | array of strings | No\* | — | Tesco product, search or category URLs from tesco.com or tesco.ie |
| `categories` | array | No\* | — | Whole departments, e.g. `["fresh-food", "drinks"]` |
| `region` | string | No | `UK` | `UK` (tesco.com, GBP) or `IE` (tesco.ie, EUR) for keywords and categories |
| `maxItems` | integer | No | 100 | Maximum products to save across all inputs |
| `includeProductDetails` | boolean | No | `true` | Add ingredients, allergens, nutrition, storage, origin, images and more |
| `includeReviews` | boolean | No | `false` | Add customer reviews to each product |
| `maxReviewsPerProduct` | integer | No | 20 | Reviews per product, up to 500 |
| `reviewsPostedWithin` | string | No | — | Keep reviews newer than e.g. `7 days`, `3 months`, `1 year` or `2026-01-31` |
| `sortBy` | string | No | `relevance` | `relevance`, `price-ascending` or `price-descending` |
| `startPage` | integer | No | 1 | Results page to start from (24 products per Tesco page) |
| `maxPagesPerSource` | integer | No | 0 | Max result pages per keyword, URL or category (0 = all) |
| `deduplicateProducts` | boolean | No | `true` | Save each product only once per run |
| `proxyConfiguration` | object | No | off | Not needed for Tesco |

\* Add at least one keyword, URL or category.

**Supported Tesco URLs**

| URL | Type |
|-----|------|
| `https://www.tesco.com/groceries/en-GB/products/272202380` | Product |
| `https://www.tesco.com/shop/en-GB/products/254656543` | Product (new-style link) |
| `https://www.tesco.com/groceries/en-GB/search?query=milk` | Search (`sortBy` and `page` in the URL are respected) |
| `https://www.tesco.com/groceries/en-GB/shop/fresh-food/all` | Department |
| `https://www.tesco.com/shop/en-GB/browse/fresh-food/fresh-fruit/bananas` | Aisle (new-style link) |
| `https://www.tesco.com/shop/en-GB/browse/fresh-food/milk-butter-and-eggs/milk/semi-skimmed-milk` | Shelf |
| `https://www.tesco.ie/groceries/en-IE/products/252293306` | Product, Ireland |
| `https://www.tesco.ie/groceries/en-IE/shop/bakery/all` | Department, Ireland |

### Output example

One product with details and one review:

```json
{
  "product_id": "330781027",
  "base_product_id": "98278973",
  "tpnb": "98278973",
  "gtin": "04025500307721",
  "name": "Muller Corner Oreo Yogurt 124g",
  "brand_name": "Müller",
  "url": "https://www.tesco.com/groceries/en-GB/products/330781027",
  "region": "UK",
  "currency": "GBP",
  "price": 0.95,
  "unit_price": 7.66,
  "unit_of_measure": "kg",
  "clubcard_price": 0.5,
  "has_promotion": true,
  "promotions": [
    {
      "promotion_id": "102975899",
      "description": "50p Clubcard Price",
      "start_date": "2026-09-15T23:00:00Z",
      "end_date": "2026-11-18T00:00:00Z",
      "unit_selling_info": "£4.03/kg",
      "is_clubcard_price": true
    }
  ],
  "is_low_everyday_pricing": false,
  "is_low_price_promise": false,
  "price_matches_competitor": false,
  "competitors": [],
  "in_stock": true,
  "status": "AvailableForSale",
  "is_new": true,
  "is_sponsored": false,
  "buy_limit": 99,
  "sale_type": "SingleProduct",
  "super_department": "Fresh Food",
  "department": "Yogurts",
  "aisle": "Indulgent Yogurts, Corners & Rice Pudding",
  "shelf": "Corner Yoghurt & Splitpot Yoghurts",
  "image_url": "https://digitalcontent.api.tesco.com/v2/media/ghs/c4a8beab-3643-4004-9f6c-6018b49cb682/ea37cc9f-81de-4e78-8b98-8bae71790f4c_1598180580.jpeg",
  "total_reviews": 1,
  "overall_rating": 3,
  "description": "Vanilla creme flavour yogurt with Oreo biscuit pieces (7%).",
  "pack_size": "124",
  "pack_size_unit": "G",
  "net_contents": "124g ℮",
  "ingredients": "Yogurt (Milk), Sugar, Water, Wheat Flour (Gluten), Rapeseed Oil, Modified Maize Starch, ...",
  "allergens_highlighted": ["Milk", "Wheat", "Soya"],
  "nutrition": {
    "measure": "(Per 100g):",
    "Energy": "529kJ (125kcal)",
    "Fat": "3.0g",
    "of which saturates": "1.3g",
    "Carbohydrate": "19.0g",
    "of which sugars": "15.5g",
    "Protein": "4.9g",
    "Salt": "0.25g",
    "Calcium": "131mg (20% of NRV per pot)"
  },
  "storage_instructions": ["Best before. Keep refrigerated."],
  "ratings_distribution": [{ "rating": 3, "count": 1, "share": 1.0 }],
  "reviews": [
    {
      "review_id": "9b9c7655-2f29-4b5b-8a87-3d85678725b8",
      "posted_at": "2026-09-24T22:27:12.526Z",
      "rating": 3,
      "title": "Tinniest b",
      "text": "Tinniest bit of oreos!",
      "verified_buyer": false
    }
  ],
  "source": "search: muller corner",
  "scraped_at": "2026-10-05T11:44:55Z"
}
```

Some fields are shortened above. Download the full results as JSON, CSV, Excel, XML or HTML from the **Output** tab.

### How to use the Tesco Scraper API

Run the scraper from your own code with the [Apify API client](https://docs.apify.com/api/client/python/).

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("parsebird/tesco-scraper").call(run_input={
    "searchQueries": ["semi skimmed milk", "free range eggs"],
    "region": "UK",
    "maxItems": 200,
    "sortBy": "price-ascending",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["name"], item["price"], item["clubcard_price"])
```

**JavaScript**

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('parsebird/tesco-scraper').call({
    startUrls: ['https://www.tesco.ie/groceries/en-IE/shop/bakery/all'],
    maxItems: 500,
    includeReviews: true,
    reviewsPostedWithin: '90 days',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((p) => [p.name, p.price, p.currency]));
```

Get your token in [Apify Console → Integrations](https://console.apify.com/settings/integrations). Full endpoint reference is on the [API tab](https://apify.com/parsebird/tesco-scraper/api).

### Use cases

- **Grocery price monitoring**: schedule a daily run on your categories and track shelf prices, Clubcard prices and promotions over time.
- **Competitor and promotion analysis**: see which brands run Clubcard deals, multibuys and Aldi Price Match, and when promotions start and end.
- **Product catalog and GTIN matching**: match Tesco products to your own catalog by barcode, pack size and category path.
- **Nutrition and ingredient research**: build datasets of ingredients, allergens and nutrition per 100g for health, diet or food-tech apps.
- **Review and sentiment analysis**: collect recent customer reviews to measure how shoppers rate a product or a brand.
- **UK vs Ireland comparison**: scrape the same keyword in both regions to compare range and pricing in GBP and EUR.

### How it works

1. Keywords, categories and URLs are turned into Tesco searches, category listings and product lookups for the right region.
2. The scraper pages through results in Tesco's own order (or price order), up to your limits.
3. With details on, each product's full product page data is added; with reviews on, reviews are added newest first.
4. Each product is saved as one row and the run stops at **Max products**.

The scraper reads the same data Tesco's website shows to a logged-out visitor, so prices are standard online prices and Clubcard prices as displayed on the site.

### How much does it cost to scrape Tesco?

Tesco UK & Ireland Scraper uses pay-per-event pricing. You pay per product saved, and product details and reviews are included in that price.

| Event | Free | Bronze | Silver | Gold |
|-------|------|--------|--------|------|
| `product-scraped` (per 1,000 products) | **$1.99** | **$1.79** | **$1.59** | **$1.39** |

For example, 1,000 Tesco products with full details and reviews cost $1.99 on the Free plan. Compute and proxy costs are included in the event price. Apify's Free plan comes with monthly platform credits you can use on this scraper, and you can set a maximum spend per run so a run never costs more than you expect.

### FAQ

**Does it work for Tesco Ireland?**
Yes. Set **Region** to Ireland for keywords and categories, or paste tesco.ie links. Irish prices are in EUR and the Irish store has its own departments, such as Home & Living and Tesco Finest.

**Which categories can I scrape?**
Pick any department in **Categories**, or paste the URL of any department, aisle or shelf from Tesco. If a department doesn't exist in the selected region, the run logs a warning and continues with your other inputs.

**How do I get Clubcard prices?**
They are included automatically. `clubcard_price` holds the number for single-item Clubcard prices such as "£1.50 Clubcard Price" or "50p Clubcard Price". Multibuy offers such as "Any 2 for £4 Clubcard Price" are kept in `promotions` with their full text.

**How fast is it?**
Without product details, about 1,000 products take around 10 seconds. With details, expect about 5 minutes per 500 products, since Tesco limits how fast product pages can be read. Reviews add time for products with many reviews.

**Why are some products in my results marked `is_sponsored`?**
Tesco shows a few sponsored products at the top of some category pages. They are real products and are included, flagged with `is_sponsored: true` so you can filter them out.

**Can I get more than 10,000 products from one category?**
Yes. Tesco reports at most 10,000 results for very large departments, but the scraper keeps paging until the real end of the list.

**Do I need a proxy or a Tesco account?**
No. The scraper works without login and without a proxy.

**Can I schedule it and send data to other tools?**
Yes. Use [Apify schedules](https://docs.apify.com/platform/schedules) for daily or weekly runs and [integrations](https://apify.com/integrations) to send results to Google Sheets, Slack, Zapier, Make or a webhook.

**Something is missing or not working?**
Open an issue on the **Issues** tab and we will look into it. Feature requests are welcome.

### Is it legal to scrape Tesco?

Our scrapers are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our scrapers, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. You can also read our blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### Other grocery and retail scrapers

| Actor | What it scrapes |
|-------|-----------------|
| [Woolworths Australia Grocery Products Scraper](https://apify.com/parsebird/woolworths-au-scraper) | Woolworths AU grocery products and prices |
| [ALDI Australia Scraper](https://apify.com/parsebird/aldi-australia-scraper) | ALDI Australia products and prices |
| [Walmart Product Scraper](https://apify.com/parsebird/walmart-product-scraper) | Walmart product details and prices |
| [Target Product Scraper](https://apify.com/parsebird/target-product-scraper) | Target product details and prices |
| [Amazon Search Scraper](https://apify.com/parsebird/amazon-search-scraper) | Amazon search results |
| [Zepto Product Scraper](https://apify.com/parsebird/zepto-product-scraper) | Zepto quick-commerce products in India |

# Changelog

This Actor's version history is a separate document: https://apify.com/parsebird/tesco-scraper/changelog.md

# Actor input Schema

## `searchQueries` (type: `array`):

Enter keywords to search Tesco with, one per line, e.g. <code>milk</code>, <code>protein bars</code>, <code>nappies</code>. Each keyword is searched in the selected region.

## `startUrls` (type: `array`):

Paste Tesco product, search or category URLs from tesco.com or tesco.ie, e.g. <code>https://www.tesco.com/groceries/en-GB/products/272202380</code>, <code>https://www.tesco.com/groceries/en-GB/search?query=milk</code> or <code>https://www.tesco.com/groceries/en-GB/shop/fresh-food/all</code>. New-style links such as <code>https://www.tesco.com/shop/en-GB/browse/fresh-food/fresh-fruit</code> work too. The region is taken from each URL.

## `categories` (type: `array`):

Pick whole Tesco departments to scrape in the selected region. For a smaller aisle or shelf, paste its URL into <b>Tesco URLs</b> instead.

## `region` (type: `string`):

Choose the Tesco store for search keywords and categories. Prices are in GBP for the UK and EUR for Ireland. URLs always use the region of their own domain.

## `maxItems` (type: `integer`):

Maximum number of products to save across all keywords, URLs and categories.

## `includeProductDetails` (type: `boolean`):

Add the full product page data: description, ingredients, allergens, nutrition per 100g and per serving, storage, cooking and freezing instructions, origin, recycling, manufacturer address, ratings distribution and all images. Turn off for faster price-only scrapes.

## `includeReviews` (type: `boolean`):

Add customer reviews (rating, title, text, date, verified buyer) to each product. Reviews are returned newest first.

## `maxReviewsPerProduct` (type: `integer`):

Maximum number of reviews to add to each product when reviews are on (up to 500).

## `reviewsPostedWithin` (type: `string`):

Only keep reviews newer than this, e.g. <code>7 days</code>, <code>3 months</code>, <code>1 year</code> or a date like <code>2026-01-31</code>. Leave empty for all reviews.

## `sortBy` (type: `string`):

Order of search and category results, like the sort menu on Tesco.

## `startPage` (type: `integer`):

Results page to start from on each search and category (Tesco shows 24 products per page). A <code>page=</code> value inside a pasted URL takes priority.

## `maxPagesPerSource` (type: `integer`):

Stop each search or category after this many Tesco result pages (24 products each). Leave at 0 to go through all pages until <b>Max products</b> is reached.

## `deduplicateProducts` (type: `boolean`):

Skip products already saved from an earlier keyword, URL or category in the same run. Turn off to keep one row per product per source.

## `proxyConfiguration` (type: `object`):

Tesco works without a proxy, so you can leave this off. Add one only if you need requests to come from a specific network.

## Actor input object example

```json
{
  "searchQueries": [
    "milk"
  ],
  "region": "UK",
  "maxItems": 20,
  "includeProductDetails": true,
  "includeReviews": false,
  "maxReviewsPerProduct": 20,
  "sortBy": "relevance",
  "startPage": 1,
  "maxPagesPerSource": 0,
  "deduplicateProducts": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQueries": [
        "milk"
    ],
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/tesco-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQueries": ["milk"],
    "maxItems": 20,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/tesco-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "milk"
  ],
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call parsebird/tesco-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/tesco-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/v6Dx4kBtxWYDAd55V/builds/g0sesxqaxJ1UP5285/openapi.json
