# News API - Global Events, Breaking News, Entities (NewsAPI.ai) (`nabeelbaghoor/global-news-events-api`) Actor

Search global news articles and events from the Event Registry API (NewsAPI.ai) into a dataset: keyword and entity search, event clusters, breaking events, minute streams, article details, sentiment, concepts and categories. Lookup concept and source URIs. Read only. Bring your own NewsAPI.ai key.

- **URL**: https://apify.com/nabeelbaghoor/global-news-events-api.md
- **Developed by:** [Nabeel Hassan](https://apify.com/nabeelbaghoor) (community)
- **Categories:** News, Business, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 news article returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## News API - Global Events, Breaking News, Entities (NewsAPI.ai)

Search global news articles and the events they describe through the Event Registry API (NewsAPI.ai), and get the results as a dataset, a spreadsheet or a warehouse feed. Uses your own NewsAPI.ai API key, reads only, and charges only for rows that carry data.

### What it collects

- **Article search**: news articles, press releases and blog posts from sources worldwide, in many languages, with title, body (full or trimmed), URL, source, authors, language, publish time, sentiment, the event the article belongs to, and the concepts (people, organisations, places, topics) and categories found in it.
- **Event search**: events, which are clusters of articles from many sources about one real-world happening, with title and summary, event date, total and per-language article counts, sentiment, location, concepts and categories.
- **Breaking events**: the events whose coverage is spiking right now, with their breaking score.
- **Event details and articles about an event**: read an event by URI, or every article reported about it, filtered by language.
- **Article details**: read up to 100 articles a request by URI.
- **Newest articles and newest events streams**: everything added or updated in the last minutes (up to 4 hours), with the same filters, for near real time monitoring.
- **Lookup**: turn names into the concept, category, source, author and location URIs the searches take.
- Filters: keywords (phrase, Boolean or relevance search, in title or body), concepts, categories, sources, source locations, source groups, authors, event locations, languages, dates, sentiment range, source rank percentile, duplicates, content type and event size.
- Read only, pay per result, bring your own key.

### How to use it

1. Get a NewsAPI.ai API key from your NewsAPI.ai dashboard, on a plan that covers what you need. The free tier is for evaluation only and covers the last 30 days; commercial use and the archive need a paid plan.
2. Paste the key into the **API key** field (stored as a secret), or set the `DATA_API_KEY` environment secret on the actor.
3. Pick **What to read**, set your conditions, and start the run. To filter by an entity, run the **Lookup** mode first (for example Tesla, concepts) and copy the URI it returns into **Concept URIs**.

A run without a key ends cleanly with a message asking for one, before any request is sent.

### Input

| Field | What it does |
| --- | --- |
| What to read | Article search (default), event search, breaking events, event details, articles about an event, article details, newest articles stream, newest events stream, or lookup. |
| Keywords, Keyword match, Keyword location, Keyword search mode | Words or phrases, all or any, in body or title, as phrases, Boolean queries or a relevance search. |
| Concept URIs, Concept match | Entities and topics as Wikipedia URIs, all or any. |
| Category URIs, Category match | Categories such as news/Business. |
| Sources, Source locations, Source groups, Author URIs, Locations | Who published, where they are based, who wrote it, where it happened. |
| Languages | ISO 639-3 codes such as eng or deu, up to 5. |
| Keywords to exclude, Sources to exclude | Negative conditions for article and event search. |
| Start date, End date, Recent data window | Date range, or limit the search to the last 7 or 31 days to save tokens. |
| Article sort order, Event sort order, Sort ascending | Date, relevance, source importance or rank; event date, relevance or size. |
| Content types, Duplicates, Articles with or without an event, Source rank percentiles | Article filters. |
| Minimum and maximum sentiment | From -1 to 1 (English only). |
| Minimum and maximum articles per event | Event size filters. |
| Minimum breaking score | Breaking events threshold. |
| Minutes back | Stream window, up to 240 minutes. |
| Event URIs, Include duplicate articles, Article URIs | Reads by URI. |
| Lookup type, Lookup terms | What to look up and the names to look up. |
| Article body length, Include concepts, categories, location, social score, Event image count | How much detail each row carries. |
| Maximum results | Row cap for the whole run. |
| Requests per minute | Pacing. |
| API key | Your NewsAPI.ai API key, as a secret. |

### Access and limits on the provider side

- Each search request uses tokens from your NewsAPI.ai plan, whatever the number of results; searches over older data use more. The actor reports the tokens the provider says it used at the end of the run. Use the recent data window to keep searches cheap.
- Searches return up to 100 articles or 50 events a page and the actor follows the pages until your maximum; the streams return up to 2000 items in one request.
- A refused key, a spent token balance or a disabled account ends the run cleanly with a message saying which it was.
- A request that matches nothing returns one free row with `found` set to false and a note, so you can tell an empty result from a failed one.
- Terms: the NewsAPI.ai terms of service govern the data. Free access is for testing only, with no commercial use. A paid plan grants a non-transferable licence for your own use; the terms forbid sharing, selling, sublicensing or redistributing the data, republishing article content without the rights from the original publisher, and building a competing news aggregation or event detection service. Article text belongs to the publishers, so keep the full body for your own analysis or set a short body length. This actor does not change those terms.

### FAQ

#### What is the Event Registry API?

Event Registry, sold as NewsAPI.ai, is a news intelligence service based in Ljubljana, Slovenia. It collects articles from news sources worldwide, groups them into events, and tags them with concepts, categories, sentiment and locations. Its API at eventregistry.org serves article and event search, event and article details, breaking events and minute streams, documented at newsapi.ai/documentation. This actor wraps those read routes. The docs, the official Python SDK and the live host were checked on 2026-10-07.

#### What is the difference between an article and an event?

An article is one story from one source. An event is a cluster of articles, often in several languages and from hundreds of sources, about the same real-world happening, with its own title, summary, date and article count. Event search is the quickest way to see what happened; article search gives you the individual stories.

#### How do I track news about a company or person?

Run the lookup mode with the name and lookup type concepts, copy the URI (for example http://en.wikipedia.org/wiki/Tesla,\_Inc.), then run article search or event search with that URI in Concept URIs. Concept search matches the entity itself, not just the word, so it skips unrelated mentions.

#### How do I monitor news in near real time?

Schedule the newest articles stream or newest events stream every few minutes with the same filters and set minutes back to cover the gap between runs. Each run returns what was added in that window.

#### Do I need a NewsAPI.ai account?

Yes. This actor is bring-your-own-key and never ships one. Use the API key from your NewsAPI.ai dashboard. A missing or refused key ends the run cleanly with a message saying which it was.

#### Is my key safe?

The key is sent in the body of each request as the apiKey field the provider documents, never in a URL, is never logged, and is stripped from any error text.

#### How is it priced?

Pay per result: a low price per lookup candidate, more per article, and the most per event, since one event row summarises many articles. Requests that find nothing are free. Your NewsAPI.ai plan and its tokens apply separately.

### Example output

```json
{
  "mode": "events",
  "modeLabel": "Event search",
  "recordType": "event",
  "identifier": null,
  "found": true,
  "uri": "eng-2940883",
  "title": "White House says Obama will make 5th visit to Germany, take in trade show",
  "date": "2016-04-24",
  "source": null,
  "lang": "deu",
  "sentiment": -0.2,
  "articleCount": 100,
  "url": null,
  "titles": {
    "deu": "Obama kommt zur Eroeffnung der Hannover Messe",
    "eng": "White House says Obama will make 5th visit to Germany, take in trade show"
  },
  "summary": "The White House says President Barack Obama will travel to Germany in late April to attend the world's largest trade show for industrial technology.",
  "eventDate": "2016-04-24",
  "totalArticleCount": 100,
  "articleCounts": { "deu": 82, "eng": 18 },
  "socialScore": 91.4,
  "conceptLabels": ["Barack Obama", "Germany", "Hanover Fair"],
  "categoryLabels": ["news/Politics"],
  "locationLabel": "Hanover",
  "retrievedAt": "2026-10-07T09:14:52.118Z",
  "note": null
}
```

Values are illustrative and follow the provider's documented event data model. Article rows carry `uri`, `title`, `body`, `url`, `source`, `authorNames`, `lang`, `dateTimePub`, `sentiment`, `eventUri`, `conceptLabels` and `categoryLabels`; lookup rows carry `uri`, `title` and `lookupType`.

### Keyword map

news API, global news API, news events API, breaking news API, real time news feed, news monitoring, media monitoring data, entity news search, company news tracking, news sentiment API, event detection data, multilingual news search, press release search, blog search, news clustering, Event Registry API, NewsAPI.ai export.

# Actor input Schema

## `mode` (type: `string`):

Article search and event search find news by keywords, concepts, categories, sources, locations, languages and dates. Breaking events lists what is spiking right now. Event details and articles about an event read events by URI. Article details reads articles by URI. The two streams return what was added in the last minutes. The lookup turns names into the URIs the searches take.

## `keywords` (type: `array`):

Article search, event search and the streams. Words or phrases to find, one per line, at most 60.

## `keywordMatch` (type: `string`):

With several keywords: all must appear (and) or any may appear (or).

## `keywordLocation` (type: `string`):

Search the keywords in the body, the title, or both.

## `keywordSearchMode` (type: `string`):

Phrase matches each keyword as an exact phrase. Exact reads the Boolean query language (AND, OR, NOT, NEAR, NEXT). Simple is a relevance search that does not need every term.

## `conceptUris` (type: `array`):

Entities and topics the news must be about, as Wikipedia URIs such as http://en.wikipedia.org/wiki/Tesla,\_Inc., one per line, at most 50. Find URIs with the lookup mode.

## `conceptMatch` (type: `string`):

With several concepts: all must be present (and) or any (or).

## `categoryUris` (type: `array`):

Categories such as news/Business or dmoz/Business/Accounting, one per line, at most 20.

## `categoryMatch` (type: `string`):

With several categories: any may match (or) or all must (and).

## `sourceUris` (type: `array`):

News source domains such as bbc.co.uk or reuters.com, one per line.

## `sourceLocationUris` (type: `array`):

Only sources based in these places, as location URIs such as http://en.wikipedia.org/wiki/Germany.

## `sourceGroupUris` (type: `array`):

Predefined groups of sources such as general/ERtop10.

## `authorUris` (type: `array`):

Authors such as john_doe@techcrunch.com. Find URIs with the lookup mode.

## `locationUris` (type: `array`):

Where the news happened, as location URIs such as http://en.wikipedia.org/wiki/United_States.

## `languages` (type: `array`):

ISO 639-3 codes such as eng, deu, spa or fra, at most 5. Also filters the articles about an event.

## `ignoreKeywords` (type: `array`):

Article and event search. Drop results that mention any of these.

## `ignoreSourceUris` (type: `array`):

Article and event search. Drop results from these source domains.

## `startDate` (type: `string`):

Article and event search. On or after this date, as YYYY-MM-DD. For events this is the event date, which can differ from when articles were published.

## `endDate` (type: `string`):

Article and event search. On or before this date, as YYYY-MM-DD.

## `recentDataWindow` (type: `string`):

Article and event search. Search only the last 7 or 31 days, which uses the fewest tokens. Leave empty to search the archive too (your plan decides how far back).

## `articleSort` (type: `string`):

Article search. Newest first, relevance, or source importance and rank.

## `eventSort` (type: `string`):

Event search. By event date, relevance, or size (number of articles).

## `sortAscending` (type: `boolean`):

Article and event search. Oldest or smallest first instead of newest or largest first.

## `dataTypes` (type: `array`):

Article search and the article stream. News (the default), press releases, blogs.

## `minSentiment` (type: `number`):

Article search, event search and the article stream. From -1 (very negative) to 1 (very positive). Setting it limits results to English, the only language with sentiment.

## `maxSentiment` (type: `number`):

From -1 to 1. Same modes as the minimum.

## `duplicateFilter` (type: `string`):

Article search and the article stream. Keep all, skip duplicates, or keep only duplicates (copies of an article on other sources).

## `eventFilter` (type: `string`):

Article search and the article stream. Keep all, only articles assigned to an event, or only articles without one.

## `sourceRankStart` (type: `integer`):

Article search and the article stream. 0 to 90 in steps of 10; 0 is the top ranked sources.

## `sourceRankEnd` (type: `integer`):

10 to 100 in steps of 10. For example 0 to 30 keeps the top 30 percent of sources.

## `minArticlesInEvent` (type: `integer`):

Event search and the event stream. Only events reported in at least this many articles.

## `maxArticlesInEvent` (type: `integer`):

Event search and the event stream. Only events reported in at most this many articles.

## `minBreakingScore` (type: `number`):

Breaking events. How strongly an event must be breaking to be listed; the provider default is 0.2.

## `streamMinutesBack` (type: `integer`):

The two streams. Return what was added in this many minutes, up to 240 (4 hours).

## `eventUris` (type: `array`):

Event details and articles about an event. Event URIs such as eng-2940883, one per line, from the uri column of an event search.

## `includeDuplicates` (type: `boolean`):

Articles about an event. Also return copies of articles republished by other sources.

## `articleUris` (type: `array`):

Article details. Article URIs from the uri column of an article search, one per line; read 100 to a request.

## `lookupType` (type: `string`):

Lookup. What to look up: concepts (people, organisations, places, topics), categories, news sources, authors or locations.

## `lookupTerms` (type: `array`):

Lookup. Names or partial names such as Tesla, bbc or Germany, one per line. Each returns its candidates with their URIs.

## `articleBodyLength` (type: `integer`):

Article modes. Characters of article body to return: -1 for the full body, 0 for none. Full article text is third-party content; check your rights before republishing it.

## `includeConcepts` (type: `boolean`):

Return the people, organisations, places and topics found in each article or event.

## `includeCategories` (type: `boolean`):

Return the categories of each article or event.

## `includeLocation` (type: `boolean`):

Return the location each article or event is about.

## `includeSocialScore` (type: `boolean`):

Return social media share counts or the social score.

## `eventImageCount` (type: `integer`):

Event modes. How many image URLs to return per event, 0 for none.

## `maxResults` (type: `integer`):

The most rows this run returns and charges for. Searches read 100 articles or 50 events a page; the streams return up to 2000 in one request.

## `requestsPerMinute` (type: `integer`):

Pacing. The provider allows a few simultaneous requests; the actor sends one at a time and retries when it answers 429.

## `apiKey` (type: `string`):

Your own NewsAPI.ai API key, shown on your NewsAPI.ai dashboard. Stored as a secret and sent as the apiKey field of each request body; it is never logged. You can instead set the DATA_API_KEY environment secret.

## Actor input object example

```json
{
  "mode": "articles",
  "keywords": [
    "artificial intelligence"
  ],
  "keywordMatch": "and",
  "keywordLocation": "body",
  "keywordSearchMode": "phrase",
  "conceptMatch": "and",
  "categoryMatch": "or",
  "articleSort": "date",
  "eventSort": "date",
  "duplicateFilter": "keepAll",
  "eventFilter": "keepAll",
  "minBreakingScore": 0.2,
  "streamMinutesBack": 10,
  "lookupType": "concepts",
  "articleBodyLength": -1,
  "includeConcepts": true,
  "includeCategories": true,
  "maxResults": 200,
  "requestsPerMinute": 60
}
```

# Actor output Schema

## `records` (type: `string`):

One row per article, event or lookup candidate.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "artificial intelligence"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("nabeelbaghoor/global-news-events-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "keywords": ["artificial intelligence"] }

# Run the Actor and wait for it to finish
run = client.actor("nabeelbaghoor/global-news-events-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "artificial intelligence"
  ]
}' |
apify call nabeelbaghoor/global-news-events-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nabeelbaghoor/global-news-events-api"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Dpax9Ef5rgy5cTFlV/builds/LahIimd8UwMPI1dpy/openapi.json
