sort=date (most-recently-indexed first), dateRestrict (a rolling time window), and siteSearch (targeting specific news outlets or Google News–indexed domains). This approach mirrors the behavior of a news search tab and gives you precise control over which sources, time ranges, and topics your application surfaces.
How news search works
When you setsort=date, Google returns results ordered by the date each page was indexed rather than by relevance score. Pairing that with dateRestrict ensures you only retrieve articles published within a defined recency window. You can further sharpen results by restricting to known news domains (e.g., reuters.com, bbc.com, apnews.com) via siteSearch, or by configuring your Programmable Search Engine in the Control Panel to include a curated list of news outlets.
Publication dates are not returned as a dedicated API field. Instead, they appear in the pagemap object — typically in metatags[0]["article:published_time"] (ISO 8601) or in metatags[0]["og:updated_time"] — and sometimes in the human-readable snippet text.
Google News (
news.google.com) content itself is not accessible through the Custom Search API. Use siteSearch to target the original publisher domains where the articles are hosted.Key parameters for news search
string
required
Your news query. Standard Google operators work — for example:
q=inflation+rate— broad keyword matchq="interest+rate"+decision+intitle:central+bank— exact phrase plus title matchq=earthquake+OR+tsunami— either term
string
Set to
date to order results by index date (most recent first) instead of relevance. This is the single most important parameter for news retrieval.string
Limit results to content indexed within a rolling window. Format:
d[N], w[N], m[N], y[N].For breaking news, use
d1 or d2. For trend analysis, use m1 or m3.string
Restrict results to a specific news outlet domain. Combine with
siteSearchFilter=i to include only that source. You can only specify one domain per request; to search across multiple outlets, configure them as included sites in your engine.string
i — include only the siteSearch domain. e — exclude that domain. Defaults to i.string
Require this exact phrase to appear in every returned result. Useful for filtering out loosely related articles when your query terms are ambiguous.
string
Exclude any result that contains this term. Useful for filtering out topic crossover (e.g., excluding
sports from results for "league table").string
Restrict results to a specific language. Format:
lang_XX (e.g., lang_en, lang_de, lang_fr). See Advanced Filters for the full list.string
Geolocation of the end user. Two-letter country code (e.g.,
us, gb, in). Influences which regional editions of news sites rank higher.integer
Results per page. Accepts
1–10. Defaults to 10.integer
Pagination offset (1-based, max
91).Make your first news search request
1
Pick your recency window
Decide how fresh the content needs to be. For a real-time news widget, use
d1; for a weekly digest feature, use w1 or d7.2
Choose a source strategy
Decide between:
- Single outlet —
siteSearch=reuters.com&siteSearchFilter=i - Multi-outlet engine — Configure trusted domains in the Programmable Search Engine Control Panel, then omit
siteSearch - Open web news — Omit
siteSearchentirely; addsort=dateanddateRestrictto surface any recently indexed news
3
Send the request
4
Extract the publication date
Parse the
pagemap.metatags[0]["article:published_time"] field from each result item. Fall back to the snippet text if the structured field is absent.Full curl examples
- Breaking news (last 24 h)
- Single outlet, topic search
- Technology news, last month
- Exclude specific terms
Retrieve the most recent articles about an earthquake from any indexed source:
Sample news result item
How to read publication dates
Publication dates are not a dedicated top-level API field. Extract them using this priority order:1. article:published_time (most reliable)
1. article:published_time (most reliable)
Available in
pagemap.metatags[0]["article:published_time"] when the publisher uses the Open Graph Article protocol. Returns an ISO 8601 timestamp:2. newsarticle.datePublished
2. newsarticle.datePublished
Some publishers include Schema.org
NewsArticle markup. Check pagemap.newsarticle[0].datePublished:3. og:updated_time
3. og:updated_time
Falls back to
pagemap.metatags[0]["og:updated_time"] when article:published_time is absent:4. Snippet date prefix
4. Snippet date prefix
Many news snippets begin with the publication date in the format
"Nov 8, 2024 — ...". Parse it as a last resort:Build a news monitoring workflow
1
Set a polling interval
For near-real-time monitoring, poll the API every 15–30 minutes using
dateRestrict=d1 and sort=date. This keeps you within the free tier of 100 queries/day if you poll every ~15 minutes.2
Track seen articles
Store the
link (canonical URL) of each returned article in a database or cache. On each poll, skip any item whose link you have already processed.3
Filter by publication date
After extracting
article:published_time, discard any articles published before your last poll timestamp to prevent duplicates during recrawl windows.4
Handle pagination for broad queries
If a topic is fast-moving, the first page may fill quickly. Page through results (
start=11, start=21, …) until you encounter an article you’ve already seen.