US Medical Equipment & DMEPOS Supplier Leads Scraper avatar

US Medical Equipment & DMEPOS Supplier Leads Scraper

Pricing

$5.00 / 1,000 medical equipment supplier records

Go to Apify Store
US Medical Equipment & DMEPOS Supplier Leads Scraper

US Medical Equipment & DMEPOS Supplier Leads Scraper

Scrape the official CMS Medicare medical-equipment (DMEPOS) supplier directory: business name, phone, full address, Medicare participation, product lines (CPAP, oxygen, wheelchairs, diabetic, orthotics), geo & lead score. Filter by state, product & enrollment date. B2B leads + monitoring.

Pricing

$5.00 / 1,000 medical equipment supplier records

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

US Medical Equipment & DMEPOS Supplier Leads Scraper (CMS Medicare Directory)

Extract the complete official CMS Medicare medical-equipment supplier directory — every Medicare-enrolled DMEPOS (Durable Medical Equipment, Prosthetics, Orthotics & Supplies) supplier location in the United States — as clean, ready-to-use B2B leads. Get the business name, phone, full address, geo coordinates, Medicare participation status, competitive-bid contract flag, enrollment date, and the exact product lines each supplier carries (CPAP, oxygen, wheelchairs, diabetic supplies, orthotics/prosthetics, wound care, hospital beds, and more) — mapped into marketable product categories and scored 0–100.

No login, no cookies, no browser, no API key — fast JSON extraction directly from the official CMS Provider Data Catalog.

Why this DMEPOS supplier scraper?

This is the only actor that turns the CMS Medicare supplier directory into a true sales-ready lead list. Instead of a flat dump, every record is enriched, categorized, scored, and filterable — the richest dataset in the category:

DataRaw CMS fileThis actor
Business & practice name✅ ALL-CAPS✅ clean + raw
Phone number✅ digits✅ formatted (XXX) XXX-XXXX
Full mailing address + ZIP+4partial✅ assembled + parsed
Geo coordinates (lat/lng)✅ + radius search
Medicare participation (accepts assignment)code✅ boolean + signal
Competitive-bid (CBA) contractcode✅ boolean + signal
Enrollment date → newly-enrolled flagraw date✅ derived + filter
Raw product listpipe-soup✅ split array
Product categories (CPAP, oxygen, mobility, diabetic, O&P…)✅ mapped + filterable
Specialties & provider typespipe-soup✅ split arrays
Business type (LLC / Inc / Corp)✅ inferred
Lead score (0–100) + lead signals
Monitoring — only new/changed suppliers

Who buys this data (use cases)

DMEPOS suppliers are active, recurring buyers — and this directory is the cleanest way to find and segment them:

  • DME billing & RCM software / services — sell to suppliers actively billing Medicare (isMedicareParticipating).
  • Accreditation organizations & surety-bond providers — every Medicare DMEPOS supplier needs accreditation and a surety bond.
  • Distributors & manufacturers — reach buyers by product line (supplyCategories: filter for CPAP/oxygen, mobility, diabetic, wound care, etc.).
  • M&A / private equity — map the DME landscape by state, product mix and competitive-bid status for roll-up targets.
  • Compliance, audit & consulting — target suppliers in competitive-bid product areas (isCompetitiveBidContract).
  • Marketing agencies — build targeted DME / home-medical-equipment campaign lists with verified phone + address.
  • New-business outreachnewlyEnrolledOnly surfaces brand-new suppliers (fresh purchase intent for everything from software to supplies).

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the US Medical Equipment & DMEPOS Supplier Leads Scraper, choose your states (or leave empty for all), add any product/category filters, and click Start.
  3. Watch results stream into the dataset table.
  4. Export as JSON, CSV, Excel, or XML — or pull results programmatically via the Apify API.

Input

{
"states": ["TX", "FL"],
"supplyCategories": ["Respiratory & Oxygen", "Mobility & Wheelchairs"],
"acceptsAssignmentOnly": true,
"newlyEnrolledWithinDays": 180,
"sortBy": "leadScore",
"maxResults": 1000
}
  • states — two-letter USPS codes (TX, CA, FL). Empty = all states & territories. State filtering is server-side and fast.
  • cities / zipCodes — narrow by city or ZIP prefix.
  • centerLatitude / centerLongitude / radiusMiles — radius search around a point.
  • supplyCategories — pick from 14 marketable categories (Respiratory & Oxygen, Mobility & Wheelchairs, Diabetic Supplies & Shoes, Orthotics & Prosthetics, Wound Care, Hospital Beds & Support Surfaces, Urological & Ostomy, Enteral & Parenteral Nutrition, Pain & Stimulation Devices, Compression & Lymphedema, Monitoring & Diagnostics, Bath & Daily-Living Safety, Vision & Ocular, Hearing).
  • supplyKeywords — free-text product match (CPAP, oxygen, wheelchair, diabetic shoes…).
  • acceptsAssignmentOnly / competitiveBidOnly / withPhoneOnly / excludePharmacies — quality & business-type toggles.
  • newlyEnrolledOnly / newlyEnrolledWithinDays / enrolledAfter / enrolledBefore — target fresh enrollments.
  • minLeadScore / minSupplyCategories — quality thresholds.
  • sortBynewest (recommended), leadScore, name, state, or source.
  • monitorMode / monitorKey — emit only new/changed suppliers since the last run (see below).

Output

One record per Medicare-enrolled supplier location:

{
"recordType": "dmeposSupplier",
"providerId": "20616119",
"businessName": "Acme Home Medical LLC",
"practiceName": "Acme Home Medical - Austin",
"businessType": "LLC",
"isPharmacy": false,
"phone": "(512) 555-0140",
"addressLine1": "1200 Research Blvd",
"city": "Austin",
"state": "TX",
"zipCode": "78759",
"zip5": "78759",
"zip4": "4744",
"fullAddress": "1200 Research Blvd, Austin, TX, 78759-4744",
"latitude": 30.4012,
"longitude": -97.7491,
"acceptsAssignment": true,
"isMedicareParticipating": true,
"isCompetitiveBidContract": false,
"participationBeginDate": "2026-02-26",
"participationYear": 2026,
"isNewlyEnrolled": true,
"specialties": ["Medical Supply Company"],
"providerTypes": [],
"supplyCategories": ["Respiratory & Oxygen", "Mobility & Wheelchairs", "Diabetic Supplies & Shoes"],
"supplyCategoryCount": 3,
"supplies": ["Oxygen Equipment and/or Supplies", "Wheelchairs (Standard Power)", "Blood Glucose Monitors/Supplies (Non-Mail Order)"],
"supplyCount": 11,
"isMailOrder": false,
"leadScore": 72,
"leadSignals": ["newly_enrolled", "medicare_participating", "high_value_equipment", "has_phone"],
"sourceUrl": "https://data.cms.gov/provider-data/dataset/ct36-nrcq",
"sourceFields": { "...": "raw CMS row passed through verbatim" },
"dataAsOf": "2026-06-17",
"scrapedAt": "2026-06-21T03:54:14.254Z"
}

Every raw CMS field is preserved under sourceFields, so you never lose data.

Monitoring — only new & changed suppliers

Turn on monitorMode to remember which suppliers you've already seen (in a named key-value store keyed by monitorKey) and emit only suppliers that are new or changed since your last run — each tagged monitorEvent: "new" or "updated". CMS refreshes this directory regularly, so a scheduled run becomes a live feed of newly-enrolled DME suppliers.

This works alongside Apify Schedules — they are complementary, not conflicting: the Schedule decides when the actor runs, and monitoring decides what counts as new. Tip: on the first monitor run, set maxResults high enough to capture your whole watch universe (e.g. all suppliers in your target states) so the baseline is complete; subsequent runs then return only genuinely new/changed records.

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/medical-equipment-supplier-leads').call({
states: ['TX', 'FL'],
supplyCategories: ['Respiratory & Oxygen'],
acceptsAssignmentOnly: true,
sortBy: 'leadScore',
maxResults: 1000,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} DMEPOS supplier leads`);

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push new supplier leads straight into your CRM.
  • Slack — get notified when a monitored search finds new suppliers.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find newly-enrolled CPAP and oxygen suppliers in Texas with phone numbers" and let it run this scraper for you.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More B2B lead scrapers from scrapesage

Build a complete US B2B prospecting stack from official, public data sources:

Tips

  • Fast & cheap newly-enrolled feeds: pair sortBy: "newest" (or newlyEnrolledWithinDays) with monitorMode — the actor stops scanning as soon as records fall outside your date window, so runs stay tiny.
  • Segment by product line: supplyCategories is the fastest way to get, say, only respiratory/oxygen suppliers or only mobility/wheelchair suppliers.
  • Even national coverage: set maxResultsPerState to spread results across states instead of concentrating on the largest ones.
  • Lead scoring: use sortBy: "leadScore" + minLeadScore to put the most complete, active, full-line suppliers at the top.

FAQ

Where does the data come from? The official CMS Provider Data Catalog "Medical Equipment Suppliers" dataset (ct36-nrcq) — the public Medicare directory of DMEPOS suppliers. The actor queries the catalog's public data API directly; no API key, login, or browser is required.

How fresh is it? CMS refreshes the directory regularly; each record includes dataAsOf (the dataset's last-modified date). Use monitorMode on a schedule to capture changes as they happen.

Does it include email addresses? No — the official CMS supplier directory does not publish email addresses, so this actor does not fabricate them. It returns the verified phone and full address for direct outreach. (For email enrichment, pair the output with a website-contact enrichment step in your own workflow.)

Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.

A field is null — why? Some suppliers genuinely don't list a second address line, a specialty, or geo coordinates. Fields are null only when the source has no value, never because the scraper skipped them — and the complete raw row is always kept under sourceFields.

Is this legal? This actor collects publicly available U.S. government data only. You are responsible for using the data in compliance with applicable laws and the source's terms.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests (more filters, extra states, enrichment) are welcome — this actor is actively maintained.