Tony Wang7 min readHow to Scrape Bing Search Results in 2026 (API & Python)
Scrape Bing search results in 2026 — DIY Python, no-code tools, or a structured API for web, image, news, and video data — and the Bing API retirement.
The fastest way to scrape Bing search results in 2026 is to call a structured search API that returns normalized JSON — organic results with titles, URLs, and snippets, plus image, news, video, and autosuggest modules — instead of driving a headless browser through Bing's anti-bot defenses yourself. You can still build a DIY scraper in Python, but Bing's own developer API isn't there to fall back on anymore: Microsoft retired it in 2025.
Microsoft retired the Bing Search API — here's what that actually means
If you searched your way here, there's a good chance it's because you (or a system you depend on) used to call Bing's official Web Search, News, Image, or Autosuggest API and it stopped working. That's not a bug. Microsoft retired all Bing Search APIs on August 11, 2025, after announcing the decision on May 15, 2025. Every instance was decommissioned — existing keys stopped working, and new signups were closed. Some developers reported that API creation was quietly disabled as early as March 2025, weeks before the formal announcement, which left roughly three months between the public notice and the hard cutoff.
The whole suite went with it: Web Search, Image Search, News Search, Video Search, Autosuggest, Spell Check, Entity Search, Visual Search, Custom Search, and Local Business Search. Microsoft's recommended path forward is Grounding with Bing Search inside Azure AI Foundry — but that's a shift in kind, not a rename. It requires provisioning an Azure AI Agents project, resource groups, and a model deployment; it's built to let an LLM agent ground its own answers in live web data, not to hand your application a JSON array of ranked results. For a team that just wants search results in a database or a monitoring dashboard, standing up an Azure AI Agents project is a lot of platform to take on for what used to be a single REST call.
That's why "Bing API alternative" and, in Japan specifically, bing api 廃止 ("Bing API discontinued") are still live search terms well over a year after the shutdown — Azure AI Foundry's onboarding cost is high enough that teams keep looking for a simpler drop-in replacement, and new teams keep discovering the retirement for the first time when their first API call 404s. A structured third-party API — one that still returns the plain "give me ranked results as JSON" shape the old Bing API used to — is the practical answer for most of those use cases, and that's what the rest of this guide covers.
Why scrape Bing search results
- SEO and SERP monitoring. Track how your pages (or a competitor's) rank on Bing over time — Bing still runs Yahoo, DuckDuckGo (partially), and other secondary engines, so a ranking win there compounds.
- Cross-engine rank tracking. Bing's index and ranking algorithm differ from Google's; run the same keyword set through both and you can tell whether a ranking move is sitewide or engine-specific.
- AI grounding and RAG. Feed an LLM pipeline live web results without paying Azure AI Foundry's platform tax or building your own crawler.
- News and content monitoring. Bing's news module surfaces recent coverage by keyword, useful for brand and competitor monitoring.
- Market and product research. Autosuggest and related searches expose real query demand for keyword research, without needing a Google Ads account.
Is it legal to scrape Bing?
Scraping public search results is generally treated differently from accessing private or paywalled data, but "public" is not a blanket permission. The practical rules of thumb:
- Collect only public result pages — no logins, no personal accounts.
- Respect rate limits and don't degrade the service for other users.
- Review Bing's terms of use and your local law before commercial use; you are responsible for how you use the data.
- Store and process results lawfully, especially anything that could be personal data.
None of this is legal advice — see Is web scraping legal in 2026? for the longer version, including the hiQ v. LinkedIn and CFAA context.
Option 1: DIY in Python (and why it breaks)
A naive approach fetches the results page and parses the HTML:
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://www.bing.com/search",
params={"q": "ai agents"},
headers={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"Accept-Language": "en-US,en;q=0.9",
},
)
soup = BeautifulSoup(resp.text, "html.parser")
# Bing's organic results sit in <li class="b_algo"> blocks — but the class names
# and nesting shift often, so selectors need to key on stable attributes and be
# re-verified regularly. Normalize each block into {position, title, url,
# description} before you can do anything useful with it.
This works once, then breaks. The recurring costs:
- Anti-bot defenses. Bing serves a challenge page (not your results) to requests it flags as automated — datacenter IPs, missing browser fingerprints, and unusual request cadence all trigger it.
- Markup drift. Result containers and class names change without notice, and your selectors silently return an empty list instead of erroring loudly.
- No official fallback. Before August 2025, a broken scraper had an official API as a backstop. That backstop is gone — you're now maintaining the DIY path with nothing behind it.
- No structure. You still have to normalize organic results, news cards, video cards, and related searches into a stable schema yourself, and each module has its own markup.
Most of the cost isn't the first scrape — it's keeping it alive across Bing's anti-bot and layout changes with no official fallback if it breaks.
Option 2: No-code and ready-made tools
Browser extensions and point-and-click scrapers are fine for a one-off export, but they're awkward inside a data pipeline: hard to schedule, hard to version, and they still break when Bing's page changes. For recurring collection that feeds a product or dashboard, an API is the better fit — especially now that there's no official Microsoft API to fall back on.
Option 3: A structured Bing Search API
Crawlora's Bing API wraps request handling, anti-bot evasion, and normalization behind five documented endpoints — web, image, news, video, and autosuggest — all under one key shared with every other engine and platform on the account.
curl -G "https://api.crawlora.net/api/v1/bing/search" \
-H "x-api-key: $CRAWLORA_API_KEY" \
--data-urlencode "q=ai agents" \
--data-urlencode "country=us" \
--data-urlencode "lang=en-us" \
--data-urlencode "count=10"
import requests
resp = requests.get(
"https://api.crawlora.net/api/v1/bing/search",
headers={"x-api-key": "YOUR_API_KEY"},
params={"q": "ai agents", "country": "us", "lang": "en-us", "count": 10},
)
for row in resp.json()["data"]["results"]:
print(row["position"], row["title"], row["url"])
A response is normalized JSON you can store directly (fields shown are illustrative — check the docs for the current schema):
{
"code": 200,
"msg": "OK",
"data": {
"results": [
{
"position": 1,
"title": "Example result title",
"url": "https://example.com/",
"hostname": "example.com",
"display_url": "https://example.com › page",
"description": "Snippet text shown under the result.",
"favicon": "https://th.bing.com/th/id/..."
}
],
"pagination": { "page": 1, "count": 10, "next_page": 2 }
}
}
Page through results with page, and call the sibling endpoints for other result types:
BASE = "https://api.crawlora.net/api/v1/bing"
headers = {"x-api-key": "YOUR_API_KEY"}
images = requests.get(f"{BASE}/images", headers=headers, params={"q": "ai agents", "count": 20}).json()["data"]
news = requests.get(f"{BASE}/news", headers=headers, params={"q": "ai agents"}).json()["data"]
videos = requests.get(f"{BASE}/videos", headers=headers, params={"q": "ai agents"}).json()["data"]
suggest = requests.get(f"{BASE}/suggest", headers=headers, params={"q": "ai age", "count": 8}).json()["data"]
News results include age, age_timestamp, source, and thumbnail alongside the usual title/url/description; autosuggest returns a ranked suggestions array of `{position, query}` pairs — useful for the same keyword-demand research the old Bing Autosuggest API covered. Localize any endpoint with country (two-letter code) and lang (ll-cc format, e.g. ja-jp); every endpoint defaults to country=us, lang=en-us.
One Crawlora key calls all five Bing endpoints, plus every other engine and platform on the same account — no Azure project, no resource group, and no waitlist to get in.
What you can collect
- Organic web results: position, title, URL, hostname, display URL, description snippet, and favicon
- Image results: position, image URL, thumbnail, source, source URL, and dimensions
- News results: position, title, source, description, and age/timestamp
- Video results: position, title, creator, platform, and duration
- Autosuggest completions: ranked query suggestions for a prefix
- Pagination via
page, and locale control viacountryandlang
Limitations and common challenges
- No official free API anymore. Bing's own Search APIs are gone; Grounding with Bing Search is an Azure AI Agents feature, not a general-purpose search endpoint, and it requires a full Azure project to use.
- Anti-bot for DIY. Direct scraping faces challenge pages on datacenter IPs and unusual fingerprints; a structured API handles impersonation, retries, and normalization behind one key.
- Markup and module drift. Organic, image, news, video, and suggestion blocks each have their own shape and change independently — use dedicated endpoints instead of one giant parser.
site:searches aren't supported. Bing serves a bot-verification challenge forsite:-operator queries specifically; use the Google Search API for domain-restricted searches instead.- Single-engine bias. Bing's ranking differs from Google's and Brave's — treat each engine's results as its own series rather than assuming they agree.
Sources
Where this fits
Try it first, free: run any public URL through the Free Web Scraper, or check whether a site blocks bots with the Anti-Bot Checker — no signup.
Bing is most useful as a second engine alongside Google and Brave for cross-engine rank tracking — see how SERP monitoring APIs work and the SERP monitoring use case. Pair it with the Brave Search API and the Google Search API; response shapes are consistent enough that the same storage code snapshots all three. To judge whether a ranking move is worth chasing, set engine results next to search demand — see how to scrape Google Trends. When the query is local rather than web-wide, switch to place results with how to scrape Google Maps; when it's academic rather than commercial, how to scrape Google Scholar covers the papers-and-citations index instead. For a broader tool comparison, see the best SERP APIs in 2026.
Get started by testing the endpoints in the Playground, reading the request and response schema in the API docs, and reviewing credit costs on the pricing page.
Part of our how-to-scrape guide series — every platform we cover, in one index.
Frequently asked questions
Can I scrape Bing without getting blocked?
Crawlora handles Chrome impersonation, proxy routing, and retries behind the API and returns documented errors instead of a challenge page when Bing is unavailable. You call one endpoint and get normalized JSON back.
Is the Bing Search API being discontinued?
It already was. Microsoft retired all Bing Search APIs (Web, Image, News, Video, Autosuggest, and the rest of the suite) on August 11, 2025, after announcing the decision on May 15, 2025. Existing keys were decommissioned and new signups closed. The recommended replacement, Grounding with Bing Search inside Azure AI Foundry, requires a full Azure AI Agents project rather than a drop-in API key, which is why third-party alternatives like Crawlora's Bing endpoints remain the simpler path for teams that just want ranked JSON results.
What's a good Bing API alternative now that Microsoft's is gone?
A structured third-party API that still returns the plain 'search query in, ranked JSON out' shape the old Bing API used to, without requiring an Azure project. Crawlora's Bing endpoints cover web, image, news, video, and autosuggest results from one key shared with Google and Brave.
Does Bing have any official search API left?
No general-purpose one. Grounding with Bing Search exists only as a feature of Azure AI Agents (Azure AI Foundry) for grounding LLM responses in live web data — it is not a standalone REST endpoint you call for a JSON results array the way the old Bing Search API was.
How is Bing different from Google for scraping?
Bing's index and ranking differ from Google's, so results diverge — that's exactly why teams collect both. Bing also rejects site: operator queries with a bot-verification challenge, where Google's Search API supports domain-restricted queries directly.
What data does the Bing Search API return?
Organic results with position, title, URL, hostname, and description, plus dedicated image, news, video, and autosuggest endpoints. Paginate with page and localize with country and lang.
Can I use it for rank tracking?
Yes. Each response includes ranking positions and URLs, so recording them on a schedule builds a Bing rank tracker. Run the same keywords through Google and Brave for cross-engine comparison.