# US Medical Equipment & DMEPOS Supplier Leads Scraper (`scrapesage/medical-equipment-supplier-leads`) Actor

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.

- **URL**: https://apify.com/scrapesage/medical-equipment-supplier-leads.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 medical equipment supplier records

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/platform/actors/running/actors-in-store#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

## 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](https://data.cms.gov/provider-data/dataset/ct36-nrcq)**.

### 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**:

| Data | Raw CMS file | This actor |
|---|---|---|
| Business & practice name | ✅ ALL-CAPS | ✅ clean + raw |
| Phone number | ✅ digits | ✅ formatted `(XXX) XXX-XXXX` |
| Full mailing address + ZIP+4 | partial | ✅ assembled + parsed |
| Geo coordinates (lat/lng) | ✅ | ✅ + radius search |
| Medicare participation (accepts assignment) | code | ✅ boolean + signal |
| Competitive-bid (CBA) contract | code | ✅ boolean + signal |
| Enrollment date → **newly-enrolled** flag | raw date | ✅ derived + filter |
| Raw product list | pipe-soup | ✅ split array |
| **Product categories** (CPAP, oxygen, mobility, diabetic, O\&P…) | ❌ | ✅ mapped + filterable |
| Specialties & provider types | pipe-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 outreach** — `newlyEnrolledOnly` surfaces brand-new suppliers (fresh purchase intent for everything from software to supplies).

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) — 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](https://docs.apify.com/api/v2).

### Input

```json
{
    "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.
- **sortBy** — `newest` (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:

```json
{
    "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](https://docs.apify.com/platform/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:

- **[Apify API](https://docs.apify.com/api/v2)** — start runs, fetch datasets, and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** — official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** — run it daily/weekly to capture newly-enrolled suppliers as fresh leads.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.

```js
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](https://docs.apify.com/platform/integrations/make)** — multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — push new supplier leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a monitored search finds new suppliers.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** — auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** — pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/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](https://docs.apify.com/platform/integrations/mcp)** — 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](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)** — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) — no account, no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/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:

- **[SAM.gov Scraper](https://apify.com/scrapesage/sam-gov-scraper)** — federal contract opportunities, awards & contracting-officer contacts.
- **[FEC Campaign Finance Scraper](https://apify.com/scrapesage/fec-campaign-finance-scraper)** — donors, PACs, committees & lobbying.
- **[Singapore Company Scraper](https://apify.com/scrapesage/singapore-company-scraper)** — UEN business registry & company leads.
- **[Swapcard Exhibitor Scraper](https://apify.com/scrapesage/swapcard-exhibitor-scraper)** — exhibitor & speaker leads from trade shows.
- **[Eventbrite Scraper](https://apify.com/scrapesage/eventbrite-scraper)** — events + organizer leads with contact emails.
- **[Multi-ATS Job Scraper](https://apify.com/scrapesage/multi-ats-job-scraper)** — hiring-intent signals across Greenhouse, Lever, Ashby, Workday.
- **[Google Ads Transparency Scraper](https://apify.com/scrapesage/google-ads-transparency-scraper)** — competitor ad intelligence.
- **[Rent.com Scraper](https://apify.com/scrapesage/rent-com-scraper)** — rental listings & property-management leads.

### 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](https://docs.apify.com/platform/integrations/drive).

**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](https://help.apify.com/). Feature requests (more filters, extra states, enrichment) are welcome — this actor is actively maintained.

# Actor input Schema

## `states` (type: `array`):

Filter by the supplier's state — two-letter USPS codes, e.g. <code>CA</code>, <code>TX</code>, <code>FL</code>, <code>NY</code>. Leave empty to pull from <b>all</b> states & territories. Filtering by state is server-side and much faster than a national scan.

## `cities` (type: `array`):

Filter by the supplier's city (case-insensitive, exact city name), e.g. <code>Dallas</code>, <code>Miami</code>, <code>Phoenix</code>.

## `zipCodes` (type: `array`):

Filter by ZIP — full ZIP (<code>75201</code>) or a prefix (<code>752</code> matches all 752xx). The 5-digit ZIP is used for matching.

## `centerLatitude` (type: `string`):

Optional radius search. Latitude of the center point, e.g. <code>32.7767</code>. Set all three radius fields to only return suppliers within the radius.

## `centerLongitude` (type: `string`):

Longitude of the center point, e.g. <code>-96.7970</code>.

## `radiusMiles` (type: `integer`):

Only return suppliers within this many miles of the center point (uses each supplier's geo coordinates).

## `supplyCategories` (type: `array`):

Only return suppliers that carry at least one of the selected product categories (mapped from the supplier's raw product list). Leave empty for all.

## `supplyKeywords` (type: `array`):

Only return suppliers whose raw product list contains one of these keywords (case-insensitive), e.g. <code>CPAP</code>, <code>oxygen</code>, <code>wheelchair</code>, <code>diabetic shoes</code>, <code>hospital bed</code>. Combine with categories for precise targeting.

## `minSupplyCategories` (type: `integer`):

Only suppliers carrying at least this many distinct product categories — a useful proxy for larger, full-line DME businesses.

## `specialtyQuery` (type: `string`):

Only suppliers whose specialty list contains this text (case-insensitive), e.g. <code>orthotic</code>, <code>pharmacy</code>, <code>rehab</code>.

## `providerTypeQuery` (type: `string`):

Only suppliers whose provider-type list contains this text (case-insensitive), e.g. <code>pedorthic</code>, <code>pharmacy</code>, <code>physical therap</code>.

## `businessNameQuery` (type: `string`):

Only suppliers whose business or practice name contains this text (case-insensitive), e.g. <code>medical</code>, <code>home care</code>, or a specific company name.

## `acceptsAssignmentOnly` (type: `boolean`):

Only suppliers that accept Medicare assignment — i.e. participating suppliers actively billing Medicare. A strong signal of an established, active business.

## `competitiveBidOnly` (type: `boolean`):

Only suppliers holding a Medicare Competitive Bidding Area (CBA) contract — vetted, established suppliers in competitive-bid product areas.

## `withPhoneOnly` (type: `boolean`):

Only return suppliers that have a phone number (the vast majority do).

## `excludePharmacies` (type: `boolean`):

Skip suppliers whose name indicates a pharmacy — handy when you only want dedicated DME / home-medical-equipment businesses.

## `newlyEnrolledOnly` (type: `boolean`):

Only suppliers whose Medicare participation began within the last 365 days — fresh businesses with high buying intent (billing, accreditation, software, supplies). Combines with date-sorted scanning for fast, cheap runs.

## `newlyEnrolledWithinDays` (type: `integer`):

Only suppliers whose participation began within this many days (e.g. <code>90</code> for the last quarter). Overrides the 12-month toggle when set.

## `enrolledAfter` (type: `string`):

Only suppliers whose Medicare participation began on or after this date, <code>YYYY-MM-DD</code>.

## `enrolledBefore` (type: `string`):

Only suppliers whose Medicare participation began on or before this date, <code>YYYY-MM-DD</code>.

## `minLeadScore` (type: `integer`):

Only return suppliers with a derived lead score (0-100) at or above this value.

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

Maximum number of supplier records to return in this run.

## `maxResultsPerState` (type: `integer`):

Optional cap on the number of suppliers returned per state — useful for an even spread across many states.

## `sortBy` (type: `string`):

<b>Newest enrolled</b> = most recently enrolled suppliers first (best for fresh leads; fastest). <b>Lead score</b> = highest-scoring leads first (scans a larger pool). <b>Name / State</b> = alphabetical. <b>Source order</b> = fastest on very large limits.

## `deduplicateResults` (type: `boolean`):

Skip duplicate supplier locations within this run (recommended).

## `monitorMode` (type: `boolean`):

Remember which suppliers were already returned (in a named key-value store) and emit ONLY suppliers that are <b>new</b> or <b>changed</b> since the last run — each tagged <code>monitorEvent: "new"</code> or <code>"updated"</code>. CMS refreshes this directory regularly; run on a Schedule to capture newly-enrolled suppliers as fresh leads. Works alongside Apify Schedules (the schedule starts the run; monitoring decides what's new).

## `monitorKey` (type: `string`):

Names the memory used by monitoring mode. Use a distinct key per saved watch (e.g. per state or product category) so different monitors don't share state.

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

Optional proxy. The CMS data API is queried directly and needs no proxy — leave this off for the fastest runs. Enable Apify Proxy only if your network requires it.

## Actor input object example

```json
{
  "states": [
    "TX"
  ],
  "acceptsAssignmentOnly": false,
  "competitiveBidOnly": false,
  "withPhoneOnly": false,
  "excludePharmacies": false,
  "newlyEnrolledOnly": false,
  "maxResults": 1000,
  "sortBy": "newest",
  "deduplicateResults": true,
  "monitorMode": false,
  "monitorKey": "default",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

All scraped DMEPOS supplier records in the default dataset, each with contact details, Medicare participation, product lines and a lead score.

# 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 = {
    "states": [
        "TX"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/medical-equipment-supplier-leads").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 = {
    "states": ["TX"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/medical-equipment-supplier-leads").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 '{
  "states": [
    "TX"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scrapesage/medical-equipment-supplier-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapesage/medical-equipment-supplier-leads"
        }
    }
}

```

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/G8n40ucKLYe9eaUms/builds/HEEpeDynukksNJ5s1/openapi.json
