Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
GDELT Worldwide News Scraper icon

GDELT Worldwide News Scraper

Search worldwide news via GDELT 2.0: headline, URL, domain, country, language and date. 250 articles per query. $2.00 per 1,000.

265 runs on Apify $0.002 per article ($2 / 1,000)
Run this in the cloudRun on Apify →

News & Finance Data

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust query, timespan, sourceCountry (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.002 per article = $2 per 1,000

You are charged forWhenPrice
Article returnedCharged per news article returned.$0.002

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-06-13, and they are what you are actually charged.

Inputs

FieldWhat it doesType
queryKeywords to search worldwide news for. Wrap phrases in quotes (e.g. "climate change"). Combine with OR, or operators like domain:reuters.com. Very short or very common single words may be rejected by GDELT, add a second word or quote a phrase.string
timespanOnly return articles from the last N units of time, e.g. 1d, 3d, 1w, 1m, 3m. Leave empty for GDELT's default window. GDELT only covers roughly the last 3 months.string
sourceCountryLimit to articles from a given source country, appended to the query as sourcecountry:{code}. Use GDELT country codes (e.g. US, UK, FR, DE, IN). Leave empty for all countries.string
sourceLangLimit to articles in a given language, appended to the query as sourcelang:{code} (e.g. english, french, spanish, german). Leave empty for all languages.string
sortHow to order results: DateDesc (newest first), DateAsc (oldest first), or HybridRel (by relevance to the query).string
maxItemsMaximum number of articles to return. GDELT hard-caps a single request at 250, higher values are automatically capped at 250.integer
notionConnectorOptional. Write each article as a page into your Notion when the run finishes. Authorize a Notion connector once in Settings → API & Integrations → MCP connectors, then pick it here. Leave empty to skip (default), results are always saved to the dataset regardless.string
notionParentIdOptional. The Notion data source ID of the database to write into (only used if a Notion connector is set). Leave empty to create the pages privately in your workspace instead.string

What you get

A structured dataset — each result includes fields like:

detailsquerysortsourceCountrysourceLangtimespantitledomainlanguagepublishedAturl

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

2 ready-to-run use cases

World News API for AI Coverage, Newest First

AI stories from GDELT's worldwide index, not one country's edition. Each row has the headline, domain, language and source country. Links only, no text.

World Cup News Worldwide, in Every Source Language

A week of World Cup coverage from GDELT with the publishing country and language on every row. Headlines and links, not full article text.

Related tools in News & Finance Data

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

Yahoo Finance Scraper iconNews & Finance Data

Yahoo Finance Scraper

Get Yahoo Finance quotes and OHLCV history with no API key. Ticker search, current quote with change % and the 52-week range. $1.00 per 1,000 rows.

3 use cases

CoinGecko Crypto Market Scraper iconNews & Finance Data

CoinGecko Crypto Market Scraper

Scrape CoinGecko crypto market data with no API key. Get top coins, price, volume, 24h and 7d change, supply, ATH and ATL. $2.00 per 1,000 coins.

3 use cases

SEC EDGAR Filings Scraper iconNews & Finance Data

SEC EDGAR Filings Scraper

Search all SEC EDGAR filings by keyword, ticker or CIK. Get form, company, CIK, date and document link. $2.00 per 1,000.

2 use cases

Google News Scraper iconNews & Finance Data

Google News Scraper

Track Google News by keyword or topic. Get real publisher URLs, source, date and snippet. $3.00 per 1,000 articles.

22 use cases

See all News & Finance Data →

GDELT News Scraper: search world news in 65+ languages, no API key

Give it a query and you get news articles from most of the planet back as rows: headline, link, outlet domain, the country the outlet is in, the language it was written in, the publish time and the share image. Filter by country, by language, or to the last day, week or month.

Two limits come from GDELT itself and neither can be worked around here. Any one query returns at most 250 articles with no way to page past that, and the index only reaches back about three months. This is a tool for what is being published now, not an archive.

InputA search query, optionally narrowed by country, language and time window
OutputOne row per article, headline level
Ceiling250 articles per run
Account neededNone, and no API key
Price$2.00 per 1,000 articles, flat on every plan

🌍 What GDELT News Scraper does

It searches GDELT's worldwide news index and hands back flat rows. GDELT watches online news in more than 65 languages, which is the reason to use it: a brand or a policy that has three mentions in English news might have forty in Spanish, Indonesian and Albanian, and this finds those.

Your query goes to GDELT as written, so quoted phrases work, OR works, and operators like domain:reuters.com work. The country and language boxes are added to the query for you.

Articles that come back twice under the same URL are dropped, and so is anything arriving with neither a link nor a headline, before either reaches your dataset.

GDELT asks callers to leave about five seconds between requests, and it can take ten to fifteen seconds to answer a wide query. The run paces itself accordingly. A run that takes a minute is normal here, not stuck.

📥 What you give it

{
  "query": "\"electric vehicles\"",
  "timespan": "3d",
  "sourceCountry": "DE",
  "sort": "DateDesc",
  "maxItems": 250
}
FieldDefaultWhat it is
querynoneYour keywords. The form starts with artificial intelligence in the box, but nothing is sent unless you set it, and an empty query is refused rather than run. Quote phrases: "climate change".
timespannone1d, 3d, 1w, 1m, 3m. Empty means GDELT's own default window.
sourceCountrynoneA GDELT country code such as US, UK, FR, DE, IN. Empty means every country.
sourceLangnoneA language name such as english, french, spanish, german. Empty means every language.
sortDateDescDateDesc newest first, DateAsc oldest first, HybridRel by relevance. Anything else falls back to DateDesc.
maxItems1001 to 250. Ask for more and it is cut to 250, because that is GDELT's ceiling.
notionConnectornoneOptional. Write every article into Notion as a page when the run finishes. Authorize the connector once under Settings, API and Integrations, MCP connectors, then pick it here.
notionParentIdnoneOptional. The Notion data source to write into. Empty creates the pages privately in your workspace.
proxyConfigurationoffOptional and not needed for a normal run.

📤 What you get back

A real row from a recent run, one of the Albanian results for a China supply-chain query:

{
  "ok": true,
  "title": "FOKUS – Kina u bën thirrje BRICS - it dhe vendeve partnere ti mbajnë zinxhirët e furnizimit  të qëndrueshëm dhe të papenguar  – 24 ore",
  "url": "https://24-ore.com/fokus-kina-u-ben-thirrje-brics-it-dhe-vendeve-partnere-ti-mbajne-zinxhiret-e-furnizimit-te-qendrueshem-dhe-te-papenguar/",
  "domain": "24-ore.com",
  "sourceCountry": "Albania",
  "language": "Albanian",
  "publishedAt": "2026-09-13T09:15:00.000Z",
  "socialImage": null
}
FieldWhat it is
titleThe headline as GDELT indexed it, in its original language.
urlThe article on the outlet's own site. Nothing is rewritten.
domainThe outlet's domain, which is the field to group by if you want a source ranking.
sourceCountryWhere the outlet is, spelled out, not a code.
languageThe language of the article, spelled out.
publishedAtWhen GDELT first saw the article, in UTC. null on the rare row whose date does not parse.
socialImageThe article's share image, and null often. Plenty of outlets do not set one.

🧾 Reading the output

Articles carry ok: true. When a query is refused or something goes wrong you get a single row with ok: false and an errorCode instead of an empty dataset, and that row is not charged.

CodeWhat it means
BAD_INPUTGDELT refused the query. Usually it was one very short or very common word. Add a second word or quote a phrase.
NO_RESULTSThe query was fine and matched nothing. Widen the time window or drop the country filter.
RATE_LIMITEDGDELT was busy. The run already waited and tried again before writing this row. Run it again in a minute.
SERVER_ERRORGDELT answered with an error of its own.
NETWORKGDELT was unreachable or answered badly.

Worth knowing: the run still finishes green when it ends on one of those rows, and the Console's overview table has no column for ok or errorCode, so a refused query looks like one blank line there. Check ok in the JSON, or switch the view to all fields, before deciding a run failed.

▶️ How to run it

1. Open GDELT News Scraper and click Try for free. 2. Put your keywords in Search query. Quote anything that is a phrase. 3. Set Timespan to something like 3d if you only want recent coverage. 4. Set Max articles, then click Start. Give it up to a minute. 5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

💰 How much does it cost?

$2.00 per 1,000 articles. Flat on every Apify plan, no volume tiers.

You pay per article row delivered. Duplicates dropped inside the run, rows GDELT never returned, and diagnostic rows are not charged, so a query that GDELT refuses or that matches nothing costs you nothing.

💡 What people use it for

  • Following a story outside your own language. Same query, sourceLang left empty, and the spread

of countries in the results is the story.

  • Watching a brand or a person across regions, on a schedule, with timespan set to 1d.
  • Building a source list for a topic by counting domain across a few hundred rows.
  • Comparing how much coverage two countries give the same event, by running the query twice with

different sourceCountry values.

  • Feeding headlines into a summariser or a Notion database and reading the digest instead of the

feed.

🚧 What it does not do

  • Headlines and metadata only. No article body. Follow url yourself if you need the text.
  • 250 articles per query, and no paging past it. To go wider, split the job by country, by

language, or into narrower time windows and stitch the results.

  • About three months of history. Older news is not in the index to find.
  • No tone, sentiment or event scores. This reads GDELT's article search, not its other datasets.
  • Very short or very common single-word queries get refused by GDELT, not by this actor.
  • Deduplication is per run. Two scheduled runs over overlapping windows can both return the same

article, so dedupe on url your side.

  • Coverage is GDELT's. If an outlet is not in its index, no query here will find it.
  • socialImage is missing more often than it is present, and publishedAt is when GDELT saw

the article, which can be a little after the outlet published it.

🧭 Which news scraper do you need?

If you wantUse
World news by keyword, across languages and countriesThis one
Google News by keyword or topic, with the publisher's real linkGoogle News Scraper
Hacker News stories, comments and the front pageHacker News Scraper
Every post from a Substack publicationSubstack Publication Scraper

❓ Questions people ask

Do I need a GDELT API key? No. Nothing to apply for, no quota to manage.

Why did I only get 250 articles? That is GDELT's cap on a single query and there is no way past it. Narrow the query and run it more than once.

Why was my query refused? Single words that are very short or very common get rejected by GDELT itself. Quote a phrase or add a second word, and the BAD_INPUT row carries GDELT's own wording.

Can I get the full text of the articles? Not from here. You get the link, and the article is on the outlet's site.

How far back does it go? Roughly three months.

Why did my run take a minute? GDELT wants a few seconds between requests and often takes ten to fifteen seconds to answer. The run waits rather than hammering it.

Is this legal? These are public news headlines and links from a public index. Apify's write-up on scraping and the law is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the query and the run ID. The errorCode on the diagnostic row, and GDELT's own message beside it, usually name the problem.