# DuckDuckBot

DuckDuckGo says DuckDuckBot improves search results. The page says the user agent will appear as DuckDuckBot/1.1; (+http://duckduckgo.com/duckduckbot.html) and that it respects WWW::RobotRules, linking that name to the MetaCPAN module page. DuckAssistBot is a different token: a real-time crawl for AI-assisted answers, not this card.

- Operator: DuckDuckGo
- Kind: search
- robots.txt: obeys. The vendor says this crawler obeys robots.txt on automatic crawls.
- HTTP user-agent: DuckDuckBot/1.1; (+http://duckduckgo.com/duckduckbot.html) DuckDuckGo says the crawler's user agent will appear as this string, including the semicolon.
- IP list: https://duckduckgo.com/duckduckbot.json
- Source: https://duckduckgo.com/duckduckgo-help-pages/results/duckduckbot (retrieved 2026-10-18)

## JSON

`curl -s https://whosthatbot.com/v1/crawlers/duckduckbot`

## Check this token

tools/call with name check_robots is the same check at https://whosthatbot.com/mcp. Send `Content-Type: application/json` and `Accept: application/json, text/event-stream`. The pasted file disallows DuckDuckBot on `/docs` and allows `*`. The call does not fetch a host.

```
curl -s https://whosthatbot.com/mcp -H 'content-type: application/json' -H 'accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"check_robots","arguments":{"robots_txt":"User-agent: DuckDuckBot\nDisallow: /\n\nUser-agent: *\nAllow: /\n","path":"/docs","ids":["duckduckbot"]}}}'
```

That call returns fetched_target false. This row is disallow via group DuckDuckBot, rule Disallow: /.

Each card paraphrases the linked vendor page and was checked on source.retrieved. This is not legal advice. robots.txt is a request from the site owner. Botcard does not fetch third-party sites and does not suggest ways around a disallow rule.
