---
title: "Search"
description: "Get one DuckDuckGo results page, with every block in page order."
---

> Every apinoa docs page as markdown: https://apinoa.com/llms.txt (all in one file: https://apinoa.com/llms-full.txt; this API family in one file: https://apinoa.com/docs/serp/llms.txt)

```http
GET | POST /v1/duckduckgo/search
```

Send parameters as a query string with `GET`, or as a JSON body with `POST`. Both are equivalent.

## Request

```bash tab="cURL"
curl "https://gateway.apinoa.com/v1/duckduckgo/search?q=best+running+shoes&country=US" \
  -H "x-api-key: $APINOA_API_KEY"
```

```js tab="JavaScript"
const params = new URLSearchParams({ q: "best running shoes", country: "US" });
const res = await fetch(`https://gateway.apinoa.com/v1/duckduckgo/search?${params}`, {
  headers: { "x-api-key": process.env.APINOA_API_KEY },
});
const { success, data, error } = await res.json();
```

```python tab="Python"
import os

import requests

res = requests.get(
    "https://gateway.apinoa.com/v1/duckduckgo/search",
    params={"q": "best running shoes", "country": "US"},
    headers={"x-api-key": os.environ["APINOA_API_KEY"]},
)
body = res.json()
```

## Parameters

| Parameter | Type | Required | Notes |
|---|---|---|---|
| `country` | enum |  | The market, as an ISO 3166 country code. `US` `GB` `CA` `AU` `IN` `DE` `FR` `IT` `ES` `NL` `BR` `MX` `JP` `KR` |
| `cursor` | string |  | The previous page's `cursor`. Pass it alone for the next page. |
| `limit` | integer 1–100 |  | Results wanted (default 10, at most 100). More than one page is charged per page. |
| `q` | string |  | The query, search operators included. |
| `safe` | enum |  | Safe search. `on` `off` |
| `timeRange` | enum |  | Only results from this past period. `hour` `day` `week` `month` `year` |
| `type` | enum |  | What to search: web results (default), news, images or videos. `web` `news` `images` `videos` |

The same parameters, and every response type, are in the OpenAPI document: https://apinoa.com/openapi.json

## Response

Returns [`ResultsPage`](/docs/api-reference/serp/response-schema#resultspage) in `data`. A real response, shortened: arrays keep their first entries and long text is cut.

```json
{
  "success": true,
  "data": {
    "engine": "duckduckgo",
    "query": "best running shoes",
    "type": "web",
    "outcome": "results",
    "country": "US",
    "device": "desktop",
    "page": 1,
    "items": [
      {
        "type": "shopping",
        "items": [
          {
            "title": "On Men's Cloudboom Echo 3 Road Running Shoe In White/Flame, Size: 11.5",
            "url": "https://www.on.com/en-us/products/cloudboom-echo-3-0-3md1059/mens/white-flame-shoes-3MD10590256?variant=11.5&m…",
            "price": "$260.00",
            "lowPrice": "$130.00",
            "merchant": "On Running",
            "thumbnail": "https://www.bing.com/th?id=OPHS.JAt6Xy%2bZyO2cXA474C474&o=5&pid=21.1",
            "snippet": "A fusion of CloudTec® and Helion™ HF hyper foam for our fastest race-day shoe. Get ready to outrun your echo |…",
            "sponsored": true,
            "clickUrl": "https://duckduckgo.com/y.js?ad_domain=on.com&ad_provider=bing&ad_type=prad&click_metadata=YPxo%2D6r%2DBu%2Dx6n…"
          },
          {
            "title": "On Men's Cloudmonster 3 Road Running Shoe In Eclipse/Ivory, Size: 11.5, Polyester",
            "url": "https://www.on.com/en-us/products/cloudmonster-3-m-3mg1005/mens/eclipse-ivory-shoes-3MG10053388?variant=11.5&m…",
            "price": "$190.00",
            "lowPrice": "$150.00",
            "merchant": "On Running",
            "thumbnail": "https://www.bing.com/th?id=OPHS.I93vHyie0KB%2fFg474C474&o=5&pid=21.1",
            "snippet": "We've levelled up the latest Cloudmonster, bringing back the forward-rolling ride you love. Now featuring a tr…",
            "sponsored": true,
            "clickUrl": "https://duckduckgo.com/y.js?ad_domain=on.com&ad_provider=bing&ad_type=prad&click_metadata=%2DyfPGA7EWq4tBoRb_K…"
          }
        ],
        "rank": 1,
        "sponsored": true
      },
      {
        "type": "ad",
        "block": "top",
        "url": "https://ad.doubleclick.net/searchads/link/click?lid=43700081731586309&ds_s_kwgid=58700008871720321&ds_a_cid=68…",
        "title": "Built For Runners, By Runners - Supportive Running Shoes",
        "snippet": "Stay Supported On Every Run With Durable, High-Performance Running Shoes. Shop Brooks® Running Shoes & Apparel…",
        "advertiser": "Brooks Running",
        "displayUrl": "www.brooksrunning.com",
        "sitelinks": [
          {
            "url": "https://ad.doubleclick.net/searchads/link/click?lid=43700081731586309&ds_s_kwgid=58700008871720321&ds_a_cid=68…",
            "title": "Adrenaline GTS 25"
          },
          {
            "url": "https://ad.doubleclick.net/searchads/link/click?lid=43700081731586309&ds_s_kwgid=58700008871720321&ds_a_cid=68…",
            "title": "Try Our Shoe Finder"
          }
        ],
        "ext": {
          "clickUrl": "https://duckduckgo.com/y.js?ad_domain=brooksrunning.com&ad_provider=bingv7aa&ad_type=txad&click_metadata=fZ6OU…"
        },
        "rank": 2,
        "favicon": "https://www.bing.com/th?id=OADD2.1242448182628032_1DRPH90YYKI2O5R&pid=21.2&h=32"
      },
      {
        "type": "organic",
        "position": 1,
        "url": "https://www.runnersworld.com/gear/a19663621/best-running-shoes/",
        "title": "The 15 Best Running Shoes of 2026, Tested by Runner's World",
        "snippet": "Find the best running shoes of 2026, including Runner's World-tested picks from Adidas, Brooks, New Balance, N…",
        "site": "Runner's World",
        "displayUrl": "www.runnersworld.com/gear/a19663621/best-running-shoes/",
        "date": "2026-10-22",
        "sitelinks": [
          {
            "url": "https://www.runnersworld.com/gear/a20865766/best-stability-running-shoes/",
            "title": "Stability",
            "snippet": "Through rigorous testing and a lifetime of runs, we've determined the best stability running shoes on the mark…"
          },
          {
            "url": "https://www.runnersworld.com/gear/a26028922/running-shoes-for-men/",
            "title": "Men's Running Shoe Reviews",
            "snippet": "From freaky fast racers to rock-solid stability shoes, these are the highest-rated running shoes for men that…"
          }
        ],
        "rank": 5,
        "lang": "en"
      },
      {
        "type": "topStories",
        "items": [
          {
            "title": "Heads up: 2026's best running shoes are already marked down by as much as 45%",
            "url": "https://www.msn.com/en-us/lifestyle/other/heads-up-2026-s-best-running-shoes-are-already-marked-down-by-as-muc…",
            "source": "Outside Online",
            "date": "2026-10-25T09:22:46.000Z",
            "snippet": "Looking to upgrade your running shoes without paying full price? We rounded up four top-tested road trainers a…"
          },
          {
            "title": "Hoka updated one of its best running shoes for pain-free walks and runs—now the cloud-like sneakers are on sal…",
            "url": "https://www.msn.com/en-us/news/other/hoka-updated-one-of-its-best-running-shoes-for-pain-free-walks-and-runs-n…",
            "source": "EatingWell",
            "date": "2026-10-21T10:00:00.000Z",
            "snippet": "A plush yet supportive design? We're in.",
            "thumbnail": "https://www.bing.com/th?id=ONUT.4Ma08_mymEhVGpW5Wj7ryg&pid=News"
          }
        ],
        "rank": 10
      },
      {
        "type": "relatedSearches",
        "queries": ["best running shoes for men", "best running shoes for women"],
        "rank": 17
      }
    ],
    "cursor": "rhDukN2wfKxmHVjTS25-olD-Z_d_Rj_ivX3a4765VdFFfm17ma1zcpp495WtWkFT0nZiEO37qbSIQUFRDbYYe2Cgue7tkw_XBJhrSgAhiZ8iGL…",
    "fetchedAt": "2026-10-30T00:57:50.542Z"
  }
}
```

## Errors

| Status | Code | Meaning |
|---|---|---|
| 400 | `INVALID_CURSOR` | The `cursor` is not one this operation returned. Start again without it. |
| 400 | `INVALID_PARAMS` | A parameter is missing, unknown or out of range, or the engine does not take it. The message names it. |
| 401 | `UNAUTHORIZED` | The `x-api-key` header is missing, or the key is revoked or unknown. |
| 402 | `INSUFFICIENT_BALANCE` | The balance does not cover this call. Top up in the dashboard. |
| 429 | `MARKETPLACE_SATURATED` | Too many concurrent calls. Retry after the `Retry-After` seconds. |
| 502 | `UPSTREAM_ERROR` | The engine answered with something unusable. Retry with backoff. |
| 503 | `SERVICE_UNAVAILABLE` | A temporary failure. Retry with backoff. |

Every code is listed in [Errors](/docs/errors). Failed calls are not billed.

## Pricing

**Price** $0.0012 per call, plus $0.0012 for each extra call it makes — at most 9 more, so $0.012 in total. [List price](https://apinoa.com/en/pricing); the rate steps down above 1,000 calls a day.
