Otto.de Listings Scraper avatar

Otto.de Listings Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Otto.de Listings Scraper

Otto.de Listings Scraper

Extract product listings from Otto.de category and search pages: IDs, names, brands, prices, sale and comparative prices, delivery dates, color variants, availability and ratings, with automatic pagination. Built for German e-commerce price monitoring and assortment tracking.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

FalconScrape

FalconScrape

Maintained by Community

Actor stats

1

Bookmarked

16

Total users

5

Monthly active users

3 hours ago

Last modified

Share

πŸ›’ Otto.de Listings Scraper

Easily extract product listings from Otto.de, one of Germany's largest e-commerce marketplaces. The Otto.de Listings Scraper gathers structured product data from any category or search results page β€” perfect for price monitoring, assortment tracking, and competitive analysis on the German market.

✨ Features

  • 🏷️ Structured Product Data: Retrieve product IDs, names, brands, prices, images, ratings, availability, and direct URLs.
  • 🚚 Delivery & Pricing Context: Delivery promise text and date, sale flag, "ab" (starting-price) flag, and comparative / suggested retail prices.
  • 🎨 Color Variants & Sizes: Every color option on the card (name, hex code, variation ID, selected state) plus a flag for products sold in several sizes.
  • πŸ” Category & Search Support: Point the scraper at any Otto.de category URL (e.g. /mode/jeans/) or search results page (e.g. /suche/levis-jeans/), or pass search queries directly.
  • πŸ“„ Automatic Pagination: The scraper walks through paginated listings automatically until your maxItems cap is reached.
  • ⚑ Fast & Lightweight: Pure HTTP + Cheerio β€” no headless browser, no anti-bot bypass needed for listings. ~120 tiles per request.
  • πŸ‡©πŸ‡ͺ German Marketplace Specialist: Tuned for Otto.de's server-rendered HTML and JSON-LD product schema.

πŸ› οΈ How It Works

  1. Provide Start URLs or Search Queries – Add Otto.de category URLs, search result URLs, or plain search terms in the Input tab.
  2. Set your limits – Pick how many items to scrape with maxItems (default 50).
  3. Run the Scraper – Start the run and receive structured JSON output in the dataset, ready to download as JSON, CSV, Excel, or HTML.

βš™οΈ Input

Configure the scraper with the following input fields:

FieldTypeRequiredDefaultDescription
startUrlsarrayNo*[]List of Otto.de category or search URLs, e.g. https://www.otto.de/mode/jeans/ or https://www.otto.de/suche/levis-jeans/.
searchQueriesarrayNo*[]List of plain search terms. Each one is converted to https://www.otto.de/suche/{slug}/ automatically.
maxItemsintegerNo50Maximum number of unique products to push to the dataset across all start URLs. Set to 0 for unlimited (capped by Otto's catalog).
proxyConfigurationobjectNono proxyOptional Apify Proxy configuration. Listings work fine without a proxy at moderate volume; enable proxy if you scale to high throughput.

* At least one of startUrls or searchQueries must be provided.

Example input

{
"startUrls": [
{ "url": "https://www.otto.de/mode/jeans/" },
{ "url": "https://www.otto.de/suche/levis-jeans/" }
],
"searchQueries": [{ "query": "iphone 15" }],
"maxItems": 240
}

πŸ“Š Sample Output Data

The scraper produces structured JSON output with key product details per listing. Example:

[
{
"productId": "481146846",
"articleNumber": "31633336",
"variationId": "1122197659",
"listPosition": 1,
"origin": "sponsored",
"name": "Arizona Bootcut-Jeans Baby-Boot Bootcut-Stil, figurbetonte Passform, mit Used-Effekten",
"url": "https://www.otto.de/p/arizona-bootcut-jeans-baby-boot-bootcut-stil-figurbetonte-passform-mit-used-effekten-481146846/?variationId=1122197659",
"image": "https://i.otto.de/i/otto/a4767196-5aaa-517e-b921-5623944d4f6f?$responsive_ft2$",
"brand": "Arizona",
"price": 35.99,
"currency": "EUR",
"availability": "AVAILABLE",
"ratingValue": 4,
"ratingCount": 896,
"dataCompleteness": "full",
"deliveryText": "lieferbar - in 3-4 Werktagen bei dir",
"deliveryDate": "bis Sa., 26. Sept. bei dir",
"isStartingPrice": true,
"onSale": true,
"comparativePrice": 59.9,
"suggestedRetailPrice": 59.9,
"colors": [
{ "variationId": "1122197659", "name": "blue", "baseColor": "blau", "hexCode": "516D89", "selected": true },
{ "variationId": "1122197660", "name": "black", "baseColor": "schwarz", "hexCode": "202020", "selected": false }
],
"multipleSizes": true,
"source": "listing",
"scrapedAt": "2026-05-21T15:20:54.597Z"
},
{
"productId": "S0HAG0V7",
"articleNumber": "S0HAG0V7SQ2",
"variationId": "S0HAG0V701HK",
"listPosition": 52,
"origin": "organic",
"name": "Amaci&Sons Weite Jeans BOX HILL 90s Baggy Jeans Herren 90s Denim Jeans Hose Straight Baggy",
"url": "https://www.otto.de/p/amaci-sons-weite-jeans-box-hill-90s-baggy-jeans-herren-90s-denim-jeans-hose-straight-baggy-S0HAG0V7/",
"image": null,
"brand": null,
"price": null,
"currency": null,
"availability": null,
"ratingValue": null,
"ratingCount": null,
"dataCompleteness": "identityOnly",
"deliveryText": null,
"deliveryDate": null,
"isStartingPrice": null,
"onSale": null,
"comparativePrice": null,
"suggestedRetailPrice": null,
"colors": null,
"multipleSizes": null,
"source": "listing",
"scrapedAt": "2026-05-21T15:20:54.597Z"
}
]

Note: Otto.de fully hydrates only the first ~18 tiles of each listing page. Those records have dataCompleteness: "full". The remaining tiles have dataCompleteness: "identityOnly": product ID, name, and URL only, with price, delivery, colors, and the other detail fields set to null (unknown, not missing from Otto).

A color's variationId is the variant Otto shows for that color. It is not guaranteed to be the same size as the selected variant.

Track Otto.de prices, monitor stock, and benchmark brands with Otto.de Listings Scraper today! πŸš€