Bing Search Scraper avatar

Bing Search Scraper

Pricing

from $0.41 / 1,000 results

Go to Apify Store
Bing Search Scraper

Bing Search Scraper

Bing's organic web results for your search terms, one row per result: position, title, link, snippet and the date Bing shows, page after page, in 32 countries. A page that answers some other query is never kept or charged, and a query Bing won't answer comes back as a free row saying so.

Pricing

from $0.41 / 1,000 results

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Type your search terms and get Bing's organic web results back, one row per result: the position, title, link, snippet and the date Bing shows, page after page, in the country and language you pick. Every page is checked before anything on it is kept. When Bing answers a query with results for something else, nothing from that page is delivered or charged, and if no page answers it the query comes back as a free row that says so.

InputSearch terms, as you would type them into Bing, one per line
OutputOne row per organic result: position, title, link, snippet, date shown, address shown
Ceiling200 results per query, 500 queries per run
SpeedAbout 20 results per query every 15 seconds (measured on US searches)
Account neededNone from you
Price$0.42 per 1,000 results, flat on every plan. The free plan's $5 a month covers about 11,900

🔍 What Bing Search Scraper does

It searches Bing the way a person in the country you choose would, reads each results page, and keeps the organic results in Bing's own order. Ads, answer boxes, image strips and "people also ask" panels are left out. Then it moves to the next page through Bing's own pager, until it has the number of results you asked for or Bing's list ends.

Before a page counts, three things are checked: it is a real results page, Bing served it in the market you asked for, and its results carry the words of your query. Only pages that pass end up in your dataset, and only those results are charged.

📋 What data you get from each Bing result

What you would call itField
Rank for the queryposition, and the results page it was on as page
The result itselftitle, url, snippet
What Bing printed above the titlesiteName, displayedUrl
The date in front of the snippet, when Bing shows onedate, as Bing printed it
What was askedquery, country, language, safeSearch, freshness
The market Bing servedmarket, as the results page reported it

▶️ How to scrape Bing search results

  1. Open Bing Search Scraper on Apify and click Try for free.
  2. Type your terms into Search queries, one per line.
  3. Set Results per query, then pick a Country and, if you need it, a Language.
  4. Change Safe search or Published within if you want to, and click Start.
  5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

Run it with no queries at all and you get one free sample row showing the shape of the output.

💰 How much does it cost to scrape Bing search results?

$0.42 per 1,000 results, flat on every Apify plan. The free plan's $5 of monthly credit covers about 11,900 results.

You pay for results delivered and nothing else. The sample row, diagnostic rows, and any page that was not an answer to your query are free. Results per query and the run's maximum charge are the two limits on what one run can spend.

📥 What you give it

FieldDefaultWhat it is
queriesnone (the form starts with two examples)Up to 500 search terms. Quotes around a phrase work. A query with an operator such as site: or intitle: is skipped with a free row (see below). A repeat is searched once.
maxResultsPerQuery10Organic results to collect per query, 1 to 200.
countryUSOne of 32 countries Bing serves its own results for. China and Russia are not offered.
languagethe country's ownOnly Belgium (nl, fr), Canada (en, fr), Switzerland (de, fr) and the United States (en, es) have a choice. Any other pair stops the run before it searches.
safeSearchmoderatemoderate is Bing's default, strict drops adult pages, off keeps them.
freshnessanyday, week, month or year: only pages Bing dates within that window.
{
"queries": ["best running shoes for flat feet", "crm software for small business"],
"maxResultsPerQuery": 30,
"country": "US",
"safeSearch": "moderate",
"freshness": "any"
}

📤 What you get back

A real row from a run on 3 October 2026:

{
"recordType": "result",
"query": "crm software for small business",
"position": 1,
"page": 1,
"title": "The Best Small Business CRM Software for 2026 - PCMag",
"url": "https://www.pcmag.com/picks/the-best-small-business-crm-software",
"displayedUrl": "https://www.pcmag.com › picks › the-best-small-business-crm-software",
"siteName": "PCMag",
"snippet": "Customer relationship management (CRM) doesn't have to be costly or complicated. We've evaluated and compared all …",
"date": "Jul 22, 2026",
"market": "en-US",
"country": "US",
"language": "en",
"safeSearch": "moderate",
"freshness": "any",
"scrapedAt": "2026-10-03T16:13:36.632Z"
}
FieldWhat to know
positionCounts organic results only, across pages, starting at 1. Ads are not counted.
urlThe page's own address, not Bing's click-through link.
snippetnull when Bing showed no text under the title.
dateOnly when Bing printed one, and as printed: "Sep 8, 2026", "3 hours ago". null otherwise.
pageBing's results page the row came from. Bing fits anywhere from 2 to 14 organic results on a page.

🧾 Reading the output

RowHow to spot itCharged
A resultrecordType is resultyes
The samplerecordType is sample, with _sample: true. Only when no queries were givenno
A diagnosticrecordType is diagnostic, with _diagnostic: true and an errorCodeno

Keep the rows whose recordType is result to get the results alone.

CodeWhat it means
BAD_INPUTA setting the actor can't use, such as a country and language Bing has no market for, and then nothing was searched. Or one query that was skipped, such as a site: search, while the others went ahead.
NOT_ANSWEREDBing answered this query with results for something else. Run it again later.
NO_RESULTSBing has nothing for the query with these settings. Common with strict safe search or a short date window.
PARTIALA later page could not be read. The results before it are in the dataset.
NOT_SEARCHEDThe run stopped before reaching this query: the time limit or the maximum charge.
MAX_CHARGE_TOO_LOWThe run's maximum charge does not cover a single result, so nothing was searched.

The run report (RUN_REPORT in the key-value store) lists every query with its outcome, the results returned and the pages read.

💡 What people use it for

  • Tracking where a site ranks on Bing for a list of keywords, week after week, by filtering url on your domain and reading position.
  • Comparing Bing against Google for the same terms, to see which pages win on one and not the other.
  • Collecting fresh pages on a topic with Published within set to a day or a week.
  • Building a list of sites that rank for a niche, as a starting point for outreach.

One recipe: send your keywords to this actor, keep the rows where url contains your domain, then run the same keywords through Google Search Results Scraper, which takes one query a run, and set this actor's position beside its rank.

🚧 What it does not do

  • Organic results only. No ads, no "people also ask", no answer boxes, images, videos or news panels.
  • No total result count in the rows. Bing's "About 524,000 results" line is an estimate and moves between pages.
  • Positions are Bing's for that moment. Bing reorders results between visits and between pages, so the same query can differ a little from one run to the next.
  • Some queries stop short of what you asked. Bing's list for a narrow query, a strict filter or a short date window can end after a few pages.
  • Long lists need a longer timeout. At 20 results a query, an hour covers roughly 250 queries. Queries the run did not reach come back as free NOT_SEARCHED rows.
  • No site:, intitle: or other operators. In our checks Bing answered every site: search with results for one word of the query, so these queries are skipped with a free BAD_INPUT row instead of being searched.
  • Place-based searches use a place Bing picks. "Weather tomorrow" or "pizza near me" is answered for a location inside the country you chose, not yours. Put the city in the query.
  • China and Russia are not offered. Bing claimed to serve those markets but returned results for unrelated queries.
  • Bing's keyword suggestions are not here. Those come from Keyword Autocomplete Scraper.

🧭 Which search scraper do you need?

If you wantUse
Bing's web results for your search termsThis one
What Bing and Google suggest as people typeKeyword Autocomplete Scraper
Google's web results for the same termsGoogle Search Results Scraper
Yandex results, for Russia, Turkey and nearby marketsYandex Search Engine Scraper
News articles on a topicGoogle News Scraper

❓ Questions people ask

Do I need a Bing account or an API key to scrape Bing results?

No. It reads the public results pages, the same ones anyone sees without signing in.

Why are my results different from what I see on Bing?

Bing tailors results to your location, your history and whether you are signed in. To compare like with like, open Bing in a private window with the same country set. Bing also reorders some results from one visit to the next.

Why did a query come back as NOT_ANSWERED?

Bing returned results for a different query, so none of them were kept or charged. It is usually temporary. Run the query again later.

Can I call it from my own code or an AI assistant?

Yes. The API tab on the actor page has ready-made calls in several languages. For AI assistants that speak MCP, add https://mcp.apify.com/?actors=dami_studio/bing-search-scraper as a server.

How many results can I get for one query?

Up to 200. A narrow query can run out sooner, and the run report marks a query that reached the end of Bing's list.

The results pages are public. What you may do with the data depends on where you are and what you do with it. Apify's write-up on web scraping and the law is a good start, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page and send the run ID with the queries and settings you used. The errorCode on a diagnostic row usually names the problem on its own.