sfoln/google-news-search · News, SEO tools, AI On request
Search Google News by keyword, brand or topic: one row per article with title, URL, publisher, snippet, image and an ISO publish time, by country, language and time range. $4 per 1,000 result pages of up to 10 articles.
Google News Scraper searches Google News for any keyword, brand or topic and returns one clean row per article: title, URL, publisher, domain, snippet, thumbnail and an ISO publishedAt timestamp. Google only shows relative dates like "2 hours ago", so we resolve them against the run time and keep the original string too. Built for media monitoring, PR tracking, market intelligence and AI agents that need fresh news.
Price
Price per delivered record
Event
Price
Per 1,000
Charged for
Google News results page google-news-query
$0.004
$4 / 1,000
Charged once per Google News results page of up to 10 articles (one upstream credit).
Apify free plan: up to 10 items per run. Paid plans have no per-run cap; set maxTotalChargeUsd to cap spend.
Run
Call it from code, an agent or the Console
This API is private on Apify for now. Email us and we will publish it for you, usually within two working days. The calls below work once it is public. contact@sfoln.com
POST https://api.apify.com/v2/actors/sfoln~google-news-search/runs?maxTotalChargeUsd=1
GET https://api.apify.com/v2/actor-runs/{runId} # until status is SUCCEEDED
GET https://api.apify.com/v2/datasets/{defaultDatasetId}/items?format=json
Authenticate with an Apify API token. MCP clients can instead sign in with OAuth when prompted. Example prompt for an agent: Get the latest Google News articles about "artificial intelligence" from the past day in the US and summarize the main stories.
Input
Input fields
Enter news search queries (one per line). For every query the Actor writes one row per article plus one `query_summary` row.
Field
Type
Default
Meaning
queries *
array
required
News queries Keywords, company names or topics to search in Google News, one per line. Accounts on the Apify free plan can process up to 10 queries per run.
country
string
"us"
Country (gl) Two-letter country code that decides the news edition, e.g. us, gb, de, in.
language
string
"en"
Language (hl) Language code, e.g. en, de, es. Publish dates are only parsed into publishedAt for English date strings.
timeRange
string
"any"
Time range Only return articles published within this period. One of "any", "hour", "day", "week", "month", "year".
resultsPerQuery
integer
10
Articles per query How many articles to fetch per query, rounded up to a multiple of 10. Each page of 10 articles is one google-news-query event. Range 10–100.
page
integer
1
Start page Result page to start from (1 = newest/most relevant). Range 1–100.
maxQueries
integer
1000
Max queries Safety cap on the number of queries processed in this run. Range 1–10000.
concurrency
integer
5
Concurrency How many queries run in parallel. Range 1–10.
includeRaw
boolean
false
Include raw upstream response Attach the unmodified upstream pages to each query_summary row.
Example input
{
"queries": [
"artificial intelligence"
]
}
Output
One record per input item
Records land in the run's dataset; a synchronous call returns them directly. Each has a status (ok is charged; everything else is free) and a charged flag. The run's OUTPUT record totals items and charges.
Field
Type
Meaning
input
string
Input
query
string
Querye.g. "artificial intelligence"
resultType
string
Result type article | query_summary (one per query, not charged itself) e.g. "article"
rank
integer | null
Rank Overall position: (page − 1) × 10 + the article's place on its page.
position
integer | null
Position on page
page
integer | null
Page
title
string | null
Title
url
string | null
URL
domain
string | null
Domain Publisher host without www., derived from url.
publisher
string | null
Publisher Publisher name as shown by Google News.
date
string | null
Date (raw) Date string as shown by Google, e.g. "2 hours ago".
publishedAt
string | null
Published at ISO timestamp parsed from `date` (relative dates resolved against the run time).
publishedAtIsEstimate
boolean | null
Published at is estimate true when computed from a relative date like "3 weeks ago" or from a date shown without a year ("Oct 5").
snippet
string | null
Snippet
imageUrl
string | null
Image URL Thumbnail served by Google.
totalArticles
integer | null
Articles query_summary: articles written for the query.
pagesFetched
integer | null
Pages fetched
creditsUsed
number | null
Credits used query_summary: upstream credits the query used.
creditsCharged
number | null
Credits charged query_summary: google-news-query events charged for the query, before any of its rows was written (equal to creditsUsed unless the maximum cost per run was reached).
publishers
array
Publishers query_summary: distinct publishers.
newestPublishedAt
string | null
Newest article
oldestPublishedAt
string | null
Oldest article
country
string | null
Country query_summary: country edition (Google gl).
language
string | null
Language query_summary: language (Google hl).
timeRange
string | null
Time range query_summary: Google tbs filter used (e.g. qdr:d), or null for any time.
status
string
Status ok | not_found | error | skipped_budget | skipped_free_plan
charged
boolean
Charged true on an article row covered by the google-news-query charge of its results page; the query_summary row is never charged itself (see creditsCharged).
chargedEvent
string
Charged event
chargedCount
integer
Events charged Events actually charged when the charge came back short of the requested count (present only then; a warning explains it).
source
string
Data source Always serper (Google via a third-party SERP API).
fetchedAt
string
Fetched at
Example record
{
"input": "apify",
"query": "apify",
"resultType": "article",
"rank": 1,
"position": 1,
"page": 1,
"title": "Apify raises funding to expand web data platform",
"url": "https://techcrunch.com/2026/10/13/apify-funding/",
"domain": "techcrunch.com",
"publisher": "TechCrunch",
"date": "2 hours ago",
"publishedAt": "2026-10-14T10:00:00.000Z",
"publishedAtIsEstimate": true,
"snippet": "Prague-based Apify, which runs a marketplace of web scrapers…",
"imageUrl": "https://encrypted-tbn0.gstatic.com/images?q=…",
"status": "ok",
"charged": true,
"chargedEvent": "google-news-query",
"source": "serper",
"fetchedAt": "2026-10-14T12:00:00.000Z"
}