Otto.de Product Scraper
Pricing
from $3.00 / 1,000 results
Otto.de Product Scraper
Scrape otto.de product listings at scale — name, price, brand, GTIN/EAN, images, availability, ratings, and reviews. Kasada-free product detail via Android app trick. Sitemap bulk mode covers 2.85M products. Pay only for results.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
axly
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Extract product listings, full product details, and customer reviews from otto.de — Germany's second-largest e-commerce platform with 4M+ products across furniture, fashion, electronics, and home goods.
Who uses this
- E-commerce analysts & investors — price monitoring, assortment tracking, competitive intelligence across otto.de's 4M+ catalog
- Agencies & lead generators — bulk product exports for clients, GTIN/EAN barcodes for catalog matching
- PropTech & SaaS developers — stable JSON schemas, sitemap-based incremental pipelines, webhook integrations
- Researchers — German consumer-goods datasets, price trends, brand presence analysis
Output fields
| Field | Type | Description |
|---|---|---|
name | string | Full product title |
url | string | Product page URL |
product_id | string | Short product ID (e.g. S0OFS0ZL) |
variation_id | string | Variation ID (colour, size) |
brand | string | Brand / manufacturer |
price | string | Current price (e.g. 339.99) |
currency | string | Always EUR |
availability | string | InStock, OutOfStock, or LimitedAvailability |
rating | string | Average rating (1–5) |
review_count | string | Total number of reviews |
image_url | string | Primary product image URL |
sku | string | Seller SKU (requires includeDetail) |
gtin13 | string | 13-digit GTIN / EAN barcode (requires includeDetail) |
description | string | Full HTML product description (requires includeDetail) |
images | array | All product image URLs (requires includeDetail) |
return_days | integer | Return window in days (requires includeDetail) |
reviews | array | Customer reviews with rating, title, text, verified status (requires includeReviews) |
scraped_at | string | ISO-8601 UTC timestamp |
Use cases
Price monitoring — track price changes daily across a product category or brand, alert when prices drop below threshold.
Catalog enrichment — match products by GTIN/EAN barcode, enrich internal catalogs with current availability and images.
Competitive analysis — compare brand presence, pricing strategy, and rating distribution across categories.
Review mining — aggregate verified customer reviews for sentiment analysis, product improvement, and brand reputation tracking.
Sitemap crawl — the 2.85M-product sitemap with daily lastmod timestamps enables efficient incremental scraping: only re-fetch products updated since your last run.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
keywords | string | — | Search keyword(s), e.g. ecksofa |
startUrls | array | — | Category paths (e.g. /moebel/sofas/) or product URLs |
maxItems | integer | 100 | Max results per run |
sort | enum | topseller | Sort: topseller, price_asc, price_desc, discount, newest, rating |
includeDetail | boolean | false | Enrich with GTIN, description, all images, return policy |
includeReviews | boolean | false | Append customer reviews per product |
maxReviewsPerProduct | integer | 50 | Max reviews per product |
sitemapMode | boolean | false | Iterate the full sitemap (~2.85M products) |
sitemapSince | string | — | ISO date — skip sitemap entries older than this (incremental mode) |
Example input
{"keywords": "ecksofa","maxItems": 50,"sort": "price_asc","includeDetail": true}
Example output
{"name": "VASAGLE Ecksofa L-Form, 244 cm, mit Schlaffunktion","url": "https://www.otto.de/p/vasagle-ecksofa-...-S0OFS0ZL/","product_id": "S0OFS0ZL","variation_id": "S0OFS0ZL2K1E","brand": "VASAGLE","price": "339.99","currency": "EUR","availability": "InStock","rating": "4","review_count": "150","image_url": "https://i.otto.de/i/otto/uuid/vasagle-ecksofa.jpg?$formatz$","sku": "S0OFS0ZL2K1E","gtin13": "6976119912345","description": "<p>Hochwertiger Stoff, 5-Jahre-Garantie...</p>","images": ["https://i.otto.de/...jpg", "https://i.otto.de/...jpg"],"return_days": 30,"reviews": null,"scraped_at": "2026-06-30T12:00:00Z"}
Scheduling & integrations
Schedule a daily run in the Apify Console → Tasks to keep your dataset fresh. Connect to Google Sheets, Airtable, or your own pipeline via webhooks — Apify fires a POST to your URL on run completion with a link to the dataset.
Make / Zapier: use the Apify connector to trigger downstream flows when new products appear or prices change.
Amazon S3 / Google Cloud Storage: export datasets directly from the Console in JSON, CSV, or XLSX.
MCP / AI-agent integration
Use the companion otto-mcp actor to query otto.de live from Claude, Cursor, or any MCP-compatible AI agent. Add it as a remote MCP server in seconds — no local setup required.
FAQ
Does it handle all product types? Yes — furniture, fashion, electronics, home goods, sports, and all other otto.de categories are supported.
How fresh is the data? Data is scraped in real time when you run the actor. For daily freshness, schedule a recurring run. The sitemap lastmod filter makes incremental runs efficient.
Does it handle Kasada anti-bot on product detail pages? Yes. Product detail enrichment (includeDetail: true) uses the Android app's cookie bypass — no browser or Playwright required. This is the key technical advantage over rivals.
How many products can I get per run? Up to 100,000 per run via maxItems. For the full catalog, use sitemapMode: true across multiple runs or with sitemapSince for incremental updates.
Is this legal? Scraping publicly available product data from otto.de for research, price monitoring, and internal use is a common and widely accepted practice. Always comply with otto.de's Terms of Service and applicable data protection laws (GDPR).