Otto.de Scraper - German Online Shop Products & Prices
Pricing
from $2.50 / 1,000 results
Otto.de Scraper - German Online Shop Products & Prices
Scrape Otto.de, Germany's largest domestic online retailer. Extract product name, brand, price, currency, stock availability, condition and customer rating from any search or category page. No login, no API key.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Scrape Otto.de, Germany's largest domestic online retailer. Extract product name, brand, price, currency, stock availability, condition and customer rating from any search or category page. No login, no API key.
โจ What this Actor does
- Monitor competitor pricing on the German market day by day.
- Track stock availability for a brand across a category.
- Build a product and rating dataset for demand analysis.
- Spot new products entering a category before they are advertised.
๐ Quick start
- Fill in the input below โ the example is already prefilled, so you can just press Start.
- Watch the log: it names every source it reaches and how many rows each returned.
- Export from the Storage tab as JSON, CSV, Excel or feed it straight into your own tools.
๐ฅ Input
{"searchTerms": ["laptop","monitor"],"maxPagesPerTerm": 5,"maxItems": 500}
Every field is documented in the input form. Nothing here needs an API key or a login.
๐ค Output
One row per record, with these columns:
| Field | Type | Description |
|---|---|---|
name | string | Full product title as listed. |
brand | string | Manufacturer brand. |
price | number | Current asking price. |
currency | string | Currency of the price, normally EUR. |
availability | string | InStock, OutOfStock and so on. |
condition | string | New or refurbished, where stated. |
offerCount | number | How many variant offers the product carries. |
ratingValue | number | Average customer rating. |
ratingCount | number | How many reviews that average is built on. |
variationId | string | Otto's identifier for the shown variant. |
imageUrl | string | Product image. |
productUrl | string | Public product page. |
source | string | Search term or category the row came from. |
page | number | Result page the row came from. |
scrapedAt | string | When this row was collected. |
A column that is empty means the source did not publish that value for that record โ it is never a silent substitute for zero or for "unknown".
โ Frequently asked questions
Do I need an API key or an account? No. This Actor reads a public feed.
What happens if the source blocks the run? A refused exit IP is replaced within a quarter of a second, up to five times, before the Actor tries anything else. If nothing gets through, the run fails with the reason โ it never reports success with zero rows, because "there is no such data" and "the source would not answer" are very different answers and you should not have to guess which one you got.
How do I schedule this? Use the Schedules tab. Daily is usually enough; the sources here do not change by the minute.
Can I get the results into Google Sheets or a database?
Yes โ use the dataset export, or the Apify API and integrations. Every run
writes a SUMMARY record to the key-value store with the outcome and counts,
which is handy for monitoring an automated pipeline.
๐ฐ Pricing
Pay per result. You are charged for the rows you receive and nothing else, so a run that finds nothing costs nothing.
โ๏ธ Legal
This Actor collects publicly available information only. It does not log in, does not bypass access controls, and collects no private data. You are responsible for using the output in line with the source's terms and with applicable law, including GDPR where personal data is involved.
โญ Support
Found something wrong, or want a field that is not here? Open an issue on the Actor's page โ include the run ID and I will look at it.
๐ Changelog
2026-09-25
- First release.