Get Google News results as JSON in one line of Node.js. Search any keyword, topic or the top stories, and get back titles, publisher links, sources and publish dates.
import googleNewsScraper from 'google-news-scraper';
const articles = await googleNewsScraper({ searchTerm: "OpenAI", timeframe: "1d" });
// [{ title: "...", link: "https://www.reuters.com/...", source: "Reuters", datetime: "2026-10-14T09:12:00.000Z", time: "3 hours ago", ... }]
- ⚡ No headless browser. Results come straight from Google News feeds, so a search is a single HTTP request and runs happily on serverless platforms such as Vercel and AWS Lambda.
- 🔗 Real publisher URLs. Google's redirect links are resolved to the original article on the publisher's site.
- 🌍 Any language or region. Pass Google's
hl/gl/ceidparameters to search local editions. - 🧠 Optional full text. Turn on
getArticleContentto pull each article's body text, ready for summarisation or LLM pipelines. - 🟦 TypeScript types included, and works with both ESM
importand CommonJSrequire. - ✅ Checked daily against the live site, so breakages are caught before you notice them.
Good for news monitoring, brand and competitor tracking, market research, trading signals, newsletters and feeding fresh context to AI agents.
Sponsors 💛
SerpApi - The News Monitoring API. We help you access real-time search engine data via a simple API, which includes news from Google, Bing, and DuckDuckGo.
Want your product in front of developers building with news data? Sponsorship puts your logo here and on the npm page. Sponsor via GitHub Sponsors, or get in touch to talk about placements.
- Installation
- Usage
- Output
- Config
- TypeScript
- CommonJS
- Performance
- Upgrading from v2
- Upkeep
- Bugs
- Contribute
- Python version
Installation 🔌
# Install via NPM
npm install google-news-scraper
# Install via Yarn
yarn add google-news-scraper
Usage 🕹️
Simply import the package and pass a config object.
import googleNewsScraper from 'google-news-scraper';
// Search
const articles = await googleNewsScraper({ searchTerm: "The Oscars" });
// Top stories in the UK edition
const topStories = await googleNewsScraper({ queryVars: { hl: "en-GB", gl: "GB" } });
// A topic page
const tech = await googleNewsScraper({ baseUrl: "https://news.google.com/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRGRqTVhZU0FtVnVHZ0pWVXlnQVAB" });
A minimum working example can be found in this repo. Full documentation on the config object can be found below.
Output 📲
The output is an array of JSON objects, with each article following the structure below:
[
{
"title": "Article title",
"link": "http://url-to-website.com/path/to/article",
"image": "",
"source": "Name of publication",
"sourceUrl": "https://url-to-website.com",
"datetime": "2024-05-13T08:02:22.000Z",
"time": "2 hours ago",
"articleType": "regular"
}
]

No comments yet.