ScrapingTest logoscrapingtest

Decodo

94.2 percent across 20 domains and Amazon-product perfect, but the default proxy_pool silently doubles your bill.

Published 2026-06-05 · 2674-word independent review · ScrapingTest Research

────────────────────────────────────────────────────────────────────────────────────────────────────

Verdict

Grade: B+. Strong audit numbers and a stress-test win on Amazon product, but the premium-default billing trap and the bestseller block keep it out of the A tier.

Best for

  • Amazon product-page monitoring at scale where /dp/ and /s?k= are the only endpoints (100% SR across 525 stress trials)
  • Mixed e-commerce plus search workloads where the buyer can pick proxy_pool per domain instead of accepting the premium default
  • Teams that need both Web Scraping API and the underlying 125M+ residential pool from one vendor and one invoice
  • LLM/RAG pipelines that benefit from the built-in markdown output and the open-source MCP server
  • Reddit, Google, Bing, and LinkedIn workloads, which all clear at the $0.50/1K standard tier in our A/B test

Avoid if

  • You scrape Amazon bestseller pages (/Best-Sellers/zgbs/*). 0 of 15 trials succeeded; every one timed out at 80 to 140s with internal status_code=613
  • You need a single flat per-request price and dislike per-domain tier hunting. Blended cost is $0.86/1K, not the advertised $0.50
  • You need G2, Zillow, BestBuy or other DataDome/Akamai-heavy sites at high concurrency (60 to 79% SR even at premium plus JS)
  • You want a pre-built parser library wider than the 10 supported target families (Bright Data, Apify, and ScrapingDog all cover more domains)

What we found in the lab

Decodo finished our five-pass audit at 95.9 percent across 20 domains, placing seventh overall and landing in the 93 to 96 percent tier alongside Oxylabs. All 20 domains were operational (no GENUINE FAIL). The average was dragged down by 60 percent on g2.com (DataDome wall under concurrent load), 79 percent on bestbuy.com, and 82 percent on youtube.com. Fifteen of 20 domains hit a clean 100 percent SR, including the four sites our previous Amazon stress confirmed at near-perfect (amazon, bing, github, reddit). Latency is competitive on most targets, with sub-5s avg on 11 of 20 domains. Decodo also owns the slowest avg in our entire fleet on zillow.com at 38.9s under T2 headless rendering, and posts 24 to 25s avg on bestbuy, booking, and trustpilot. Cost is where Decodo gets interesting. The published $0.50/1K standard tier only carries 6 of our 20 benchmark domains (amazon, bing, github, google, linkedin, reddit). The remaining 14 require Standard plus JS ($0.75), Premium ($1.00), or Premium plus JS ($1.50). A 400-call A/B test (4 configs x 20 domains x 5 trials) established the actual blended cost on a mixed workload at $0.86/1K. That sits within a few percent of Oxylabs Web Unblocker ($0.85) and roughly 1.7x the headline rate. Two operational quirks the harness had to learn. First, Decodo returns a wrapped JSON envelope, so the outer 200 must be checked alongside the inner status_code (613, 503, etc.) before treating a response as success. Second, POSTing to /v2/scrape without a proxy_pool parameter defaults to premium, not standard. The default-to-premium behavior is documented (the parameters page lists proxy_pool=premium as the default) but absent from the pricing card. A developer reading only the pricing page will believe they are paying $0.50 while the dashboard bills $1.00. Pair that with 100 percent SR on amazon, walmart, idealista, tripadvisor, indeed, reddit, github, linkedin, instagram, and capterra and Decodo is a useful API, provided the buyer manages tier selection per-domain.

Per-domain breakdown

DomainSRNotes
amazon.com100% @ $0.50/1KT1 standard, 4.2s avg, 6.4s p90. Audit perfect. Amazon stress hit 500/500 on /dp/ at 3.1s p50 and 5.3s p90.
g2.com60% @ $1.50/1KT4 premium plus JS. The DataDome shield collapses under concurrent load (sequential runs come back clean). Quirks note from the run log: concurrent load on g2 DataDome shield is brutal (60% yield); single-request works fine.
youtube.com82% @ $1.50/1KT4 premium plus JS with the built-in YouTube parser. The metadata template works but channel pages have a measurable miss rate.
bestbuy.com79% @ $1.50/1KPremium plus JS. 24.4s avg, 36.6s p90. Slow and inconsistent. Bot-wall interstitials make up the 21pp miss.
zillow.com100% @ $1.00/1KPremium. SR is perfect but the 38.9s avg and 58.4s p90 make this Decodo's slowest endpoint in the entire benchmark. The full-render Zillow tier carries a serious latency tax.
google.com99% @ $0.50/1KStandard pool, dedicated Google template. 2.9s avg. One of the best Google scrapers in the audit on cost-per-success.
linkedin.com100% @ $0.50/1KStandard pool. 3.0s avg. Surprisingly clean at the cheapest tier when most competitors need premium or get blocked entirely (Zyte returns 451 on the domain).
walmart.com100% @ $1.00/1KPremium pool plus dedicated Walmart parser. 6.9s avg. Structured-data flag set, so the parser returns JSON instead of raw HTML.
trustpilot.com100% @ $0.75/1KStandard plus JS. SR is perfect but 24.5s avg and 36.7s p90 indicate Trustpilot's anti-bot pages force a longer render path.
x.com100% @ $0.75/1KStandard plus JS. 18.3s avg and 27.4s p90. The JS render needed to clear X's anti-bot is heavy but reliable.

Amazon 550-trial stress test

Decodo placed second behind Scrape.do in our 2026-06-05 Amazon stress test, and the result is sharply split. On the canonical product page /dp/B07FZ8S74R, Decodo went 500/500 perfect at 3.1s p50, 5.3s p90, and 9.8s p99 with only 2 retries fired across the entire 500-trial run. On the search endpoint /s?k=laptop, again 25/25 perfect at 3.0s. That matters because both Zyte and ScrapingDog were knocked to 76 percent on the same URLs by an Akamai bm-ver interstitial that Decodo's IP pool evaded entirely. The hard failure was /Best-Sellers/zgbs/electronics. Every single one of the first 15 trials returned Decodo's wrapped JSON envelope with status: failed, status_code: 613, message: We were not able to scrape the target after 80 to 140 seconds. We stopped the run early to avoid burning credits; the smoke test before the main run had shown the same 0 percent pattern. This is endpoint-specific, not load-related, and not fixable by switching JS render on or off in our testing. The recommended config flag is endpoint_conditional: true on Decodo amazon, with the note that /dp/ and /s?k= work at T1_bare and /Best-Sellers/* does not pass at any tier we tested. Total spend for the 515 Decodo trials in the stress run was $0.26 at the recorded $0.0005/req standard rate. Note the credit-rate gotcha: if the API defaulted to premium pool on bestseller calls, the actual dashboard bill was double.

Pricing deep dive

Decodo's Web Scraping API uses a hybrid commitment plus per-1K model with four published tiers, a free monthly plan, and a custom enterprise tier. Headline rates run from $0.50/1K (Free and Starter standard pool) down to $0.14/1K (Business standard pool, the largest committed plan at $99/mo). All paid plans carry a 14-day money-back window. One structural detail does not show up on the pricing card: the API has four billable proxy modes (Standard at $0.50/1K base, Standard plus JS render at $0.75, Premium at $1.00, Premium plus JS render at $1.50), and the API parameter proxy_pool defaults to premium when you POST to /v2/scrape without it. The pricing-page WebFetch confirmed Free, Starter $19, Professional $49, Business $99, Enterprise Custom. This differs from the labels in our pre-shipped raw-docs mirror, which lists Starter/Advanced/Pro. The live pricing page is canonical. Rate limits scale with tier: 10 req/s on Free and Starter, 25 req/s on Professional, 50 req/s on Business, custom on Enterprise. The Business plan's $0.14/1K effective rate only applies if you can spend the full 707K-request allocation in standard pool, and our A/B test showed only 6 of 20 popular domains will run there.

Plans

PlanPriceVolumeConcurrencyWhat unlocks
Free$02K standard requests monthly (or 1K Standard+JS / 1K Premium / 667 Premium+JS)10 req/sAll features, all four proxy tiers, all target templates. Monthly recurring allowance of 2K standard requests, no credit card required, no time limit.
Starter$19/mo38K standard (25K Standard+JS / 19K Premium / 12K Premium+JS)10 req/s$0.50/1K headline. Same per-1K rate as Free. 14-day money-back.
Professional$49/mo163K standard (75K Standard+JS / 54K Premium / 39K Premium+JS)25 req/sEffective $0.30/1K standard. First plan with a real concurrency bump (2.5x). The most-marketed paid tier.
Business$99/mo707K standard (165K Standard+JS / 116K Premium / 82K Premium+JS)50 req/sEffective $0.14/1K standard, but only useful if your domains actually run at standard pool. Real blended cost lands closer to $0.30 to $0.50.
EnterpriseCustomCustom volumeCustomNegotiated pricing, dedicated success engineer, SLA. Required for sustained >50 req/s or sub-$0.14/1K.

Cost multipliers

Decodo's multiplier structure is a 4-cell matrix: pool (standard vs premium) crossed with render (off vs JS). On the Starter plan: Standard pool is $0.50/1K base (1.0x), Standard plus JS render is $0.75/1K (1.5x), Premium pool is $1.00/1K (2.0x), Premium plus JS render is $1.50/1K (3.0x). The multiplier shrinks but doesn't disappear at higher tiers. On Business, Standard is $0.14, Standard+JS is $0.85 (6.1x relative), Premium is $0.85 (6.1x), Premium+JS is $1.20 (8.6x). The higher you climb on commit, the deeper the discount on standard pool, but the premium tier's effective markup grows. Target templates (Amazon, Google, Walmart, Reddit, YouTube, Bing, TikTok, Target) force the Premium pool regardless of what proxy_pool you send. The docs page is explicit: all Target Templates use Premium Proxy Pool. There is no way to use a template at the $0.50 standard rate.

Hidden costs (not on the pricing card)

Effective cost per workload

Amazon product monitoring, 100K /dp/ requests/month
Real cost: $50/mo if you explicitly set proxy_pool=standard. $100/mo on the default premium. Both fit inside the Professional plan ($49 plus per-1K over-allowance).
Why: Amazon /dp/ is one of the 6 domains that clears at $0.50/1K in our A/B test. The Amazon stress run confirmed 500/500 SR at that tier. The 100 percent upside requires the developer to set the proxy_pool param explicitly.
Mixed e-commerce price intel: 20 domains, 50K req/month each (1M total)
Real cost: $860/mo blended, not $500/mo headline. Maps to Business plan plus significant overage.
Why: Our 400-call A/B test established the per-tier-required distribution: 6 domains at $0.50, 5 at $0.75, 6 at $1.00, 3 at $1.50. Blended rate is $0.86/1K. The advertised $0.50 only covers 30 percent of the mix.
Google plus Bing plus Reddit SERP, 500K req/month
Real cost: $70/mo at the Professional plan rate ($0.14/1K standard) for 500K standard, plus Standard+JS for some Reddit pages, so roughly $100 real.
Why: These three are the cheapest-to-scrape domains in our Decodo data. Google clears at $0.50 standard (99% SR), Bing same (100%), Reddit same (100%). Standard pool covers all three.
Target Template only: Amazon Product plus Walmart Product, 200K calls
Real cost: $200/mo at $1.00/1K minimum (Premium forced). You cannot use the $0.50 standard rate.
Why: The templates docs are explicit that all Target Templates use Premium Proxy Pool. The structured-JSON parser is convenient but you pay the 2x premium for it on every call. No way around it.
Headless-rendered DataDome targets: g2 plus zillow plus bestbuy, 50K each
Real cost: $225/mo if you actually achieve 100 percent SR. Real SR is 60 to 100 percent so cost-per-success is higher.
Why: All three force Premium+JS at $1.50/1K. At g2's measured 60 percent SR, true cost-per-success is $2.50/1K. At zillow's 100 percent you pay $1.50 but absorb the 38.9s latency tax.

Features deep dive

Core features

Synchronous /v2/scrape endpoint

The primary unified endpoint at scraper-api.decodo.com/v2/scrape. POST with a JSON body containing url (or query for templates), proxy_pool (standard or premium), headless (html for JS render, png for screenshot, null for raw), geo, locale, domain, device_type, parse (true to invoke a dedicated parser), session_id for sticky IP, http_method, payload for POST forwarding, markdown for LLM-ready output, and xhr for fetch/XHR capture.

Our take: Used this throughout the audit and the 525-trial Amazon stress run. Works as documented. The wrapped-envelope response (HTTP 200 outer plus inner status_code) is the only friction. Every client must read the inner code to detect 613 we couldn't scrape failures that look like 200 OKs.

Asynchronous batch plus webhook submission

POST to /v2/task with up to N URLs and receive a task_id. Results come back via webhook callback or polling GET /v2/task/{id}/results. Documented at help.decodo.com/docs/web-scraping-api-asynchronous-requests.

Our take: Did not stress-test in our audit (the harness uses sync only for fair comparison). Documented mode is standard for the category; useful for greater than 1K-URL batches without holding open connections.

Target Templates with structured-JSON parsers

8 target families: Amazon (Product, Search, Pricing, Sellers, Bestsellers, any URL), Google (Search, Ads, AI Mode, Lens, Travel Hotels, any URL), Bing (Search, any URL), Walmart (Product, Search, any URL), Reddit (Post, Subreddit, User), YouTube (Metadata, Channel, Search, Subtitles), TikTok (Post, Shop Product/Search/URL), and Target (Product, Search, any URL). Plus AI-engine targets: ChatGPT (any prompt) and Perplexity (any prompt). 10 target families total.

Our take: Tested Amazon Product, Google Search, Walmart, Reddit, Bing, and YouTube parsers in the audit. All worked. Structured output is clean and well-documented. Coverage is narrower than Bright Data's 250+ pre-built scrapers or Apify's 31,000+ Actors, but the 6 of 20 audit domains they hit (amazon, bing, google, reddit, walmart, youtube, confirmed by hasStructuredData=true in latest-data.json) are the ones most workloads care about. All templates force Premium pool. See hidden costs.

Multi-format response (HTML / JSON / CSV / PNG / XHR / Markdown)

A single endpoint can return HTML (default), parsed JSON (with parse=true), screenshot PNG (with headless=png), the XHR/fetch waterfall (with xhr=true), or Markdown (with markdown=true). Documented at help.decodo.com/docs/web-scraping-api-requesting-multiple-response-formats.

Our take: Markdown mode is the standout. It produces clean LLM-ready output that cuts token cost on downstream RAG. The XHR capture is useful for SPA scraping but underused in our audit since most benchmark domains render server-side.

Browser actions (click, wait, scroll, input)

When headless=html, you can pass a browser_actions array of sequenced click, scroll, input, and wait_for_selector primitives to interact with the page before extraction. Documented at help.decodo.com/docs/web-scraping-api-browser-actions.

Our take: Not used in our default audit benchmark (which scrapes raw landing pages), but it is the right primitive set for login-walled flows and infinite-scroll pages. Closest competitor is Scrapfly's CDP access.

Session IDs for sticky IP (up to 10 minutes)

Pass session_id (any string) to re-use the same IP across multiple requests for up to 10 minutes. Useful for cart-flow scraping or multi-step session-cookie workflows.

Our take: Standard primitive in the category. The 10-minute window is on the shorter end (Bright Data offers longer sticky). Fine for most multi-page flows.

Proxy pool

Decodo's underlying proxy network is the 125M+ IP pool inherited from the Smartproxy rebrand, primarily residential. The marketing claim of 99.86 percent success rate on residential proxies is the underlying network number, not the Web Scraping API number. The four exposed tiers in the Web Scraping API are: Standard pool, with 8 country options (US, UK, DE, FR, CA, IT, ES, NL), primarily datacenter plus ISP, $0.50/1K base; Standard plus JS, the same pool with headless Chromium rendering on top at $0.75/1K; Premium pool, with 195+ country/state-level geos including 50 US states, full residential plus mobile rotation, ISO/IEC 27001:2022 certified infrastructure at $1.00/1K base; Premium plus JS, premium pool with headless rendering at $1.50/1K and the only tier that consistently defeats DataDome and PerimeterX-class shields in our test. Rotation is per-request by default (a fresh IP every call) unless you pass session_id, which pins the IP for up to 10 minutes. The harness defaults are documented in config/default-tiers.json under quirks: T1_bare = 1 credit, T2_headless = 2 credits, 1cr = $0.0005. Note this is the residential proxy credit rate, not the Web Scraping API rate. For Web Scraping API the rates are the four cell values above. The infrastructure carries a stated throughput ceiling of 200 req/s system-wide (well above any plan's per-key concurrency cap of 50 req/s on Business), and the company markets unlimited concurrent sessions on Enterprise. Geo-routing precision is the strongest dimension. 195+ countries with state-level US targeting is roughly tied with Bright Data and ahead of every API-only competitor in our 17-provider set.

Structured endpoints

SDKs and integrations

AI capabilities

Decodo ships four distinct AI-flavored capabilities. A standalone AI Parser product (natural-language to JSON extraction, GA and free for all Decodo users). A Markdown response mode optimized for LLM token efficiency. An open-source MCP server that exposes the Web Scraping API to MCP-compatible clients. And dedicated target templates for two AI products (ChatGPT and Perplexity). The AI Parser is delivered as a no-code dashboard rather than an inline /v2/scrape parameter. You paste a URL, describe the data in plain English, and get structured JSON back, with reusable parsing instructions saved for later. Decodo's AI story comes down to integration plus output plus a free natural-language extractor. What is missing is a single programmatic POST to /v2/scrape that takes a natural-language schema in-line. If you want prompt-driven extraction inside your scraping API call (the Scrapfly Extract API pattern), you still have to chain the AI Parser dashboard or use Target Templates. The pieces they do ship are real, documented, and useful.

Feature inventory

AI Parser (natural-language to JSON)GA

Standalone product at decodo.com/scraping/ai. Paste any public URL, describe the data needed in plain English (for example, extract all product titles and prices), and receive structured JSON. The dashboard saves the parsing instructions for reuse across similar pages. Per the product page: Turn any HTML into structured data with zero coding knowledge needed. And: Forget complex rules or XPath queries. Just write a natural-language prompt and our AI will instantly return the structured data you're looking for.

Pricing: Free. Per the AI Parser FAQ, it is completely free for all Decodo users. No per-call markup.

Markdown response modeGA

Setting markdown=true on a /v2/scrape POST returns the page as cleaned Markdown instead of HTML. Documented at help.decodo.com/docs/web-scraping-api-markdown-response (also reachable via the scraper-api-markdown-response slug). The marketing line: Markdown is optimized for LLM consumption.

Pricing: Free. No per-request markup beyond the base scrape cost.

Open-source MCP serverGA

Model Context Protocol server at github.com/Decodo/mcp-web-scraper. Exposes the Web Scraping API as MCP tools so Claude Desktop, Cursor, and other MCP clients can call Decodo's scrape and template endpoints directly. Documented at help.decodo.com/docs/mcp.

Pricing: Free, open source. Underlying API calls billed at standard Web Scraping API rates.

ChatGPT target templateGA

Dedicated target=chatgpt template that scrapes ChatGPT response pages by prompt. Documented at help.decodo.com/docs/web-scraping-api-chatgpt.

Pricing: Forces Premium pool per template policy. $1.00/1K minimum, $1.50/1K with JS render.

Perplexity target templateGA

Dedicated target=perplexity template that scrapes Perplexity response pages by prompt. Documented at help.decodo.com/docs/web-scraping-api-perplexity.

Pricing: Forces Premium pool per template policy. $1.00/1K minimum.

Google AI Mode templateGA

Dedicated target=google_ai_mode scraping endpoint for Google's AI Overview / AI Mode results. Documented at help.decodo.com/docs/web-scraping-api-google-ai-mode.

Pricing: Premium pool, $1.00/1K minimum.

LangChain native integrationGA

First-party LangChain integration guide and library glue at help.decodo.com/docs/langchain. Lets a LangChain agent invoke Decodo as a tool.

Pricing: Free integration. Underlying scrapes billed at API rates.

n8n native integrationGA

First-party n8n node for the Web Scraping API. Documented at help.decodo.com/docs/n8n.

Pricing: Free integration. Underlying scrapes billed at API rates.

Our assessment

Decodo's AI offering is strong for the API-only no-marketplace tier of providers we have audited. They ship the natural-language to JSON extractor (AI Parser) as a free GA product, useful primitives (LLM-ready Markdown output, open-source MCP server, native LangChain and n8n nodes), and scraping templates for the actual AI products people want to monitor like ChatGPT and Perplexity. Compare against Scrapfly, which charges per-credit for LLM extraction; ScrapegraphAI, whose entire product is LLM extraction at the cost of a 0/20 dedicated-parser count; or Bright Data, which markets AI-driven scraping but ships a fairly conventional unblocker underneath. Decodo's positioning is: we are the scraping layer your AI stack calls, plus we ship a free no-code parser on top. Markdown mode alone is a cost-saver in any RAG pipeline (we measured token reduction in our own internal usage; the public claim of less tokens when feeding results into LLM models matches). The remaining gap is real but narrower. If you want a single POST to /v2/scrape that takes a natural-language schema in-line and returns JSON in one call, Decodo doesn't expose that today. You either use the AI Parser dashboard (and save the parsing template for reuse) or use a Target Template (constrained to the 10 supported families).

Where it excels

Where it falls short