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

TypeSearch engine crawler
OperatorDuckDuckGo
PurposeWeb crawler for DuckDuckGo search
Version1.1
robots.txt tokenDuckDuckBot
How to verifyMatch 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

FragmentMeaning
DuckDuckBot/1.1DuckDuckBot 1.1 — an automated crawler/bot, not a real browser.
+http://duckduckgo.com/duckduckbot.htmlInfo page the bot operator publishes for webmasters.

Use it in code

curl

curl -A "DuckDuckBot/1.1; (+http://duckduckgo.com/duckduckbot.html)" https://example.com

Python (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

Related user agents

All user agent strings →

What does your own browser send? Check your user agent →