All scrapers

Search

Bing Scraper

bing.com

99.6% Success rate
8.4s Avg response
Bot detection + rate limiting Protection
1,040 calls Measured over

Bing matters more than its market share suggests because it feeds several AI assistants, so tracking it next to Google gives a fuller picture of where a page actually surfaces. A dedicated plugin endpoint takes a keyword and returns the results page already parsed: organic results with position, title, URL, displayed URL, domain and description, top and bottom ads in their own lists, related searches and the total result count. Every page is rendered in a real browser through an exit in the country you pick, so the ads are the ones a searcher there sees, and the response has the same shape as our Google /serpApi endpoint, so one pipeline handles both engines.

What you can extract

  • Organic results with position, title, URL, displayed URL, domain and description
  • Top and bottom ads as separate lists, with the advertiser's domain
  • Related searches
  • Total results count, pages checked and a hasMore flag
  • Country- and language-specific result sets (proxy_country + language)
  • Up to 10 result pages per call

Dedicated endpoints

/search/bing

Bing search results

Search results for a keyword: organic (position, title, url, displayedUrl, domain, description), topAds and bottomAds, relatedSearches and totalResults, plus a count for each list. Pick the market with proxy_country and language; collect up to 10 pages with pages_to_check. Same parameters and response shape as /serpApi.

How to scrape it

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/search/bing?keyword=car%20insurance&pages_to_check=1&proxy_country=GB"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/search/bing",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"keyword": "car insurance", "pages_to_check": "1", "proxy_country": "GB"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const results = await su.bingSearch('car insurance', {
  pagesToCheck: 1,
  proxyCountry: 'GB',
});
console.log(results);

Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.

Example response

{
  "engine": "bing",
  "keyword": "car insurance",
  "country": "GB",
  "language": "en",
  "totalResults": 48600,
  "resultsCollected": 10,
  "topAdsCount": 5,
  "bottomAdsCount": 3,
  "organicResultsCount": 2,
  "topAds": [
    {
      "position": 1,
      "title": "Compare UK Car Insurance | Compare the Market ™ Car",
      "url": "https://www.bing.com/aclk?ld=e8rLZhoUrp6ZXr4IGK-mBmdT...",
      "displayedUrl": "https://www.comparethemarket.com › Car › Insurance",
      "domain": "comparethemarket.com",
      "description": "Accelerate Your Car Insurance, Get A Free Quote In Minutes..."
    }
  ],
  "bottomAds": [
    {
      "position": 3,
      "title": "Our Cheapest Car Insurance | Car Insurance Quote in Minutes",
      "url": "https://www.bing.com/aclk?ld=e8AAjwZ0pzbGlgaU86CyOk_z...",
      "displayedUrl": "https://www.uswitch.com › Insurance › Car",
      "domain": "uswitch.com",
      "description": "Save On Your Car Insurance By Using Our Free & Easy Website..."
    }
  ],
  "organic": [
    {
      "position": 1,
      "title": "Compare cheap car insurance quotes - Compare the Market",
      "url": "https://www.comparethemarket.com/car-insurance/",
      "displayedUrl": "https://www.comparethemarket.com › car-insurance",
      "domain": "comparethemarket.com",
      "description": "Compare car insurance from 187 provider products with the UK's preferred price comparison site..."
    }
  ],
  "relatedSearches": ["cheap car insurance uk", "car insurance comparison", "compare car insurance"],
  "pagesChecked": 1,
  "hasMore": true
}

Read the API docs

Frequently asked questions

Is it legal to scrape Bing?

Collecting publicly available Bing data such as organic results, ads and related searches is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. ScrapeUnblocker returns the public results; what you collect and how you use it is your responsibility.

How do I scrape Bing without getting blocked?

Bing uses bot detection and rate limiting, and it sometimes answers an automated session with a degraded page that only matches the first word of the query. The /search/bing plugin renders every results page in a real browser through an exit in the country you pick, renders a page again on a fresh exit when it comes back blocked or degraded, and returns parsed JSON. In ScrapeUnblocker's benchmark it returned real results on 99.6% of 1,040 calls with different queries, about 8.4s per call.

What Bing data can I get?

/search/bing returns JSON in the same shape as /serpApi: organic results with position, title, URL, displayed URL, domain and description, top and bottom ads in their own lists, relatedSearches, totalResults and a count for each list, plus pagesChecked and hasMore. Ads follow the exit country, and Bing does not show them on every query, so an empty ad list is a normal answer.

Do I need a Bing API or account?

No. Microsoft retired its Bing Search APIs in August 2025, and the plugin needs no Bing or Azure account: send keyword with your ScrapeUnblocker key and get parsed JSON back. Because the response has the same shape as /serpApi, code written for Google results reads Bing results by changing the path only.

Can I scrape Bing results from a specific country?

Yes. Pass proxy_country with a two-letter country code (default US) and language with a two-letter language code (default en). proxy_country sets both Bing's market and the exit the page is rendered through, and Bing picks ads by the visitor's location, so you get the results and ads a searcher in that country sees.

How much does it cost to scrape Bing?

Each results page fetched is billed as one request: a pages_to_check=3 call that returns three pages counts as 3 requests, and pagesChecked shows the exact number. 1 request = 1 credit, EUR 1.00 per 1,000 on pay as you go, down to about EUR 0.55 per 1,000 on the Ultimate plan. Blocks and timeouts are not billed, and the free trial includes 500 requests with no card.

Related scrapers

Start scraping this site today

Free tier included. No credit card required to test it.