Scraper API

Bing Search API

for organic results and ads

Search Bing and get the results page as clean JSON, usually in well under a second. One request returns organic listings and ads with position, title, link, source, and snippet, for any keyword or region, with proxies handled for you.

SUCCESS
98.8%

of requests succeed

P50
0.6s

median response

P95
1.0s

95% finish faster

PRICE
$0.75

per 1k SERPs at volume

Stop maintaining scrapers

Bing keeps changing its markup. Your scraper shouldn't care.

  • Ads blended into organic listings
  • Markup shifting between regions
  • Proxies and captchas per query
  • Positions to recount after each change
  • Re-parse the page after each redesign
One integration commit replaces a backlog you’ll never finish.
scraper | git log
hotfix: markup changed, nulls in output
fix: ad block parsed as an organic result
fix: snippet empty on the new layout
chore: rotate proxies for bing runs again
fix: positions off by the ad count
hotfix: captcha loop on region switch
fix: displayedLink format changed
chore: refresh residential IPs by country
fix: date missing on some results
fix: retry storm on rate limits
hotfix: markup changed, nulls in output
fix: ad block parsed as an organic result
fix: snippet empty on the new layout
chore: rotate proxies for bing runs again
fix: positions off by the ad count
hotfix: captcha loop on region switch
fix: displayedLink format changed
chore: refresh residential IPs by country
fix: date missing on some results
fix: retry storm on rate limits
hotfix: markup changed, nulls in output
fix: ad block parsed as an organic result
fix: snippet empty on the new layout
chore: rotate proxies for bing runs again
fix: positions off by the ad count
hotfix: captcha loop on region switch
fix: displayedLink format changed
chore: refresh residential IPs by country
fix: date missing on some results
fix: retry storm on rate limits
hotfix: markup changed, nulls in output
fix: ad block parsed as an organic result
fix: snippet empty on the new layout
chore: rotate proxies for bing runs again
fix: positions off by the ad count
hotfix: captcha loop on region switch
fix: displayedLink format changed
chore: refresh residential IPs by country
fix: date missing on some results
fix: retry storm on rate limits
feat: integrate HasData API
Code Examples

One GET Request. That's the whole integration.

Start with just a query. Add more parameters when your use case needs them.

request example
curl -G 'https://api.hasdata.com/scrape/bing/serp' \
	--data-urlencode 'q=Coffee' \
	--data-urlencode 'location=Austin, Texas, United States' \
	--data-urlencode 'deviceType=desktop' \
	--header 'x-api-key: <YOUR_API_KEY>' \
	--header 'Content-Type: application/json'
q * Search Query
Specify the search term for which you want to scrape the SERP.
location Location
Defines the search’s origin location as free text (e.g. `Austin, Texas`). It is resolved to coordinates to localize the results. For realistic results, set location at the city level. If both `lat` and `lon` are provided, they take precedence and `location` is ignored. If omitted, the proxy’s location may be used.
lat Latitude
GPS latitude for the search origin.
lon Longitude
GPS longitude for the search origin.
mkt Market Code
The two-letter country code for the country to search from.
cc Country
The two-letter country code for the country to search from.
setLang Interface Language
The language of the user interface and preferred result language. Accepts a two-letter language code (e.g. `en`, `de`) or a locale/script variant (e.g. `en-gb`, `zh-hans`, `pt-br`).
safeSearch Adult Content Filtering
Adult Content Filtering option.
filters Additional Filtering
Allows applying various filters to narrow search results, including date-based options: - `ex1:"ez1"` – past 24 hours - `ex1:"ez2"` – past week - `ex1:"ez3"` – past month For complex filters, run a Bing search and copy the filters parameter from the URL.
first Result Offset
This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 1 (default) indicates the first page of results, 11 refers to the second page, and 21 to the third page.
deviceType Device
Specify the device type for the search.
TRY ALL 11 PARAMETERS FREE
Response

The whole page, one predictable schema

Organic listings and ads come back in separate arrays with the same keys every time. Map the fields once and forget about it.

organicResults.json
[
  {
    "position": 1,
    "title": "The 15 Best Running Shoes of 2026, Tested by Runner's World",
    "link": "https://www.runnersworld.com/gear/a19663621/best-running-shoes/",
    "displayedLink": "https://www.runnersworld.com › gear › best-running-shoes",
    "source": "runnersworld.com",
    "snippet": "Find the best running shoes of 2026, including our editors' top picks...",
    "date": "Jul 6, 2026"
  }
]
Fields in organicResults
position number

Rank of the result on the page

title string

Result title as shown on Bing

link string

Destination URL

displayedLink string

Breadcrumb-style URL Bing shows

source string

Domain behind the result

snippet string

Description text under the title

date string

Publish date when Bing shows one

What We Offer

An all-in-one scraping service

Every feature you need to collect data from thousands to millions of requests.

Loved by developers

Teams that deleted their scraper

Now it's the part of the pipeline they don't think about

4.8 ★★★★★
across 100+ reviews on 5 platforms
Trustpilot Trustpilot ★★★★★

HasData delivers exactly what we need: speed and comprehensive search features. It's the fastest API we've used in this space. Plus, their customer support is fantastic.

Denver Sinclair
Denver Sinclair
Capterra Capterra ★★★★★

The SERP API provides accurate, structured search engine data across multiple regions and devices, enabling us to monitor market trends and performance with ease.

DD
Doaa D.
Trustpilot Trustpilot ★★★★★

We use the Google SERP API by HasData for its AI-overview feature. It delivers real-time data with consistent reliability. The JSON output includes an actual SERP screenshot, ensuring full accuracy.

Liam Hawthorne
Liam Hawthorne
Capterra Capterra ★★★★★

We rely on HasData for search performance data and broader scraping needs. Their APIs deliver highly structured data that integrates directly into our platforms.

JN
Jacob N.
Trustpilot Trustpilot ★★★★

We are using this service for google scraping and it works well. We used to use several services, but this looks like best match efficiency/cost.

Jan Svanda
Jan Svanda
CEO at E-solutions LLC
Pricing

Plans that get cheaper at scale

Fixed price, fixed volume, no surprises at the end of the month. Upgrade when you need more.

Free
$0 /mo
One-time free trial
100 SERPs to start
1 concurrent request
Team seats
Community support
Start free
Startup
$41 /mo
$2.04 / 1k SERPs
20K SERPs / month
15 concurrent requests
Team seats
Email support
Get started
Business
Recommended
$83 /mo
$0.82 / 1k SERPs
100K SERPs / month
30 concurrent requests
Team seats
Priority email support
Get started
Enterprise
$208 /mo
$0.69 / 1k SERPs
50 concurrent requests
Team seats
Dedicated account manager
Get started
Monthly SERP volume
Free 100K 500K 2M 6M 10M
Best fit
Business
SERPs / mo
100K
Concurrency
30
$ / 1k SERPs
$0.82
$83 /mo
Get Started

Start with 100 free SERPs. No credit card required.

FAQ

Questions, answered

1 Grab your API key 2 Send a GET request 3 Get structured JSON

Your first SERP
is minutes away

100 SERPs free · no credit card