Billiger.de Price Comparison Scraper
Pricing
Pay per event
Billiger.de Price Comparison Scraper
Extract product prices and shop offers from Billiger.de, Germany's largest price comparison platform with 100M+ offers across all categories.
Pricing
Pay per event
Rating
5.0
(2)
Developer

BarriereFix
Actor stats
0
Bookmarked
4
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Share
Extract product prices and shop offers from Billiger.de, Germany's largest price comparison platform with 100M+ offers across all categories.
What does this actor do?
- Search products by keyword across all 5,000+ categories
- Compare prices from 22,500+ online shops
- Track best offers with shipping costs and availability
- Monitor price ranges across multiple retailers
- Extract ratings and review counts
Why Billiger.de?
- Broader coverage than tech-only competitors like Geizhals
- 100M+ product offers across all categories (electronics, fashion, home, sports, etc.)
- 2M+ monthly users - Germany's trusted price comparison platform
- Real-time pricing from authorized retailers
Use cases
- E-commerce: Track competitor pricing strategies
- Price monitoring: Set up scheduled runs to track price changes over time
- Market research: Analyze pricing patterns across categories
- Automation: Feed data to n8n, Zapier, Make for automated workflows
- Inventory planning: Monitor availability across multiple shops
- Competitor analysis: Track which shops offer best prices
Input
| Field | Type | Description | Default |
|---|---|---|---|
| query | String | Product keyword to search for (e.g., "iPhone 15", "laptop") | - |
| categoryUrl | Array | Direct URLs to Billiger.de category pages | [] |
| productUrls | Array | Direct URLs to specific product comparison pages | [] |
| maxItems | Number | Maximum number of products to scrape (1-10,000) | 100 |
| minShops | Number | Only include products offered by at least N shops | - |
| priceMin | Number | Minimum price filter (EUR) | - |
| priceMax | Number | Maximum price filter (EUR) | - |
| useProxies | Boolean | Enable Apify proxies (recommended) | true |
| proxyType | Enum | Proxy type: "SHADER" (datacenter) or "RESIDENTIAL" | SHADER |
Output
Each product contains:
| Field | Type | Description |
|---|---|---|
| productId | String | Unique Billiger.de product ID |
| productName | String | Full product name |
| productUrl | String | URL to comparison page |
| category | String | Product category |
| currentPrice | Number | Best price found (EUR) |
| currency | String | "EUR" |
| shopName | String | Shop offering best price |
| shopUrl | String | Link to shop's product page |
| availability | String | Stock status |
| shippingCost | Number/null | Shipping cost from best shop |
| shopCount | Number | Total shops offering this product |
| priceRange | Object | { min, max } prices across all shops |
| rating | Number/null | Average rating (0-5) |
| reviewCount | Number/null | Number of reviews |
| imageUrl | String | Product image URL |
| scrapedAt | String | ISO 8601 timestamp |
Example output
{"productId": "2468780","productName": "Apple iPhone 15 Pro 128GB","productUrl": "https://www.billiger.de/baseproducts/2468780-apple-iphone-15-pro","category": "Smartphones","currentPrice": 1099.00,"originalPrice": null,"discount": null,"currency": "EUR","shopName": "MediaMarkt","shopUrl": "https://www.billiger.de/shop/mediamarkt","availability": "Auf Lager","shippingCost": 0,"shopCount": 23,"priceRange": {"min": 1099.00,"max": 1249.00},"rating": 4.7,"reviewCount": 1523,"imageUrl": "https://cdn.billiger.de/...","scrapedAt": "2024-10-23T21:30:00.000Z"}
Pricing
This actor uses pay-per-event pricing - you only pay for products successfully scraped from billiger.de.
What you're charged for:
- Each product with pricing data extracted
See current pricing in the Apify Console when starting a run. Proxy costs are included (datacenter or residential depending on your configuration).
How to use
1. Simple keyword search
{"query": "laptop gaming","maxItems": 50}
2. Price range filter
{"query": "bluetooth headphones","maxItems": 100,"priceMin": 50,"priceMax": 200}
3. Category scraping
{"categoryUrl": ["https://www.billiger.de/kategorie/smartphones"],"maxItems": 200,"minShops": 5}
4. Direct product URLs
{"productUrls": ["https://www.billiger.de/baseproducts/2468780-apple-iphone-15-pro","https://www.billiger.de/baseproducts/2345678-samsung-galaxy-s24"]}
Automation Integration
n8n Workflow
- Add "HTTP Request" node
- Set to POST:
https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs - Add authentication header with API token
- Process flat JSON output directly
Zapier Integration
- Use "Webhooks by Zapier" trigger
- Connect to Apify webhook output
- Map fields to Google Sheets, Airtable, etc.
Scheduled Monitoring
- Use Apify Scheduler (built-in)
- Run daily/weekly for price tracking
- Get notifications via webhook when prices drop
FAQ
Q: Can I scrape all categories? A: Yes! Unlike tech-only competitors, Billiger.de covers everything from electronics to pet food (5,000+ categories).
Q: How often can I run this? A: As often as needed. Use Apify Scheduler for automated runs (daily/hourly).
Q: What about anti-bot protection? A: The scraper uses Playwright with stealth plugin and proxies to avoid detection. Residential proxies recommended for large runs.
Q: Can I track price changes over time? A: Yes! Run the actor on a schedule and compare historical data. Each result includes a timestamp.
Q: Is this legal? A: Scraping publicly available price comparison data for personal/commercial use is generally legal in Germany. Respect robots.txt and rate limits.
Q: What if a shop doesn't exist anymore? A: The scraper handles missing/outdated data gracefully by skipping invalid entries.
Q: Can I use this with residential proxies?
A: Yes! Set proxyType: "RESIDENTIAL" for better reliability (costs more but higher success rate).
Technical Details
- Runtime: Node.js 20 with Playwright
- Browser: Chromium with stealth plugin
- Rate limiting: ~10 requests/minute to avoid detection
- Session handling: Automatic cookie management
- Error handling: Per-product try-catch (continues on failures)
- German format support: Handles "1.234,56 €" price format
Support
For issues, feature requests, or questions:
- Check Apify Console logs for errors
- Verify input format matches schema
- Test with small
maxItemsfirst (5-10 products) - Enable residential proxies if getting blocked
Development
# Install dependenciesnpm install# Build TypeScriptnpm run build# Test locally (no proxies)apify run -p# Deploy to Apifyapify push
🔗 Explore More of Our Actors
📊 Price Comparison (German Market)
| Actor | Description |
|---|---|
| Geizhals Scraper Pro | Scrape Geizhals.de for tech product prices and specifications |
| Testberichte Scraper Pro | Extract product reviews and ratings from Testberichte.de |
| Chip.de Bestenlisten Scraper | Scrape Chip.de best-of lists for tech product rankings |
🚗 Automotive (German Market)
| Actor | Description |
|---|---|
| German Car Scraper | Scrape AutoScout24 and Mobile.de for vehicle listings |
| eBay Kleinanzeigen Scraper | Extract classified ads from eBay Kleinanzeigen |
🛒 E-commerce
| Actor | Description |
|---|---|
| Shopify Scraper Pro | Extract complete Shopify product data with variants and sales estimates |
| eBay Scraper (PPR) | Extract eBay products with seller analytics and engagement metrics |
| Amazon Reviews Scraper | Extract Amazon customer reviews for sentiment analysis |
Keywords
billiger.de, price comparison, germany, e-commerce, price tracking, competitor analysis, market research, automation, n8n, zapier, make, price monitoring, german marketplace, online shopping, price scraper