GDELT News Scraper
parseforge/gdelt-news-scraper
News & mediaAutomationOther
Search the GDELT global news database by keyword and get matching articles with title, URL, source domain, publication date, and emotional tone score. Sort by date or tone, collect up to a million articles per run.
- Total users
- 2
- Monthly active
- 1
- Total runs
- 46
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 9 days ago
Overview
GDELT News Scraper
Scrape global news articles from GDELT by keyword, up to a million per run. Every article comes with its URL, domain, source country, language, and publish date. No API key or login. Export to CSV, JSON, Excel, or XML.
GDELT monitors news in over 100 languages from every country, but its raw API is built for researchers, not for quick exports. This Actor searches the public GDELT 2.0 index for any keyword or phrase, sorts the results by date or tone, and returns each matching article as a flat row you can open in a spreadsheet.
| Who uses it | What they scrape GDELT for |
|---|---|
| Market researchers | Track how a product or topic is covered across different countries and languages |
| Journalists | Find recent articles from around the world on a breaking story |
| PR agencies | Monitor global media mentions of a client or campaign |
| Data analysts | Build a dataset of news articles for trend analysis or NLP |
What it does
This Actor collects global news articles from GDELT by keyword and returns each one as a flat row with its URL, domain, source country, language, and publish date.
- ๐ Keyword search: Enter any term or phrase, including GDELT query operators, to find matching articles.
- ๐ Date sorting: Order results by newest first or oldest first to focus on recent coverage or historical context.
- ๐ญ Tone sorting: Sort by most positive or most negative tone to find articles with strong sentiment.
- ๐ Flat output: Each article is returned as a single row, ready for CSV, JSON, Excel, or XML export.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with GDELT data
๐ Track topics and trends.
A market researcher runs the Actor daily with a product keyword, sorts by newest first, and exports the results to spot emerging themes in global coverage.
๐ Monitor worldwide media mentions.
A PR agency searches for a client's name, collects articles from every country, and uses the source country and language fields to build a coverage report.
๐ฐ Build a news dataset for analysis.
A data analyst scrapes thousands of articles on a topic, exports them as CSV, and feeds the text into a sentiment analysis or topic modeling pipeline.
๐ Find articles with strong sentiment.
A journalist sorts results by most negative tone to quickly locate critical coverage of a policy or event.
Why choose this scraper
| What you get | |
|---|---|
| No API key | Uses the public GDELT 2.0 index, so you can start scraping immediately without registration. |
| Global coverage | Searches news from over 100 languages and every country, all in one query. |
| Flexible sorting | Order results by date or tone to get the most relevant articles first. |
| Scalable | Collect up to 1,000,000 articles per run for large-scale analysis. |
How it compares
This Actor focuses on a simple keyword search with flexible sorting, while other GDELT scrapers offer additional filters or output fields.
| Feature | ParseForge | GDELT Global News Article Scraper | GDELT News Scraper - Articles, Timeline & Images | GDELT News Scraper - Worldwide Coverage, No API Key |
|---|---|---|---|---|
| Keyword search | Yes | Yes | Yes | Yes |
| Sort by date | Yes | Not listed | Not listed | Not listed |
| Sort by tone | Yes | Not listed | Not listed | Not listed |
| Language filter | Not listed | Yes | Yes | Not listed |
| Country filter | Not listed | Yes | Yes | Not listed |
| Time window filter | Not listed | Yes | Not listed | Not listed |
| Returns images | Not listed | Not listed | Yes | Yes |
Configure the run
Drive the Actor with a single search query, then set the sort order and the maximum number of articles to collect per run. The Input tab lists every parameter.
A first run with the defaults:
{
"searchQuery": "artificial intelligence",
"maxItems": 10
}
A larger pull:
{
"searchQuery": "artificial intelligence",
"maxItems": 200
}
Pricing
Pay-per-result: $0.0075 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.75 |
| 1,000 results | $7.50 |
| 10,000 results | $75.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the GDELT News Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to GDELT through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/gdelt-news-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check your search query. GDELT may not have any articles matching that exact term in the selected time period. Try a broader keyword or remove any special operators.
Why are some articles missing the language or country?
GDELT does not always have complete metadata for every article. If the language or source country is not available in the index, the field will be empty.
The run is taking too long.
Lower the maximum articles input. The Actor stops as soon as it reaches that number, so a smaller limit will finish faster.
Can I get the full text of the articles?
This Actor only returns metadata. To get the full text, you can use the article URLs as input to a web scraper like Apify's Web Scraper.
Why did I get fewer articles than my maximum?
GDELT may not have more matching articles for your query. Try a broader search term or remove filters.
FAQ
| Question | Answer |
|---|---|
| Do I need a GDELT API key? | No. This Actor uses the public GDELT 2.0 index, which does not require an API key or login. |
| What is the maximum number of articles I can get? | You can set the maximum articles input up to 1,000,000 per run. The Actor will stop once it reaches that number or runs out of matching articles. |
| Can I search for an exact phrase? | Yes. Put the phrase in double quotes, for example "electric vehicles", and GDELT will match the exact phrase. |
| What does the tone sort do? | GDELT assigns each article a tone score from -100 (very negative) to +100 (very positive). Sorting by tone lets you see the most positive or most negative articles first. |
| Which languages and countries are covered? | GDELT monitors news in over 100 languages from virtually every country. The Actor returns the language and source country for each article when available. |
| Can I use GDELT query operators? | Yes. The search query input supports GDELT's query syntax, so you can use operators like AND, OR, and parentheses to refine your search. |
| What format is the output? | The Actor returns a flat dataset that you can export as CSV, JSON, Excel, or XML from the Apify platform. |
| How much does it cost? | You pay only for the compute resources the Actor uses. There is no per-article fee, and empty runs cost almost nothing. |
| Can I schedule this Actor to run regularly? | Yes. You can set up a schedule in Apify to run the Actor daily, hourly, or at any interval, and it will collect new articles each time. |
| Does this Actor return the full article text? | No. It returns the article metadata: URL, domain, source country, language, and publish date. To get the full text, you would need to scrape the article URLs separately. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by GDELT Project. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| searchQuery required | string | Required. The keyword or phrase to search for across global news (for example artificial intelligence, climate change, "electric vehicles"). Supports GDELT query operators. | artificial intelligence |
| sort | string (4 options) | How to order the matching articles. | DateDesc |
| maxItems | integer | Maximum number of news articles to collect per run. | 10 |
Pricing
from $6.79 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.00679 to $0.0075 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~gdelt-news-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
