Otto.de Product Scraper - Prices, Ratings & Listings avatar

Otto.de Product Scraper - Prices, Ratings & Listings

Under maintenance

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Otto.de Product Scraper - Prices, Ratings & Listings

Otto.de Product Scraper - Prices, Ratings & Listings

Under maintenance

Scrape otto.de product listings in bulk: brand, title, price, UVP/list price, discount, star rating, reviews, availability, key specs, colours and image. Paste any Otto search or category URL or a keyword - it paginates deep for thousands of products per run. No login or API key.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Nicolas van Arkens

Nicolas van Arkens

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Otto.de Product Scraper — bulk product data from Otto (otto.de)

Scrape product listings from Otto, one of Germany's largest online retailers, in bulk. Paste any Otto search or category URL (or just a keyword) and get one clean, structured row per product: brand, title, current price, UVP / list price, discount, star rating, review count, availability, key specs, colours, image and the product link. No login, no API key, no browser extension.

The actor reads Otto's own product tile-list data feed, so results are complete and accurate — and it paginates deep automatically: a broad term like laptop exposes ~10,000 products, so a single run returns thousands of rows.


What you can do with it

  • Price & competitor monitoring — track Otto prices, UVP (RRP) and discounts across a category over time.
  • Catalog / market research — pull an entire category (brands, specs, ratings, price bands) for analysis.
  • Lead lists for brands & sellers — see which products, brands and price points win on ratings and reviews.
  • Feed building & dropshipping research — export product data (title, price, image, URL) for thousands of items at once.
  • Deal / discount tracking — filter for onSale items and the biggest discountPercent.

Input

Give the actor either full Otto listing URLs, or keywords, or both. Everything takes an ARRAY, so you can scrape many searches/categories in one run.

FieldWhat it does
Otto.de listing URLs (startUrls)One or more otto.de listing pages — a search URL (https://www.otto.de/suche/laptop/) or a category browse page. Copy the URL from your browser after searching/browsing.
Search keywords (searchKeywords)Convenience: each keyword becomes an Otto search and is paginated deep. Use German product terms (e.g. kaffeemaschine, sneaker herren, gaming stuhl).
Max results per start URL (maxResultsPerUrl)Cap on products per URL/keyword. Default 5000. Set high to pull a whole category; lower to sample.
Max pages per start URL (maxPagesPerUrl)Safety cap on how many result windows (18 products each) to fetch per URL. The actor also stops at the listing's real end.
Max results overall (maxResults)Optional total cap across all URLs/keywords combined.
Proxy configuration (proxyConfiguration)Apify Proxy (Germany) is used only as a fallback if a request is blocked. Leave the default in place.

Example input

{
"startUrls": [
"https://www.otto.de/suche/laptop/",
"https://www.otto.de/suche/kaffeemaschine/"
],
"searchKeywords": ["gaming stuhl", "sneaker herren"],
"maxResultsPerUrl": 1000,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyCountry": "DE" }
}

Output

One row per product. Example (trimmed):

{
"productId": "C751291358",
"variationId": "1405001626",
"articleNumber": "C751291358PVX",
"brand": "Melitta",
"title": "Melitta Kaffeevollautomat Solo® 950-766, Pure Silver …",
"category": "Kaffeevollautomaten",
"price": 279.0,
"priceFrom": true,
"listPrice": 509.0,
"comparativePrice": null,
"currency": "EUR",
"onSale": true,
"discountPercent": 45,
"rating": 4.5,
"reviewCount": 510,
"availability": "lieferbar - in 1-2 Werktagen bei dir",
"availabilityState": "AVAILABLE",
"colorCount": 5,
"colorNames": ["Pure Silver", "Pure Black", "…"],
"topInfo": { "Pumpendruck": "15 bar", "Mahlwerk": "Stahl Kegelmahlwerk" },
"isSponsored": false,
"listPosition": 4,
"imageUrl": "https://i.otto.de/i/otto/73a0a275-…?$responsive_ft2$",
"productUrl": "https://www.otto.de/p/melitta-kaffeevollautomat-solo-…/?variationId=1405001626",
"sourceUrl": "https://www.otto.de/suche/kaffeemaschine/",
"resultOffset": 0,
"scrapedAt": "2026-07-26T12:00:00+00:00"
}

Fields

FieldDescription
productId / variationId / articleNumberOtto product, variation and article identifiers.
brandBrand name.
titleFull product name.
categoryOtto product category (e.g. Notebooks).
priceCurrent price, in EUR (a number, e.g. 279.0).
priceFromtrue when price is a "from" starting price (product has variants at different prices).
listPriceUVP / RRP (manufacturer's suggested price) when shown — otherwise null.
comparativePriceAn additional reference/compare-at price when shown.
currencyAlways EUR (Otto is a German store).
onSaletrue when Otto flags the item as reduced.
discountPercentDiscount vs UVP as a whole number (e.g. 45) when the item is reduced.
ratingAverage customer star rating (0–5) — null if the product has no reviews yet.
reviewCountNumber of customer reviews — null if none yet.
availability / availabilityStateDelivery text and state (e.g. AVAILABLE).
colorCount / colorNamesNumber of colour variants and their names.
topInfoKey spec highlights shown on the tile, as a label→value object.
isSponsoredtrue for sponsored (ad) placements.
listPositionThe product's rank position in the listing.
imageUrlMain product image URL.
productUrlDirect link to the product page (with the shown variation).
sourceUrlThe listing URL this product came from.
resultOffsetThe paging offset the product was found at.
scrapedAtUTC timestamp of the scrape.

Pricing

This actor is pay per result — you are charged once for each product row it returns. Blocked or empty responses are never charged.

How pagination works

Otto renders only the first ~18 products of a listing above the fold and lazy-loads the rest. This actor reads Otto's tile-list data feed directly and steps through it in windows of 18 fully-detailed products, so it reaches every product in the search/category — not just the first page. Sponsored placements that repeat across windows are de-duplicated by variation id, so every row is unique.

FAQ

Do I need an Otto account or API key? No. The actor reads public listing data.

Which language / currency? otto.de is the German store, so titles are in German and prices are always in EUR, regardless of proxy country.

Can I scrape a whole category? Yes — paste the category URL (or a broad keyword) and raise maxResultsPerUrl. The actor paginates deep and stops at the listing's real end.

Why is rating / reviewCount sometimes empty? Those products simply have no customer reviews yet on Otto. listPrice is empty when a product has no UVP/RRP to compare against.

Is scraping Otto allowed? The actor only collects publicly visible listing data. You are responsible for using the data in line with Otto's terms and applicable law.