Bing Ads Results Scraper API
Our Bing ads results scraper reads the paid listings on a Bing search results page, returning each ad's title, decoded landing link, displayed link, snippet, and any ad sitelinks as JSON on the same call that fetches the organic results.
Why Bing makes Bing Ads Results data hard
Bing exposes no API for the ads that run on its SERP, and the ad blocks render only on commercial queries and only when Bing server-renders them for a given request. When they are present, our scraper reads the top, bottom, and sidebar ad units and returns each as clean JSON with its landing link decoded; when they are not, the ads array is simply omitted rather than faked.
The Bing Ads Results Scraper API, one request away
curl "https://api.bingscraperapi.com/api/v1/bing/search?q=car+insurance+quotes&api_key=$API_KEY" import requests
BASE = "https://api.bingscraperapi.com"
API_KEY = "YOUR_API_KEY"
# Commercial queries are the ones that carry ads on the SERP.
data = requests.get(
f"{BASE}/api/v1/bing/search",
params={"q": "car insurance quotes", "api_key": API_KEY},
timeout=30,
).json()
# The ads array is present only when Bing renders ad units for this request.
for ad in data.get("ads", []):
print(ad["position"], ad["title"])
print(" ", ad["link"], "|", ad["displayed_link"])
for sl in ad.get("sitelinks", []):
print(" sitelink:", sl["title"], "->", sl["link"]) Parameters
| Parameter | Required | Default | Notes |
|---|---|---|---|
q | required | - | The search query. Commercial and transactional queries are the ones that carry ads on the Bing SERP. |
url | optional | - | A full bing.com/search URL to parse instead of building one from q. Pass q or url. |
country | optional | US | Two-letter market region, e.g. GB or DE. Sets mkt=en-XX so the SERP is the stable national one. Defaults to US. |
count | optional | 10 | Number of organic results to request alongside the ads, 1 to 50. Defaults to 10. |
api_key | required | - | Your API key, passed as a query parameter. Get one free at signup. |
Fields returned by the Bing Ads Results Scraper API
{
"query": "car insurance quotes",
"engine": "bing",
"results_count": 9,
"ads": [
{
"position": 1,
"title": "Compare Car Insurance Quotes - Save on Your Policy Today",
"link": "https://www.example-insurer.com/quotes",
"displayed_link": "www.example-insurer.com/car-insurance",
"snippet": "Get a free quote in minutes. Compare coverage from top providers and switch online.",
"sitelinks": [
{ "title": "Get a Free Quote", "link": "https://www.example-insurer.com/quote" },
{ "title": "Coverage Options", "link": "https://www.example-insurer.com/coverage" }
]
}
]
} | Field | Type | Description |
|---|---|---|
ads | array | The paid listings on the SERP. Present only when Bing server-renders ad units for the request; omitted otherwise. |
ads[].position | integer | Order of the ad among the ad units, starting at 1. |
ads[].title | string | The ad headline text. |
ads[].link | string | The ad's landing URL, decoded from Bing's redirect wrapper. |
ads[].displayed_link | string | The visible display URL shown under the headline, or null. |
ads[].snippet | string | The ad's description text, or null when none is shown. |
ads[].sitelinks | array | Ad extension links under the ad, each with title and link. Present only when the ad has them. |
What this data is good for
Competitor ad monitoring
Ad copy research
Share-of-voice checks
Landing-page discovery
Auction and coverage insight
Compliance and brand safety
Why our Bing Ads Results Scraper API is reliable
When Bing renders ad units for a query, our scraper reads the top, bottom, and sidebar ads and returns each with its title, decoded landing link, displayed link, snippet, and sitelinks as clean JSON on the same call as the organic results. The ad parser is defensive, so on queries with no ads the block is omitted rather than faked, and every request runs through rotating proxies with anti-bot handling and retries at a 2.6s median.
Top, bottom, and sidebar ads
Decoded landing links
Ad sitelinks captured
Ads on the organic call
Honest when absent
Anti-bot and proxy rotation
Choosing between the Bing Ads Results Scraper API and the Bing API
| Our API | DIY (requests / headless) | Bing Web Search API (Azure) | |
|---|---|---|---|
| SERP ad listings | Parsed when Bing renders them | You write the ad selectors | No ad data in the API |
| Ad landing links | Decoded to the real URL | You decode ck/a redirects yourself | Not applicable |
| Ad sitelinks | Captured as title + link | Extra parsing per ad | Not applicable |
| Availability | Live and maintained | Depends on your setup | Closed to new customers, sunsetting |
| Setup | API key only | Proxies, headless browser, parsers | Azure account and resource keys |
| Delivery | On the organic call, no extra request | Extra parsing per block | Not applicable |
Straightforward pricing
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
A Bing ads results scraper reads the paid listings on a Bing search results page and returns them in a structured format. Our API returns each ad's position, title, decoded landing link, displayed link, snippet, and any ad sitelinks as JSON, on the same call as the organic results, whenever Bing renders ad units for the query.
No. Ads appear on commercial and transactional queries, and even then Bing server-renders the ad blocks only for some requests. The ads array is present when Bing serves ad units and omitted when it does not. We never fabricate ads to fill the block, so an empty result means Bing showed none for that request, which is common on informational queries.
Commercial-intent queries with buyers behind them, for example insurance, software, travel, and product terms, are the ones that carry ads. Informational queries like a how-to or a definition usually show no ads. To monitor competitor ads, query the commercial keywords in your space rather than broad informational terms.
Yes. Bing wraps ad links in the same ck/a redirect it uses for organic results, and our scraper decodes them to the real landing URL in the ad's link field. Ad sitelinks are decoded the same way, so both point straight at the advertiser's pages rather than a bing.com tracking link.
Yes. Query your commercial keywords on a schedule and store the ads array from each response. Comparing the advertisers, headlines, snippets, and landing links across runs shows who enters and leaves the auction and how their copy changes, which is the basis for a Bing share-of-voice and ad-monitoring workflow.
Scraping publicly visible SERP elements, including the ads Bing shows to any logged-out visitor, is generally treated as lower risk than scraping data behind a login. This is not legal advice: you are responsible for respecting Bing's terms and the laws in your jurisdiction, and for using the data for research such as competitive monitoring rather than republishing ad creative wholesale.