Otto Product Scraper
Pricing
from $2.99 / 1,000 results
Otto Product Scraper
Otto Product Scraper collects Otto.de product listings, including price, discount, brand, rating, stock, and image, so e-commerce teams can track prices and build product feeds without copying anything by hand.
Pricing
from $2.99 / 1,000 results
Rating
0.0
(0)
Developer
Kawsar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Otto Product Scraper: Extract Product Data from Otto.de
Otto Product Scraper collects product listings from Otto.de and returns them as clean, structured records. Type a keyword like "t-shirt", or paste an Otto listing URL you have already filtered, and it pulls every product on the results with title, brand, price, discount, rating, stock, color, and image. It is for anyone who needs Otto.de product data without copying and pasting by hand.
Otto.de is one of the largest online retailers in Germany, with millions of products across fashion, furniture, electronics, and home goods. This Otto scraper turns any search or category into a spreadsheet you can sort, filter, and track over time.
What this Otto.de scraper does
- Searches Otto.de by keyword and reads every product on the results
- Scrapes any Otto.de search or category URL you paste in
- Returns full pricing, including the current price, the original price, and the discount percent
- Includes customer ratings, review counts, stock status, and color variants
- Pages through results automatically until it reaches your per-query limit
- Exports to CSV, JSON, Excel, or Google Sheets, and runs on a schedule
Use cases
- Price monitoring: track prices and discounts on Otto.de and react when a competitor changes theirs
- Stock tracking: watch availability on specific products or whole categories over time
- Product feed building: turn Otto listings into a structured feed for your own catalog or marketplace research
- Competitor analysis: compare brands, pricing, and ratings across a category in the German market
- Reselling and arbitrage: find discounted products with strong ratings and healthy stock
- Deal and coupon sites: surface the biggest markdowns by sorting on the discount percent field
- SEO and content work: gather product details and images for comparison pages and buyer guides
- Market research: measure how many products a brand has on Otto and where they sit on price
How to use the Otto Product Scraper
- Add your scrape.do token as a secret environment variable named
SCRAPE_DO_TOKENin the actor settings (see Setup below). - Enter one or more search keywords in
searchQueries, or paste Otto listing URLs intostartUrls. You can use both at once. - Set
maxItemsto how many products you want per query or per URL. - Run the actor. Watch the log to see products come in page by page.
- Export the dataset as CSV, JSON, Excel, or Google Sheets, or pull it from the Apify API.
How data is collected
The actor reads the product data that Otto.de embeds in its search and category pages, then pages through the results to gather every product. Each product comes back with full pricing and rating data, not just the handful shown before you scroll. Requests are routed through a bypass service so pages load the same way a normal browser sees them.
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQueries | array | (empty) | Keywords to search on Otto.de, one per line. Each becomes an Otto search such as https://www.otto.de/suche/t-shirt/ |
startUrls | array | (empty) | Direct Otto.de search or category URLs, one per line |
maxItems | integer | 100 | Maximum products to collect for each search query and each start URL. The limit is per listing, not a global total |
requestTimeoutSecs | integer | 60 | How long to wait for a single request before giving up |
Provide at least one search query or one start URL. You can combine both in a single run. Because maxItems is per listing, a run with two queries and a limit of 100 can return up to 200 products.
Example input
{"searchQueries": ["t-shirt", "sneaker"],"startUrls": ["https://www.otto.de/mode/herrenmode/shirts/"],"maxItems": 200}
This run collects up to 200 products for "t-shirt", up to 200 for "sneaker", and up to 200 from the men's shirts category, each tagged with where it came from.
What data does this actor extract?
The actor stores results in a dataset. Each product record looks like this:
{"productId": "S056Y0P8","variationId": "S056Y0P80J0I","productTitle": "TOM TAILOR T-Shirt Herren Printshirt Regular Fit (Vorteilspack, 4-tlg)","brand": "TOM TAILOR","productUrl": "https://www.otto.de/p/tom-tailor-t-shirt-...-S056Y0P8/?variationId=S056Y0P80J0I","imageUrl": "https://i.otto.de/i/otto/1c191365-c97a-5223-b7a6-1e425dec656f","price": 49.99,"originalPrice": 69.99,"discountPercent": 29,"currency": "EUR","onSale": true,"isStartingPrice": false,"availability": "AVAILABLE","availabilityText": "lieferbar - in 2-3 Werktagen bei dir","ratingValue": 4.5,"reviewCount": 35,"colorName": "Woodland Green (10373)","colorCount": 8,"popular": true,"searchQuery": "t-shirt","sourceUrl": "https://www.otto.de/suche/t-shirt/","scrapedAt": "2026-07-05T09:00:48Z"}
| Field | Type | Description |
|---|---|---|
productId | string | Product identifier shared across variants |
variationId | string | Identifier of the listed variant |
productTitle | string | Full product title |
brand | string | Brand name |
productUrl | string | Link to the product detail page |
imageUrl | string | Main product image |
price | number | Current selling price |
originalPrice | number | Recommended retail price before discount |
discountPercent | number | Discount off the original price, in percent |
currency | string | Currency code, EUR for Otto.de |
onSale | boolean | Whether the product is marked on sale |
isStartingPrice | boolean | Whether the price is a "from" price across variants |
availability | string | Stock state such as AVAILABLE |
availabilityText | string | Delivery note shown on the listing |
ratingValue | number | Average customer rating out of 5 |
reviewCount | integer | Number of customer reviews |
colorName | string | Color of the listed variant |
colorCount | integer | Number of color variants |
popular | boolean | Whether Otto flags the product as popular |
searchQuery | string | Query that produced the result |
sourceUrl | string | Listing page the product came from |
scrapedAt | string | UTC timestamp of the scrape |
Tips for better results
- To scrape a filtered or sorted set, apply the filters on Otto.de first, then copy the URL from your browser into
startUrls. The actor keeps your sort order and filters. - Category pages work the same as search pages. Paste any Otto category URL into
startUrls. - Keep
maxItemsmodest while testing, then raise it once the output looks right. Each page adds about 18 products. - Sort the dataset by
discountPercentto find the deepest markdowns, or byratingValueto find the best-reviewed products.
FAQ
Does it get the price for every product, or only the first few? Every product on the pages it fetches comes back with full price and rating data, including the products that normally load only as you scroll.
Is maxItems a total for the whole run?
No. It is a per-listing limit. Each search query and each start URL collects up to maxItems products on its own, so more queries means more products.
Can I scrape a category instead of a search?
Yes. Paste the category URL into startUrls. The actor handles Otto search pages and category pages the same way.
Can I scrape filtered or sorted results?
Yes. Filter or sort on Otto.de, then copy the resulting URL into startUrls. The actor follows that exact listing.
How many products can it collect per query?
Up to the maxItems value you set, from 1 to 1000. The actor pages through results until it hits that number or runs out of products.
In what formats can I export the data? Any Apify dataset format works, including CSV, JSON, Excel, and Google Sheets, plus the API.
Is the data in German? Yes. Otto.de is a German store, so titles, colors, and delivery notes come back in German with prices in EUR.
Can I run this on a schedule? Yes. Use Apify Schedules to run it every hour, day, or week and keep your price and stock data current.
Integrations
Connect Otto Product Scraper with other apps and services using Apify integrations. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and many more. You can also use webhooks to trigger actions whenever a run finishes and fresh Otto.de product data is ready.
Start scraping Otto.de product data now to keep prices, stock, and ratings in front of you without the manual work.