serp.fast

Migrating off the Bing Search API: a field-by-field replacement guide

Bing's Search API retired 11 August 2025. A field-by-field map of its request parameters and response objects onto Brave, SerpAPI, Exa, Tavily and the rest.

Nathan Kessler
Nathan Kessler··Reviewed
13 min read

Each tool referenced is evaluated against our methodology using public docs, vendor demos, and hands-on testing.

Microsoft retired the Bing Search APIs on 11 August 2025 and decommissioned existing instances, so there is no v8 endpoint and no way to sign up for the old one. Every migration guide in this niche opens with that date and then jumps straight to a vendor list. The list is the easy part. The hard part is that the replacements are not the same product, and which one fits you depends entirely on which fields of the Bing response your code actually reads.

The short version: if your application parses webPages.value, pages through results with count and offset, and renders deepLinks in a UI, you want a SERP API, because a SERP API is the only category that reproduces that shape. If your application only ever pulled name, url and snippet into a prompt, you were using a search API as a text feed and you should move to an AI search API, which returns cleaner content per token at a lower price. If you were building a chat feature that answers questions from the web, Microsoft's own suggested destination, Grounding with Bing Search inside Azure AI Foundry, is closer to what you want than anything Bing's API ever gave you, and PPC Land reported its pricing at $35 per 1,000 transactions against retired Bing tiers of $6, $15 and $25.

This guide maps the request parameters and the response objects one at a time, then covers what changes downstream: ranking assumptions your code inherited without knowing it, and a cutover plan that catches the regressions before your users do. For choosing among the AI search APIs on their own merits rather than as Bing substitutes, see AI search APIs compared.

What Bing's retirement removed, and what quietly depended on it

The retirement covered more than Web Search. Bing News Search, Image Search, Video Search, Entity Search, Local Business Search, Spell Check and Custom Search went with it. Teams that used the Web Search endpoint with responseFilter=News and teams that used the dedicated News endpoint both lost their source on the same day.

The second-order effect is the one that matters for vendor selection. A large share of products that looked like independent search were Bing syndication underneath. When the API went away, the number of organizations running a general-purpose Western web index at scale that you can buy programmatically got very small. Brave's own AI Grounding announcement makes exactly this claim, positioning itself as the remaining independent and commercially viable search API at full web scale. Treat that as a vendor's framing of a real structural fact rather than a neutral measurement, but the structural fact holds: the set of genuinely independent indexes is short, and it is covered in independent search indexes for AI.

The pricing floor moved too. PPC Land's coverage of the shutdown put Bing's retired transaction tiers at $25 (S1), $15 (S2) and $6 (S3) per 1,000, against $35 per 1,000 for Grounding with Bing Search, which it framed as a 40% to 483% increase depending on which tier you were on. Whether that comparison is fair is arguable, since Grounding bundles model-side work the old API never did, but teams on the cheap tier did face a real cost jump.

Bing v7 took twelve or so query parameters. Most have an analogue somewhere; a few do not.

Bing v7 parameterWhat it didWhere it goes
qQuery string, with Bing advanced operators including site:Universally supported. Operator support varies: SERP APIs pass operators through to the underlying engine; AI search APIs usually expose includeDomains/excludeDomains parameters instead
countResults per page, default 10, max 50A limit, num or num_results integer nearly everywhere. Ceilings differ and are usually lower than 50 on AI search APIs
offsetZero-based skip for pagingReal support only on SERP APIs (page or start). AI search APIs generally have no cursor
mktLanguage-country market, e.g. en-US, drove ranking and result languageNo exact equivalent. SERP APIs take a geo plus locale for the engine; AI search APIs offer a country hint and language filter that bias rather than switch
cc + Accept-LanguageCountry code with a language header, mutually exclusive with mktCollapse into whatever single locale mechanism your replacement offers
setLangLanguage of UI strings in the responseNothing to migrate. Replacements do not return localized UI strings
freshnessDay, Week, Month, or YYYY-MM-DD..YYYY-MM-DDWidely supported as a days-back integer, a named window, or start/end dates. Explicit ranges survive; named windows need a lookup table
safeSearchOff, Moderate, Strict, default ModerateSupported by SERP APIs and by Brave. Several AI search APIs have no adult filter at all, which is a compliance question if you serve consumers
responseFilterComma-list of answer types to include or excludeGone as a concept. Replacements return one result type per endpoint. Split one Bing call into several calls
answerCount / promoteControlled how many ranked answer blocks appeared and forced specific ones inNo equivalent. This was a property of Bing's multi-answer response envelope, which no replacement reproduces
textDecorations / textFormatHit-highlighting markers, either Unicode E000-E019 or HTML tagsNo equivalent. If your UI bolds query terms in snippets, you now do that highlighting client-side

Two parameters deserve a note beyond the table. safeSearch defaulted to Moderate, so if you never set it you still had filtering, and moving to a replacement without one silently removes it. And responseFilter is the parameter most likely to break a migration quietly: a single Bing call that returned web results plus news plus images becomes two or three calls against different endpoints, with different rate limits and different failure modes, and the fan-out changes your latency budget.

Bing returned a SearchResponse envelope containing up to a dozen answer blocks: webPages, news, images, videos, places, entities, computation, timeZone, translations, relatedSearches, spellSuggestions, plus queryContext and rankingResponse. Almost every replacement returns a flat array of results. The envelope is the part that does not survive.

Bing response fieldWhat you gotMigration note
webPages.value[].namePage titleMaps to title everywhere
webPages.value[].urlCanonical result URLMaps to url everywhere
webPages.value[].snippetBing-generated extract, query-biasedSemantics change. SERP APIs return the engine's snippet, so behavior is similar. AI search APIs return a longer extract or full page text optimized for token density, better for an LLM and worse for a two-line UI row
webPages.value[].displayUrlHuman-readable, deliberately not well-formedRarely returned. Derive it from url
webPages.value[].dateLastCrawledBing's crawl timestampSometimes available as a published date, which is a different thing. If you used it to reason about staleness, that logic needs rethinking
webPages.value[].datePublishedPublication date, when knownAvailable on most replacements, still frequently null
webPages.value[].deepLinks[]Sub-page links for a site, with name, url, sometimes snippetSERP APIs expose sitelinks for the organic result. AI search APIs do not. If your UI renders deep links, this alone may decide your category
webPages.totalEstimatedMatchesEstimated corpus-wide match countNo equivalent, and it was an estimate you should not have trusted. Remove the code that reads it
webPages.someResultsRemovedFlag that filtering dropped resultsNo equivalent
isFamilyFriendly, isNavigational, language, searchTags, malwarePer-result classification flagsNo equivalent anywhere. malware in particular was a safety signal you now have to source elsewhere
rankingResponse (pole, mainline, sidebar)Bing's instructions for laying out mixed answer types on a pageNo equivalent. This existed because Bing assumed you were rendering a search results page
queryContext.alteredQueryBing's spelling correction of your querySome SERP APIs surface the engine's "showing results for" correction; AI search APIs do not
relatedSearches, spellSuggestionsQuery suggestion blocksSERP APIs return related searches from the engine's page. AI search APIs do not
news, images, videos sub-answersMixed media in one responseSeparate endpoints now, and often separately billed

The snippet change is the one that bites hardest in practice and gets the least attention. Bing's snippet was a short, query-biased fragment sized for a search results page. Exa's and Tavily's default text output is much longer and written for a model to read. If you pipe an AI search API's text field into a UI component that expected two lines, every row overflows. If you pipe Bing's short snippet into an LLM, you were already giving it less context than these APIs provide, which is one reason answer quality can improve after migration even when the underlying index is weaker.

Four kinds of replacement and what each one preserves

Replacements sort into four categories, and the category decides the migration cost more than the individual vendor does.

SERP APIs. These return a search engine's results page as structured JSON. SerpAPI and DataForSEO both document Bing-specific endpoints, which makes them the only options that can return Bing's own results after the API shutdown. Serper.dev is Google-focused and priced around a dollar per thousand queries, and SearchAPI.io sells the same shape across multiple engines with framework integrations already written. This category preserves paging, sitelinks, related searches, locale targeting and the general concept of "position 1 through 10". It is the right destination if your product surfaces search results to a human.

AI search APIs. Brave Search API, Exa, Tavily, Linkup and You.com return ranked, LLM-ready content rather than a rendered results page. You lose paging, sitelinks and layout hints. You gain longer clean text, lower per-query cost and, in Brave's case, an index that is not derived from Google or Bing. This is the right destination if the consumer of the results is a model.

Grounding endpoints. Microsoft's Grounding with Bing Search, Brave's AI Grounding, and the answer modes of Perplexity and You.com return a written answer with citations instead of a result list. Different product, covered below.

Independent indexes with their own APIs. Mojeek runs its own crawl and index and sells API access. Its index is far smaller than Bing's, so it is not a general replacement, but it is a genuine independent source for teams that need results provably not derived from Google or Bing, and it is useful as a diversity signal alongside a primary provider.

Independent index or Google-derived: how your result set changes

Bing was its own index. That is the property most migrations lose without noticing, because most SERP APIs return Google results.

If you move from Bing to a Google-backed SERP API, your result set gets better on head queries and different on tail queries, and you have swapped one dependency on a hyperscaler's index for another. If you move to Brave, you get a genuinely separate index; Brave states it covers over 30 billion pages with over 100 million daily page updates as of March 2026, which is smaller than Google but is not a wrapper over anyone else. If you move to Exa, you have changed retrieval paradigm as well as index, since Exa ranks by embedding similarity rather than keyword match. A query like "error code 0x80070005" site:microsoft.com behaves well on a keyword index and poorly on a neural one; a query like "companies doing dataset licensing for model training" behaves the other way round.

There is also a supply-chain point that applies to SERP APIs specifically. SerpAPI has been in litigation with Google, and as of July 2026 a federal court dismissed Google's DMCA claims against it, with Google able to amend its complaint and a separate Reddit suit also naming the company. None of that is settled, and none of it currently stops the service operating, but if you are moving a production dependency it belongs in the risk column rather than being ignored.

Rewriting the ranking assumptions your application inherited

Code written against Bing tends to carry assumptions that were never written down.

Result 1 is authoritative. Bing's isNavigational flag existed because keyword engines reliably put the official domain first for brand queries. Neural retrieval does not guarantee that. If you had logic that treated value[0] as the canonical page for an entity, it needs an explicit domain check now.

Ten results is a page. Bing defaulted count to 10 because search results pages have ten blue links. Nothing about that number is meaningful to a model. If a model is the consumer, five results with 2,000 characters each is usually a better prompt than ten results with 150 characters each, so pick the count from your token budget rather than from Bing's default.

Snippets are short and stable. Any layout, token budget or truncation rule tuned to Bing's snippet length breaks against a replacement that returns 2,000 characters of extracted text. Measure your prompt size after migration; this is a common source of surprise cost increases that get blamed on the search vendor rather than the token bill.

totalEstimatedMatches means something. It was an estimate, it moved between requests for the same query, and it has no replacement. If you displayed it, stop.

Deduplication is the engine's job. Bing collapsed near-duplicate pages from the same domain. Not every replacement does, so a query that returned ten domains may now return four domains and ten URLs. If your downstream step assumes source diversity, enforce it yourself with a per-domain cap.

Grounding endpoints as a Bing replacement rather than a search endpoint

Microsoft's recommended destination is Grounding with Bing Search inside Azure AI Agents. It is worth being precise about what that is, because the naming invites the wrong expectation.

Grounding with Bing Search attaches web search to an agent. The model issues the queries, reads the results and returns an answer with citations, and the service's terms constrain how those citations are displayed. You do not get a JSON array you can store, rerank or page through. For a team whose Bing integration existed to answer user questions, this is a reasonable landing spot and removes work. For a team whose Bing integration fed a pipeline, an index, an alerting system or a UI with pagination, it is a different product wearing the same brand.

Brave shipped a comparable primitive, AI Grounding, on 5 August 2025, six days before the Bing shutdown, with a single-search mode Brave reports at around 4.5 seconds average and a multi-step research mode. Its published rate is $4 per thousand web searches plus $5 per million tokens, and Brave's announcement claims a 94.1% F1 score on OpenAI's SimpleQA. Linkup publishes a 91.0% SimpleQA F-score for its Deep tier. Both are vendor-published on their own runs, so read them as each vendor's account of its own system rather than as a head-to-head result.

The practical test is simple. If you can describe your requirement as "answer this question from the web", a grounding endpoint saves you the synthesis step. If you can describe it as "give me the ranked pages for this query", it does not, and you want a search endpoint.

Cutover plan: shadow traffic, diffing result sets, rollback

The integration is rarely what fails. The expensive failure is discovering three weeks later that a whole class of queries silently returns nothing.

Capture a week of production queries. Log the query string, the parameters you sent, and the response you got, before you change anything. If Bing is already off for you, use whatever you cut over to in a hurry as the baseline; you need a reference set either way.

Replay against every candidate in parallel. Same queries, same day, results stored side by side. This is the only evidence that matters, because your query distribution is not the distribution any published benchmark used.

Diff on three metrics. Overlap at ten (how many of the baseline's top ten URLs appear anywhere in the candidate's results), null rate (queries where the candidate returns nothing and the baseline returned something), and, if a model consumes the output, end-task accuracy on a labeled subset. Overlap below roughly half is not automatically a failure, since a different index legitimately finds different pages, but it tells you the change is user-visible and needs a human to look at samples.

Put the client behind an interface before you switch. One function that takes a query plus your normalized parameters and returns a normalized result list. Every vendor-specific field mapping lives inside one adapter. This costs a day and turns a future migration into a config change, which matters in a category where published rates and endpoint shapes both changed repeatedly through 2026.

Keep the old path runnable for two weeks. A feature flag and a fallback, not a git revert. Then delete it, because a fallback nobody exercises is a fallback that does not work.

Rate limits, quotas and contract terms to check before you switch

Four things to read before you commit, all of which differ from Bing's terms.

Requests per second, not just per month. Bing's tiers were sold on transactions per second as well as volume. Replacements vary widely, and free or entry tiers often cap concurrency low enough to break a batch job that ran fine on Bing.

Result caching and storage rights. Bing's terms restricted how long you could store results. Replacement terms differ, and some grounding endpoints impose citation-display requirements that constrain your UI. If you are building an index or a dataset rather than a live feature, read this clause first.

Per-endpoint billing. One Bing call with responseFilter covering web plus news was one transaction. Splitting that into two endpoints is two billed calls. Recalculate the unit economics on your real request mix, not on the headline per-thousand price.

Free tier shape. Several vendors moved from a free plan to a monthly credit allocation during 2026, including Brave. A credit allocation is fine for evaluation and not a production tier, so price the paid tier from the start.

Published rates in this category sit in the low single digits of dollars per thousand queries for standard web search across Brave, Serper.dev, Linkup and You.com, with Exa and the SERP APIs somewhat higher and deep-research tiers an order of magnitude above that. Rates changed repeatedly through the first half of 2026, so confirm the current number on each vendor's own pricing page before you budget rather than trusting any directory, including this one.

The decision is an inventory, not a vendor shortlist. Read your own code, list every field of the Bing response you actually consume, and check that list against the tables above. If deepLinks, offset or relatedSearches appear in it, you need a SERP API. If only name, url and snippet appear, you have more and cheaper options than you had before Bing shut down, and the migration is a net upgrade.

Frequently asked

What is the direct replacement for the Bing Search API?
There isn't one, and vendors claiming otherwise are describing a partial match. The honest answer depends on which fields your code reads. If you parse webPages.value and page through results with count and offset, the closest match is a SERP API that still documents a Bing engine, which SerpAPI and DataForSEO both do. If you only ever pulled name, url and snippet into a prompt, you do not need Bing's SERP shape at all and an AI search API such as Brave, Exa or Tavily gives you cleaner text per token at lower cost. Microsoft's own suggested path, Grounding with Bing Search, is neither: it is an agent feature inside Azure AI Foundry.
Is Grounding with Bing Search the same thing as the old Bing API?
No. The retired API was a search endpoint: you sent a query string and received a ranked JSON array of pages you could store, rerank and render however you liked. Grounding with Bing Search is a tool attached to an Azure AI Agent. The model runs the search, reads the results, and returns a grounded answer with citations, and its terms govern how those citations must be displayed. You cannot page through it with offset, you cannot ask for 50 results, and you cannot keep a raw index snapshot. If your application was a search feature rather than a chat feature, this is a rewrite, not a migration.
Which replacement keeps Bing's count and offset paging?
SERP APIs do, because they mirror a search results page and pages are inherently pageable. SerpAPI and DataForSEO both document Bing-specific endpoints with page or offset semantics, and multi-engine services such as SearchAPI.io expose the same shape across the engines they cover. AI search APIs mostly do not: Exa, Tavily, Linkup and Brave are built around a single ranked set sized by a limit or num_results parameter, with no stable cursor for page 4. If your UI has a pagination control, plan on either moving to a SERP API or capping the result set and dropping the control.
What happens to my freshness and mkt parameters?
freshness maps reasonably well. Most replacements expose a recency filter, though the vocabularies differ: Bing accepted Day, Week, Month or an explicit YYYY-MM-DD..YYYY-MM-DD range, while replacements typically offer a days-back integer, a named window, or start and end dates. Explicit date ranges survive; the named windows need a lookup table. mkt is the harder one. Bing's language-plus-country market code drove both ranking and the language of results, and no replacement reproduces it exactly. SERP APIs come closest because they take a geo and locale for the engine they query. AI search APIs typically offer a country hint and a language filter that bias results rather than switching index locale.
Will my result set change if I switch to Brave or Exa?
Yes, substantially, and you should measure it before you cut over rather than after. Brave Search API runs its own index, which Brave states covers over 30 billion pages as of March 2026, so overlap with Bing's top ten will be partial and different in character rather than simply worse. Exa ranks by embedding similarity, so for conceptual queries it returns pages Bing would never have surfaced and misses exact-string matches Bing handled trivially. SERP APIs that scrape Google give you Google's ranking, which is a third distinct result set. Run both systems in parallel and diff overlap at ten, domain distribution, and empty-result rate.
How do I test a replacement before cutting over?
Shadow the traffic. Capture a week of real production queries with their Bing responses, then replay them against each candidate and store both result sets. Compare on three things: overlap of URLs in the top ten, the rate at which a candidate returns nothing for a query Bing answered, and end-task quality if a model consumes the output. Vendor benchmark numbers are directional at best, since they are self-published on curated question sets and are not directly comparable to each other. Your own query distribution decides this, and a week of logs is usually enough to see the differences that matter.

Weekly briefing – tool launches, legal shifts, market data.