---
title: "Search"
description: "DuckDuckGo 검색 결과 페이지 하나를 가져옵니다. 모든 블록이 페이지 순서대로 옵니다."
---

> 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
```

파라미터는 `GET`의 쿼리 문자열로도, `POST`의 JSON 본문으로도 보낼 수 있습니다. 둘은 같습니다.

## 요청

```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()
```

## 파라미터

| 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

## 응답

`data`에 [`ResultsPage`](/docs/api-reference/serp/response-schema#resultspage)를 돌려줍니다. 실제 응답을 줄인 것입니다. 배열은 앞쪽 항목만 남기고 긴 텍스트는 잘랐습니다.

```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"
  }
}
```

## 에러

| 상태 | 코드 | 의미 |
|---|---|---|
| 400 | `INVALID_CURSOR` | 이 오퍼레이션이 돌려준 `cursor`가 아닙니다. `cursor` 없이 처음부터 다시 호출하세요. |
| 400 | `INVALID_PARAMS` | 파라미터가 없거나, 알 수 없거나, 범위를 벗어났거나, 이 엔진이 받지 않는 값입니다. 메시지에 이름이 나옵니다. |
| 401 | `UNAUTHORIZED` | `x-api-key` 헤더가 없거나, 폐기되었거나 알 수 없는 키입니다. |
| 402 | `INSUFFICIENT_BALANCE` | 잔액이 이 호출 비용에 모자랍니다. 대시보드에서 충전하세요. |
| 429 | `MARKETPLACE_SATURATED` | 동시 호출이 너무 많습니다. `Retry-After` 초만큼 기다린 뒤 다시 시도하세요. |
| 502 | `UPSTREAM_ERROR` | 엔진이 쓸 수 없는 응답을 보냈습니다. 간격을 두고 다시 시도하세요. |
| 503 | `SERVICE_UNAVAILABLE` | 일시적인 장애입니다. 간격을 두고 다시 시도하세요. |

모든 코드는 [Errors](/docs/errors)에 있습니다. 실패한 호출은 과금되지 않습니다.

## 가격

**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.
