Bing Search API | SERP, Rank Tracking and Ads Data
Pricing
from $0.01 / 1,000 dataset item storeds
Bing Search API | SERP, Rank Tracking and Ads Data
Bing Search API for SERP data and Bing rank tracking. Returns organic results with titles, snippets, real URLs and dates, plus ad placements for competitor monitoring. Works as a Bing scraper billed per page rather than per result, so a thin page never costs more than it is worth. MCP ready.
Pricing
from $0.01 / 1,000 dataset item storeds
Rating
0.0
(0)
Developer
John
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
4 hours ago
Last modified
Categories
Share
Bing Search API
The Bing Search API returns Bing's organic results as clean, structured JSON: titles, snippets, real destination URLs, displayed domains and dates, plus the paid placements if you want them.
Bing is the largest search engine outside Google, and it is where a meaningful share of desktop and enterprise search still happens. If you track rankings, monitor competitors, or feed a research agent, the Google-only picture is an incomplete one.
Most people arrive here wanting Bing rank tracking: the same query run on a schedule so you can watch a position move. That works, and so does one-off SERP extraction.
Use cases
- Bing rank tracking. Run a query on a schedule and store
positionwithpagefor an absolute rank over time. Set a location and device to track the market and form factor you actually care about. - Competitor ad monitoring. Switch on ad placements and see who is buying against your terms. On commercial queries there are often more ads than organic results.
- SEO research. Pull titles, snippets and real destination URLs for a keyword set to see how Bing frames a topic differently from Google.
- Local rank tracking. Set a city and compare what a local searcher sees against the national picture.
- Content gap analysis. Export page one for a topic cluster and find what is being answered and what is not.
- Feeding an AI agent. Give an assistant live non-Google search results so its research is not built on a single index.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | yes | web scraping tools | Search term. Bing operators pass straight through, so site:, filetype:, OR and NOT all work. |
max_pages | integer | no | 1 | Pages to fetch, 1 to 20. This is the billing unit. |
include_ads | boolean | no | false | Also return paid placements, marked resultType: "ad". They are on the page you already paid for, so this costs nothing extra. |
country | string | no | none | Two letter country code. Cannot be combined with Market. |
market | string | no | none | Language and country pair such as en-US. More precise than Country and takes precedence if both are set. |
location | string | no | none | City to search from, such as Seattle, Washington. Use city level for realistic local results. |
safe_search | string | no | Moderate | Moderate, Strict or Off. |
device | string | no | desktop | desktop, mobile or tablet. Rankings differ between them. |
Common values for country, market and location
The ten most used values for each targeting field. Any ISO country code, Microsoft market code or city works; these cover the common cases.
country | Market it targets |
|---|---|
us | United States |
gb | United Kingdom |
ca | Canada |
au | Australia |
de | Germany |
fr | France |
es | Spain |
it | Italy |
br | Brazil |
jp | Japan |
market | Language and country |
|---|---|
en-US | English, United States |
en-GB | English, United Kingdom |
en-CA | English, Canada |
en-AU | English, Australia |
de-DE | German, Germany |
fr-FR | French, France |
es-ES | Spanish, Spain |
it-IT | Italian, Italy |
pt-BR | Portuguese, Brazil |
ja-JP | Japanese, Japan |
location example | Use for |
|---|---|
New York, New York | Local rank tracking in NYC |
Los Angeles, California | LA local results |
Chicago, Illinois | Chicago local results |
Houston, Texas | Houston local results |
Phoenix, Arizona | Phoenix local results |
Philadelphia, Pennsylvania | Philadelphia local results |
San Antonio, Texas | San Antonio local results |
San Diego, California | San Diego local results |
Dallas, Texas | Dallas local results |
Seattle, Washington | Seattle local results |
Remember country and market are mutually exclusive; if both are set, market wins.
Example output
{"resultType": "organic","query": "project management software","page": 1,"position": 1,"title": "Best Project Management Software Compared For 2026","snippet": "A side by side comparison of the leading project management platforms.","url": "https://example.com/blog/project-management-software/","displayedUrl": "https://example.com","date": "Apr 13, 2026"}
url is the real destination. Bing wraps outbound links in a redirect that is opaque and expires, so that wrapper is discarded rather than stored. Combine page and position for an absolute rank. Failures arrive as one resultType: "error" row rather than a crash.
Billed per page, and here is why
Most APIs in this portfolio charge per result. This one charges per page, deliberately, and it is worth understanding before you run it.
Bing gives no way to request a page size, and its organic depth swings hard depending on the query. Measured on the same day:
| Query | Organic results | Ads |
|---|---|---|
| web scraping tools | 10, then 3 on a repeat | 4 |
| best crm software | 2 | 7 |
| project management software | 2 | 13 |
Commercial-intent queries, the ones with buyers behind them, are exactly where Bing fills the page with ads and leaves the fewest organic results. Every one of those requests costs the same to serve.
Charging per result would mean the queries you most want to run are the ones priced worst, and it would push us to quietly inflate the unit price to cover the thin pages. Charging per page means you know the cost before you run, a thin page never costs more than it is worth, and there is no incentive to pad. You get every result on the page you paid for.
What the Bing rank tracking API returns
| Field | Description |
|---|---|
title | Result headline |
snippet | Description text Bing shows |
url | The real destination URL |
displayedUrl | The domain as displayed |
date | Publication date, where Bing reports one |
position | Rank within the page |
page | Which page it came from |
cachedPageUrl | Bing's cached copy, where one exists |
thumbnail | Preview image, where supplied |
Bing wraps every result link in a redirect. Those wrappers are opaque and they expire, so they are discarded and url carries the real destination. That is the link worth storing.
Ads come free with the page
Switch on ad placements and paid results come back too, marked resultType: "ad". They were already on the page you paid for, so including them costs nothing extra. On commercial queries there are often more ads than organic results, which makes this a practical competitor ad monitor.
How to get started
- Enter a search query. Bing operators like
site:,filetype:,ORandNOTall work. - Choose how many pages to fetch. One page is usually enough to answer a ranking question.
- Optionally set a location or device for local and mobile rank tracking, then run.
Prefer to start from working code? The example repo has a Python quick start plus MCP install walkthroughs for Claude, Cursor and ChatGPT.
Pricing
| Event | When it is charged |
|---|---|
| Page of results returned | Once per page fetched, whatever that page holds |
No per-run setup fee. The current per-page price is on the Actor's Store card and in the Console before you run.
🔌 Use this API from Claude (MCP)
Add this Actor as a tool in Claude Code (free trial), Claude Cowork (free trial), or any other MCP client, via the hosted Apify MCP server. Use this Actor-specific URL:
https://mcp.apify.com/?tools=actors,docs,johnvc/bing-search-api
Setup walkthrough:
Apify MCP integration docs: https://docs.apify.com/platform/integrations/mcp
💸 Pay per run with crypto (x402)
The Bing Search API supports agentic payments via the x402 protocol. AI agents and MCP clients can pay for runs in USDC (on Base) with no Apify account or API token needed: point your agent at the Apify MCP server and it can discover, pay for, and run this Actor autonomously. Read the Apify x402 announcement for details.
🔌 Integrations: put Bing rank tracking on a schedule
Tasks and Schedules first. Save a query as a Task and attach a Schedule. A daily run on your target keywords is what turns a single SERP snapshot into a rank history, and it needs no code.
n8n, Make and Zapier. Trigger the Actor and route rows onward: a ranking drop into Slack, a new competitor on page one into a tracker, or ad rows into a competitive spend sheet.
Storage. Write into Supabase, Postgres or Google Sheets through the Apify integrations tab so rank history accumulates rather than being overwritten.
MCP. Point an AI assistant at the Actor and let it check live rankings mid-conversation. Server URL is in the MCP section above.
Webhooks. Fire an HTTP callback when a run finishes so your service can collect the dataset without polling.
🔗 Related Tools
Search coverage beyond Google, and the answer engines that sit on top of it:
- Yandex Search API for the largest Russian-language engine
- Baidu Search API for China
- DuckDuckGo Search API for privacy-focused search
- Naver Search API for South Korea
- Bing Copilot API for Microsoft's generative answer rather than the blue links
Cheaper-looking alternatives such as data_api/bing-search-scraper-cheap exist, but it sits at around 2 users with no published rating. This API is actively maintained, returns the real destination URL rather than an expiring redirect wrapper, and states its billing model and its reliability limits openly.
FAQ
Why did my search return only two results?
Because that is what Bing showed for that query. Commercial queries get filled with ads, leaving very few organic results. Turn on ad placements to see what took the space. This is also the reason the Actor bills per page instead of per result: you are never charged more for a page that happened to come back thin.
Can I track rankings over time?
Yes. Run the same query on a schedule and store position together with page. For an absolute rank across multiple pages, combine the two. Set a location and device to track the specific market and form factor you care about, since rankings genuinely differ between desktop and mobile.
How do I do local rank tracking?
Set the Location field to a city, such as "Seattle, Washington". Give it at city level; broader values produce results that are not representative of what a local searcher sees.
Can I use Bing search operators?
Yes, they pass straight through. site:example.com, filetype:pdf, OR and NOT all work as they do in the Bing web interface.
Why is the URL different from what I see on the Bing results page?
Bing wraps outbound links in a tracking redirect. Those wrappers are long, opaque and expire, so this Actor discards them and returns the real destination URL instead. That is the value you want in a database.
Is this a Bing API or a web scraper?
You use it as an API: a query in, structured JSON out, with a documented schema. It reads public Bing results, so it is not an official Microsoft product and is not affiliated with, endorsed by, or connected to Microsoft.
Can I use it as a bulk Bing scraper?
Yes, up to 20 pages per run. Because billing is per page you know the cost before you start. For large keyword sets, drive it from a Task plus a Schedule or from a workflow tool as described in the Integrations section.
How do I call this from an AI agent using MCP?
Point any Model Context Protocol client at the server URL in the MCP section above. The agent reads the input schema itself and can check a live SERP during a conversation.
What other tools work well alongside this one?
See Related Tools above. Running this beside the Yandex, Baidu, DuckDuckGo and Naver Actors gives you a view of the search landscape that no single engine provides.
Should I expect the same reliability as the Google Actors?
Be honest with yourself here: Bing is a harder target. The source applies bot protection more aggressively on complex queries, so expect a somewhat lower success rate than the Google-family Actors, particularly on long or heavily filtered searches. Straightforward keyword queries are reliable.
Agent Skills
Ready-made skills for Claude Code (free trial) and other agents that drive this Actor. Install with npx skills add johnisanerd/<name>.
- claude-skill-bing-scraper: Bing SERP results as structured JSON
- claude-skill-bing-rank-tracking: Bing rank tracking by city and device
n8n integration
Available as an n8n community node, n8n-nodes-bing-search-api. In n8n: Settings, Community Nodes, install n8n-nodes-bing-search-api, then use it in any workflow (it also works as an AI Agent tool).
Featured Tasks
Ready-to-run examples on the Apify Store.
- Bing Rank Tracking on a Schedule
- Bing SERP API With Real Result URLs
- Scrape Bing Search Results to JSON
- Bing Keyword Rank Checker via API
- Bing Search From Claude via MCP
- 必应搜索结果API:SERP数据抓取
- 必应关键词排名查询API
🌐 About Alpha OSINT
This Actor is part of Alpha OSINT, toolset of financial and operations data sources and APIs. For support or requests for this actor, please start a ticket directly on our support page.
Last Updated: 2026.08.08