SEO TOOLSWEBAI API MCP READY

Bing Search API

The largest non-Google search surface, returned as clean rows. Each result carries page, position, title, snippet, the real destination URL rather than a tracking redirect, and a date when Bing shows one. City-level location, market and country targeting, three device views, and optional ad rows at no extra cost. Billing is per page rather than per result, because Bing's organic depth swings between two and ten results on the same page.

MEDIAN LAGon demand
PARAMETERS8
TOTAL USERS6
MONTHLY ACTIVE6
TOTAL RUNS60
SUCCESS (30D)100.0%
RATINGno ratings yet
LAST MODIFIED2026-09-03
PUBLISHED2026-08

Input parameters

PARAMETERTYPEREQDEFAULTDESCRIPTION
query string yes The search term. Bing operators work, so 'site:example.com pricing' behaves as you would expect.
max_pages integer no 1 Pages to fetch, and the billing unit: one charge per page whatever that page holds. — drives your bill
include_ads boolean no false Also return paid placements, marked with resultType 'ad'. They are already on the page you paid for, so they add no cost.
country string no Two letter country code. Cannot be combined with market; market wins if both are set.
market string no A language and country pair such as en-US. More precise than country because it sets the result language too.
location string no City to search from, such as 'Seattle, Washington'. This is the control for local rank tracking.
safe_search enum no Moderate Adult content filter: moderate filters adult text, strict removes adult content, off applies no filter.
device enum no desktop Device to emulate. Rankings differ between desktop and mobile, so pick the one you actually track.

Worked examples

Basic — one page, cheapest possible run
{
  "query": "web scraping tools",
  "max_pages": 1
}
Local rank check — city plus device is the rank-tracking shape
{
  "query": "plumber near me",
  "location": "Seattle, Washington",
  "device": "mobile"
}
Competitor ads — ad rows cost nothing extra
{
  "query": "crm software",
  "include_ads": true,
  "max_pages": 2
}
Site audit — Bing operators work as written
{
  "query": "site:example.com",
  "max_pages": 5
}
POWER-USER TIP
Per page, and that is deliberate — Bing gives no page-size control and its organic depth swings from about two results on a commercial query to ten on an informational one. A per-result price cannot cover a two-result page, so the page is the honest unit. Every result on a charged page is returned in full.
POWER-USER TIP
Country and market do not stack — Setting both country and market is not additive; market wins, because it pins the result language as well as the region. Pick market when you care about language, country when you only care about the region.

Coverage

3
device views — desktop · mobile · tablet
3
safe search levels — moderate · strict · off
3
targeting controls — country · market · city location

Code

curl

curl -X POST "https://api.apify.com/v2/acts/johnvc~bing-search-api/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query":"web scraping tools","max_pages":1}'

Python

from apify_client import ApifyClient

client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/bing-search-api").call(
    run_input={"query": "web scraping tools", "max_pages": 1}
)
for row in client.dataset(run.default_dataset_id).iterate_items():
    print(row.get("position"), row.get("title"), row.get("url"))

What people use it for

  • Bing rank tracking on a schedule
  • Local rank checks by city and device
  • Competitor ad placement monitoring
  • SEO research on the largest non-Google engine
  • Cross-engine ranking comparison beside the other search sources

More sources for Search visibility and rank tracking, Competitor and market monitoring

Alternatives