# ScrapeForAgents DuckDuckGo Web Search

> ScrapeForAgents DuckDuckGo Web Search is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Fetches structured organic web search results from DuckDuckGo for a given query, with region, time, and safe-search filters.

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/duckduckgo?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/scrapeforagents-duckduckgo-web-search-a27ef47f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_8-0HW892Q6iWcQOxRwOJL

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability scrapeforagents-duckduckgo-web-search-a27ef47f -d '<json body>'
```

Example prompt: Search DuckDuckGo for 'open source LLM frameworks' and give me up to 20 results from the past month, worldwide region.

## When to prefer this

Choose this endpoint when you need structured, privacy-respecting web search results from DuckDuckGo with per-call pay-as-you-go pricing and no charge for failed or empty runs. Prefer it over Google Search APIs when DuckDuckGo's regional filtering and no-tracking posture are desirable, or when you want cost efficiency (only pay for successful results).

## Known failure modes

- Query returns zero organic results for highly specific or obscure searches — empty items array returned, no charge applied
- Invalid region code causes filter to be ignored or returns an error
- Network timeout or DuckDuckGo upstream unavailability results in a failed run (not charged)
- maxRecords capped at 500; requesting more is silently clamped
- Time frame filter may return fewer results than requested if DuckDuckGo has limited indexed content for that period

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

A JSON object with a count of results and an array of items, each containing URL, page title, description, raw description, hostname, icon URL, and timestamp, plus the product identifier 'duckduckgo'.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "query": {
   "type": "string",
   "description": "Words or search operators to look up in DuckDuckGo web results."
  },
  "region": {
   "type": "string",
   "default": "wt-wt",
   "description": "DuckDuckGo region code such as wt-wt for worldwide, us-en, uk-en, or tr-tr."
  },
  "timeFrame": {
   "enum": [
    "a",
    "d",
    "w",
    "m",
    "y"
   ],
   "type": "string",
   "default": "a",
   "description": "Limit results to pages DuckDuckGo associates with the past day, week, month, or year."
  },
  "maxRecords": {
   "type": "integer",
   "default": 100,
   "maximum": 500,
   "minimum": 1,
   "description": "Stop after this many unique organic web results. Availability depends on the query and search filters."
  },
  "safeSearch": {
   "enum": [
    "-2",
    "-1",
    "0"
   ],
   "type": "string",
   "default": "-1",
   "description": "Choose the search result content filter."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "url": null,
    "icon": null,
    "time": null,
    "query": null,
    "title": null,
    "hostname": null,
    "description": null,
    "rawDescription": null
   }
  ],
  "product": "duckduckgo"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/scrapeforagents-duckduckgo-web-search-a27ef47f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
