Bing SERP Scraper — Organic Results, Positions & Snippets avatar

Bing SERP Scraper — Organic Results, Positions & Snippets

Pricing

from $3.78 / 1,000 search results

Go to Apify Store
Bing SERP Scraper — Organic Results, Positions & Snippets

Bing SERP Scraper — Organic Results, Positions & Snippets

Scrape Bing organic SERP results. Get position, title, URL, displayed URL, and snippet. Run with a required query and no external API keys. Pricing: $0.0039 per result-item on the Free plan.

Pricing

from $3.78 / 1,000 search results

Rating

0.0

(0)

Developer

Vitalii Bondarev

Vitalii Bondarev

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

a day ago

Last modified

Features

Limited permissions

Share

Bing SERP Scraper

Scrape Bing Search organic results into position, title, URL, displayed URL, and snippet records. The Free plan charges $0.0039 per result-item, and only returned records are charged.

  • Track SEO rank changes with organic positions across result pages.
  • Analyze competitor SERPs using titles, destination URLs, displayed URLs, and snippets.
  • Research keywords by collecting the content that appears in Bing titles and snippets.
  • Compare regional results by running the same query with different Bing market codes.
  • Run from your Apify account without external API keys or a separate proxy account.

What you get

Each dataset record contains the following fields:

FieldTypeDescription
positionintegerOrganic result position, including the page offset.
result_typestringResult type; this Actor emits organic.
titlestringTitle displayed for the Bing result.
urlstringDestination URL, decoded from Bing’s tracking redirect when available.
displayed_urlstringBreadcrumb URL shown on the SERP.
snippetstringDescription text shown below the result title.
querystringSearch query submitted to Bing.
marketstringBing market code used for the request, such as en-US or de-DE.
pageintegerSERP page from which the record was collected.
parse_confidencenumberParse-quality score. A score of 1.0 indicates a perfect parse; scores below 0.5 indicate detected schema drift.
warningsarray of stringsParser warnings associated with the result page.
scraped_atISO 8601 stringUTC timestamp assigned when the run collected the records.

A field is null when the source does not provide the value; warnings is an empty array when no parser warnings are associated with the result page.

The parser uses Bing’s structural result container and result elements, decodes outbound tracking URLs, and removes duplicate URLs encountered across pages.

Sample output

This is the first record of a stored run (query web scraping tools, en-US, maxItems 50). It shows the exact field shape; Bing's results for this query on that day were dominated by Kite by Zerodha pages, so the record illustrates the format rather than result relevance.

{
"position": 1,
"result_type": "organic",
"title": "Login to Kite by Zerodha - Fast, easy trading and investment platform",
"url": "https://kite.zerodha.com/",
"displayed_url": "https://kite.zerodha.com",
"snippet": "Log in to Kite for a fast, simple, and user-friendly trading platform by Zerodha.",
"query": "web scraping tools",
"market": "en-US",
"page": 1,
"parse_confidence": 1,
"warnings": [],
"scraped_at": "2026-11-04T15:46:28.499186+00:00"
}

Pricing

This Actor uses pay-per-event pricing. You pay only for the events listed below. This Actor does not use the Pay per event + usage option, so the platform usage of your runs (compute, proxy traffic and storage) is not billed to you separately.

The billed event is result-item, charged once per Bing SERP result returned. No result-item charge is incurred when no results are returned.

Planresult-item price
Free$0.0039
Silver$0.003822
Bronze$0.003861
Gold$0.003783
Platinum$0.003744
Diamond$0.003705

For example, on the Free plan, 1,000 x $0.0039 = $3.90 and 10,000 x $0.0039 = $39.00.

The Apify Free plan includes $5 of monthly platform usage credit. At the Free-plan price of $0.0039 per result-item, the $5 credit covers 1,282 results.

How to use

  1. Open the Bing SERP Scraper in Apify.
  2. Enter a required query, such as web scraping tools.
  3. Choose a Bing market code to control the language and regional results.
  4. Set count for requested results per page and maxItems for the total number of organic records to collect.
  5. Configure the prefilled Apify RESIDENTIAL proxy when you want the recommended cloud-run configuration.
  6. Start the run and inspect the dataset fields, including position, url, snippet, and parse_confidence.
  7. Repeat the run through Apify Schedules, using daily as a starting point for SEO rank tracking.
{
"query": "web scraping tools",
"market": "en-US",
"count": 10,
"maxItems": 50,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Export the dataset as JSON or CSV, or read it through the Apify dataset API.

Input parameters

ParameterWhat it doesDefault
queryRequired search term submitted to Bing.Required
marketBing market code controlling language and regional results, using a language-COUNTRY format such as en-US, en-GB, de-DE, or fr-FR.en-US
countNumber of results requested per page, from 1 to 50.10
maxItemsMaximum number of organic results to collect across pages. 0 means no limit, up to the page cap of 20 pages (about 200 results).50
proxyConfigurationProxy settings for the request. The prefilled configuration uses the Apify RESIDENTIAL proxy group.Apify RESIDENTIAL proxy
disableUsageStatsSet to true to turn off the run summary described in Usage statistics.false

Limits and edge cases

ConditionWhat you seeWhat to do
maxItems is larger than about 200The Actor stops at a hard cap of 20 pages, about 200 results per query, so a larger maxItems cannot be reached.Split the work into several queries.
Bing blocks a page request (403, 429, 503 or a challenge page)The Actor makes up to 3 attempts per page, each with a fresh proxy and cookies. When all attempts fail, the run stops and records already pushed stay in the dataset.Review the records already collected and run again if you need more.
A network error occursNetwork errors are retried inside each request with backoff. If they still fail, the run stops without proxy rotation; records already pushed stay in the dataset.Run again if you need more.
count differs from 10Bing may ignore count and return about 10 results per page, so 10 is the reliable value. If a page parses fewer than 10 results, the run ends there, even when maxItems is not reached.Use 10.
Bing repeats a URL on a later pageDuplicate URLs are removed across pages, so the dataset can contain fewer records than the number of raw results seen in page responses. A full page made up only of duplicate URLs ends the run early.Treat the dataset as a unique-URL result set.
A query has no organic resultsThe dataset is empty.Check the query spelling, market code, and Bing’s available results.
The parser encounters a changed or incomplete result structureRecords include parse_confidence and warnings; a page with no valid parsed results can end with no records for that page.Inspect those fields and review the query or rerun if the result structure appears to have changed.
You need People Also Ask, news, or related searchesStatic fetching does not provide those JavaScript-rendered result types. This Actor returns Bing organic result records.Use an Actor that specifically supports the result type you need.

FAQ

The Free plan charges $0.0039 per result-item. See the Pricing section for example totals and the other plans.

What happens if Bing returns an empty result?

The Actor stops when Bing returns no valid organic results. Check the query and market, then run again with a query that produces organic results.

Why is the Actor not working or returning fewer results?

Bing can recycle URLs across pages, and duplicates are removed. A block or fetch error ends the run early, as described in Limits and edge cases. Check warnings and parse_confidence, verify the required query, and retry.

This Actor reads Bing Search organic-result pages. Whether a particular use is allowed depends on the source terms and applicable law for your use case; review those requirements yourself. This Actor does not provide a legal guarantee.

Usage statistics

This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.

A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.

To opt out, set disableUsageStats to true in the input. Nothing is sent then.

Full list of collected fields