Bing Scraper: Bing Results Pages via API
Microsoft retired the Bing Search APIs on August 11, 2025, so code written for https://api.bing.microsoft.com/v7.0/search no longer works. The best route now depends on what you need. For raw positions, ads and related searches, fetch Bing's public results page: your own script through ProxyField residential proxies works today (412M+ IPs in 195+ countries, Easy Trial 1 GB for $2.95, traffic never expires), and ProxyField's Web Scraping API, in development (contact sales), is priced at $0.50 per 1,000 pages, or $0.20 from 10,000 in one purchase. For AI answers, use Grounding with Bing Search; for parsed JSON, a third-party SERP API; to host it yourself, OpenSERP.
Through the sales team on our 24/7 live chat
| Fetch | Entry | Volume, from |
|---|---|---|
| HTTP | $0.50 | $0.20 |
| JS rendering | $2.00 | $1.00 |
Billed on successful results only.
For UK rankings, request mkt=en-GB&setlang=en-GB from a UK exit IP (<login>-country-gb; 16.6M+ UK residential IPs in 640+ cities): 500 keywords to the top 30, daily, is 45,000 pages, $22.50 a month through the Web Scraping API, or $9 at the volume price.
In Python, loop requests.get on https://www.bing.com/search with first = (page - 1) * 10 + 1 (1, 11, 21, 31, 41 for the top 50), read li.b_algo blocks for the results and .b_rs a links for related searches. The 13-line script below does exactly that; the full version adds ads, a challenge-page guard, JSON and CSV.
Bing Search API retired: how to get Bing search results programmatically now
Microsoft retired the Bing Search APIs on August 11, 2025, and existing keys were decommissioned (Microsoft's retirement notice). Code that still calls https://api.bing.microsoft.com/v7.0/search with a subscription key gets no results. Microsoft points developers to Grounding with Bing Search in Azure AI Agents, which feeds Bing results into an AI agent's answer; it does not hand you the results page with positions, snippets and ads. Pick the route by what you need, and by what works today:
| You need | Route | Works today? | What you get | Cost | What you build |
|---|---|---|---|---|---|
| Raw positions, ads and features, full control | Your own script through ProxyField residential proxies | Yes | The Bing results page, fetched by your code | From $1.95/GB; Easy Trial 1 GB for $2.95 | Fetcher, retries and parser (the Python below) |
| Raw positions, ads and features, no fetcher to run | ProxyField Web Scraping API | No: in development, contact sales | The Bing results page (HTML, not parsed JSON), from any of 195+ countries | $0.50 per 1,000 pages, from $0.20: 5,000 keywords, first page, daily, US and UK = 300,000 pages = $150 a month, $60 at the volume price | A parser (the Python below, about 50 lines) |
| AI answers with citations | Grounding with Bing Search in Microsoft Foundry (Microsoft's docs) | Yes, in Azure | The agent's answer, with URL citations | Set by Microsoft ("incurs costs", per its docs) | An Azure AI agent |
| Parsed JSON, no parser to maintain | A third-party SERP API that returns Bing results as fields | Yes, from such providers | JSON fields such as organic_results, ads, related_searches and search_information | Set by each provider, per 1,000 searches | Nothing: you pay an intermediary and depend on its parser |
| A tool you host | OpenSERP, an open-source (MIT) SERP API and CLI for Bing, Google, DuckDuckGo, Yandex, Baidu and Ecosia (OpenSERP docs) | Yes, you host it | JSON from a server you run | Your servers | You run it and own its reliability, updates and rate limits |
Read moreShow less
A parsed-JSON service typically returns one object per search: search_information (the query and the result count Bing shows), organic_results (position, title, link, snippet), ads (position, title, displayed link) and related_searches (the query text). The script on this page writes the same shape from the raw page, minus search_information.
The response is the page, not parsed fields. This is what the full script below (about 50 lines) makes of that page, with the ads, organic results and related searches as rows:
{
"search": {"keyword": "residential proxies", "market": "en-GB", "device": "desktop", "date": "2026-10-27"},
"ads": [
{"position": 1, "block": "top", "title": "…", "displayed_url": "…", "link": "https://www.bing.com/aclick?…"}
],
"organic_results": [
{"position": 1, "title": "…", "url": "https://…", "page": 1, "snippet": "…"},
{"position": 11, "title": "…", "url": "https://…", "page": 2, "snippet": "…"}
],
"related_searches": [
{"position": 1, "query": "…"}
]
}Bing data on public result pages
A Bing scraper reads the results page a searcher sees. The Web Scraping API (in development) is designed to take a Bing search, news, image or video URL and return the page; your parser, or the Python below, pulls the fields out of it. ProxyField sells no separate Bing API with pre-parsed fields, and its Google SERP API covers Google only.
| Bing page | URL | What the public page shows |
|---|---|---|
| Web search | /search?q= | Organic results with position, title, URL and snippet; ads; related searches; answer boxes and other features |
| News | /news/search?q= | Headline, source, publish time, snippet, link |
| Images | /images/search?q= | Thumbnail, image URL, source page, title, size |
| Videos | /videos/search?q= | Title, length, platform, channel, views, upload date, link |
| URL parameter | What it sets | Example |
|---|---|---|
q | the query | q=residential+proxies |
first | the position of the first result: first = (page - 1) * 10 + 1, so 1, 11, 21, 31, 41 for pages 1 to 5 | first=11 |
mkt | the market (language and country), from Microsoft's market code list | mkt=en-GB |
setlang | the interface language | setlang=en-GB |
cc | the country, as an alternative to mkt | cc=GB |
Send mkt (with setlang) and leave cc out: Microsoft's query parameter reference for the retired API says mkt and cc "are mutually exclusive — do not specify both", so the scripts here send mkt alone. Check on the first page you fetch that the market came through: a UK page shows UK domains and prices in pounds.
Scrape Bing as a UK searcher sees it to track rankings
Yes: request the URL with the UK market from a UK IP. Microsoft's support page How Bing delivers search results says "Bing considers the user's location (country and city)", so a UK check needs the UK market in the URL (en-GB in Microsoft's market code list) and a UK exit IP, and a local query ("plumber") needs a UK city as well:
Read moreShow less
- URL:
https://www.bing.com/search?q=residential+proxies&mkt=en-GB&setlang=en-GB - Your own scraper: the username
<login>-country-gb, or<login>-country-gb-city-<city>for one city (lowercase, underscores for spaces) for local queries; the United Kingdom has 16.6M+ residential IPs in 640+ cities, and a city costs the same per GB as the country. - The device: desktop or mobile is set by the
User-Agentheader of the same request (the script'sDEVICEsetting). Bing's mobile page uses different markup, so check the selectors before you track mobile. - The Web Scraping API: the same URL with
"country": "gb"in the request.
Cost: 500 keywords to the top 30, daily, is 45,000 pages a month: $22.50 at $0.50 per 1,000, or $9 at the volume price. The result is what Bing showed from a UK IP at that time. Store each row with the keyword, market (en-GB), device and date, and check at the same hour every day, so two days compare like with like. Change the URL's market and the exit country together: an en-GB URL from a US IP is neither a UK nor a US result. For a browser or an SEO tool on Bing through residential IPs, see Bing proxies.
Terms and the API, in two sentences: the Microsoft Services Agreement says not to circumvent restrictions on access to the services, naming "impermissible scraping" (section 3.a.vi), and limits Bing materials to noncommercial, personal use (section 14.f.i), so weigh a commercial rank-tracking use against them (Legal questions). There is no official API to use instead: Microsoft retired the Bing Search APIs on August 11, 2025.
What changes a UK result besides the market and the IP, and how to hold it fixed:
| Factor | What it changes | Hold it fixed with |
|---|---|---|
| Device | desktop and mobile pages rank and lay out differently | the same User-Agent on every run |
| City | local queries ("plumber") change by town | -city-<city> in the username, the same city every run |
| Time of day | results and ads move during the day | the same hour every day |
| Sign-in and history | a signed-in searcher can get a personalised page | no cookies kept between runs (a signed-out request) |
A rank log, two rows from it (example domain):
| date | keyword | market | device | exit | position | url |
|---|---|---|---|---|---|---|
| 2026-10-27 | residential proxies | en-GB | desktop | GB | 7 | https://www.example.co.uk/residential |
| 2026-10-28 | residential proxies | en-GB | desktop | GB | 5 | https://www.example.co.uk/residential |
What you send to the Web Scraping API
As designed (in development, access through Contact sales), the API takes a POST to https://api.proxyfield.io/v1/scrape with your API key in an Authorization: Bearer <api_key> header and a JSON body: url, render (false for plain HTTP, true for JS rendering), country and output (html, markdown, text or json). country sets the country the request comes from (the exit IP), as a two-letter code such as gb; it accepts the proxy pool's 195+ countries. Parameter reference: API documentation.
# The request the Web Scraping API takes (access through Contact sales): page 2 of a UK search
curl https://api.proxyfield.io/v1/scrape \
-H "Authorization: Bearer <api_key>" \
-H "Content-Type: application/json" \
-d '{"url": "https://www.bing.com/search?q=residential+proxies&first=11&mkt=en-GB&setlang=en-GB", "render": false, "country": "gb", "output": "json"}'Example response (shortened; content is the page's HTML):
{
"metadata": {"id": "req_1c8e7a3f5d20b694", "api": "web_scrape", "status": "success", "billed": true},
"status_code": 200,
"final_url": "https://www.bing.com/search?q=residential+proxies&first=11&mkt=en-GB&setlang=en-GB",
"content_type": "text/html; charset=utf-8",
"content": "<!DOCTYPE html><html lang=\"en\">…</html>"
}Pricing: $0.50 per 1,000 pages, from $0.20
Bing's web, news and video results arrive in the HTML, so plain HTTP at $0.50 per 1,000 successful results covers most jobs. Pages that load results with scripts as you scroll, such as long image grids, need JS rendering: $2.00 per 1,000, from $1.00 at volume. The volume price starts at 10,000 successful results in one purchase.
One result is one results page fetched; ten organic results on one page count once. Billed: a page Bing answered with a 2xx status; a target's 404 or 410, and a sign-in page the site serves with a 200 status, also count as billed results. Not billed: blocked requests, timeouts and errors on our side; a blocked request is retried on new IPs, and the retries are not billed. Every response says whether it was billed. Payment and balance for the API: the same crypto balance as proxies, which never expires; there is no subscription or monthly fee. For availability and access, contact sales through the sales team on our 24/7 live chat. All prices: pricing.
Through the sales team on our 24/7 live chat
| Workload (30-day month) | Pages a month | Plain HTTP at $0.50 | At $0.20 (volume) |
|---|---|---|---|
| 1 keyword, top 50 (5 pages), daily | 150 | $0.08 | – |
| 500 keywords, top 30 (3 pages), daily, UK only | 45,000 | $22.50 | $9 |
| 5,000 keywords, first page, daily, US and UK | 300,000 | $150 | $60 |
When Bing refuses a request
Bing meets heavy automated traffic with a challenge page, an empty results page or fewer results than a person would see. With the Web Scraping API you pay only for successful results. With your own scraper, slow down, rotate IPs, send the headers a browser sends, and check every page for organic results before you store it, as the script does, so a challenge page never lands in your data as "no results".
What teams use Bing data for
- Rank tracking on Bing next to Google, by keyword and market: more in SEO proxies.
- SERP feature research: which answer boxes, videos and news blocks show for a query.
- Ad monitoring: which advertisers bid on your brand and what their ads say.
- Keyword research from related searches.
- Training and grounding data for AI tools, now that the Bing Search API is gone.
Clicking ads or results to inflate numbers is click fraud, which ProxyField's acceptable use policy forbids.
Legal questions
Bing is covered by the Microsoft Services Agreement (the version effective September 30, 2026). Its Code of Conduct, section 3.a.vi, says not to circumvent restrictions on access to the services and names "impermissible scraping" as an example; section 14.f.i says Bing and MSN materials are for noncommercial, personal use only. Bing's robots.txt has Disallow: /search. As quoted, section 14.f.i makes no exception for checking the rankings of your own keywords, so a commercial rank-tracking use is one to weigh against it. Read those terms against your use before you collect, keep to public result pages at a modest pace; search engines in general are covered in Is Scraping Google Legal?, and the wider question in Is Web Scraping Legal? US, EU and UK Rules (2026). ProxyField's rule for every site: public pages only, and follow the site's terms. This is not legal advice.
More scrapers
- Google SERP API: the Google results page as JSON with the AI Overview, People Also Ask and local pack parsed, $1.20 per 1,000 successful results, from $0.80.
- Google AI Mode API: the AI Mode answer, $1.50 per 1,000 successful results, from $1.00.
- News scraper for articles and publish dates, on the same Web Scraping API.
- ChatGPT scraper API: the ChatGPT answer, $1.50 per 1,000 successful results, from $1.00.
- All scrapers: scrapers.
Bing Scraper FAQ
24/7 support by live chat, including help with setup and integration.
How much does it cost to scrape Bing?
ProxyField's Web Scraping API, in development (Contact sales), is priced at $0.50 per 1,000 successful Bing results pages over plain HTTP, from $0.20 at volume, and $2.00 per 1,000 with JS rendering. Tracking 500 keywords to the top 30 every day is 45,000 pages a month: $22.50 at the entry price. Your own scraper on residential proxies starts at 1 GB for $2.95.
The Bing Search API has been retired, so what's the best way to get Bing search results programmatically now?
Pick by the output you need, since Microsoft retired the Bing Search APIs on August 11, 2025. For raw positions, snippets, ads and related searches, fetch Bing's public results page and parse it: your own script on ProxyField residential proxies today (from 1 GB for $2.95), or ProxyField's Web Scraping API, in development through Contact sales, which returns the page (HTML, not parsed JSON) for $0.50 per 1,000 successful results, from $0.20; 5,000 keywords, first page, daily, in the US and UK is 300,000 pages, $150 a month or $60 at the volume price. For AI answers with citations, Microsoft points to Grounding with Bing Search; for parsed JSON without a parser of your own, a third-party SERP API returns Bing results as fields; to run everything yourself, a self-hosted tool such as OpenSERP.
What is a Bing scraper?
A tool or script that collects Bing results pages and turns them into rows: position, title, URL, snippet, ads and related searches. It reads what a searcher sees, now that the official Bing Search API is retired.
How do I scrape Bing search results?
Request https://www.bing.com/search?q=your+keyword, read each organic result block for its title, URL and snippet, and move to the next page with first=11, first=21 and so on. Send the URLs to the Web Scraping API, or run the Python on this page through rotating residential proxies.
How do I scrape Bing search results with Python, including related searches and results past the first page?
Loop requests.get("https://www.bing.com/search", params=...) over first = (page - 1) * 10 + 1 (1, 11, 21, 31 and 41 for the top 50), parse each li.b_algo block with Beautiful Soup for title, URL and snippet, and read the related searches from the .b_rs list at the bottom of the first page, re-fetching that page with JS rendering if the plain HTML has none. Stop at the first page with no organic results, so a challenge page is not saved, and wait a few seconds between pages. The script on this page does all of this through a ProxyField residential IP and writes JSON and CSV.
Is the Bing Search API still available?
No: Microsoft retired the Bing Search APIs on August 11, 2025, and existing instances were decommissioned. It points developers to Grounding with Bing Search in Azure AI Agents, which feeds results into an agent's answer rather than returning the raw results page.
Can I get a Bing Search API key without an Azure subscription?
No: since August 11, 2025 there is no Bing Search API to get a key for, and Microsoft's grounding service runs inside Azure. Reading Bing's public results pages needs no Microsoft key at all.
Does a Bing scraper need an API key?
A scraper that reads Bing's public pages needs no Bing or Microsoft key. You need credentials only for the service you send the requests through, such as the Web Scraping API or your proxy account.
What data can I collect when scraping Bing searches?
From the web results page: organic positions, titles, URLs and snippets, text ads, related searches, answer boxes and the news, image or video blocks that show for the query. Bing's news, image and video tabs are separate URLs with their own fields.
What does a Bing scraper return?
The Web Scraping API returns the Bing page as HTML, Markdown or plain text, or in a JSON envelope with the status code, the final URL and the content; your parser turns it into organic_results and related_searches rows, as in the sample on this page. ProxyField sells no separate Bing API with pre-parsed fields, so the parsing step is yours.
Show 13 more questionsShow fewer questions
Can I scrape more than ten results per query on Bing?
Yes, by paging: first=11 returns results 11 to 20, first=21 the next ten. Each page is one request and one billed result, so the top 50 for a keyword is five pages, $0.0025 at $0.50 per 1,000.
How do I scrape Bing Videos?
Request https://www.bing.com/videos/search?q=your+keyword and read each video tile for its title, length, platform, channel, views and link. More tiles load as you scroll, so fetch with JS rendering if you need more than the first screen.
How do I scrape Bing Images?
Request https://www.bing.com/images/search?q=your+keyword; each image tile links to the full image and its source page. The grid grows as you scroll, so JS rendering at $2.00 per 1,000 or a browser through proxies gets the deeper results.
How do I scrape Bing News?
Request https://www.bing.com/news/search?q=your+keyword and read each card for headline, source, publish time, snippet and link. News changes by the hour, so schedule the same queries rather than fetching once.
Does Bing need JavaScript rendering to scrape organic results?
Usually not: Bing sends the organic results in the HTML, so plain HTTP at $0.50 per 1,000 works for web search. Infinite-scroll pages such as image and video grids, and some answer panels, need JS rendering at $2.00 per 1,000, from $1.00.
Can I scrape Bing results the way a searcher in the UK sees them, to track my keyword rankings there?
Yes: request the URL with mkt=en-GB&setlang=en-GB from a UK IP, with <login>-country-gb in the ProxyField username or "country": "gb" in the Web Scraping API request. ProxyField has 16.6M+ UK residential IPs in 640+ cities, and Bing weighs the searcher's city, so add a UK city (-city-<city>) for local queries, at the same price per GB. 500 keywords to the top 30, daily, is 45,000 pages a month: $22.50 at the entry price, $9 at the volume price.
Can I scrape Bing results for a different market or language?
Yes: set the market in the URL with mkt (for example de-DE) and the language with setlang, without cc, and send the request from an IP in that country. ProxyField residential proxies cover 195+ countries, with targeting by country, region (state) and city.
Can I monitor keyword rankings on Bing with a scraper?
Yes: fetch the same keywords on a schedule, record each URL's position with the date and market, and compare over time. Bing ranks pages differently from Google, so track both; more on rank tracking in SEO proxies.
Can I scrape the ads on Bing results pages?
Yes: text ads appear on the public results page, marked as ads, with the advertiser's URL and copy. Fetch the page from the market you check, because ads change by location, and never click them.
Can I use Bing results to ground an AI app instead of the Bing Search API?
Some teams do: they fetch the public results page for a query and pass the top results to a model. Read Bing's terms for your use (they limit Bing materials to noncommercial, personal use), or use Microsoft's grounding service inside Azure if it fits your stack.
Does Bing allow scraping?
Bing's robots.txt has Disallow: /search, and the Microsoft Services Agreement forbids circumventing access restrictions, naming "impermissible scraping", and limits Bing materials to noncommercial, personal use. Read both for your use, collect public pages only and keep the pace modest.
Why is my Bing scraper returning missing or incorrect results?
Usually because Bing served a challenge page, fewer results than a person sees, or a page for another market. Check every page for organic results before you store it, set mkt and setlang explicitly, use an IP in the target country, and recheck your selectors after layout changes.
Related pages
Collect Bing pages with the Web Scraping API
Billed on successful results only. Contact sales for the Web Scraping API and the volume you need, or run your own scraper on residential proxies. 24/7 live chat helps with setup and integration.