Ocado Product Scraper avatar

Ocado Product Scraper

Pricing

from $1.60 / 1,000 results

Go to Apify Store
Ocado Product Scraper

Ocado Product Scraper

[πŸ’° $1.6 / 1K] Scrape grocery products from Ocado.com: name, brand, price, unit price, pack size, availability, ratings, review count, dietary icons, images and category path. Search by keyword or paste Ocado URLs.

Pricing

from $1.60 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Pull grocery product data from Ocado.com at scale β€” names, brands, prices, price-per-unit, pack sizes, stock status, aggregate star ratings, dietary badges, category breadcrumbs, and product images across the full UK Ocado catalogue. Search by plain keyword like "milk" or paste any Ocado search or category URL. Built for pricing analysts, grocery-tech teams, and market researchers who need clean, structured Ocado product data without hand-crafting search links or maintaining their own scraper.

Why This Scraper?

  • Keyword search, not just URLs β€” type milk or organic eggs and each term runs its own Ocado search. No hand-building ?q= links the way URL-only tools force you to.
  • Six sort orders on demand β€” Recommended, Price lowβ†’high, Price highβ†’low, Price per unit lowβ†’high, Price per unit highβ†’low, and Customer rating, applied before collection.
  • Normalized price-per-unit in GBP β€” every product carries a unit price with its measure (per litre, per kg, per 100g), converted from Ocado's raw pence (GBX) into clean pounds so you can compare value across pack sizes directly.
  • Live promotions captured β€” current deal text per product ("Now Β£1.40, was Β£2.10", "Buy any 2 for Β£4", "Everyday Savers"), so you can flag every product on offer without a second lookup.
  • Aggregate rating plus review count β€” average star rating and total number of customer reviews on every product row, ready for ranking and quality analysis.
  • Dietary and attribute badges β€” the actual on-pack labels (e.g. Vegetarian, Vegan, Organic, Lactose Free, Freezable) captured as a list per product.
  • Category breadcrumb trail β€” the full Ocado category path for every product, so you can group and segment the catalogue by aisle without guessing.
  • Freshness signal built in β€” guaranteed minimum product life (e.g. "3 days", "1 week") for perishables, plus alcohol, newly-listed, and time-restricted flags.
  • Primary image plus gallery β€” a main product image URL and a de-duplicated list of additional images for every item.
  • Cost control per input β€” cap results per keyword or URL, or set unlimited, and keep a run going past a single failed input.

Use Cases

Pricing & Competitive Intelligence

  • Track Ocado prices on staple products over time
  • Compare price-per-unit across pack sizes and brands
  • Monitor own-label vs. branded price gaps
  • Benchmark a competitor's shelf against Ocado's catalogue

Market & Category Research

  • Map an entire category by breadcrumb path
  • Measure brand presence and assortment depth in an aisle
  • Spot newly listed products with the new-item flag
  • Analyse dietary-badge coverage (vegan, organic, gluten-free) across a category

Product & Assortment Analytics

  • Build a structured product feed with images and pack sizes
  • Rank products by average rating and review count
  • Segment perishables by guaranteed product life
  • Flag alcohol and time-restricted lines for compliance filtering

Data Enrichment & Integration

  • Enrich an existing SKU catalogue with current Ocado pricing and stock
  • Feed product data into dashboards and BI tools
  • Power price-comparison and shopping-assistant apps
  • Keep a nightly product feed in sync via scheduled runs

Getting Started

Search by Keyword

The simplest way to start β€” one keyword:

{
"searchQueries": ["milk"],
"maxResults": 100
}

Multiple Keywords, Sorted by Value

{
"searchQueries": ["organic eggs", "greek yogurt", "olive oil"],
"sortBy": "pricePerAscending",
"maxResults": 200
}

Paste Ocado URLs

Paste any Ocado search or category page URL β€” the scraper classifies each automatically:

{
"startUrls": [
"https://www.ocado.com/search?q=coffee",
"https://www.ocado.com/categories/fresh-chilled-food/dairy-eggs/9571f5bf-9a4c-48ff-be4b-9bdcfd080616"
],
"maxResults": 500,
"ignoreUrlFailures": true
}
{
"searchQueries": ["cheddar cheese"],
"startUrls": ["https://www.ocado.com/search?q=butter"],
"sortBy": "customerRating",
"maxResults": 0,
"ignoreUrlFailures": true
}

Input Reference

What to Scrape

ParameterTypeDefaultDescription
searchQueriesstring[]["milk"]Keywords to search on Ocado, such as "milk" or "organic eggs". Each keyword runs its own search. Leave empty if you are pasting URLs.
startUrlsstring[][]Paste Ocado search or category page URLs. A search URL's keyword and sort order are replayed; category URLs must be a leaf-category page. Leave empty if you are using keywords.

Options

ParameterTypeDefaultDescription
sortByselectRecommended (Ocado default)Order products before they are collected: Recommended, Price: low to high, Price: high to low, Price per unit: low to high, Price per unit: high to low, or Customer rating: highest first. A sort inside a pasted URL takes priority.
maxResultsinteger100Maximum number of products to return per search keyword or URL. Set to 0 for unlimited.
ignoreUrlFailuresbooleantrueKeep the run going if one keyword or URL fails, instead of stopping the whole run.

Output

Every product is one flat row. Here is a representative result:

{
"productId": "12345678",
"retailerProductId": "560291011",
"name": "Ocado British Semi Skimmed Milk",
"brand": "Ocado",
"promotions": ["Now Β£1.40, was Β£2.10"],
"packSizeDescription": "2.27L (4 pints)",
"price": 1.45,
"currency": "GBP",
"unitPrice": 0.64,
"unitPriceMeasure": "PER_LITRE",
"available": true,
"timeRestricted": false,
"isAlcohol": false,
"isNew": false,
"mainImage": "https://www.ocado.com/productImages/560/56029101_0_640x640.jpg",
"images": [
"https://www.ocado.com/productImages/560/56029101_1_640x640.jpg"
],
"attributeIcons": ["Vegetarian"],
"averageRating": 4.7,
"reviewCount": 328,
"taxCodes": ["Zero rated"],
"guaranteedProductLife": "5 days",
"categoryPath": ["Fresh & Chilled", "Milk", "Fresh Milk"],
"url": "https://www.ocado.com/products/ocado-british-semi-skimmed-milk/560291011",
"searchQuery": "milk",
"sourceUrl": null,
"scrapedAt": "2026-07-03T14:30:00+00:00"
}

Core Fields

FieldTypeDescription
productIdstringOcado product identifier
retailerProductIdstringRetailer/SKU product id used to build the product URL
namestringFull product name
brandstringBrand name
promotionsstring[]Current deal/offer descriptions (e.g. "Now Β£1.40, was Β£2.10", "Buy any 2 for Β£4") β€” empty when the product has no offer
packSizeDescriptionstringPack size text (e.g. "1 litre", "6 x 400g")
urlstringCanonical product page URL

Pricing

FieldTypeDescription
pricenumberCurrent product price
currencystringCurrency code (GBP)
unitPricenumberPrice per unit, normalized to GBP
unitPriceMeasurestringUnit for the unit price (e.g. PER_LITRE, PER_KG)
availablebooleanWhether the product is currently in stock
taxCodesstring[]Tax code display names

Ratings & Attributes

FieldTypeDescription
averageRatingnumberAggregate customer star rating
reviewCountintegerTotal number of customer reviews
attributeIconsstring[]Dietary / attribute badge labels (e.g. Vegetarian, Vegan, Organic)
guaranteedProductLifestringGuaranteed minimum product life (e.g. "5 days")
categoryPathstring[]Category breadcrumb trail

Images & Flags

FieldTypeDescription
mainImagestringPrimary product image URL
imagesstring[]Additional product image URLs
isAlcoholbooleanAlcoholic product flag
isNewbooleanNewly listed product flag
timeRestrictedbooleanProduct has a time-of-day purchase restriction

Run Context

FieldTypeDescription
searchQuerystringOriginating keyword (when from a search)
sourceUrlstringOriginating listing URL (when from a URL)
scrapedAtstringISO timestamp of extraction

Tips for Best Results

  • Start small β€” set maxResults to 10–50 on your first run to confirm the data matches your needs, then scale up.
  • Only leaf category pages list products β€” when pasting a category URL, use the deepest sub-category (e.g. "Fresh Milk", not "Dairy"). Top-level category pages return no products.
  • Use ?q= search URLs β€” a pasted Ocado search URL replays its keyword and sort order. Ocado ignores non-standard keyword parameters, so stick to the standard search link.
  • Compare value with price-per-unit sort β€” sort by "Price per unit: low to high" to surface the best-value pack size across brands in one pass, since pack sizes vary widely.
  • A URL's own sort wins β€” if a pasted URL already contains a sort, it overrides the sortBy input for that URL.
  • Keep failures non-fatal β€” leave ignoreUrlFailures on when running many keywords or URLs so one bad input never aborts the whole run.
  • Set maxResults to 0 for a full sweep β€” use unlimited only when you genuinely want the entire result set for a keyword or category.

Pricing

From $1.60 per 1,000 results β€” cleaner output and keyword search at a lower rate than URL-only alternatives. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

ResultsNo discountBronzeSilverGold
100$0.19$0.18$0.17$0.16
1,000$1.90$1.80$1.70$1.60
10,000$19.00$18.00$17.00$16.00
100,000$190.00$180.00$170.00$160.00

A "result" is any product row in the output dataset. No compute or time-based charges β€” you pay per result, plus a small fixed per-run start fee.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n β€” Workflow automation
  • Google Sheets β€” Direct spreadsheet export
  • Slack / Email β€” Notifications on new results
  • Webhooks β€” Trigger custom APIs on run completion
  • Apify API β€” Full programmatic access

This actor is designed for legitimate price monitoring, market research, and product analysis. Users are responsible for complying with applicable laws and Ocado's Terms of Service. Collect only publicly available product information, respect intellectual property, and do not use extracted data for any unlawful purpose.