Configure any available plan and add-ons. Pay only for 48 hours.
Try proxiesProxies for DuckDuckGo scraping at the volume its rate limits actually allow: packages from 100 IPs to spread the request rate, unlimited bandwidth, from $19/mo.
DuckDuckGo looks like the easy search engine to scrape — no login, no JavaScript required if you use the static html.duckduckgo.com/html or lite.duckduckgo.com/lite endpoints — and that first impression is exactly why so many scrapers hit a wall within the hour. Its rate limiting is unusually aggressive per IP, and unusually sneaky about how it says no. Instead of a clean 403 or 429, DuckDuckGo often answers with HTTP 202 and a challenge page referencing anomaly.js — a status most HTTP clients treat as success. Your parser finds no results in the “successful” response, and the failure travels silently through the pipeline. GitHub is littered with issues about this exact pattern: tools reporting “Found 1 result” over a challenge page, or vague “may be rate-limited” errors from libraries like ddgs.
The fix is architectural, not clever: since the anomaly detection keys primarily on request velocity per address, the request rate has to be spread across enough IPs that no single one looks anomalous. That\'s what a proxy package does — 100 addresses turn one loud client into a hundred quiet ones, and a mixed-country list adds a bonus dimension, since DuckDuckGo region parameters (kl=de-de and friends) are best verified from an IP in the matching region. Datacenter addresses hold up well here; DuckDuckGo\'s threshold model reacts to pace far more than to ASN, which makes it cheaper to scrape than Google — you rarely need residential-grade IPs at all.
Two build tips from the trenches. Detect the block properly: treat 202, 400, and 429 as challenges, and scan even 200-responses for the anomaly markers before parsing — otherwise your retry logic never fires. And keep per-IP pacing conservative rather than maximal: the static endpoints exist for lightweight clients, and a package under a steady, boring request pattern outlives any burst strategy. The panel on the right has the specs; general blocking mechanics beyond DuckDuckGo live on the web scraping proxies page.
Four infrastructure types — and the use cases each one fits best.
| Our pick for DuckDuckGo Packagesdatacenter IPv4 |
Rotating | ISP | IPv6 | |
|---|---|---|---|---|
| IP source | Datacenter, IPv4 | Datacenterthe same 100,000+ IP pool | Consumer ISP networks | Datacenter |
| IP allocation | Static list | Full pool accessthe exit IP rotates on every request | Static list | Static list |
| List refreshes | Up to 3 per month, free | Not applicable | Up to 3 per month, free | Provider-dependent |
| Pricing model | Per-IP packageunlimited bandwidth | Credit-basedyou pay per request, not per IP | Per-IP packageunlimited bandwidth | Per-IP package |
| Website compatibility | ✓ ~100% | ✓ ~100% | ✓ ~100% | ✕ Limitedmany websites don't support IPv6 |
| Speed | Up to 500 Mbps | Up to 300 Mbps | Up to 500 Mbps | Datacenter-grade |
| Anti-fraud trust | Medium | MediumIP rotation helps | High | Low to medium |
| Price | $from $0.07 per IP/month | $$$from $49.00/month | $$from $0.22 per IP/month | $typically the lowest-cost option |
| Best for | Web scraping and automation at a predictable volume: your own IPs, unlimited bandwidth | API scraping that needs as many different IPs as possible without buying a fixed list | Social media, accounts, long sessions — wherever IP trust matters | Use cases where the target site is guaranteed to support IPv6 |
| Buy now | Rotating proxies | ISP proxies | We don't sell these: too many limitations for general-purpose work |
Point the example at html.duckduckgo.com/html with your query string and it returns parseable SERP markup — no JavaScript rendering needed. Copy the snippet for your stack, or paste it into your AI coding assistant to adapt.
# HTTP or HTTPS proxy curl -x http://login:password@IP:port https://example.com # SOCKS5 curl --socks5-hostname IP:port \ --proxy-user login:password \ https://example.com
import requests proxy = "http://login:password@IP:port" # your proxy from the Dashboard r = requests.get( "https://example.com", proxies={"http": proxy, "https": proxy}, ) print(r.status_code)
import { ProxyAgent } from "undici"; const dispatcher = new ProxyAgent("http://login:password@IP:port"); const res = await fetch("https://example.com", { dispatcher }); console.log(res.status);
$ch = curl_init("https://example.com"); curl_setopt($ch, CURLOPT_PROXY, "IP:port"); curl_setopt($ch, CURLOPT_PROXYUSERPWD, "login:password"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch);
Choose a standard format or create a custom one with any field order and delimiter your software requires.
See the FAQ for the ports used by each protocol.
You can automate purchases, renewals, whitelist changes, and proxy list exports. Create an API key in your Dashboard in a couple of clicks.
Claude, Cursor, and other agents buy proxies, renew plans, and export updated proxy lists through an access token you create in your Dashboard. See how it works.
Per-IP prices shown are for the largest package size. Get an exact quote in the calculator above.
| IP | Country | Port | Protocol | |
|---|---|---|---|---|
| 45.80.111.128 | DE | 80 | HTTP | |
| 45.80.111.167 | DE | 80 | HTTP | |
| 45.80.111.159 | DE | 80 | HTTP | |
| 45.80.111.58 | DE | 80 | HTTP | |
| 45.80.111.34 | DE | 80 | HTTP | |
| 45.80.111.126 | DE | 80 | HTTP | |
| 45.80.111.118 | DE | 80 | HTTP | |
| 45.80.111.51 | DE | 80 | HTTP | |
| 45.80.111.172 | DE | 80 | HTTP | |
| 45.80.111.102 | DE | 80 | HTTP |
A few service metrics—and feedback from our customers.
I use proxies for online games. I have been using the service for many months and I am satisfied with the quality and efficiency. Proxies work as they should and there are practically no disconnects. I recommend it, you will not regret it!
Like the service! Responsive and fast support, affordable prices, convenient renewal panel and network selection. Just what I need!
I used the service for social networking. At first I bought it for a month, but now I will definitely renew it because the quality is really good! I am very glad that I finally found a really cool service!
Proxies do not fail, and at this price it is a great gift. I buy them when I need them, usually once every few months. There have been a few minor glitches but the support here is above all praise. Responsive, kind, understanding and fast. All issues were resolved promptly. It is very nice to work with true professionals.
Can't find your answer? Message us in live chat — real humans reply.
Because rotation alone doesn't make the traffic look different — it makes it look distributed. DuckDuckGo's anomaly detection also weighs the request signature: a missing or generic User-Agent, no Accept-Language, bursts of identical query patterns with machine-perfect timing, and pagination pulls beyond what a human clicks (the ddgs library, for instance, triggers it when max_results forces deep paging). Fix the signature first — realistic browser headers, jittered delays, shallow result depth — then let the pool spread whatever volume remains. If you're on a shared rotating gateway from another provider, there's a second explanation: the exit IPs arrive pre-burned by other DuckDuckGo scrapers. Dedicated package addresses whose history you control don't carry that inheritance.
The static endpoints, almost always. The main duckduckgo.com page builds its results with JavaScript, so scraping it means running a headless browser — slower, heavier, and with a bigger fingerprint surface to get wrong. html.duckduckgo.com/html and lite.duckduckgo.com/lite return server-rendered markup that any HTTP client parses directly; lite is the smallest payload of the pair. What you give up: AI summaries, instant answers, and infinite scroll — the static versions paginate with a “More Results” form instead. For rank tracking and organic-results collection, that trade is free. One warning: the static endpoints share the same anomaly detection as the main site, so the pacing rules don't relax just because the page got simpler.
DuckDuckGo exposes region explicitly: the kl parameter (us-en, de-de, uk-en…) sets the results region, which is more deterministic than Google's IP-based localization. So technically you can request German results from a Texas IP. In practice you still want geo-matched addresses for two reasons. Auditing: if you're verifying what users in a market actually see, a mismatch between the kl parameter and the requesting IP's region is one more mild anomaly signal you don't need. And ad data: the ads DuckDuckGo serves (via its Microsoft partnership) do key on the requesting IP's location, so ad-inclusive SERP collection is only accurate from an IP inside the target market. A mixed-country package covers both — pick the matching addresses per region from one list.
Meaningfully easier, with one asterisk. No CAPTCHA farm sits in front of it, the static endpoints skip JavaScript entirely, and its blocking keys on request velocity rather than IP classification — datacenter packages that Google-grade targets would challenge pass cleanly at a polite pace. The asterisk is result depth and source: DuckDuckGo's organic results draw heavily on Bing's index, so if your project needs Google-specific rankings, DuckDuckGo data answers a different question, not the same one cheaper. As a rough architecture guide: use DuckDuckGo when you need web-search results per se (research pipelines, LLM tool backends, content discovery), and budget for the harder Google setup only when the deliverable is literally Google positions.
A different proxy type may be a better fit for your use case. All products use the same Dashboard and support team.
An IP reserved exclusively for you, available from a single IP. Speeds of up to 500 Mbps per proxy.
Learn moreStatic ISP-registered residential IPs for use cases where network origin matters.
Learn morePay per request and access the full 100,000+ IP pool through a single gateway. Built for web scraping and API workloads.
Learn moreSOCKS5 with UDP support — for gaming, streaming, and VoIP.
Learn moreWe can sign a contract and provide all the documents your accounting team needs. Most business orders are activated within 24 hours of your request.