Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Bing Search API page →
Search & SEO

Bing Search API & Scraper

The Bing Search API returns web, news and video search results as clean JSON.

4 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary search endpoint returns results with position, title, URL and displayed URL, and you can pull news, videos and autocomplete. It is built for SERP monitoring, research and AI pipelines that need a second search source alongside Google. One ReefAPI key, one shared credit pool, the standard envelope.

Reference

What each action returns, and how locale and paging actually behave

The search action can be answered by more than one index, and the index decides which fields exist on a row, so code written against one backend breaks on the other. This table records what live calls returned on 2026-08-27: the field set per action, how mkt is derived and validated, and how page_offset maps to the position numbers you get back.

Action or parameterWhat comes backMeasured detail
search, engine=auto (the default)results[] with position, title, url, displayed_url, snippet, published_date, date_availabledata.engine came back "brave". One call for "best laptop 2026" returned 19 rows and 17 of them carried a published_date; there is no domain or favicon field on this shape.
search, engine=bingresults[] with position, title, url, displayed_url, domain, favicon, snippetExactly 10 rows, positions 1-10, no published_date. count=30 still returned 10, because Bing serves one page of ten organic results.
videosvideos[] with position, title, url, duration, platform, thumbnail_url, plus publisher, views, published and description26 rows per page. On a live "how to make pizza" call the last four fields were null on 25 of 26 rows; views is a string like "1,000+ views" and duration is "MM:SS".
autocompletesuggestions[], an ordered list of plain strings25 suggestions for "best lap" (en-US) but 12 for "beste lap" (de-DE), so the count is not fixed. Fastest action measured: 357 ms against 1.0-2.9 s for search.
mkt / gl / hldata.mkt echoes the market that was usedmkt is taken verbatim and not validated: mkt=xx-ZZ was accepted, echoed back as "xx-ZZ" and still returned results. gl and hl are only read to build mkt when mkt is absent.
page / firstdata.page_offset is the 1-based index of the first row on the pagefirst=11 on search returned positions 11-20. page=2 on videos returned page_offset 31 and positions 31-56, so a videos page is 30 items wide.

total_estimate is Bing's own "about N results" headline, not a number you can paginate against. Two calls for the same phrase minutes apart reported 369,000 and 813,000, and a deliberately nonsense query still reported 180,000.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/bing/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "q": "best laptop 2026",
    "gl": "us"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "bing",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 2273.7,
    "record_count": 20,
    "bytes": 474368,
    "cache_hit": false,
    "completeness_pct": 100,
    "verification": "19/20 rows match >=2 of 2 query terms (95%; 2/2 terms seen at all)",
    "phrase_relaxed": false,
    "relevance": {
      "rows": 20,
      "query_terms": 2,
      "terms_seen": 2,
      "matching_rows": 19,
      "match_pct": 95
    },
    "operators_supported": true,
    "bing_fallback": "bing alakasız döndü (0/10 rows match >=2 of 2 query terms (0%; 1/2 terms seen at all)) → brave",
    "charged_credits": 1,
    "version": "2.0.0"
  },
  "data": {
    "engine": "brave",
    "query": "best laptop 2026",
    "page_offset": 0,
    "count": 20,
    "results": [
      {
        "position": 1,
        "title": "The Best Laptops We've Tested (September 2026) | PCMag",
        "url": "https://www.pcmag.com/picks/the-best-laptops",
        "displayed_url": "pcmag.com › home › best products › laptops",
        "snippet": "Apple's 2026 MacBook Air is largely unchanged on the outside, but its exceptional build pairs up with an even faster M5 chip and a major storage upgrade to secure its spot as a top-value ultraportable.",
        "published_date": "2026-09-22",
        "date_available": true
      },
      {
        "position": 2,
        "title": "Best Laptops (2026): My Top Recommendations After Testing Hundreds | WIRED",
        "url": "https://www.wired.com/story/best-laptops/",
        "displayed_url": "wired.com › gear › laptops › the best laptops",
        "snippet": "For premium laptops, you’ll want something like the Intel Core Ultra 258V or Qualcomm Snapdragon X Elite. Meanwhile, for budget laptops, Snapdragon X is the best choice. And for gaming laptops, I’d recommend something from AMD, such as the ...",
        "published_date": "2026-08-24",
        "date_available": true
      },
      {
        "position": 6,
        "title": "The 15 Best Laptops of 2026 | Reviews by Wirecutter",
        "url": "https://www.nytimes.com/wirecutter/reviews/best-laptops/",
        "displayed_url": "nytimes.com › electronics › laptops › the best laptops",
        "snippet": "Why we like this one: The Apple MacBook Pro (14-inch, M5 Pro, 2026) combines a sharp display that’s color-accurate out of the box with Apple’s powerful and power-efficient M5 Pro processor.",
        "published_date": "2026-09-02",
        "date_available": true
      }
    ],
    "related_searches": [],
    "answer_box": null
  }
}
Actions

What the Bing Search API does

ActionDescriptionConcrete use caseKey params
searchWeb search results — ranked organic pages with title, URL, snippet, answer box and related searches. Filter by market/language (mkt or gl/hl), SafeSearch and recency (freshness), with offset pagination. Every result set is checked against your query before it is returned: if the index answers with pages that do not match what you asked, the request is served from another index instead, and if no index can answer it you get an explicit 404 rather than confident-looking wrong rows. The share of returned rows that carry your query terms is published as meta.relevance.SEO teams call search to get web search results.q, engine, depth, mkt, gl, ...
newsBing News results for a keyword — article title, source, URL and snippet, sorted by recency. Filter by market and a recency window (freshness).Content strategists call news to get bing News results for a keyword.q, mkt, gl, hl, count, ...
videosBing video search results — watch-page URL, thumbnail, duration and hosting platform (YouTube/Dailymotion/…) for every result; publisher/channel, view count, publish date and description when Bing exposes them. ~30 videos per page; paginate for more.Rank trackers call videos to get bing video search results.q, mkt, gl, hl, page, ...
autocompleteBing search autocomplete — query suggestions / typeahead from Bing's public suggest endpoint — fast and cheap. Useful for keyword research.AI answer-monitoring tools call autocomplete to get bing search autocomplete.q, mkt, gl, hl
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/bing/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"q":"best laptop 2026","gl":"us"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.bing.search with {"q":"best laptop 2026","gl":"us"}.
Use cases

Who uses this API and why

  • SEO tools call search to track Bing rankings for target keywords.
  • Research products use news and videos for broader coverage.
  • AI pipelines use search as a retrieval source for grounding.
FAQ

Questions developers ask before integrating

Which index answers a search call, and should I change it?

The engine parameter defaults to auto, and on a live call data.engine came back as "brave". Setting engine=bing switches to Bing's own index and changes the row shape: you gain domain and favicon, you lose published_date. In our own measurements the bing backend was also unstable on relevance, with two identical de-DE calls for "kaffeemaschine test" returning German coffee-machine retailers once and a page of New York hotel listings the other time. Leave engine on auto unless you specifically need Bing's index, and check that your terms appear in the rows you get.

Why do positions skip numbers on the default backend?

Because position is the slot the result occupied on the results page, not its index in the array. A 19-row response came back numbered 2, 3, 7, 8, 9, 10, 12, 13 and on up to 24, with the missing numbers taken by non-organic blocks that are not returned. Iterate the array; never assume results[0].position is 1 or that positions are contiguous.

What does a query with no real matches return?

On the search action, not an empty list. The query "zxqwvlp qqwerzz nonexistentterm12345" came back ok:true with 10 rows about Sacramento, California and a total_estimate of 180,000. There is no zero-result signal on that path, so validate relevance yourself. The one backend that does say no is gnews: engine=gnews on a quoted phrase with no coverage returned ok:false with error code NOT_FOUND.

Why does count=30 only give me 10 results?

The parameter is accepted and clamped into the 1-30 range, but Bing serves ten organic results per page regardless. A live search with count=30 returned record_count 10. To go deeper, page instead: pass first=11 (or page=2) and read data.page_offset to confirm where the page actually started.

How reliable is search pagination?

Best-effort, and the response tells you which mode you got. meta.pagination_note came back "page1" on a first-page call and "offset-best-effort" when first=11 was passed. On that call the offset held and positions 11 through 20 came back, but bare offset paging on this surface is session-sensitive and can repeat page one, so compare data.page_offset and the URLs before assuming you advanced.

Which video fields can I depend on?

position, title, url, duration and platform were populated on all 26 rows of a live call. publisher, views, published and description were null on 25 of those 26. platform is also not a clean taxonomy: the same 26 rows carried "www.youtube.com" 18 times, "www.tiktok.com" 7 times and "YouTube" once, so normalize it before grouping.

Does mkt have to be a valid market code?

It is not validated. mkt=xx-ZZ was accepted, echoed back unchanged in both data.mkt and meta.mkt, and results still came back, in that case German pages, because an unrecognized market falls through to whatever locale the request resolved to. If locale matters, send a real lang-COUNTRY pair such as en-US, en-GB or de-DE and verify data.mkt on the way out.

What is the Bing Search API?

Bing Search API is a ReefAPI endpoint group for bing search It returns live JSON through POST requests under /bing/v1.

Is the Bing Search API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Bing Search calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Bing Search login or account?

No login to Bing Search is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Bing Search data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Bing Search API use?

Bing Search actions currently cost 1 credit per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Bing Search from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call bing actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Bing Search API a Bing Search scraper?

It is the managed alternative to a DIY Bing Search scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same bing search back as clean JSON.

docs / bing

Bing Search

Bing Search

base /bing/v14 endpoints
post/bing/v1/news1 credit

Bing News results for a keyword — article title, source, URL and snippet, sorted by recency. Filter by market and a recency window (freshness).

ParameterAllowed / rangeDescription
qrequired—Search query (the keywords to look up).
mktoptional—Bing market as lang-COUNTRY (e.g. en-US, en-GB, de-DE). This is what sets the locale. If omitted it is derived from gl + hl.
gloptional—Country as a 2-letter ISO-3166 code (e.g. us, gb, de). Sending it routes the default `auto` engine to Bing, which is the index measured to honour it: on the same query, gl=in returns Indian sites and gl=us returns US ones. Brave ignores country entirely and is located by the request's own egress instead, so ask for `engine=brave` only when you do not care where the results are from.
hloptional—Language as an ISO-639 code (e.g. en, de) — used to build mkt when mkt is absent.
countoptional1–50Requested results (1-50; clamped). Note: Bing caps organic search results at ~10 per page regardless of count.
freshnessoptionalday · week · monthRestrict results to a recency window (Bing `qft` interval). Single-letter forms d/w/m are also accepted; an unrecognized value is ignored.
Try in playground →
post/bing/v1/videos1 credit

Bing video search results — watch-page URL, thumbnail, duration and hosting platform (YouTube/Dailymotion/…) for every result; publisher/channel, view count, publish date and description when Bing exposes them. ~30 videos per page; paginate for more.

ParameterAllowed / rangeDescription
qrequired—Search query (the keywords to look up).
mktoptional—Bing market as lang-COUNTRY (e.g. en-US, en-GB, de-DE). This is what sets the locale. If omitted it is derived from gl + hl.
gloptional—Country as a 2-letter ISO-3166 code (e.g. us, gb, de). Sending it routes the default `auto` engine to Bing, which is the index measured to honour it: on the same query, gl=in returns Indian sites and gl=us returns US ones. Brave ignores country entirely and is located by the request's own egress instead, so ask for `engine=brave` only when you do not care where the results are from.
hloptional—Language as an ISO-639 code (e.g. en, de) — used to build mkt when mkt is absent.
pageoptional1–1-based result page (each page ≈ 30 items).
firstoptional1–Explicit 1-based result offset (alternative to page; first=11 ~ page 2). Best-effort.
safeoptionaloff · moderate · strictBing SafeSearch level (search only). An unrecognized value is ignored.
Try in playground →
post/bing/v1/autocomplete1 credit

Bing search autocomplete — query suggestions / typeahead from Bing's public suggest endpoint — fast and cheap. Useful for keyword research.

ParameterAllowed / rangeDescription
qrequired—Search query (the keywords to look up).
mktoptional—Bing market as lang-COUNTRY (e.g. en-US, en-GB, de-DE). This is what sets the locale. If omitted it is derived from gl + hl.
gloptional—Country as a 2-letter ISO-3166 code (e.g. us, gb, de). Sending it routes the default `auto` engine to Bing, which is the index measured to honour it: on the same query, gl=in returns Indian sites and gl=us returns US ones. Brave ignores country entirely and is located by the request's own egress instead, so ask for `engine=brave` only when you do not care where the results are from.
hloptional—Language as an ISO-639 code (e.g. en, de) — used to build mkt when mkt is absent.
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.