# DuckDuckGo: Web search results

## Tools

Cheapest first.

| Tool | Source | Price | Health | p50 | Success (7d) | Runs (30d) |
| --- | --- | --- | --- | --- | --- | --- |
| [DuckDuckGo organic results for a query — fast, trimmed](https://www.orcarouter.ai/tools/duckduckgo/serp-organic/x-duckduckgo-light.md) | — | $0.0275 per call | OK | — | — | — |
| [DuckDuckGo organic search results for a query](https://www.orcarouter.ai/tools/duckduckgo/serp-organic/x-duckduckgo-search.md) | — | $0.0275 per call | OK | — | — | — |

## More on DuckDuckGo

- [Maps \& local results](https://www.orcarouter.ai/tools/duckduckgo/serp-maps.md)
- [News results](https://www.orcarouter.ai/tools/duckduckgo/serp-news.md)

## FAQ

### How much does Web search results on DuckDuckGo cost?

2 tools offer it, from $0.0275 per call.

### How does an agent use these tools?

With one OrcaRouter API key: POST /v1/tools/discover finds them and POST /v1/tools/{id}/run calls one, with the same request shape for every tool here.

## Call the cheapest tool

Its input fields are on its own page: [DuckDuckGo organic results for a query — fast, trimmed](https://www.orcarouter.ai/tools/duckduckgo/serp-organic/x-duckduckgo-light.md).

```bash
curl -sS https://api.orcarouter.ai/v1/tools/serpapi.x-duckduckgo-light/run \
  -H "Authorization: Bearer $ORCAROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{}}'
```

```python
import os, requests

resp = requests.post(
    "https://api.orcarouter.ai/v1/tools/serpapi.x-duckduckgo-light/run",
    headers={"Authorization": f"Bearer {os.environ['ORCAROUTER_API_KEY']}"},
    json={"input":{}},
)
print(resp.json())
```

---

Markdown version of https://www.orcarouter.ai/tools/duckduckgo/serp-organic
