HealthWarehouse Scraper
Pricing
from $3.90 / 1,000 results
HealthWarehouse Scraper
HealthWarehouse scraper that extracts product data by category, including price, stock, SKU, and URLs, so ecommerce and research teams can automate catalog tracking and monitor pharmacy market changes with a clean dataset output.
Pricing
from $3.90 / 1,000 results
Rating
0.0
(0)
Developer
Kawsar
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
HealthWarehouse Products Scraper: Extract Product Data from HealthWarehouse Categories
This HealthWarehouse scraper collects product data from healthwarehouse.com through the public GraphQL endpoint used by the storefront. Use it to scrape product names, SKUs, prices, stock status, and product URLs by category so you can monitor catalog changes, automate price tracking, and run pharmacy market research without manual exports.
Use cases
- Price monitoring: track product price shifts in a target HealthWarehouse category over time
- Stock tracking: watch in-stock and out-of-stock changes for diabetic supplies, OTC items, or prescription-related listings
- Catalog intelligence: collect structured product metadata for competitor analysis and assortment comparisons
- Data pipelines: automate product scraping and send dataset output into BI tools or Sheets
- Market research: capture category-level snapshots for pharmacy and healthcare ecommerce analysis
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
category | string | diabetic-supplies | One category selected from the validated dropdown list of working categoryUrl slugs. |
searchInputs | array of strings | [] | Optional multiple search queries, one per line, executed inside the selected category. |
state | string | "" | Optional US state code used by the API. |
maxItems | integer | 100 | Maximum number of products to collect per category, hard-capped at 1000. |
pageSize | integer | 24 | Number of products requested per API page. |
timeoutSecs | integer | 300 | Total run timeout to limit runtime costs. |
requestTimeoutSecs | integer | 30 | Timeout for each HTTP request. |
proxyConfiguration | object | Datacenter (Anywhere) | Proxy type and location to use for requests. |
Example input
{"category": "diabetic-supplies","searchInputs": ["sildenafil", "lisinopril"],"state": "","maxItems": 50,"pageSize": 24,"timeoutSecs": 300,"requestTimeoutSecs": 30,"proxyConfiguration": { "useApifyProxy": true }}
What data does this actor extract?
The actor stores each product in the dataset with normalized fields:
{"category": "diabetic-supplies","productId": 28003,"name": "Anipryl 15mg Tablets- 30ct","sku": "*V*70047","isActive": true,"visibility": 0,"pharmacy": true,"specialOtc": false,"taxClassId": null,"url": "https://www.healthwarehouse.com/anipryl-15mg-tablets-30ct","imageUrl": "https://d3pq5rjvq8yvv1.cloudfront.net/products/Anipryl-15mg.png","thumbnailUrl": "https://d3pq5rjvq8yvv1.cloudfront.net/products/Anipryl-15mg.png","minPrice": 100,"defaultQty": null,"inStock": true,"scrapedAt": "2026-05-05T11:00:00+00:00"}
| Field | Type | Description |
|---|---|---|
category | string | Input category slug used for this record. |
productId | integer | Product identifier returned by HealthWarehouse API. |
name | string | Product title. |
sku | string | Product SKU. |
isActive | boolean | Product active status flag. |
visibility | integer | Visibility code from API. |
pharmacy | boolean | Pharmacy product flag. |
specialOtc | boolean | Special OTC flag. |
taxClassId | integer/null | Tax class ID. |
url | string | Product page URL. |
imageUrl | string | Main product image URL. |
thumbnailUrl | string | Product thumbnail URL. |
minPrice | number/null | Minimum product price. |
defaultQty | number/null | Default quantity value. |
inStock | boolean | Current stock status. |
scrapedAt | string | UTC timestamp for when item was collected. |
error | string | Error details when a request fails. |
How it works
- Uses the selected
categoryfrom the dropdown. - Runs each query in
searchInputsseparately, or runs once with an empty query if no search input is provided. - Sends GraphQL requests with pagination (
endCursor,hasNextPage). - Applies
maxItemsper search query. - Pushes product rows to the dataset and writes an error row if one query fails.
- If category mode fails on page 1, retries with fallback search mode.
FAQ
Can I run multiple search terms in one run?
Yes. Add multiple entries in searchInputs, one per line.
Which slug should I use for Pharmacy, Home Medical, and Pet Supplies?
Use products for pharmacy-wide browsing, home-medical for Home Medical, and personal-care for Pet Supplies fallback coverage.
Why are many category slugs missing from dropdown?
The dropdown now includes only slugs that returned valid GraphQL category results during endpoint validation. This avoids empty runs and FAILED_SEARCH_PRODUCTS errors.
Does it support proxies?
Yes. Use proxyConfiguration to select Datacenter, Residential, or your own proxy setup.
How many products can I collect?
Set maxItems up to 1000 per run to keep the actor cost-controlled and predictable.
Can I use this for SEO and product research workflows?
Yes. The output is structured for analysis, scheduling, and integration with external tools.
Integrations
Connect this actor with Apify integrations to send product data to Google Sheets, Airbyte, webhooks, Slack, Make, Zapier, or custom endpoints.
If you need a reliable HealthWarehouse scraper for category-level product extraction and automation, this actor gives you a clean dataset that is ready for price tracking and market analysis.