# WHO Disease Outbreak News Monitor (`datapilot/who-disease-outbreak-news-monitor`) Actor

Monitor the latest WHO Disease Outbreak News automatically. This Apify Actor fetches official outbreak notices from the WHO API, supports keyword filtering, uses Apify Proxy, and exports structured data including titles, summaries, publication dates, and source links.

- **URL**: https://apify.com/datapilot/who-disease-outbreak-news-monitor.md
- **Developed by:** [Data Pilot](https://apify.com/datapilot) (community)
- **Categories:** Other, Social media, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 scraped results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## WHO Disease Outbreak News Monitor

🦠 **WHO Disease Outbreak** News Monitor is a powerful Apify Actor designed to discover, track, and collect official Disease Outbreak News (DON) notices directly from the World Health Organization's public API. This tool provides comprehensive **WHO Disease Outbreak** intelligence including notice titles, summaries, publication dates, and direct links. Whether you're monitoring global health security, tracking emerging outbreaks, or conducting epidemiological research, the WHO Disease Outbreak News Monitor delivers actionable **WHO Disease Outbreak** insights efficiently.

With direct WHO API integration, keyword filtering, and reliable Apify Dataset delivery, the WHO Disease Outbreak News Monitor ensures consistent **WHO Disease Outbreak** discovery straight from the source. It focuses on key **WHO Disease Outbreak** signals including notice title, summary, publication date, and official link, making it an essential tool for global health monitoring and outbreak intelligence.

***

### 📋 Table of Contents

- [Features](#-features)
- [Data Source](#-data-source)
- [How It Works](#-how-it-works)
- [Input](#-input)
- [Output](#-output)
- [Technical Stack](#-technical-stack)
- [Data Fields](#-data-fields-explained)
- [Use Cases](#-use-cases)
- [Quick Start](#-quick-start)
- [Configuration](#-configuration)
- [Performance](#-performance)
- [Billing](#-billing)
- [Important Notes](#-important-notes)
- [Changelog](#-changelog)
- [Support](#-support--feedback)
- [License & Legal](#-license--legal)

***

### 🔥 Features

- **WHO API Integration** – Direct, key-less integration with the WHO's official Disease Outbreak News API.
- **Keyword Filtering** – Filter **WHO Disease Outbreak** notices by title keyword, applied both server-side and client-side.
- **Override Title Handling** – Correctly resolves WHO's override-title logic for accurate headlines.
- **Automatic Summary Fallback** – Falls back to a cleaned overview excerpt when no summary is provided.
- **HTML-Cleaned Content** – Strips HTML tags from overview text used as a summary fallback.
- **Sorted by Recency** – Requests notices ordered by publication date, newest first.
- **Configurable Result Cap** – Limit the number of notices returned per run.
- **Direct Notice Links** – Automatically builds full URLs to each official WHO notice.
- **Residential Proxy Support** – Apify residential proxy for reliable, uninterrupted access.
- **Real-Time Dataset Push** – Pushes results to Apify Dataset immediately after extraction.
- **Detailed Logging** – Comprehensive logging of fetch progress and result counts.
- **Asyncio-Friendly** – Non-blocking async/await architecture with httpx.
- **Graceful Error Handling** – Logs clear errors for failed requests or malformed responses.

***

### 📊 Data Source

#### **WHO Disease Outbreak News (DON) API**

- **Authority**: Official World Health Organization OData API
- **Endpoint**: `www.who.int/api/news/diseaseoutbreaknews`
- **Coverage**: Official WHO Disease Outbreak News notices worldwide
- **Data**: Notice ID, title, summary/overview, publication date, direct link
- **Access**: Public, key-less OData endpoint
- **Update Frequency**: As WHO publishes new outbreak notices

***

### ⚙️ How It Works

The WHO Disease Outbreak News Monitor queries the WHO's official OData API directly, requesting notices ordered by publication date with an optional server-side title filter. Each returned notice is normalized — resolving WHO's override-title logic, extracting or falling back to a cleaned summary, and constructing a full notice URL from the relative path provided by the API. A client-side keyword check is also applied as a safeguard. Matching notices are pushed to the Apify Dataset in a single batch.

**Key Processing Steps:**

1. **Input Parsing** – Accept keyword filter and max notices to return
2. **Proxy Setup** – Configure Apify residential proxy
3. **API Query** – Request notices from the WHO DON API, sorted by recency
4. **Title Resolution** – Apply WHO's override-title logic to get the correct headline
5. **Keyword Filtering** – Match title against the keyword filter
6. **Summary Extraction** – Use the provided summary, or fall back to a cleaned overview excerpt
7. **HTML Stripping** – Clean any HTML from the overview fallback
8. **Link Construction** – Build a full URL from the notice's relative path
9. **Dataset Push** – Push matching notices in a single batch
10. **Summary Logging** – Report total notices found

**Key Benefits:**

- Stay current on **WHO Disease Outbreak** notices as they're officially published
- Monitor emerging outbreaks by disease, region, or keyword
- Build a searchable archive of official WHO outbreak communications
- Support epidemiological research and global health situational awareness
- Automate recurring outbreak monitoring runs

***

### 📥 Input

The Actor accepts the following input parameters:

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `keyword` | string | `""` | Filter **WHO Disease Outbreak** notices by keyword found in the title |
| `max_notices` | integer | `50` | Maximum number of notices to return |
| `useApifyProxy` | boolean | `true` | Enable Apify residential proxies |
| `apifyProxyGroups` | array | `["RESIDENTIAL"]` | Proxy group configuration |

**Example Input:**

```json
{
  "keyword": "cholera",
  "max_notices": 25
}
```

**Fetch All Recent Notices, No Filter:**

```json
{
  "max_notices": 50
}
```

***

### 📤 Output

The Actor pushes **WHO Disease Outbreak** records with the following structure:

| Field | Type | Description |
|-------|------|-------------|
| `notice_id` | string | Unique WHO Disease Outbreak News identifier |
| `title` | string | Resolved notice title |
| `summary` | string | Notice summary or cleaned overview excerpt |
| `link` | string | Direct URL to the official WHO notice |
| `publication_date` | string | Date and time the notice was published |
| `scraped_at` | string | ISO 8601 timestamp of when the notice was scraped |

**Example WHO Disease Outbreak Record:**

```json
{
  "notice_id": "DON512",
  "title": "Cholera – Democratic Republic of the Congo",
  "summary": "WHO is monitoring an increase in cholera cases reported across multiple provinces since early July 2026.",
  "link": "https://www.who.int/emergencies/disease-outbreak-news/item/2026-DON512",
  "publication_date": "2026-07-20T10:00:00Z",
  "scraped_at": "2026-07-29T08:00:00+00:00"
}
```

***

### 🧰 Technical Stack

- **API:** WHO Disease Outbreak News OData API
- **HTTP Client:** httpx for async HTTP requests
- **Query Building:** OData `$orderby`, `$top`, and `$filter` parameters
- **Text Cleaning:** regex for HTML tag stripping
- **Date Handling:** datetime with timezone-aware UTC timestamps
- **Async:** asyncio for non-blocking operations
- **Proxy:** Apify Proxy with `RESIDENTIAL` configuration
- **Logging:** Apify Actor logging system
- **Platform:** Apify Actor serverless environment

***

### 📊 Data Fields Explained

#### **Notice Identification**

- **notice\_id**: Unique identifier for the outbreak notice
- **title**: Resolved headline of the notice
- **link**: Direct link to the official WHO notice page

#### **Content**

- **summary**: Notice summary or fallback overview excerpt

#### **Timing**

- **publication\_date**: When WHO published the notice
- **scraped\_at**: When the Actor captured the notice

***

### 🎯 Use Cases

- **Global Health Security Monitoring** – Track **WHO Disease Outbreak** notices as they're published
- **Epidemiological Research** – Build a dataset of official outbreak communications over time
- **Travel & Risk Advisory** – Inform travel or operational risk decisions with the latest outbreak data
- **Pharma & Public Health Intelligence** – Watch for outbreaks relevant to specific diseases or regions
- **Journalism** – Source fresh, official outbreak updates for reporting
- **NGO & Humanitarian Response** – Stay alert to emerging health crises in areas of operation
- **Academic Research** – Study outbreak frequency, geography, and reporting patterns

***

### 🚀 Quick Start

#### **1. Prepare Input**

Go to Apify Console and enter:

```json
{
  "keyword": "Ebola",
  "max_notices": 20
}
```

#### **2. Run the Actor**

Click **Start**. The Actor will:

- Query the WHO Disease Outbreak News API
- Resolve titles and summaries for each notice
- Filter by keyword if provided
- Push results to the Dataset

#### **3. Monitor Progress**

Console shows:

```
Initializing WHO Disease Outbreak Monitor. Keyword filter: 'Ebola'
[WHO DON API] Fetching updates from: https://www.who.int/api/news/diseaseoutbreaknews
Done! Successfully saved 4 outbreak notices to Apify Dataset.
```

#### **4. View & Download Results**

- **Results Tab**: All **WHO Disease Outbreak** records
- **Export**: JSON, CSV, Excel, or HTML
- **API Access**: Available via the Apify API

***

### ⚙️ Configuration

No filter, most recent notices:

```json
{
  "max_notices": 50
}
```

Keyword-focused search:

```json
{
  "keyword": "measles",
  "max_notices": 15
}
```

***

### 📈 Performance

#### **Processing Speed**

- Single API request per run
- Fast in-memory title/summary resolution
- No pagination overhead — result count controlled via `$top`

#### **Resource Usage**

- Memory: Low, proportional to number of notices returned
- Network: One API request per run
- Proxy: One residential proxy session per run

***

### 💰 Billing

#### **Batch Billing**

- **Billing Model:** Batch push (not per-notice PPE)
- **Typical Cost:** Single operation per run
- **Efficiency:** Lightweight, low-resource processing

***

### ⚠️ Important Notes

#### **Legal & Compliance**

- **Fair Use**: Respects WHO's public API and rate limits
- **Official Source**: Pulls exclusively from WHO's official Disease Outbreak News API
- **Accuracy**: Data as published by WHO
- **Verification**: Always verify critical outbreak information against the original WHO notice
- **Legal**: Not medical or legal advice — consult qualified professionals for health decisions

#### **Data Quality**

- **Freshness**: Reflects the WHO API's data at time of run
- **Completeness**: Dependent on what WHO includes in the API response
- **Accuracy**: Sourced directly from WHO's official API
- **Verification**: Cross-check time-sensitive notices against the live WHO page

#### **Best Practices**

- Use `keyword` to focus on a specific disease or region
- Set `max_notices` to control run size during high-activity periods
- Re-run periodically to catch newly published outbreak notices
- Treat this as a monitoring aid, not a substitute for official WHO guidance
- No API key is required — the WHO DON API is publicly accessible

***

### 📦 Changelog

#### v1.0.0 (July 2026)

**Initial Release:**

- WHO Disease Outbreak News OData API integration
- Server-side and client-side keyword filtering
- Override-title resolution logic
- Automatic summary fallback with HTML stripping
- Configurable result cap via `$top`
- Full notice URL construction
- Apify residential proxy support
- Real-time Dataset push
- Detailed progress logging
- Asyncio + httpx async architecture

***

### 🧑‍💻 Support & Feedback

- **Issues:** Submit via Apify console with the keyword used
- **Documentation:** Check the Actor details page
- **Community:** Apify forum discussions
- **Feature Requests:** Suggest improvements
- **Bug Reports:** Include the keyword and error details

***

### 📄 License & Legal

**Terms of Use:**

- Use for legitimate health research and monitoring purposes
- Respect WHO's Terms of Service
- Don't republish full notices without permission
- Use data responsibly, and do not rely on it as a substitute for official WHO guidance

**Disclaimer:**
WHO Disease Outbreak News Monitor is provided as-is for informational and research purposes. It is not medical advice. Users are responsible for compliance with WHO's ToS and should verify critical information against official WHO sources.

***

### 🎉 Get Started Today

**Deploy now for WHO Disease Outbreak research!**

Use for:

- 📊 Global Health Monitoring
- 🔍 Outbreak Tracking
- 💡 Epidemiological Research
- 📈 Risk & Travel Advisory
- 🎯 Public Health Intelligence

**Perfect for:**

- Public Health Researchers
- NGOs & Humanitarian Organizations
- Health Journalists
- Risk & Travel Advisory Teams

***

**Last Updated:** July 2026
**Version:** 1.0.0
**Status:** Production Ready
**Platform:** Apify Actor
**Architecture:** Async/Await
**Data Source:** WHO Disease Outbreak News API

***

### 📚 Related Tools

- Clinical Guidelines & Health RSS Monitor
- Clinical Trial Aggregator
- Airport NOTAMs & Schedule Changes Monitor

***

### ⚖️ WHO Disease Outbreak Excellence

This Actor is optimized for **WHO Disease Outbreak** research with:

- ✅ Direct, key-less WHO API integration
- ✅ Accurate title resolution
- ✅ Automatic summary fallback
- ✅ Keyword filtering
- ✅ Real-time Dataset push
- ✅ Production-ready code

# Actor input Schema

## `keyword` (type: `string`):

Filter outbreaks by disease or country (e.g., cholera, dengue, Uganda). Leave empty for all.

## `max_notices` (type: `integer`):

Maximum notices to fetch from WHO API.

## `useApifyProxy` (type: `boolean`):

Recommended to ensure reliable requests to WHO API.

## `apifyProxyGroups` (type: `array`):

Select proxy networks (RESIDENTIAL is recommended).

## Actor input object example

```json
{
  "max_notices": 50,
  "useApifyProxy": true,
  "apifyProxyGroups": [
    "RESIDENTIAL"
  ]
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("datapilot/who-disease-outbreak-news-monitor").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("datapilot/who-disease-outbreak-news-monitor").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call datapilot/who-disease-outbreak-news-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=datapilot/who-disease-outbreak-news-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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