DuckDuckBot user agent string
DuckDuckGo's own web crawler, used to improve its search results. DuckDuckGo verifies it with a published IP list rather than a reverse-DNS domain. Below is the exact string it sends, what each part means, and how to allow or block it.
DuckDuckBot/1.1; (+http://duckduckgo.com/duckduckbot.html)
At a glance
| Type | Search engine crawler |
| Operator | DuckDuckGo |
| Purpose | Web crawler for DuckDuckGo search |
| Version | 1.1 |
| robots.txt token | DuckDuckBot |
| How to verify | Match the IP against DuckDuckGo's published list (duckduckbot.json). |
Allow or block it in robots.txt
Block DuckDuckBot from the whole site
User-agent: DuckDuckBot
Disallow: /Allow it again
User-agent: DuckDuckBot
Allow: /
String breakdown
| Fragment | Meaning |
|---|---|
DuckDuckBot/1.1 | DuckDuckBot 1.1 — an automated crawler/bot, not a real browser. |
+http://duckduckgo.com/duckduckbot.html | Info page the bot operator publishes for webmasters. |
Use it in code
curl
curl -A "DuckDuckBot/1.1; (+http://duckduckgo.com/duckduckbot.html)" https://example.comPython (requests)
import requests
requests.get("https://example.com", headers={"User-Agent": "DuckDuckBot/1.1; (+http://duckduckgo.com/duckduckbot.html)"})Playwright (Node.js)
const context = await browser.newContext({ userAgent: "DuckDuckBot/1.1; (+http://duckduckgo.com/duckduckbot.html)" });
Source: DuckDuckBot · checked September 2026