# MedlinePlus Health Conditions Scraper (`parseforge/medlineplus-conditions-scraper`) Actor

Scrapes MedlinePlus health condition pages by keyword and returns each condition as a flat row with title, URL, and full plain-English summary.

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

## Pricing

from $19.00 / 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)

### MedlinePlus Health Conditions Scraper

**Scrape MedlinePlus health conditions by keyword, up to a million per run.** Each condition comes with its title, URL, and full plain-English summary from the National Library of Medicine. No API key or registration. Export to CSV, JSON, Excel, or XML.

MedlinePlus is the National Library of Medicine's free consumer health encyclopedia, but its official API requires an API key and returns limited fields. This Actor reads the public condition pages directly, so you can search by any health condition or keyword and get the full patient summary in one fixed schema.

| Who uses it | What they scrape MedlinePlus for |
|---|---|
| Health content writers | Pull accurate, plain-English condition summaries to base articles on. |
| Medical researchers | Gather a corpus of condition descriptions for text analysis. |
| Healthcare app developers | Populate a symptom checker or patient education module with trusted content. |
| SEO analysts | Collect condition titles and summaries to find content gaps. |
| Patient advocacy groups | Build a local resource list of condition pages for their community. |

### What it does

This Actor collects MedlinePlus health condition pages by keyword and returns each one as a flat row with its title, URL, and full plain-English summary.

- 🔍 **Keyword search:** Enter any health condition or keyword, like diabetes or asthma, and get all matching topics.
- 📄 **Full summaries:** Each result includes the complete plain-English patient summary, not a snippet.
- 📊 **Flat output:** Every condition is returned as one row, ready for CSV, JSON, Excel, or XML export.
- ⚡ **No API key:** Reads public pages directly, so there is no registration or rate limit from an official API.
- 🔢 **Scalable:** Set maxItems from 1 to 1,000,000 conditions per run.

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

### What you can do with MedlinePlus data

**📝 Build a health content library.**

A health content writer searches for common conditions and exports the full summaries to create a reference database for future articles.

**🔬 Analyze condition descriptions.**

A medical researcher collects hundreds of condition summaries to run text mining and identify common terminology patterns.

**📱 Populate a patient education app.**

A developer scrapes condition pages to seed a symptom checker with trusted, plain-English explanations.

**📈 Find content gaps for SEO.**

An SEO analyst gathers condition titles and summaries to compare against their site's existing content and spot missing topics.

**🏥 Support patient advocacy.**

A patient advocacy group collects condition pages to build a curated list of resources for their community.

### Why choose this scraper

| | What you get |
|---|---|
| **Trusted source** | Content comes from the U.S. National Library of Medicine, the world's largest medical library. |
| **Plain-English summaries** | Each condition includes a patient-friendly summary written by medical experts. |
| **No API key** | No registration or key management, run the Actor. |
| **Flexible export** | Download results as CSV, JSON, Excel, or XML for any workflow. |

### How it compares

This Actor focuses on full plain-English summaries by keyword, while the competitors below offer different lookup methods or additional metadata.

| Feature | ParseForge | MedlinePlus Health Topics - NLM Consumer Health API | MedlinePlus Scraper |
|---|---|---|---|
| Full plain-English patient summary | Yes | Yes | Not listed |
| Search by health condition keyword | Yes | Yes | Yes |
| No API key required | Yes | Not listed | Not listed |
| Look up by ICD-10 code | Not listed | Not listed | Yes |
| Look up by RxCUI drug code | Not listed | Not listed | Yes |
| Look up by LOINC lab code | Not listed | Not listed | Yes |
| Returns synonyms and MeSH terms | Not listed | Yes | Not listed |

### Configure the run

Drive the Actor with a health condition or keyword, and set the maximum number of conditions to collect per run. The Input tab lists every parameter.

A first run with the defaults:

```json
{
 "query": "diabetes",
 "maxItems": 10
}
```

A larger pull:

```json
{
 "query": "diabetes",
 "maxItems": 200
}
```

### Pricing

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

| Results collected | Approximate cost |
|---|---|
| 100 results | $2.10 |
| 1,000 results | $21.00 |
| 10,000 results | $210.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 [MedlinePlus Health Conditions Scraper](https://apify.com/parseforge/medlineplus-conditions-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 MedlinePlus 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/medlineplus-conditions-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check that your query is spelled correctly and is a valid health condition or keyword. Try a broader term like 'diabetes' or 'asthma'.

**Why did the run stop before reaching maxItems?**

The Actor stops when there are no more matching conditions for your query. Try a different or more general keyword.

**Why is the summary text truncated?**

The Actor returns the full summary as it appears on the MedlinePlus page. If a summary is very long, it may be split across multiple fields in the output.

**Can I get data in a language other than English?**

MedlinePlus also has a Spanish version. You can search for Spanish condition names, but the Actor currently returns the English page content.

**Why does the run take a long time?**

The Actor reads each condition page individually. For large maxItems values, the run may take longer. Consider reducing maxItems or running in parallel.

### FAQ

| Question | Answer |
|---|---|
| Do I need an API key to use this Actor? | No. This Actor reads the public MedlinePlus pages directly, so there is no API key or registration required. |
| What data does this Actor return for each condition? | Each result includes the condition title, its URL, and the full plain-English patient summary from MedlinePlus. |
| Can I search for any health condition? | Yes. Enter any health condition or keyword, such as diabetes, asthma, or hypertension, and the Actor will return matching topics. |
| How many conditions can I collect in one run? | You can set maxItems from 1 to 1,000,000 conditions per run. |
| Is the content from a trusted source? | Yes. MedlinePlus is produced by the U.S. National Library of Medicine, the world's largest medical library. |
| What export formats are supported? | You can export the results as CSV, JSON, Excel, or XML. |
| Does this Actor return the full summary or a snippet? | It returns the full plain-English patient summary for each condition, not a snippet. |
| Can I use this data for commercial purposes? | MedlinePlus content is in the public domain, but you should review the NLM's terms of use for any specific requirements. |
| How is this different from the official MedlinePlus API? | The official API requires an API key and returns limited fields. This Actor reads the public pages directly and returns the full summary without a key. |
| Can I schedule this Actor to run regularly? | Yes. You can schedule runs on Apify to collect updated condition data at your preferred interval. |

### 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 U.S. National Library of Medicine. 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

## `query` (type: `string`):

Search term to look up health topics (e.g. diabetes, asthma).

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

How many health conditions to collect per run.

## Actor input object example

```json
{
  "query": "diabetes",
  "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 = {
    "query": "diabetes",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/medlineplus-conditions-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 = {
    "query": "diabetes",
    "maxItems": 10,
}

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/medlineplus-conditions-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/Dm0lbOAwvmmUXpoVU/builds/ujVOL3wfcnIxJ4h61/openapi.json
