Bing News Search API Retirement: Migration Guide for Developers
Microsoft officially retired the Bing Search and News APIs on August 11, 2025. Here is how to migrate your news queries, filters, and code to Currents API.
Last reviewed: 2026-08-31.
On August 11, 2025, Microsoft retired all standalone Azure Bing Search APIs, including Bing News Search v7. Existing instances have been decommissioned, and new signups on Azure are permanently disabled.
Microsoft recommends developers migrate to Grounding with Bing Search inside Azure AI Agents. However, if your application requires a standalone REST API for raw JSON news data without paying for enterprise Azure AI agent compute, you need an independent provider.
Here is a step-by-step guide to translating your Bing News queries, parameters, and payloads into Currents API.
Parameter Mapping: Bing News Search vs. Currents API
| Bing News v7 Parameter | Currents API Parameter | Description & Syntax |
|---|---|---|
q |
keywords or query |
Search query term (keywords=semiconductors+AND+ai) |
mkt / cc |
country |
2-letter ISO country code (country=US, country=GB) |
setLang |
language |
2-letter language code (language=en, language=de) |
category |
category |
News topic (category=business,technology,finance) |
count |
page_size |
Number of articles returned (up to 50 on Builder, 200 on Scale) |
offset |
page_number |
Pagination index |
freshness |
start_date / end_date |
Date range boundary (YYYY-MM-DDTHH:MM:SS+00:00) |
sortBy |
Default is Chronological | Real-time reverse chronological ordering |
Ocp-Apim-Subscription-Key |
apiKey / Header |
Authorization: Bearer KEY or ?apiKey=KEY |
Python Migration Example
Before (Bing News Search API v7):
import requests
endpoint = "https://api.bing.microsoft.com/v7.0/news/search"
headers = {"Ocp-Apim-Subscription-Key": "BING_KEY"}
params = {"q": "artificial intelligence", "mkt": "en-US", "count": 20}
response = requests.get(endpoint, headers=headers, params=params)
articles = response.json().get("value", [])
After (Currents API):
import requests
endpoint = "https://api.currentsapi.services/v1/search"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
params = {
"keywords": "artificial intelligence",
"country": "US",
"language": "en",
"page_size": 20
}
response = requests.get(endpoint, headers=headers, params=params)
articles = response.json().get("news", [])
Key Differences & Trade-offs
- Self-Service Onboarding: You do not need an active Azure Subscription or enterprise agreement. You can generate a free key in 30 seconds at currentsapi.services/en/register.
- Predictable USD Quotas: Rather than complex Azure transaction tiering, Currents uses transparent monthly quotas: 250 requests/day free, $69/mo for 75,000 calls.
- Structured Response Objects: Currents returns standardized JSON objects containing title, description, canonical source URL, image, author, language, and ISO-8601 published timestamps.