NewsAPI.ai searches news, press releases and blogs from over 150,000 sources.
Features3
Modes5
Filters3
Playground
Results from NewsAPI.ai
Features
NewsAPI.ai delivers 3 of the features on the feature list, each from one or more of its modes.
| Feature | Returns |
|---|---|
| News | News articles on a subject, dated, from news sources; a date window keeps them to the last days. |
| Press releases | Press releases on a subject, dated. |
| Blog posts | Blog posts on a subject, dated. |
Modes
NewsAPI.ai has 5 search modes. Choose which of them a search may use under Routing on your account page.
- Default search
- Newest
- Archive
- Press
- Blog
Filters NewsAPI.ai applies
Set them under filters. A filter a provider can’t apply returns 400 unsupported_filter.
| Filter | Keeps |
|---|---|
domains | Only these sites, or with "mode": "exclude", none of them. |
recency | The last so many days, or a range of dates. |
language | One language, by its code. |
request.jsonJSON
{
"query": "Nobel Prize in Physics 2026 winners",
"top_k": 5,
"requested_provider": "newsapi",
"filters": {
"domains": { "values": ["nobelprize.org"] }
}
}
Pin a query to NewsAPI.ai
- Over the HTTP API, send
"requested_provider": "newsapi"with the query and your search key. - In an agent connected over MCP, ask it to search with NewsAPI.ai.
Results come back in the same shape for every provider, as the docs describe. Leave the field out, and Grounder routes each query to the provider most likely to answer it well.
search.shShell
curl https://api.grounder.net/v1/search \
-H "Authorization: Bearer $GROUNDER_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "Nobel Prize in Physics 2026 winners",
"top_k": 5,
"requested_provider": "newsapi"
}'
import os
import httpx
KEY = os.environ["GROUNDER_KEY"]
r = httpx.post(
"https://api.grounder.net/v1/search",
headers={"Authorization": f"Bearer {KEY}"},
json={
"query": "Nobel Prize in Physics 2026 winners",
"top_k": 5,
"requested_provider": "newsapi",
},
timeout=30,
).json()
for hit in r["results"]:
print(hit["rank"], hit["title"], hit["url"])
const res = await fetch("https://api.grounder.net/v1/search", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.GROUNDER_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
query: "Nobel Prize in Physics 2026 winners",
top_k: 5,
requested_provider: "newsapi",
}),
})
const { results } = await res.json()
claude mcp add --transport http grounder \
https://api.grounder.net/mcp
# then /mcp, grounder, Authenticate