Search & SEO · Coming soon

DuckDuckGo and Bing Search Results Scraper

Add keywords and get DuckDuckGo and Bing results as rows. Each row has the position, title, real URL and snippet. You can compare both engines in one run.

Built and tested. Prices will be shown after release.

Coming soon to the Apify StoreFollow us on Apify

What you get, for example

engineduckduckgo
queryapify
position1

How it will work: 3 steps

  1. Follow us on ApifyThe tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: apify in Search queries. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Add search queries, pick DuckDuckGo, Bing or both, and get the public search results as one row per result: position, title, real website URL, snippet and domain.

  • position in the engine's result list (continues across pages);
  • title, snippet (description) and the real website URL (Bing's and DuckDuckGo's redirect links are decoded);
  • displayed URL and domain;
  • the engine, query, region and page it came from.

Good for

  • Check where a site appears on DuckDuckGo and Bing for a keyword list.
  • Collect the top 10–100 URLs for a topic for SEO, content or lead research.
  • Give an AI agent a cheap web search with clean rows.
  • Compare DuckDuckGo and Bing results for the same queries.

Not a good fit

  • Only organic web results. Ads, news, images, videos, maps, "People also ask" and AI answers are not returned.
  • Results are not personalised and not tied to a city.
  • Bing with the site: operator returns only its first page (about 10 results).
  • The engines sometimes block automated traffic. The Actor changes IP addresses and retries, but it never solves CAPTCHAs (see Troubleshooting).

Who uses it

SEO specialists

Check where a site ranks on DuckDuckGo and Bing for a keyword list.

AI agent builders

Give an agent a cheap web search with clean rows.

Content researchers

Collect the top pages for a topic in a few minutes.

Price

Prices will be shown after release.

Questions

Do I get ads or news results?

No. You get organic web results only. Ads, news, images, maps and AI answers are not included.

Why are the links real website URLs?

Both engines use redirect links. The tool decodes them, so you get the page address itself.

How many results can I get per keyword?

Up to 100 results per query and engine. A run can have up to 500 queries.

Do I pay for blocked pages?

No. Error rows and blocked or retried pages are free.

Do I need a DuckDuckGo or Bing account or API key?

No. The Actor reads public results pages without login or cookies of any account.

Is the order the same as on duckduckgo.com or bing.com?

position follows the order on the results pages for the chosen region. DuckDuckGo uses its simple "lite" page, which can differ a little from the full page.

How do I search only one site?

Add the operator to the query, for example site:apify.com scraper. On Bing you get the first page only.

Details

Step by step on Apify
  1. Open the Input tab.
  2. In Search queries (queries), keep the prefilled apify or add your own queries, one per line.
  3. Keep Search engine DuckDuckGo (default), or choose Bing or Both.
  4. Keep Region United States (English) or choose another one.
  5. Keep Results per query (maxResults) at 10 (prefill), or set up to 100.
  6. Click Start.
  7. Open the Output tab and check engine, position, title and url.
Use cases
TaskInputYou getKey fieldsNext step
Rank check on two enginesqueries, engine: both, regionresult rowengine, query, position, domainSchedule + Google Sheets or API
Topic researchqueries, maxResults: 50result rowtitle, url, descriptionExport CSV / JSON
Web search for AI agentsqueries, maxResults: 5result rowtitle, url, descriptionMCP or API
Fresh pages onlyqueries, timeRange: weekresult rowurl, descriptionWebhook or Slack
Tips for better results
  • Pick a region to get results for one country.
  • Use the time range filter to find fresh pages only.
  • Split very long keyword lists into several runs.
Limits and good to know
  • A search with no results costs one page: the engine was asked and answered
  • error rows and retried or blocked pages are free. This includes queries answered only with results unrelated to the query (UNRELATED_RESULTS)
  • If an engine answers nothing usable for 90 seconds (timeouts, errors or blocks), the Actor stops that engine, so a broken engine never makes a run expensive
  • If you set a maximum charge for the run, the Actor stops before it, keeps the rows and ends with status CAPPED
  • Up to 500 queries and 100 results per query and engine in one run
  • 40 queries × 100 results on both engines (8,000 rows) took about 23 minutes in tests. After 3,600 seconds the run stops with status CAPPED and keeps all rows; split bigger lists across runs
  • The engine decides how many results a query has; some queries end before maxResults
  • Bing outside the United States is slower, because it goes through a residential IP in that country

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "status": "complete",
  "engine": "duckduckgo",
  "query": "apify",
  "position": 1,
  "title": "Apify: Marketplace of ready-to-run tools for AI",
  "url": "https://apify.com/",
  "displayedUrl": "apify.com",
  "domain": "apify.com",
  "description": "Apify is a marketplace of ready-to-run tools for AI. Get real-time web data, track competitors, generate leads, monitor social media, and integrate your apps and agents.",
  "page": 1,
  "region": "us-en",
  "searchUrl": "https://lite.duckduckgo.com/lite/?q=apify&kl=us-en",
  "errorCode": null,
  "statusReason": null,
  "fetchedAt": "2026-10-15T05:44:38.881Z"
}
Data fields (15)
FieldTypeMeaning
statusstringcomplete = search result; not_found = the engine returned no results for this query (one charged page); error = the search failed after retries (free).
enginestringSearch engine of this row: duckduckgo or bing.
querystringYour search query.
positionintegerPlace in the engine's results for this query, from 1, continuing across pages; null on not_found/error rows.
titlestringResult title.
urlstringReal website URL (decoded from the engine's redirect link).
displayedUrlstringAddress as the engine shows it under the title.
domainstringHost of the URL without www.
descriptionstringSnippet text.
pageintegerEngine result page the row came from (1 = first page).
regionstringRegion code of the search, e.g. us-en.
searchUrlstringSearch page address. For DuckDuckGo pages after the first (loaded by form submit) this is the first page address.
errorCodestringMachine-readable reason on error rows, e.g. SOURCE_BLOCKED or UNRELATED_RESULTS (only unrelated results; not charged); null otherwise.
statusReasonstringPlain-language explanation on not_found and error rows.
fetchedAtstringWhen the page was loaded (ISO 8601, UTC).
Input settings (7)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Search queries requiredqueriesarray["apify"]
Search engineenginestring"duckduckgo"
Regionregionstring"us-en"
Results per querymaxResultsinteger10
Safe searchsafeSearchstring"moderate"
Time rangetimeRangestring"any"
ProxyproxyConfigurationobject

Use cases with this tool

Each guide shows all the steps and the other tools.

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure