# disease.sh Global Health Data Scraper (`parseforge/diseasesh-health-scraper`) Actor

Scrapes global health data from disease.sh for every country. Returns flat rows with cases, deaths, recovered, active, tests, population, and per-million rates. Filter by continent or search term, sort by metric, and export to CSV, JSON, Excel, or XML.

- **URL**: https://apify.com/parseforge/diseasesh-health-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Education, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.52 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### disease.sh Global Health Data Scraper

**Scrape global health data for every country from disease.sh, with cases, deaths, tests, and population, up to a million records per run.** Filter by continent or search term, sort by any metric, and export to CSV, JSON, Excel, or XML. No API key required.

disease.sh aggregates COVID-19 and other health metrics from official sources, but its API returns nested JSON that is hard to analyze. This Actor flattens every country into one row with total cases, deaths, recovered, active, tests, population, and per-million rates. Filter by continent or search term, sort by any metric, and export clean data for dashboards, research, or reporting.

| Who uses it | What they scrape disease.sh for |
|---|---|
| Epidemiologists | Compare disease spread across countries and continents |
| Data journalists | Get current health statistics for news stories and visualizations |
| Public health researchers | Build datasets for analysis of testing rates and mortality |
| App developers | Populate health dashboards with up-to-date country metrics |

### What it does

This Actor collects global health data for countries from disease.sh and returns each country as a flat row with cases, deaths, recovered, active, tests, population, and per-million rates.

- 🌍 **Continent filter:** restrict results to Africa, Asia, Europe, North America, South America, or Australia/Oceania.
- 🔎 **Search term:** return only countries whose name contains your text, like united or korea.
- 📊 **Sort by metric:** order countries by cases, deaths, recovered, active, tests, population, or per-million rates.
- 📦 **Bulk export:** collect up to 1,000,000 records per run and download as CSV, JSON, Excel, or XML.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with disease.sh data

**📈 Track global outbreaks.**

A health analyst runs the Actor daily with no filters to get the latest cases and deaths for every country, then feeds the CSV into a dashboard to monitor trends.

**🌍 Compare continents.**

A researcher sets the continent filter to Europe and sorts by deaths per million to identify which countries are most affected and investigate their policies.

**🔎 Focus on specific countries.**

A journalist uses the search term isle to pull data for Ireland and Iceland, then exports the rows to create a comparative chart for an article.

**📊 Build a testing dataset.**

A data scientist collects all countries sorted by tests per million to analyze testing capacity and its correlation with case detection.

### Why choose this scraper

|  | What you get |
|---|---|
| **Flat country rows** | Each country becomes one record with all metrics, ready for spreadsheets or databases. |
| **Flexible filtering** | Narrow to a continent or search by country name to get only the data you need. |
| **Sortable output** | Order countries by cases, deaths, tests, or per-million rates to spot leaders quickly. |
| **No API key** | The Actor calls the public disease.sh endpoint directly, so you can start scraping immediately. |

### How it compares

No other Store actor targets disease.sh the same way, so the honest comparison is with the alternatives teams actually weigh.

| | disease.sh Global Health Data Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When disease.sh changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### Configure the run

Drive the Actor with an optional continent, a search term, and a sort metric, and set a maximum record count to control the output size. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "maxItems": 10
}
```

A larger pull:

```json
{
  "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.005 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $0.50 |
| 1,000 results | $5.00 |
| 10,000 results | $50.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](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [disease.sh Global Health Data Scraper](https://apify.com/parseforge/diseasesh-health-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to disease.sh through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/diseasesh-health-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 term and continent filter. If you set a search term that matches no country, or a continent with no countries, the output will be empty. Clear the filters and run again.

**Why are some countries missing?**

disease.sh may not have data for every country, especially small territories. Also, your continent filter or search term may exclude them. Try removing filters to see all available countries.

**The run fails with an error.**

Ensure your maxItems is between 1 and 1,000,000. If the error persists, check the Apify log for details and retry. The disease.sh endpoint may be temporarily unavailable.

**The output has unexpected values.**

Some metrics may be zero or null if the country has not reported them. Verify the data against the disease.sh website or official sources.

### FAQ

| Question | Answer |
|---|---|
| What data does disease.sh provide? | disease.sh aggregates health metrics from official sources like WHO and national health ministries. This Actor returns total cases, deaths, recovered, active, tests, population, and per-million rates for each country. |
| Do I need an API key? | No, the Actor uses the public disease.sh endpoint without authentication. You can run it immediately after adding it to your Apify account. |
| Can I filter by continent? | Yes, use the continent input to select Africa, Asia, Europe, North America, South America, or Australia/Oceania. Leave it as All Continents for the whole world. |
| How do I search for specific countries? | Enter a search term in the input, and the Actor returns only countries whose name contains that text, case-insensitive. For example, united returns the United States and the United Kingdom. |
| Can I sort the results? | Yes, choose a sort metric from the input: cases, deaths, recovered, active, tests, population, cases per million, or deaths per million. Results are ordered highest first. |
| What is the maximum number of records? | You can set maxItems up to 1,000,000, but there are fewer than 250 countries, so the Actor will return all matching records. The limit is for safety and future expansion. |
| What formats can I export? | The Actor outputs data in CSV, JSON, Excel, and XML. You can download the dataset from the Apify run page or use the API to fetch it programmatically. |
| How often is the data updated? | disease.sh updates its data regularly, often daily. Each run of this Actor fetches the latest available data from the source. |
| Can I get historical data? | This Actor returns current snapshot data only. For historical time series, you would need to use the disease.sh API directly or another tool. |
| Is the data reliable? | disease.sh aggregates from official sources, but accuracy depends on reporting by each country. Always verify critical data with primary sources. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) 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 disease.sh. 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.

# Actor input Schema

## `continent` (type: `string`):

Optional. Only return countries on this continent. Leave as All for the whole world.

## `search` (type: `string`):

Optional. Only return countries whose name contains this text (case-insensitive), e.g. united, korea, isle.

## `sortBy` (type: `string`):

Order countries by this metric, highest first.

## `maxItems` (type: `integer`):

How many records to collect per run.

## Actor input object example

```json
{
  "continent": "",
  "sortBy": "cases",
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "search": "",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/diseasesh-health-scraper").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 = {
    "search": "",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/diseasesh-health-scraper").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 '{
  "search": "",
  "maxItems": 10
}' |
apify call parseforge/diseasesh-health-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/diseasesh-health-scraper"
        }
    }
}

```

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/ivAd7mqYjEUyUZpy6/builds/b9zOodugmadct4K11/openapi.json
