Global News Monitor: Articles by Keyword, Tone and Topic avatar

Global News Monitor: Articles by Keyword, Tone and Topic

Pricing

from $1.20 / 1,000 news articles

Go to Apify Store
Global News Monitor: Articles by Keyword, Tone and Topic

Global News Monitor: Articles by Keyword, Tone and Topic

News and media monitoring in 65+ languages by keyword, topic, company or tone from GDELT open data. No proxies, no search engine scraping. One row per article with real publisher URL, publish time, tone, themes and organizations. Schedule with only-new for alerts. USD 1.50 per 1,000 articles.

Pricing

from $1.20 / 1,000 news articles

Rating

0.0

(0)

Developer

JT Palms

JT Palms

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

News alerts from open data. This actor reads the GDELT Project's open 15-minute article files and returns one row per matching article: the real publisher URL, the headline, the publish time, GDELT's tone score, its themes and the organizations it found. No search engine is scraped, no proxy is used and no API key is needed. Schedule it with Only new articles and it becomes an alert feed that charges only for news you have not seen.

USD 1.50 per 1,000 articles. A run that finds nothing new costs only the start fee.

What people use it for

  • Brand and competitor watch. Keywords acme corp, acme*, or organization acme corp; one scheduled task per brand or client, hourly or daily.
  • Issue monitoring for PR and comms teams. tariffs, data breach, strike with Maximum tone -3 to see only clearly negative coverage.
  • Sales and BD triggers. Trigger tags funding, acquisition, leadership-change or layoffs on the companies you sell to.
  • Research corpus. Every article in a time window (empty keywords), with tone, GDELT theme codes and countries, reproducible from the same public files.
  • AI agent tool. "What is in the news about X in the last 6 hours", answered with real article URLs, not redirect links.

Sample output

Real rows from a run on 2026-10-06 (keywords layoffs, acquire, ransomware, interest rates; 6 hours; English):

Published (UTC)TitlePublisherToneTrigger tagsCountriesAlso on
2026-10-06 18:30C.H. Robinson agrees to acquire RXO in $5.8 billion cash-and-stock deallogisticsmgmt.com7.56acquisitionUS
2026-10-06 18:30Stelco layoffs: Feds give U.S. owner 5 days to explain planned layoffscp24.com-0.57layoffsCA1 other site
2026-10-06 16:31Maine regulators deny CMP's $7 rate hike as utility weighs potential layoffspressherald.com-1.03layoffs, regulatoryUS2 other sites
2026-10-06 14:51Uber to Acquire EzCater for $2.3B, Expanding Catering Reachbusinessinsider.com2.6acquisition
2026-10-06 10:30Shionogi to acquire IntraBio in deal worth $2bnpmlive.com-0.59acquisitionJP, JO, US

One full row (JSON):

{
"id": "20261006183000-14",
"url": "https://www.logisticsmgmt.com/article/c.h_robinson_agrees_to_acquire_rxo_in_5.8_billion_cash_and_stock_deal/lm_october_2026",
"title": "C.H. Robinson agrees to acquire RXO in $5.8 billion cash-and-stock deal",
"domain": "logisticsmgmt.com",
"publishedAt": "2026-10-06T18:30:00.000Z",
"seenAt": "2026-10-06T18:30:00.000Z",
"language": "en",
"tone": 7.56,
"positive": 8,
"negative": 0.44,
"polarity": 8.44,
"wordCount": 195,
"themes": ["EPU_ECONOMY_HISTORIC", "TAX_ECON_PRICE", "TAX_FNCACT_CEO", "TAX_ETHNICITY_AMERICAN", "WB_135_TRANSPORT", "EPU_POLICY_REGULATORY", "LEADER", "TAX_FNCACT_PRESIDENT", "USPEC_POLITICS_GENERAL1", "TAX_FNCACT_CHAIRMAN"],
"organizations": [],
"countries": ["US"],
"image": "https://www.logisticsmgmt.com/images/2026_article/ch-robinson-building3.jpg",
"matchedKeywords": ["RXO"],
"triggerTags": ["acquisition"],
"alsoOnDomains": [],
"source": "gdelt-gkg",
"citation": "Contains data from the GDELT Project, https://www.gdeltproject.org/",
"fetchedAt": "2026-10-06T19:19:34.494Z"
}

How it works and how fresh it is

  1. GDELT publishes one Global Knowledge Graph file every 15 minutes with every article it processed in that slot (about 1,500 English-language articles per file, about 145,000 a day). The actor builds the list of files for your window, newest first.
  2. It downloads them (4 at a time, with retries), unzips them as a stream and keeps the articles that pass your filters. Once Maximum articles matches are in hand, it stops reading older files.
  3. It merges duplicates: the same URL seen twice, and (with Merge syndicated copies) the same headline on many sites, keeping the earliest copy and naming the other publishers in alsoOnDomains.
  4. Rows come out newest first. Each row is charged once.

Freshness: English-language sources appear within about 15 minutes of GDELT seeing them. Translated (non-English) sources arrive 1 to 3 hours later, because GDELT translates them first; on 2026-10-06 the newest translation file was about 1 hour 15 minutes behind. A file that is not out yet is listed under filesNotYetPublished in the run's SUMMARY and picked up by a later run, never counted as an error.

publishedAt is the publisher's own timestamp when GDELT found one (about half of the articles), otherwise the time GDELT saw the article (seenAt). The window always refers to seenAt, so an older article first seen today is included.

Filters

All filters combine with AND. Lists inside one filter combine with OR.

InputWhat it does
keywordsMatch in the title, whole words, any case: layoffs never matches "MLB Playoffs". Several words match as a phrase (interest rates). layoff* matches word endings. /regex/ is a regular expression. Empty = every article in the window.
excludeKeywordsDrop articles whose title contains any of these.
matchIntitle (default), title_or_organizations, or title_or_themes (theme codes are matched as words, so layoffs finds ECON_LAYOFFS).
organizationsGDELT's organization names, lower case: federal reserve, european central bank, tesla.
themesGDELT theme code prefixes: ECON_ (economy), ECON_BANKRUPTCY, TAX_ (taxonomies), WB_ (World Bank topics), CYBER_ATTACK. The full list: LOOKUP-GKGTHEMES.TXT.
domains / excludeDomainsPublisher allow and block lists. reuters.com also covers its subdomains.
countriesTwo-letter ISO codes of places the story mentions (GDELT writes FIPS codes such as UK and GM; the actor converts them to GB and DE).
languagesen (default) reads the main files. Any other code (fr, de, es, zh, ar, ru...) also reads the translation files. Empty = all languages GDELT reads (English plus 65).
minTone / maxToneGDELT's overall tone, roughly -10 to +10; most articles sit between -5 and +5.
triggerTagsRule-based headline tags (below). Every row lists its tags even when you do not filter on them.
lookbackHoursWindow ending now, 1 to 72 hours (default 6).
fromDateTime / toDateTimeExplicit UTC window, for example 2026-10-05T00:00:00Z to 2026-10-05T12:00:00Z. At most 72 hours per run. Files exist back to 2015-02-19.

Non-English titles stay in their own language, so English keywords will not match them. GDELT's organizations and themes for those articles come from its English translation, so matchIn: title_or_organizations, organizations or themes do find them.

Trigger tags and their measured precision

Tags are plain keyword rules on the English headline, not a model. Precision below is the share of correct tags in 20 headlines per tag, read by hand, from 25,163 distinct English headlines GDELT published on 2026-10-06 between 13:00 and 19:00 UTC. Recall was not measured: the rules miss headlines worded in other ways.

TagHeadlines tagged in the sample windowCorrect in 20
funding2716 (misses: charity drives, contract wins)
acquisition20719
layoffs2218
leadership-change5819
lawsuit18317 (criminal "legal action", a person named Sue)
bankruptcy3619
earnings3717 (market-wide earnings pieces)
product-launch11914 (government systems, festival lineups)
regulatory6019
partnership8315 (diplomatic "strategic partnerships")
security-incident6017 (articles about preventing attacks)

Scheduling recipe: an alert feed

  1. Save your filters as a task, with Only new articles on and Look back at 6 hours (the overlap catches late translated files).
  2. Schedule the task hourly (or daily with Look back 24).
  3. Add an Apify integration: Slack, email, a webhook or Zapier on "Run succeeded", or read the dataset from the API.

The first run outputs the current matches (or nothing, with First run with Only new = None). Later runs output only articles no earlier run output. The memory is kept per set of filters in your own global-news-monitor-state key-value store for 7 days (up to 200,000 articles), so two tasks with different keywords never hide each other's news. Matches cut off by Maximum articles come out in the next run while they are still inside the window.

Input example

{
"keywords": ["acme corp", "acme*"],
"excludeKeywords": ["acme anvils"],
"triggerTags": ["funding", "acquisition", "leadership-change"],
"languages": ["en"],
"lookbackHours": 6,
"onlyNew": true,
"maxResults": 200
}

Output fields

FieldMeaning
idGDELT record id (file stamp plus row number; -T marks a translated source).
urlThe publisher's article URL, as GDELT recorded it.
titleHeadline as published, HTML entities decoded (long dashes are written as a plain hyphen).
domainPublisher domain.
publishedAtPublisher's timestamp when known, else seenAt (UTC).
seenAtTime of the GDELT file the article came from (UTC).
languageSource language (en for the main files, otherwise the original language).
tone, positive, negative, polarityGDELT tone scores (machine-estimated from the article text).
wordCountArticle length GDELT measured.
themesTop 10 GDELT theme codes by mentions.
organizationsTop 10 organizations by mentions (GDELT's lower-case names).
countriesISO codes of countries the article mentions, by mentions (up to 10).
imageThe page's sharing image, if any.
matchedKeywordsWhich of your keywords matched.
triggerTagsRule-based tags of the headline.
alsoOnDomainsOther publishers that ran the same headline (with Merge syndicated copies).
text, textStatusOnly with Add article text: the main text, and ok or why there is none (robots-disallowed, paywalled, blocked, login-page, pdf, not-html, no-text-found, http-<code>, failed).
source, citationgdelt-gkg and the GDELT credit line.
fetchedAtWhen this run wrote the row.

The run's SUMMARY record lists the window, files read, files not yet published or missing, files skipped as damaged, articles scanned, matches, duplicates merged and what was charged.

Article text (optional, off by default)

With Add article text, the actor fetches each output article's page once and adds its main text (up to 50,000 characters). It reads the site's robots.txt first and skips pages it disallows, sends at most one request per second to a site, waits at most 10 seconds, uses no proxy, and never works around a paywall: pages marked as not free, login pages, blocked pages and PDFs keep text: null and are not charged for text. In tests on 2026-10-06, 14 of 16 real article links returned text from a home connection and 5 of 10 from Apify's servers (the other 5: 2 marked paywalled, 2 disallowed by robots.txt, 1 blocked), so expect roughly half to two thirds of articles to come back with text. Article text is the publisher's work; use it for your own analysis and respect their terms.

Pricing

Pay per event:

EventPrice (FREE and BRONZE plans)
Run startUSD 0.002
News article (one output row)USD 0.0015, so USD 1.50 per 1,000
Article text (only when text was returned)USD 0.004, so USD 5.50 per 1,000 with text

SILVER plans pay 10% less and GOLD and above 20% less per article. Examples:

  • The default input (two keywords, 6 hours, up to 50 articles) returned 14 articles on 2026-10-06: about USD 0.023.
  • A daily task with about 30 new matches a day: about USD 1.35 a month for articles plus USD 0.06 in starts.
  • An hourly only-new task: 720 starts a month (USD 1.44) plus USD 0.0015 per new article.
  • Set Maximum cost per run in the run options to cap any run; the actor stops cleanly at that limit and keeps what it saved.

Attribution and data source

Contains data from the GDELT Project (https://www.gdeltproject.org/). GDELT states that its datasets "are available for unlimited and unrestricted use for any academic, commercial, or governmental use of any kind without fee", with a citation and a link to its website when redistributing. Every row carries that citation in citation; please keep it when you republish the data.

Person names, quotations and page authors are in GDELT's files but are left out on purpose: the actor never reads those columns.

Limits and honest notes

  • GDELT's coverage is broad but not complete, and its ranking and coverage differ from those of consumer news apps.
  • Titles only, no snippet: GDELT does not publish article summaries. Use Add article text when you need the body.
  • Tone, themes, organizations and countries are machine-extracted by GDELT and can be wrong.
  • Trigger tags are rules with the precision shown above; check them before acting on a tag.
  • Windows longer than 24 hours download hundreds of MB (about 150 MB per 6 hours of English files) and take longer; 72 hours is the maximum per run.
  • If GDELT renames its files or adds limits, runs will report it in SUMMARY; the actor does not fall back to any other source.

Polite fetching

Every request names this actor (Mozilla/5.0 (compatible; global-news-monitor/1.0; +https://apify.com/JTPalms)). GDELT files are static downloads from data.gdeltproject.org, at most 4 at a time, each downloaded once per run. No proxies, no browser automation, no header tricks.