# DuckDuckGo Rank API (https://www.socialcrawl.dev/platforms/duckduckgo/rank) > Returns whether a domain or a URL path ranks on DuckDuckGo for a search, its best position, and every matching result, scanning up to 200 positions in one call. TL;DR: `GET /v1/duckduckgo/rank` costs 5 credits per call and returns SocialCrawl's unified JSON schema. Single x-api-key auth, 100 free credits on signup. ## Parameters | Parameter | Required | Description | | --- | --- | --- | | `query` | yes | The search to check, for example best running shoes. | | `url` | yes | The site to look for: a domain (example.com, matching its subdomains) or a URL with a path (example.com/blog, matching pages under it). | | `region` | no | Region code such as us-en, uk-en or de-de (64 codes), or wt-wt for no region. Default us-en. | | `safe_search` | no | strict, moderate or off. (strict \| moderate \| off) | | `time_range` | no | any, day, week, month or year. (any \| day \| week \| month \| year) | | `depth` | no | Organic positions to scan, 1 to 200. Default 100. One call at any depth. | | `all_matches` | no | true to scan the whole depth and report every matching position. Default false (stop at the first results page with a match). | | `include_subdomains` | no | false to count only the exact domain. Default true. | ## Code example ```bash curl -G "https://www.socialcrawl.dev/v1/duckduckgo/rank" \ --data-urlencode "query=best running shoes" \ --data-urlencode "url=runnersworld.com" \ -H "x-api-key: sc_YOUR_API_KEY" ``` ## FAQ ### How do I check a ranking on DuckDuckGo? Call GET /v1/duckduckgo/rank with query set to the search and url set to a domain such as example.com or a URL path such as example.com/blog. It returns whether you rank, your best position, and every matching result. ### How deep does the rank check scan? Up to 200 positions in one call. depth sets how many organic positions to scan and defaults to 100, and one call costs the same at any depth. ### What do all_matches and include_subdomains change? all_matches set to true scans the whole depth and reports every matching position, while the default stops at the first results page with a match. include_subdomains set to false counts only the exact domain, and it defaults to true. ### What do region, safe_search and time_range do? region takes a code such as us-en, uk-en or de-de (64 codes), or wt-wt for no region, and defaults to us-en. safe_search takes strict, moderate or off, and time_range takes any, day, week, month or year. ### How much does this DuckDuckGo endpoint cost? Each call costs 5 credits on the advanced tier. There is no subscription, and 100 free credits cover 20 calls. See the full DuckDuckGo API: https://www.socialcrawl.dev/platforms/duckduckgo ## Pricing - Standard endpoints: 1 credit per call - Advanced endpoints: 5 credits per call - Premium endpoints: 10 credits per call - 100 free credits on signup, no credit card required. Cached responses cost 0 credits. Credit packs never expire. - Full pricing: https://www.socialcrawl.dev/pricing ## Explore with AI Questions this API answers, phrased for an AI assistant: - How do I track my DuckDuckGo ranking with an API? - Can I check where a domain ranks on DuckDuckGo for a keyword?