WEBSEO TOOLS API MCP READY

Google News API

Search and scrape news articles from Google News. Fast. Search several queries in a single run, limit results to the past hour, day, week, month or year, and filter by location and language. Returns structured JSON with article titles, links, sources, snippets, publication dates, exact UTC publish times and thumbnails. News monitoring, markets, and content aggregation. Replaces the retired Google News Lite API, so Lite users can move their searches here.

MEDIAN LAGon demand
FIELDS13
TOTAL USERS113
MONTHLY ACTIVE12
TOTAL RUNS5,640
SUCCESS (30D)99.3%
RATING5.0 (3)
LAST MODIFIED2026-10-29
PUBLISHED2026-01

Input parameters

PARAMETERTYPEREQDEFAULTDESCRIPTION
q string no — Search query string for news articles (e.g., 'technology news', 'coffee', 'artificial intelligence'). Provide this, queries, or both.
queries string[] no — Several search queries in one run (e.g., 'Nvidia', 'OpenAI', 'Anthropic'). Each is searched separately with the same settings, and repeats are skipped. The setup fee is charged once per run, not per query.
time_range enum no any Only return articles published in the past hour, day, week, month or year. Any value other than 'any' sorts results newest first and stops at the first article older than the window.
location string no — Geographic location for localized news results (e.g., 'Austin, TX, Texas, United States', 'New York, NY').
google_domain string no — Google domain to use for the search (e.g., 'google.com', 'google.co.uk', 'google.fr').
gl enum no — Country code for localization (ISO 3166-1 alpha-2, lowercase).
hl enum no — Language code for localization (ISO 639-1, lowercase).
lr string no — Language restriction for search results (e.g., 'lang_en', 'lang_es', 'lang_fr').
safe enum no off Safe search setting to filter explicit content.
nfpr enum no 0 Exclude results from auto-corrected queries when the original query is misspelled.
filter enum no 0 Enable or disable duplicate content filtering.
max_pages integer no 1 Maximum number of pages to fetch per query. Set to 0 to fetch all available pages, up to 30. Page 1 typically returns 10 to 25 articles and later pages about 10. — drives your bill

Output schema

FIELDTYPEDESCRIPTIONNULLABLE
page_number integer Results page this row came from, 1-indexed. Every page of every query is its own row. no
search_parameters object The query and settings used for this row, including time_range, so rows from a multi-query run stay tied to their query. no
search_metadata object Total results, articles returned, pages processed and whether the page limit was reached. no
no_results boolean Set to true on the single row a query returns when it finds nothing, so every query in a multi-query run is accounted for. No page fee is charged for it. yes
news_results array The articles on this page, one object each with the fields below. The News Articles dataset view (?view=articles) unwinds them to one row per article. no
position integer Rank of the article in its query's results, 1-indexed and continuous across pages. no
title string Article headline. no
link string Direct URL to the article on the publisher's site. no
source string Publisher name, for example Reuters or BBC. no
snippet string Short excerpt from the article. Some top-story articles on page 1 come without one. yes
date string Relative publication date as Google shows it, for example '2 hours ago'. no
published_at string Exact publication time in UTC, for example '2026-10-10 03:34:00 UTC'. Sort and de-duplicate across runs on this rather than on date. no
thumbnail string Article thumbnail image URL, when Google shows one. yes

Worked examples

Basic — one query, with the schema's own example value
{
  "q": "technology news"
}
Several queries, past day — three companies in one run, newest first, last 24 hours only
{
  "queries": ["Nvidia", "OpenAI", "Anthropic"],
  "time_range": "day",
  "gl": "us",
  "hl": "en",
  "max_pages": 2
}
POWER-USER TIP
A time range also limits what you pay — Any time_range other than 'any' sorts results newest first and stops at the first article older than the window, so you only pay for pages that hold recent news. Pair it with max_pages 0 to collect everything inside the window, up to 30 pages per query.
POWER-USER TIP
Coming from Google News Lite API — Lite was retired on 13 October 2026 and this source covers everything it did. Rename searchTerms to queries, timeRange to time_range, country to gl and language to hl, and replace maxResultsPerSearch with max_pages at about 10 articles a page. Lite returned one row per article. Here each row is a results page with a news_results array, and the News Articles dataset view (?view=articles) gives you one row per article again. Lite's imageUrl is now thumbnail.

Coverage

244
country code — ad ae af ag ai +239
200
language code — en es fr de it +195

Written about this source

Walkthroughs, worked examples and posts about this source.

Code

curl

curl -X POST "https://api.apify.com/v2/acts/johnvc~GoogleNewsAPI/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"q": "technology news"}'

Python

from apify_client import ApifyClient

client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/GoogleNewsAPI").call(
    run_input={'q': 'technology news'}
)
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

MCP

Apify's hosted MCP server loads this source from the URL below as the tool johnvc--GoogleNewsAPI. Sign in to Apify when your client asks (OAuth), or send an Apify token as an Authorization: Bearer header.

https://mcp.apify.com/?tools=johnvc/GoogleNewsAPI