# WebMD Keyword Search - Full Article Detail Results (`ryyos/webmd-keyword-search-scraper`) Actor

\[$1/1000] Search WebMD by keyword and get every matching News article or Blog post back in full - real Solr-backed search results, fully enriched with body text, author, and images, not just a headline.

- **URL**: https://apify.com/ryyos/webmd-keyword-search-scraper.md
- **Developed by:** [Rio Dwi Saputra](https://apify.com/ryyos) (community)
- **Categories:** News, AI, Developer tools
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.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.

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

### What does WebMD Keyword Search Scraper do?

**WebMD Keyword Search Scraper** searches [WebMD](https://www.webmd.com/) by any keyword or
phrase and returns real, ranked search results straight from WebMD's own Solr-backed search
engine - the same results you'd see typing into the search box yourself. Every result that
points to a WebMD **News article** or **Blog post** is automatically opened and enriched with
the **full article body**, author, medical reviewer, publish date, and hero image, not just a
title and snippet. Results pointing elsewhere on WebMD (Conditions/Drugs reference pages, Q\&A,
etc) are still returned with their title, description, and URL. Run it on the [Apify
platform](https://apify.com) for instant API access, scheduling, and integrations - no manual
searching, no copy-pasting results by hand.

### Why use WebMD Keyword Search Scraper?

- **Health content monitoring** - track what WebMD publishes about a drug, condition, or
  symptom over time.
- **Competitive/market research** - see how WebMD covers a topic compared to other health
  publishers.
- **Content aggregation** - pull structured, full-text health articles into your own app or
  dataset instead of screen-scraping search results by hand.
- **SEO and content gap analysis** - see exactly which WebMD pages rank for a given health
  keyword.

### How to use WebMD Keyword Search Scraper

1. Click **Try for free** (or **Run**) on this Actor's page.
2. Enter your search **query** (e.g. `diabetes`, `migraine treatment`, `covid symptoms`).
3. Optionally adjust **Max results**.
4. Click **Start** and wait for the run to finish.
5. Open the **Output** tab to view results as a table, or download as JSON, CSV, Excel, or
   HTML from the Dataset tab.

### Input

| Field | Type | Description |
|---|---|---|
| `query` | String (required) | Keyword or phrase to search for, e.g. `"diabetes"`. |
| `maxResults` | Integer (default 30) | Maximum number of results to return. WebMD returns 10 per page internally, so this is rounded up to the nearest page. |
| `proxyConfiguration` | Object | Optional Apify Proxy settings. Left off by default - WebMD has no anti-bot wall, so a proxy isn't required. |

### Output

Every dataset item is one search result:

```json
{
  "query": "measles outbreak",
  "resultId": "wbmd_news_...",
  "title": "Spring Measles Outbreak: Is It Safe to Travel to Florida?",
  "snippet": "Each spring, around 30 million people descend on Florida's beaches...",
  "url": "https://www.webmd.com/children/news/20240320/cm/spring-measles-outbreak-is-it-safe-to-travel-to-florida",
  "contentType": "News Article",
  "publication": "WebMD Health News",
  "isFullyEnriched": true,
  "author": "WebMD Editorial Contributors",
  "publishedDate": "2024-03-20",
  "heroImageUrl": "https://img.lb.wbmdstatic.com/vim/live/webmd/.../1800x1200_beachwear.jpg",
  "bodyText": "March 20, 2024 -- Each spring, around 30 million people descend on Florida's beaches...",
  "bodyHtml": "<div>...</div>",
  "sources": ["SOURCE: WebMD Health News archive"],
  "scrapedAt": "2026-08-18T00:00:00.000000+00:00"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Data table

| Field | Description |
|---|---|
| `query` | The search term this result matched. |
| `title` / `snippet` | Result title and short description as shown in WebMD search. |
| `url` | Canonical URL of the result. |
| `contentType` | WebMD's own classification (News Article, Blog Post, Page, Question, ...). |
| `isFullyEnriched` | `true` only for News articles and Blog posts, where the full body was fetched. |
| `author`, `medicalReviewer`, `publishedDate` | Byline info (News/Blog results only). |
| `heroImageUrl` | Main article image, direct download link. |
| `bodyText` / `bodyHtml` | Full article text, plain and HTML (News/Blog results only). |
| `sources` | Cited sources listed at the bottom of the article, when present. |

### Pricing / Cost estimation

How much does it cost to scrape WebMD search results? This Actor is priced at **$4 per 1,000
results** on the Pay-per-result model - a typical run covering a handful of queries costs
cents. There's no per-page compute-unit guessing: you pay per result returned.

### Tips or Advanced options

- Broad topic queries (e.g. `"diabetes"`) tend to surface WebMD's evergreen Conditions/Drugs
  reference pages first (`isFullyEnriched: false`) - use a more specific, news-shaped query
  (e.g. `"diabetes drug recall"`) to surface enrichable News articles instead.
- Pair this Actor with the companion **WebMD News & Blogs Scraper** to crawl WebMD's entire
  News and Blogs feed rather than searching for a specific term.

### FAQ, disclaimers, and support

This Actor only accesses publicly available pages on webmd.com and does not require any login
or API key. It's intended for research, monitoring, and content-aggregation use cases - please
respect WebMD's own Terms of Service for any downstream use of the scraped data. WebMD's
underlying search structure may change over time; if you notice missing or malformed data,
please open an issue on this Actor's Issues tab. Need a customized version (different site,
different fields)? A custom scraping solution is available on request.

# Actor input Schema

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

Keyword or phrase to search for on WebMD, e.g. 'diabetes' or 'chest pain'.

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

Maximum number of search results to return (WebMD returns 10 per page internally, so this is rounded up to the nearest page).

## `proxyConfiguration` (type: `object`):

WebMD has no anti-bot wall, so a proxy isn't required - left off by default.

## Actor input object example

```json
{
  "maxResults": 30,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

No description

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

// Run the Actor and wait for it to finish
const run = await client.actor("ryyos/webmd-keyword-search-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("ryyos/webmd-keyword-search-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 '{}' |
apify call ryyos/webmd-keyword-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ryyos/webmd-keyword-search-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/clsKkMp0hgumYrY40/builds/mYvUdJeb1VpvOsGLl/openapi.json
