ParseForge Scrapers

Healthcare.gov Plan Scraper

parseforge/healthcare-gov-scraper

AutomationDeveloper toolsAgents

Scrapes health insurance plans from Healthcare.gov for a given ZIP code and household profile. Returns each plan as a flat row with premium, cost-sharing details, and computed APTC subsidy.

Run this scraper See the API call
Total users
5
Monthly active
0
Total runs
188
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

Healthcare.gov Plan Scraper

Scrape health insurance plans from Healthcare.gov by ZIP code, with real subsidy estimates and full plan details. Every plan row includes premium, deductible, copay, metal tier, HSA eligibility, and the APTC tax credit you qualify for. Export to CSV, JSON, Excel, or XML.

Healthcare.gov does not offer a public API for plan data, and manually comparing dozens of plans across metal tiers is slow and error-prone. This actor reads the same plan listings a consumer sees, applies your household details, and returns every matching plan in a flat, analysis-ready row. It works for all Federally Facilitated Marketplace states, including Texas, Florida, North Carolina, and Ohio.

Who uses it What they scrape Healthcare.gov for
Insurance brokers Generate side-by-side plan comparisons for clients in a specific ZIP code.
Health policy researchers Track premium changes and plan availability across different rating areas over time.
Data journalists Analyze out-of-pocket cost trends and subsidy distribution in a local market.
Non-profit navigators Pre-screen plan options and financial help amounts for community members before an appointment.

What it does

This Actor collects health insurance plans from Healthcare.gov for a given ZIP code and household profile, and returns each plan as a flat row with premium, cost-sharing details, and computed subsidy amounts.

  • πŸ’° Subsidy calculation: the Advanced Premium Tax Credit (APTC) is computed from your household income and members, and returned per plan.
  • 🏷️ Metal tier and type filters: narrow results to Bronze, Silver, Gold, Platinum, or Catastrophic plans, and to HMO, PPO, EPO, or POS network types.
  • 🏦 HSA eligibility flag: return only Health Savings Account compatible plans when the checkbox is on.
  • πŸ‘₯ Household modeling: define each member's age, gender, and tobacco use to get accurate premium quotes.
  • πŸ“… Plan year selection: pull plans for the current or upcoming coverage year (2024 through 2026).

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

What you can do with Healthcare.gov data

πŸ“Š Build a local market report.

A broker runs the actor for a Dallas ZIP code, filters to Silver PPO plans, and exports a CSV to show a small business the true post-subsidy cost of each option.

πŸ“ˆ Track year-over-year premium changes.

A researcher collects all Bronze plans in Miami for 2025 and 2026, then joins the datasets on plan ID to measure the median premium increase.

🧾 Pre-qualify a household for enrollment help.

A navigator enters a single parent's income and child's age, scrapes the resulting plans, and hands the client a printed shortlist with the APTC already applied.

πŸ—ΊοΈ Compare plan availability across rating areas.

A journalist runs the same household profile against ten ZIP codes in different Florida counties and maps which insurers offer zero-deductible plans where.

Why choose this scraper

What you get
Full plan detail Monthly premium, annual deductible, primary care copay, specialist copay, emergency room copay, generic drug copay, and out-of-pocket maximum.
Real subsidy amounts The APTC tax credit is calculated from your entered household income and composition, not a generic estimate.
Flat output schema Every plan is one row with the same columns, ready for pivot tables, databases, or BI tools.
No login or API key Reads the public plan finder directly. No CMS registration, no OAuth, no rate-limit headaches.

How it compares

This actor scrapes live plan listings with real subsidy calculations, while the Healthcare.gov Content Scraper extracts structured articles and glossary terms from the CMS Content API.

Feature ParseForge Healthcare.gov Content Scraper
Live insurance plan listings Yes, by ZIP code with household details Not listed
APTC subsidy calculation Yes, computed from entered income and household Not listed
Metal tier and plan type filters Yes, Bronze through Catastrophic, HMO/PPO/EPO/POS Not listed
Glossary, articles, and blog content Not listed Yes
SHOP small business plans Yes Not listed

Configure the run

Drive the Actor with a single ZIP code and a household profile, and filters run as each plan is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "zipCode": "75201",
  "maxItems": 10,
  "year": 2026,
  "householdIncome": 52000,
  "people": [
    {
      "age": 35,
      "gender": "Male",
      "usesTobacco": false
    }
  ]
}

A larger pull:

{
  "zipCode": "75201",
  "maxItems": 200,
  "year": 2026,
  "householdIncome": 52000,
  "people": [
    {
      "age": 35,
      "gender": "Male",
      "usesTobacco": false
    }
  ]
}

Pricing

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

Results collected Approximate cost
100 results $1.60
1,000 results $15.99
10,000 results $159.90

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 to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Healthcare.gov Plan Scraper.
  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 (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

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

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/healthcare-gov-scraper"

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

Troubleshooting

I get zero results for my ZIP code.

First, confirm the ZIP code is in a Federally Facilitated Marketplace state. State-run exchanges like California or New York will return no plans. Second, check your metal level and plan type filters. A very restrictive combination, like Platinum HMO in a rural ZIP, can legitimately return zero matches. Try setting both filters to 'All' and re-running.

The subsidy amount looks wrong or is zero.

Verify that your household income is entered as the total annual gross income in dollars, not monthly. Also check that every household member has a realistic age and that the income is above 100% of the federal poverty level for your household size. A household with income below that threshold may show zero APTC because they qualify for Medicaid instead.

The actor is running slowly or timing out.

Lower the maxConcurrency setting to 5 or 3. Healthcare.gov can throttle aggressive scraping. Reducing parallel requests usually resolves timeouts without needing proxies.

Some plans are missing copay or deductible fields.

Not every plan publishes every cost-sharing detail in the plan finder. If a field is blank in your dataset, the plan did not provide that value on the page. This is normal for plans that use coinsurance instead of fixed copays, for example.

FAQ

Question Answer
Which states does this actor support? It supports all states that use the federal marketplace at Healthcare.gov, often called Federally Facilitated Marketplace (FFM) states. This includes Texas, Florida, Georgia, North Carolina, Ohio, and about 30 others. State-run marketplaces like Covered California, New York State of Health, and Washington Healthplanfinder are not available through this actor.
Does it return the subsidy amount I qualify for? Yes. When you provide a household income and the age and tobacco use of each member, the actor returns the Advanced Premium Tax Credit (APTC) amount the marketplace calculates for each plan. This is the actual subsidy, not a rough estimate.
Can I filter plans by metal tier? Yes. Use the metalLevel input to return only Bronze, Silver, Gold, Platinum, or Catastrophic plans. Leave it set to 'All tiers' to get every available metal level.
What cost-sharing details are included? Each plan row includes the monthly premium, annual deductible, out-of-pocket maximum, primary care copay, specialist visit copay, emergency room copay, and generic drug copay. Exact fields depend on what the plan publishes.
How do I model a family with multiple members? Add an object to the 'people' array for each household member, with their age, gender, and tobacco use. The actor uses this full household composition to calculate the correct premium and subsidy.
Can I scrape SHOP plans for my small business? Yes. Set the 'market' input to 'Small Business (SHOP)' to pull plans from the Small Business Health Options Program instead of the individual market.
What is the maximum number of plans I can collect? You can set maxItems up to 1,000,000. In practice, a single ZIP code rarely returns more than a few hundred plans across all metal tiers, so the default of 10 is a safe starting point.
Does this actor require a Healthcare.gov login? No. It reads the public plan finder pages directly. You do not need a CMS account, an API key, or any registration.
What output formats are supported? You can export your dataset to CSV, JSON, Excel, or XML from the Apify platform. The schema is the same flat row regardless of format.
Can I run this for multiple ZIP codes in one job? Each run takes a single ZIP code. To cover multiple ZIPs, run the actor once per code, either manually or by calling the API in a loop from a script or another actor.

Related actors

Browse the full ParseForge collection 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 Centers for Medicare & Medicaid Services. 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.

Input

FieldTypeWhat it doesDefault
zipCode required string 5-digit ZIP code to search plans for (e.g. 75201). Only FFM states are supported (TX, FL, NC, OH, etc.). State-run marketplaces (CA, NY, WA) are not available. 75201
maxItems integer How many plans to collect per run. 10
year integer Year to search plans for. 2026
market string (2 options) Insurance market type: Individual (personal/family plans) or SHOP (small business plans). Individual
householdIncome integer Annual household income in USD. Used to calculate APTC (tax credit) eligibility and subsidy amounts. 52000
people array List of people in the household. Each person needs age and gender. Example: [{"age": 35, "gender": "Male", "usesTobacco": false}] [{"age":35,"gender":"Male","usesTobacco"
metalLevel string (6 options) Filter plans by metal tier. Leave empty to return all tiers. not set
planType string (5 options) Filter by plan network type. Leave empty to return all types. not set
hsaEligible boolean When enabled, only returns plans compatible with Health Savings Accounts. false
maxConcurrency integer Maximum number of parallel page requests. Lower this if you encounter rate limiting. 10

Pricing

from $11.99 per 1,000 results

Charged forWhat it isPrice each
Actor Start Charged once when the run starts. $0.005
Result Item Charged once per result collected. $0.01199 to $0.01599

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST Β· run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~healthcare-gov-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Healthcare.gov Plan Scraper on Apify All scrapers