Otto Scraper API
Access Otto search data using our Otto Scraper API. One API request returns clean, structured JSON while we get past CAPTCHAs, IP rate limiting, IP blocking, and headless-browser detection with rotating residential proxies. Get back fields like result title, price (EUR), brand, product URL as structured JSON.
check_circle 1,000 free requests/month. No credit card. Residential proxies.
curl "https://api.chocodata.com/api/v1/otto/search?api_key=YOUR_API_KEY&q=laptop" {
"query": "laptop",
"page": 1,
"total_results": 16,
"results[0].position": 1,
"results[0].id": "1996119866",
"results[0].title": "Lenovo LOQ 17IRX10 RTX 5050/5060/5070 Gaming-Notebook (43,9 cm/17,3 Zo…",
"results[0].url": "https://www.otto.de/p/lenovo-loq-17irx10-rtx-5050-5060-5070-gaming-not…",
"results[0].price": 1699,
"results[0].currency": "EUR",
"results[0].rating": 4.5,
"results[0].reviews_count": 105,
"results[0].thumbnail": "https://i.otto.de/i/otto/d8608368-2157-5edd-9c1c-88d3555e64e1?$respons…",
"results[0].brand": "Lenovo",
"results[0].price_raw": "1699.00",
"results[1].position": 2,
"results[1].id": "S09GM0DJU69F",
"results[1].title": "bvate 2026 14-Zoll-Laptop-Computer, 8 GB DDR4, Quad-Core N5095 CPU Not…",
"results[1].url": "https://www.otto.de/p/bvate-2026-14-zoll-laptop-computer-8-gb-ddr4-qua…"
// + more fields
} Everything you need to scrape Otto
You never expose your own IP, you get validated JSON instead of raw HTML, and the free tier covers otto scraper at 1,000 requests a month with no card required.
Clean structured JSON
Fields come back parsed and validated, not a dump of HTML. Store Otto search records straight into your database instead of writing brittle selectors for otto scraper.
Bypasses CAPTCHAs and anti-bot defenses
We get past CAPTCHAs, IP rate limiting, IP blocking, and headless-browser detection on Otto using rotating, country-matched residential proxies, so requests look like real users and your own IP stays private.
One API call
The Otto Scraper API is one simple API call. The same key works across our whole web scraping API: all 235 targets, any language, no SDK required.
Geo-targeting and JS rendering
Pass a country for proxy geo-targeting and turn on JavaScript rendering when a Otto page needs it. otto data api handles dynamic content and region-locked results.
Scrape Otto in one API request
Send one API request to the Otto Scraper API and read back typed fields. Chocodata routes the request through country-matched residential proxies, retries soft blocks, and parses the page, so otto api stays reliable as Otto's markup shifts.
- check_circle Validated, parsed JSON fields
- check_circle Residential-proxy infrastructure
- check_circle Only successful 2xx responses are billed
Request
curl "https://api.chocodata.com/api/v1/otto/search?api_key=YOUR_API_KEY&q=laptop" Response
{
"query": "laptop",
"page": 1,
"total_results": 16,
"results[0].position": 1,
"results[0].id": "1996119866",
"results[0].title": "Lenovo LOQ 17IRX10 RTX 5050/5060/5070 Gaming-Notebook (43,9 cm/17,3 Zo…",
"results[0].url": "https://www.otto.de/p/lenovo-loq-17irx10-rtx-5050-5060-5070-gaming-not…",
"results[0].price": 1699,
"results[0].currency": "EUR",
"results[0].rating": 4.5,
"results[0].reviews_count": 105,
"results[0].thumbnail": "https://i.otto.de/i/otto/d8608368-2157-5edd-9c1c-88d3555e64e1?$respons…",
"results[0].brand": "Lenovo",
"results[0].price_raw": "1699.00",
"results[1].position": 2,
"results[1].id": "S09GM0DJU69F",
"results[1].title": "bvate 2026 14-Zoll-Laptop-Computer, 8 GB DDR4, Quad-Core N5095 CPU Not…",
"results[1].url": "https://www.otto.de/p/bvate-2026-14-zoll-laptop-computer-8-gb-ddr4-qua…"
// + more fields
} Parameters
Pass these as query-string values alongside your API key. Only the required ones are mandatory; the rest have sensible defaults.
| Parameter | Type | Required | Example |
|---|---|---|---|
| q | string | required | laptop |
| page | number | optional | 1 |
| sort | string | optional | laptop |
| add_html | string | optional | laptop |
What you can build with Otto data
Once the scraping API returns Otto search data as clean JSON, these are the patterns teams reach for most.
Price Monitoring And Repricing
Feed Otto search data into your own product or workflow for price monitoring and repricing.
Competitor Catalog Tracking
Feed Otto search data into your own product or workflow for competitor catalog tracking.
Product And Review Intelligence
Feed Otto search data into your own product or workflow for product and review intelligence.
MAP Compliance Monitoring
Feed Otto search data into your own product or workflow for MAP compliance monitoring.
Why developers pick Chocodata for Otto
Fast at the tail
Median 2.6 s per request with multi-tier retry, so latency stays predictable even when Otto fights back.
Parity-checked output
Fields are regression-tested on every extractor change, so 2xx responses match the live page.
One key, 235 targets
The same scraping API key that scrapes Otto works across every other target, with official Node, Python, and Go SDKs.
Simple pricing that scales with you
Start free with 1,000 requests a month and 5,000 credits, no credit card. Scale on monthly plans from $19, or top up pay-as-you-go at $0.90 per 1,000 successful requests. Only successful 2xx responses are billed, and every plan covers the full scraping API: all 235 targets and every endpoint.
Free
Forever free on signup
- check_circle1,000 requests / month (5,000 credits)
- check_circle10 concurrent requests
- check_circleAll 237 targets
- check_circleFull dashboard + analytics
- check_circleTop-up at $0.90 / 1k
- check_circleCommunity support
Vibe
$0.70 / 1k effective
- check_circle27,000 requests / month (135,000 credits)
- check_circle30 concurrent requests
- check_circleAll 237 targets + content-language
- check_circleCountry-matched residential IPs
- check_circlePer-API-key usage tracking
- check_circleTop-up at $0.90 / 1k
- check_circleEmail support (1 business day)
Pro
$0.60 / 1k effective
- check_circle82,000 requests / month (410,000 credits)
- check_circle50 concurrent requests
- check_circlePriority routing queue
- check_circleCountry-matched residential IPs
- check_circleTeam seats (up to 5)
- check_circleTop-up at $0.90 / 1k
- check_circleEmail + chat support
Custom
Flat $0.50 / 1k effective at every level
- check_circle200k - 4M+ requests / month
- check_circle100-500+ concurrent requests
- check_circlePriority queue (highest)
- check_circlePremium proxy pool + SLA on request
- check_circleUnlimited team seats
- check_circleWire / invoice / annual PO
- check_circleDedicated Slack channel
Pay-as-you-go top-up
$0.90 / 1,000 successful requests
Available on every plan including Free. Top up any time when included credits run out. Only 2xx responses charged. Balance never expires.
Otto Scraper API FAQ
Is it legal to scrape Otto?
expand_more
How do I scrape Otto without getting blocked?
expand_more
What data does the Otto Scraper API return?
expand_more
How much does the Otto Scraper API cost?
expand_more
Do I need a Otto account or login?
expand_more
Related scraper APIs
Start scraping Otto for free
1,000 free scraping API requests on signup across all 235 targets. No credit card required.