{
  "openapi": "3.0.1",
  "info": {
    "title": "Duckduckgo Scraper",
    "description": "DuckDuckGo Scraper collects clean search results from DuckDuckGo without tracking. Extract titles, URLs, snippets, and result positions for SEO research, market analysis, and content discovery. Built for fast, reliable, and privacy-focused data collection.",
    "version": "0.1",
    "x-build-id": "zlaXoG8M1fSfbCMHc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scraper-engine~duckduckgo-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scraper-engine-duckduckgo-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/scraper-engine~duckduckgo-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scraper-engine-duckduckgo-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/scraper-engine~duckduckgo-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scraper-engine-duckduckgo-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "searchKeyword",
          "searchMode",
          "region",
          "safeSearch"
        ],
        "properties": {
          "searchKeyword": {
            "title": "🔑 Search keyword",
            "type": "string",
            "description": "What should DuckDuckGo look for? Plain keywords work, and so do search operators such as site:example.com, filetype:pdf, inurl:, intitle: and \"exact phrase\" (verified working on web mode).",
            "default": "javascript"
          },
          "searchMode": {
            "title": "🎯 Search mode",
            "enum": [
              "default",
              "news",
              "videos"
            ],
            "type": "string",
            "description": "The kind of results you want back: classic web links, news headlines, or videos.",
            "default": "default"
          },
          "region": {
            "title": "🌍 Region & language",
            "enum": [
              "wt-wt",
              "ar-es",
              "au-en",
              "at-de",
              "be-fr",
              "be-nl",
              "br-pt",
              "bg-bg",
              "ca-en",
              "ca-fr",
              "ct-ca",
              "cl-es",
              "cn-zh",
              "co-es",
              "hr-hr",
              "cz-cs",
              "dk-da",
              "ee-et",
              "fi-fi",
              "fr-fr",
              "de-de",
              "gr-el",
              "hk-tzh",
              "hu-hu",
              "in-en",
              "id-en",
              "ie-en",
              "il-en",
              "it-it",
              "jp-jp",
              "kr-kr",
              "lv-lv",
              "lt-lt",
              "my-en",
              "mx-es",
              "nl-nl",
              "nz-en",
              "no-no",
              "pk-en",
              "pe-es",
              "ph-en",
              "pl-pl",
              "pt-pt",
              "ro-ro",
              "ru-ru",
              "xa-ar",
              "sg-en",
              "sk-sk",
              "sl-sl",
              "za-en",
              "es-ca",
              "es-es",
              "se-sv",
              "ch-de",
              "ch-fr",
              "tw-tzh",
              "th-en",
              "tr-tr",
              "us-en",
              "us-es",
              "ua-uk",
              "uk-en",
              "vn-en"
            ],
            "type": "string",
            "description": "Results differ per country — choose where DuckDuckGo should search from. Sent as the `l` locale parameter.",
            "default": "wt-wt"
          },
          "safeSearch": {
            "title": "🛡️ Safe search",
            "enum": [
              "OFF",
              "MODERATE",
              "STRICT"
            ],
            "type": "string",
            "description": "Sent to DuckDuckGo as the `p` filter parameter. STRICT is measurably enforced — an adult keyword returns 0 rows under STRICT and 10 rows under OFF. MODERATE and OFF returned the same web hosts in testing, so treat MODERATE as best-effort.",
            "default": "OFF"
          },
          "maxItems": {
            "title": "📊 Max results to save",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Hard cap on dataset rows (1–1000). This is authoritative: the actor keeps paginating until it reaches this number, hits the optional page cap below, or DuckDuckGo runs out of results. Duplicate URLs across pages are skipped and do not count.",
            "default": 20
          },
          "endPage": {
            "title": "📄 Page cap (optional)",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Optional extra ceiling on how many result pages to fetch (0 = no page cap, which is the default; Max results alone decides). Page sizes: web 10, news ~30, videos ~60 rows.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy configuration",
            "type": "object",
            "description": "Optional. When off, the actor starts direct and automatically escalates to Apify datacenter and then residential proxies if DuckDuckGo blocks an exit IP. Residential is recommended for deep pagination."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}