Skip to content
unlob

Migrating off the Bing Web Search API

The Bing Search API was retired in August 2025, taking Web, Image, News, Video, Entity, Autosuggest, Spell Check and Custom Search with it. Microsoft’s designated successor requires adopting Azure AI Foundry.

Microsoft retired the Bing Web Search API on 11 August 2025.

Why teams are moving

  • The retirement was total: eight sub-APIs, not a deprecation with a compatible successor.
  • Grounding with Bing Search only works inside Azure AI Foundry agents. If you were calling a REST endpoint from your own stack, there is no equivalent.
  • Teams that had already been through one deprecation generally chose a provider that owns its index, so the next upstream decision is not theirs to absorb.

The migration

  1. Get a key

    One magic link creates your account and issues an API key. The free tier is 10,000 requests a month with no card, which is enough to port and test a small integration before committing.

  2. Swap the endpoint and header

    Replace the Bing endpoint with https://api.unlob.com/search, and Ocp-Apim-Subscription-Key with x-api-key. The query parameter is q in both.

  3. Translate the filters

    Bing’s freshness buckets become explicit published_from and published_to timestamps; responseFilter becomes content_type; mkt becomes lang. Everything else is a rename.

  4. Replace the fetch-and-clean step

    Bing returned snippets and URLs, so most integrations fetched and cleaned each page afterwards. /doc/:id returns cleaned text directly for anything in the index, which usually removes a whole extraction dependency.

  5. Consider what you can now do

    Corroboration counts, centrality sorting and story collapsing have no Bing equivalent. If your integration had hand-rolled deduplication, collapse=story replaces it.

The new callbash
# Before — Bing Web Search API
# After — unlob
curl -H "x-api-key: $UNLOB_API_KEY" \
  "https://api.unlob.com/search?q=your+query&limit=10&collapse=story"

Parameter mapping

Most of this is renaming. The entries marked with a dash are the ones that need a different approach rather than a different name.

Bing Web Search APIunlobNote
qqBoolean operators, negation with a leading minus, and quoted phrases all work.
countlimitDefaults to 10. limit=0 returns the total only.
offsetNo offset paging. Narrow with filters instead; it produces better results than deep paging did.
mkt / setLanglangA language code. langs[] accepts several.
freshnesspublished_from / published_toExplicit timestamps rather than Day/Week/Month buckets.
safeSearchsafeBoolean, and on by default.
site: operatorsiteA filter rather than query syntax, so it can be composed programmatically.
responseFiltercontent_typearticle, news, docs, code, academic, forum and more.
Ocp-Apim-Subscription-Keyx-api-keyAuthorization: Bearer also works.

What you will lose

A migration guide that claims a clean swap is not a migration guide. These are the things that genuinely do not map.

  • No image, video or entity search. If you used those Bing sub-APIs, this is not a complete replacement.
  • No spell check or autosuggest endpoints.
  • Our index is smaller than Bing’s. For broad consumer queries that is a real difference — why_not will tell you when something is missing rather than leaving you to guess.

Frequently asked questions

When exactly was the Bing Search API retired?

On 11 August 2025. New API creation had been silently disabled in March 2025, weeks before any official announcement. The retirement covered the whole family: Web, Image, News, Video, Entity, Autosuggest, Spell Check and Custom Search.

Is Grounding with Bing Search a drop-in replacement?

No. It is a tool inside Azure AI Foundry agents, not a standalone REST endpoint. Migrating to it means adopting the platform, which is a substantially larger change than swapping a search provider.

How long does migrating take?

For a straightforward web search integration, usually under an hour — the parameter mapping is mostly renames. It takes longer if you were using image, video or entity search, which have no equivalent here.

Port it on the free tier first

10,000 requests a month, no card. Enough to run both APIs side by side against your own queries before you change anything in production.