# Cost Plus Drugs Price Scraper (`parseforge/costplusdrugs-scraper`) Actor

Get transparent prescription drug prices from Mark Cuban's Cost Plus Drugs. Search by medication name or NDC code. Compare unit prices across 2,000+ medications. Get drug name, strength, form, NDC, unit price, and insurance eligibility. No proxy needed, pure API.

- **URL**: https://apify.com/parseforge/costplusdrugs-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** E-commerce, Lead generation, Other
- **Stats:** 11 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 💊 Cost Plus Drugs Price Scraper

> 🚀 **Pull transparent prescription drug prices from Cost Plus Drugs in minutes.** 2,000+ medications. Drug name, strength, form, NDC, unit price. No login.

> 🕒 **Last updated:** 2026-05-09 · **📊 15+ fields** per drug · **💊 2,000+ medications** · **🚫 No auth** required


<table><tr>
<td style="border-left:4px solid #0F766E;padding:12px 16px;font-weight:600">Pull structured records from Cost Plus Drugs Price — clean fields ready as CSV, JSON, JSONL, Excel, or XML for downstream pipelines.</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

````

parseforge/costplusdrugs-scraper on Apify. Call: ApifyClient("TOKEN").actor("parseforge/costplusdrugs-scraper").call(run\_input={...}), then client.dataset(run\["defaultDatasetId"]).list\_items().items for results. Key inputs: maxItems (integer, default 10), drugs (array, default \["ibuprofen", "metformin", "lisinopril", "atorvastatin", "am). Full actor spec: fetch build via GET https://api.apify.com/v2/acts/parseforge~costplusdrugs-scraper (Bearer TOKEN). Get token: https://console.apify.com/account/integrations

````

Pull live drug pricing data from Cost Plus Drugs (Mark Cuban's transparent-pricing pharmacy). The actor accepts a list of medication names, looks them up, and returns one structured record per medication with name, strength, form, NDC code, unit price, manufacturer, and insurance eligibility. Built for healthcare-cost research, telemedicine apps, employee-benefits design, and patient-cost-comparison tools.

Every run fetches data live so you get the current state of Cost Plus Drugs at run time. Records include the medication generic and brand name, dose strength, dosage form (tablet, capsule, liquid), NDC code, unit price, total price for typical fill, manufacturer, and insurance eligibility.

| 👥 Built for | 🎯 Primary use cases |
|---|---|
| Telemedicine apps | Power patient cost comparison features |
| Employee benefits | Build pharmacy-cost transparency tools |
| Healthcare researchers | Study prescription pricing dynamics |
| Patient advocacy | Surface lower-cost generic alternatives |
| Insurance and PBM | Benchmark Cost Plus pricing vs traditional pharmacy |
| Healthcare ops | Power Rx-cost analysis pipelines |

---

### 📋 What the Cost Plus Drugs Scraper does

- 💊 **Drug name lookup.** Pass a list of medication names (generic preferred).
- 🆔 **NDC mapping.** Each medication links to its NDC (National Drug Code).
- 💰 **Transparent pricing.** Unit price plus typical-fill total.
- 📐 **Dose detail.** Strength (mg, mL) and form (tablet, capsule, liquid).
- 🏭 **Manufacturer.** Generic manufacturer name.
- 🩺 **Insurance flag.** Whether the medication is insurance-eligible.

The scraper resolves each medication name against Cost Plus Drugs' API and pushes one structured record per match.

> 💡 **Why it matters:** Cost Plus Drugs is rewriting US pharmacy economics with transparent, low-cost generic pricing. A live, structured pull gives builders, researchers, and benefits teams direct access to that pricing for comparison and integration.

---

### 🎬 Full Demo

🚧 Coming soon: a 3-minute walkthrough showing setup, a live run, and how to pipe results into a Google Sheet via Apify integrations.

---

### ⚙️ Input

| Field | Type | Name | Description |
|---|---|---|---|
| drugs | array | Medication Names | List of drug names (generic preferred). |
| maxItems | integer | Max Items | Free users: limited to 10 items (preview). Paid users: optional, max 1,000,000. |

Example 1. Common chronic-condition drugs.

```json
{
  "drugs": ["metformin", "lisinopril", "atorvastatin"],
  "maxItems": 3
}
````

Example 2. Pain and infection meds.

```json
{
  "drugs": ["ibuprofen", "amoxicillin", "azithromycin"],
  "maxItems": 3
}
```

> ⚠️ **Good to Know:** generic names match best. Brand names may not return results; use the generic equivalent (e.g. atorvastatin instead of Lipitor).

***

### 📊 Output

The dataset returns one structured record per medication match. Each record carries identifiers, generic and brand name, strength, form, NDC, unit price, total price, manufacturer, and a back-reference URL. Consume the dataset as JSON, CSV, Excel, XML, or RSS via the Apify console or API.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 💊 genericName | string | `Metformin HCl` |
| 🏷️ brandName | string | Glucophage |
| 📐 strength | string | `500 mg` |
| 💊 form | string | Tablet |
| 🆔 ndc | string | `60687-0123-01` |
| 💰 unitPrice | number | `0.05` |
| 💰 typicalFillPrice | number | `4.50` |
| 📦 typicalFillQuantity | number | `30` |
| 💱 currency | string | USD |
| 🏭 manufacturer | string | `Cipla USA` |
| 🩺 insuranceEligible | boolean | true |
| 🔗 productUrl | string (url) | `https://costplusdrugs.com/medications/metformin-500mg/` |
| 📅 scrapedAt | ISO datetime | `2026-05-09T12:00:00.000Z` |

#### 📦 Sample records

##### 1. Common chronic-condition drug

```json
{
  "genericName": "Metformin HCl",
  "brandName": "Glucophage",
  "strength": "500 mg",
  "form": "Tablet",
  "ndc": "60687-0123-01",
  "unitPrice": 0.05,
  "typicalFillPrice": 4.50,
  "typicalFillQuantity": 30,
  "currency": "USD",
  "manufacturer": "Cipla USA",
  "insuranceEligible": true,
  "productUrl": "https://costplusdrugs.com/medications/metformin-500mg/",
  "scrapedAt": "2026-05-09T12:00:00.000Z"
}
```

##### 2. Statin

```json
{
  "genericName": "Atorvastatin Calcium",
  "brandName": "Lipitor",
  "strength": "20 mg",
  "form": "Tablet",
  "ndc": "60687-0234-02",
  "unitPrice": 0.07,
  "typicalFillPrice": 6.30,
  "typicalFillQuantity": 90,
  "currency": "USD",
  "manufacturer": "Lupin Pharmaceuticals",
  "insuranceEligible": true,
  "productUrl": "https://costplusdrugs.com/medications/atorvastatin-20mg/",
  "scrapedAt": "2026-05-09T12:00:00.000Z"
}
```

##### 3. Sparse record (limited info)

```json
{
  "genericName": "Ibuprofen",
  "strength": "200 mg",
  "form": "Tablet",
  "unitPrice": 0.02,
  "typicalFillPrice": 1.80,
  "currency": "USD",
  "productUrl": "https://costplusdrugs.com/medications/ibuprofen-200mg/",
  "scrapedAt": "2026-05-09T12:00:00.000Z"
}
```

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🎯 | **Built for the job.** Scoped specifically to Cost Plus Drugs so you skip the parser engineering entirely. |
| 🔖 | **Structured output.** Clean, typed fields ready for analysis, dashboards, or downstream pipelines. |
| ⚡ | **Fast.** Pure API extraction returns results in seconds. |
| 🔁 | **Always fresh.** Every run pulls live data, so the dataset reflects Cost Plus Drugs as of run time. |
| 🌐 | **No infra to manage.** Apify handles compute, scaling, scheduling, and storage. |
| 🛡️ | **Reliable.** Battle-tested across many runs and edge cases, with graceful error handling. |
| 🚫 | **No code required.** Configure in the UI, run from CLI, schedule via cron, or call from any language with the Apify SDK. |

> 📊 Production-grade structured Rx-pricing data without the engineering overhead of building and maintaining your own integration.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ Cost Plus Drugs Scraper** *(this Actor)* | $5 free credit, then pay-per-use | 2,000+ medications | **Live per run** | Drug name lookup | ⚡ 2 min |
| Build your own scraper | Engineering hours | Full once built | Whenever you maintain it | Custom code | 🐢 Days to weeks |
| Paid prescription-data APIs | $$$ monthly | Vendor-defined | Live | Vendor-defined | ⏳ Hours |
| Manual lookups | Hours per check | One at a time | Stale | Manual | 🕒 Variable |

Pick this Actor when you want fast, scalable Rx-pricing data without owning the integration.

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the Cost Plus Drugs Scraper page on the Apify Store.
3. 🎯 **Set drug list.** Add medication names to drugs and maxItems.
4. 🚀 **Run it.** Click **Start** and let the Actor look up each drug.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to downloaded dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### 📊 Telemedicine and patient apps

- Power patient cost-comparison features
- Surface lower-cost generic alternatives
- Build Rx-cost transparency UIs
- Power refill-cost calculators

</td>
<td width="50%" valign="top">

#### 🏢 Employee benefits and HR

- Build pharmacy-cost transparency tools
- Compare Cost Plus pricing vs your PBM
- Power benefits-design analyses
- Surface savings to plan members

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 🎯 Healthcare research

- Study prescription pricing dynamics
- Track Rx-cost trends over time
- Build pharma-pricing benchmark reports
- Power patient-advocacy projects

</td>
<td width="50%" valign="top">

#### 🛠️ Engineering and product

- Power Rx-cost products without owning a crawler
- Replace fragile in-house Cost Plus scrapers
- Wire datasets into your apps via the Apify API or webhooks
- Skip the integration maintenance entirely

</td>
</tr>
</table>

***

### 🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Empirical datasets for papers, thesis work, and coursework
- Longitudinal studies tracking changes across snapshots
- Reproducible research with cited, versioned data pulls
- Classroom exercises on data analysis and ethical scraping

</td>
<td width="50%">

#### 🎨 Personal and creative

- Side projects, portfolio demos, and indie app launches
- Data visualizations, dashboards, and infographics
- Content research for bloggers, YouTubers, and podcasters
- Hobbyist collections and personal trackers

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Transparency reporting and accountability projects
- Advocacy campaigns backed by public-interest data
- Community-run databases for local issues
- Investigative journalism on public records

</td>
<td width="50%">

#### 🧪 Experimentation

- Prototype AI and machine-learning pipelines with real data
- Validate product-market hypotheses before engineering spend
- Train small domain-specific models on niche corpora
- Test dashboard concepts with live input

</td>
</tr>
</table>

***

### 🔌 Automating Cost Plus Drugs Scraper

This Actor exposes a REST endpoint, so you can drive it from any language or workflow tool.

- **Node.js** - call it via the [Apify JS SDK](https://docs.apify.com/sdk/js).
- **Python** - call it via the [Apify Python SDK](https://docs.apify.com/sdk/python).
- **REST** - hit it directly through the [Apify v2 API](https://docs.apify.com/api/v2).

**Schedules.** Use Apify Scheduler to capture daily price snapshots for your medication formulary. Combine with the Apify dataset diff tools to alert on price changes.

***

### ❓ Frequently Asked Questions

<details>
<summary><b>💳 Do I need a paid Apify plan to run this actor?</b></summary>

No. You can start right now on the free Apify plan, which includes **$5 in monthly credit**. That is enough to run the scraper several times and explore the output. Paid plans unlock higher item caps, more concurrent runs, and larger datasets. [Create a free Apify account here](https://console.apify.com/sign-up?fpr=vmoqkp).

</details>

<details>
<summary><b>🚨 What happens if my run fails or returns no results?</b></summary>

Failed runs are not charged. If Cost Plus Drugs changes its API or your drug names don't match, re-run the actor or open our [contact form](https://tally.so/r/BzdKgA) and we will look into it.

</details>

<details>
<summary><b>📏 How many medications can I look up per run?</b></summary>

Free users are limited to **10 medications per run** so you can preview the output. Paid users can raise maxItems up to **1,000,000** per run.

</details>

<details>
<summary><b>🕒 How fresh is the data?</b></summary>

Every run fetches live data at the moment of execution. There is no cache or delay: records reflect what Cost Plus Drugs returned at run time.

</details>

<details>
<summary><b>🧑‍💻 Can I call this actor from my own code?</b></summary>

Yes. Apify exposes every actor as a REST endpoint and ships first-class SDKs for [Node.js](https://docs.apify.com/sdk/js) and [Python](https://docs.apify.com/sdk/python). You can start a run, read the dataset, and handle webhooks from your own app in a few lines.

</details>

<details>
<summary><b>📤 How do I export the data?</b></summary>

Every Apify dataset can be downloaded in one click as CSV, JSON, JSONL, Excel, HTML, XML, or RSS. You can also pull results programmatically via the [Apify API](https://docs.apify.com/api/v2) or stream into BigQuery, S3, and other destinations through built-in integrations.

</details>

<details>
<summary><b>📅 Can I schedule the actor to run automatically?</b></summary>

Yes. Use the Apify scheduler to run the actor on any cadence, from hourly to monthly. Results are saved to your dataset and can be delivered to webhooks, email, Slack, cloud storage, or automation tools such as Zapier and Make.

</details>

<details>
<summary><b>🏪 Can I use the data commercially?</b></summary>

Yes. The scraped data is yours to use in your own internal pipelines, products, and reports. Note that Rx pricing is informational and not a substitute for medical advice or actual prescription processes.

</details>

<details>
<summary><b>💼 Which plan should I pick for production use?</b></summary>

Apify's Starter and Scale plans are designed for production workloads. Pick the plan that matches your dataset size and refresh cadence.

</details>

<details>
<summary><b>🛠️ Can you add other transparent-pricing pharmacies?</b></summary>

Open the [contact form](https://tally.so/r/BzdKgA) and tell us which sources you need. We add new sources regularly when there is a clear use case behind the request.

</details>

<details>
<summary><b>⚖️ Is scraping Cost Plus Drugs legal?</b></summary>

This Actor only collects data from publicly accessible Cost Plus Drugs pages, the same content any visitor can read. Public web scraping is generally legal in most jurisdictions for non-personal data, but laws vary by country and use case. You are responsible for compliance with the source site's Terms of Service and applicable law.

***

</details>

### 🔌 Integrate with any app

Cost Plus Drugs Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get run notifications in your channels
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe results into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits and releases
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets straight to Sheets

You can also use webhooks to trigger downstream actions when a run finishes.

***

### 🔗 Recommended Actors

- [**🏥 Healthgrades Scraper**](https://apify.com/parseforge/healthgrades-scraper) - US doctor and provider directory
- [**🏥 Doximity Scraper**](https://apify.com/parseforge/doximity-scraper) - US medical professional directory
- [**🩺 ClinicalTrials.gov Scraper**](https://apify.com/parseforge/clinicaltrials-gov-scraper) - U.S. clinical trial database
- [**🏥 Florida MQA Licensee Scraper**](https://apify.com/parseforge/florida-mqa-scraper) - Florida medical license records
- [**📋 FDA 510(k) Scraper**](https://apify.com/parseforge/fda-510k-scraper) - FDA medical-device clearance database

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more reference-data scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) to request a new scraper, propose a custom project, or report an issue.

***

> ⚠️ **Disclaimer.** This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Cost Plus Drugs. All trademarks mentioned are the property of their respective owners. The scraper accesses only publicly available pages and is intended for legitimate research, analytics, and product-development use. Rx pricing is informational only and not a substitute for medical advice or actual prescription processes. Users are responsible for compliance with the source site's Terms of Service and applicable law.

# Actor input Schema

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

Free users: Limited to 10 medications (preview). Paid users: Optional, max 1,000,000

## `drugs` (type: `array`):

List of drug names to look up (generic names work best). Examples: ibuprofen, metformin, lisinopril, atorvastatin

## Actor input object example

```json
{
  "maxItems": 10,
  "drugs": [
    "ibuprofen",
    "metformin",
    "lisinopril",
    "atorvastatin",
    "amoxicillin"
  ]
}
```

# Actor output Schema

## `overview` (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 = {
    "maxItems": 10,
    "drugs": [
        "ibuprofen",
        "metformin",
        "lisinopril",
        "atorvastatin",
        "amoxicillin"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/costplusdrugs-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 = {
    "maxItems": 10,
    "drugs": [
        "ibuprofen",
        "metformin",
        "lisinopril",
        "atorvastatin",
        "amoxicillin",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/costplusdrugs-scraper").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 '{
  "maxItems": 10,
  "drugs": [
    "ibuprofen",
    "metformin",
    "lisinopril",
    "atorvastatin",
    "amoxicillin"
  ]
}' |
apify call parseforge/costplusdrugs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/costplusdrugs-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Cost Plus Drugs Price Scraper",
        "description": "Get transparent prescription drug prices from Mark Cuban's Cost Plus Drugs. Search by medication name or NDC code. Compare unit prices across 2,000+ medications. Get drug name, strength, form, NDC, unit price, and insurance eligibility. No proxy needed, pure API.",
        "version": "1.0",
        "x-build-id": "nv5JVB3qZFZAprgD9"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~costplusdrugs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-costplusdrugs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~costplusdrugs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-costplusdrugs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~costplusdrugs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-costplusdrugs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 medications (preview). Paid users: Optional, max 1,000,000"
                    },
                    "drugs": {
                        "title": "Medication Names",
                        "type": "array",
                        "description": "List of drug names to look up (generic names work best). Examples: ibuprofen, metformin, lisinopril, atorvastatin",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
