# Doximity Physician Directory Scraper (`parseforge/doximity-scraper`) Actor

Extract US physician profiles from Doximity — name, specialty, credentials, city, state, phone, fax, hospital affiliation, education, certifications, awards, publications, and professional memberships. Free preview caps at 10 profiles.

- **URL**: https://apify.com/parseforge/doximity-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Automation, Social media
- **Stats:** 11 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.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)

## 🩺 Doximity Physician Directory Scraper

> 🚀 **Pull US physician profiles from Doximity in minutes.** Education, credentials, hospital affiliations, certifications, publications. No login.

> 🕒 **Last updated:** 2026-05-09 · **📊 25+ fields** per physician · **🩺 Specialty + state filters** · **🚫 No auth** required


<table><tr>
<td style="border-left:4px solid #0F766E;padding:12px 16px;font-weight:600">Pull structured records from Doximity Physician Directory — 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/doximity-scraper on Apify. Call: ApifyClient("TOKEN").actor("parseforge/doximity-scraper").call(run\_input={...}), then client.dataset(run\["defaultDatasetId"]).list\_items().items for results. Key inputs: startUrl (string), maxItems (integer, default 10), specialty (string, default "cardiology"), state (string), includeDetails (boolean, default false), maxConcurrency (integer, default 5). Full actor spec: fetch build via GET https://api.apify.com/v2/acts/parseforge~doximity-scraper (Bearer TOKEN). Get token: https://console.apify.com/account/integrations

````

Pull live physician profiles from Doximity, the largest US medical professional network with 80%+ of U.S. doctors registered. The actor accepts a specialty plus optional state (or a direct URL), walks the directory pages, and returns one structured record per physician ready for healthcare recruiting, medical-affairs research, lead-gen, or KOL identification.

Every run fetches data live so you get the current state of Doximity at run time. Records include the physician name, specialty, education (medical school, residency, fellowship), hospital affiliations, board certifications, publications, professional memberships, and a back-reference URL.

| 👥 Built for | 🎯 Primary use cases |
|---|---|
| Healthcare recruiting | Find specialists by training and affiliation |
| Medical-affairs teams | Identify KOLs by specialty and publication record |
| Pharma / med device sales | Build prescriber prospect lists |
| CRM enrichment | Add credentials to existing physician records |
| Researchers | Map physician networks by specialty |
| Hospital systems | Track competitor faculty and affiliations |

---

### 📋 What the Doximity Scraper does

- 🩺 **Specialty filter.** 30+ medical specialties from cardiology to urology.
- 🌎 **State filter.** Narrow by US state.
- 🔗 **Direct URL.** Pass a Doximity directory URL.
- 🎓 **Education.** Medical school, residency, fellowship.
- 🏥 **Hospital affiliations.** All affiliated hospitals listed.
- 📚 **Publications.** Publication count and titles where exposed.

The scraper walks Doximity's directory, extracts each profile's metadata, and pushes structured records to the dataset.

> 💡 **Why it matters:** Doximity is the canonical US physician network with comprehensive credentials data, but its UI is paginated and lacks bulk export. A live, structured pull beats manual lookup for recruiting, KOL identification, and medical-affairs research.

---

### 🎬 Full Demo

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

---

### ⚙️ Input

| Field | Type | Name | Description |
|---|---|---|---|
| startUrl | string | Start URL | Direct Doximity directory URL. Overrides specialty/state. |
| maxItems | integer | Max Items | Free users: limited to 10 items (preview). Paid users: optional, max 1,000,000. |
| specialty | enum | Specialty | Medical specialty (cardiology, dermatology, neurology, etc.). |
| state | string | State | Optional US state. |

Example 1. Cardiologists nationwide.

```json
{
  "specialty": "cardiology",
  "maxItems": 100
}
````

Example 2. Dermatologists in California.

```json
{
  "specialty": "dermatology",
  "state": "California",
  "maxItems": 50
}
```

> ⚠️ **Good to Know:** when startUrl is set, specialty/state are ignored. Use specialty slugs from the input enum (e.g. colon-rectal-surgery not `Colon and Rectal Surgery`).

***

### 📊 Output

The dataset returns one structured record per physician. Each record carries identifiers, name, specialty, education, hospital affiliations, certifications, publications, memberships, 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 |
|---|---|---|
| 👤 name | string | `Dr. Jane Smith MD` |
| 🩺 specialty | string | Cardiology |
| 🎓 medicalSchool | string | `Columbia University Vagelos College` |
| 🎓 residency | string | `New York-Presbyterian Hospital` |
| 🎓 fellowship | string or null | `Massachusetts General Hospital` |
| 🏥 hospitalAffiliations | array | `["Mount Sinai Hospital", "NYU Langone"]` |
| 📜 boardCertifications | array | `["American Board of Internal Medicine - Cardiology"]` |
| 📚 publicationCount | number | `42` |
| 📚 publications | array | `[{"title":"...","journal":"NEJM","year":2024}]` |
| 🏛️ memberships | array | `["American College of Cardiology", "Heart Rhythm Society"]` |
| 📞 phone | string or null | `+1 212 555 1212` |
| 🏠 practiceAddress | string | `123 5th Ave, New York, NY 10003` |
| 🌐 website | string or null | `https://www.smithcardiology.com` |
| 🔗 doximityUrl | string (url) | `https://www.doximity.com/profiles/jane-smith-md` |
| 📅 scrapedAt | ISO datetime | `2026-05-09T12:00:00.000Z` |

#### 📦 Sample records

##### 1. Senior cardiologist with publications

```json
{
  "name": "Dr. Jane Smith MD",
  "specialty": "Cardiology",
  "medicalSchool": "Columbia University Vagelos College",
  "residency": "New York-Presbyterian Hospital",
  "fellowship": "Massachusetts General Hospital",
  "hospitalAffiliations": ["Mount Sinai Hospital", "NYU Langone"],
  "boardCertifications": ["American Board of Internal Medicine - Cardiology"],
  "publicationCount": 42,
  "publications": [
    {"title": "Outcomes of Catheter Ablation in AF", "journal": "NEJM", "year": 2024}
  ],
  "memberships": ["American College of Cardiology", "Heart Rhythm Society"],
  "phone": "+1 212 555 1212",
  "practiceAddress": "123 5th Ave, New York, NY 10003",
  "doximityUrl": "https://www.doximity.com/profiles/jane-smith-md",
  "scrapedAt": "2026-05-09T12:00:00.000Z"
}
```

##### 2. Mid-career dermatologist

```json
{
  "name": "Dr. John Doe MD",
  "specialty": "Dermatology",
  "medicalSchool": "UCLA School of Medicine",
  "residency": "UCSF",
  "hospitalAffiliations": ["UCLA Medical Center"],
  "boardCertifications": ["American Board of Dermatology"],
  "publicationCount": 8,
  "memberships": ["American Academy of Dermatology"],
  "phone": "+1 213 555 1212",
  "practiceAddress": "456 Wilshire Blvd, Los Angeles, CA 90017",
  "doximityUrl": "https://www.doximity.com/profiles/john-doe-md",
  "scrapedAt": "2026-05-09T12:00:00.000Z"
}
```

##### 3. Sparse record (early-career physician)

```json
{
  "name": "Dr. Sarah Lee MD",
  "specialty": "Pediatrics",
  "medicalSchool": "Northwestern University",
  "residency": "Lurie Children's Hospital",
  "hospitalAffiliations": ["Lurie Children's Hospital"],
  "publicationCount": 0,
  "doximityUrl": "https://www.doximity.com/profiles/sarah-lee-md",
  "scrapedAt": "2026-05-09T12:00:00.000Z"
}
```

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🎯 | **Built for the job.** Scoped specifically to Doximity so you skip the parser engineering entirely. |
| 🔖 | **Structured output.** Clean, typed fields ready for analysis, dashboards, or downstream pipelines. |
| ⚡ | **Fast.** Optimized request patterns return results in seconds, not minutes. |
| 🔁 | **Always fresh.** Every run pulls live data, so the dataset reflects Doximity as of run time. |
| 🌐 | **No infra to manage.** Apify handles proxies, retries, 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 physician data without the engineering overhead of building and maintaining your own scraper.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ Doximity Scraper** *(this Actor)* | $5 free credit, then pay-per-use | Public Doximity directory | **Live per run** | Specialty, state | ⚡ 2 min |
| Build your own scraper | Engineering hours | Full once built | Whenever you maintain it | Custom code | 🐢 Days to weeks |
| Paid medical-data platforms | $$$ monthly per seat | Vendor-defined | Periodic | Vendor-defined | ⏳ Hours |
| Manual searches | Hours per check | Limited | Stale | Manual | 🕒 Variable |

Pick this Actor when you want broad coverage, source-native filtering, and no pipeline maintenance.

***

### 🚀 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 Doximity Physician Directory Scraper page on the Apify Store.
3. 🎯 **Set filters.** Pick a specialty and optional state.
4. 🚀 **Run it.** Click **Start** and let the Actor collect your data.
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">

#### 📊 Healthcare recruiting

- Find specialists by training and affiliation
- Build recruitment pipelines for hospitals
- Track competitor faculty and hospital systems
- Power lateral-hire outreach campaigns

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

#### 🏢 Pharma and medical device sales

- Build prescriber prospect lists by specialty
- Identify KOLs by publication record
- Power CRM enrichment with credentials
- Track decision-makers at target accounts

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

#### 🎯 Medical affairs and research

- Identify KOLs for advisory boards
- Map physician networks by specialty
- Build publication-tracking dashboards
- Power CME audience research

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

#### 🛠️ Engineering and product

- Power physician-directory products without owning a crawler
- Replace fragile in-house Doximity scrapers
- Wire datasets into your apps via the Apify API or webhooks
- Skip the proxy, retry, and parsing 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 Doximity Physician Directory 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 snapshots of physician directory changes. Combine with the Apify dataset diff tools to track new physicians and affiliation changes between runs.

***

### ❓ 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 Doximity changes its DOM, proxies get rate-limited, or your filters match nothing, 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 items can I scrape per run?</b></summary>

Free users are limited to **10 items 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 Doximity 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, subject to the terms of service of the source site and applicable HIPAA / privacy laws.

</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 NPI or insurance data?</b></summary>

Open the [contact form](https://tally.so/r/BzdKgA) and tell us about your use case. We add features regularly when there is a clear use case behind the request.

</details>

<details>
<summary><b>⚖️ Is scraping Doximity legal?</b></summary>

This Actor only collects data from publicly accessible Doximity 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, HIPAA where applicable, and any data-protection rules that apply.

***

</details>

### 🔌 Integrate with any app

Doximity Physician Directory 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
- [**🩺 ClinicalTrials.gov Scraper**](https://apify.com/parseforge/clinicaltrials-gov-scraper) - U.S. clinical trial database
- [**💊 Cost Plus Drugs Scraper**](https://apify.com/parseforge/costplusdrugs-scraper) - Cost Plus Drugs catalog
- [**🏥 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 Doximity. 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 lead-generation use. Users are responsible for compliance with the source site's Terms of Service, applicable privacy laws (such as HIPAA), and any data-protection rules that apply.

# Actor input Schema

## `startUrl` (type: `string`):

Direct URL to a Doximity directory page (e.g. /directory/md/specialty/cardiology). If provided, specialty and state filters below are ignored.

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

Free users: Limited to 10 items. Paid users: Optional, max 1,000,000.

## `specialty` (type: `string`):

Filter physicians by medical specialty (e.g. cardiology, dermatology, neurology). Used to build the directory URL.

## `state` (type: `string`):

Filter physicians by US state (e.g. new-york, california). Combined with specialty if both are provided.

## `includeDetails` (type: `boolean`):

When enabled, fetches each physician's full profile page to extract education, certifications, awards, publications, and professional memberships. Slower but more complete data.

## `maxConcurrency` (type: `integer`):

Maximum number of parallel requests. Lower this if you get rate-limited.

## `requestDelayMs` (type: `integer`):

Milliseconds to wait between requests. Increase if the site rate-limits you.

## Actor input object example

```json
{
  "maxItems": 10,
  "specialty": "cardiology",
  "includeDetails": false,
  "maxConcurrency": 5,
  "requestDelayMs": 500
}
```

# Actor output Schema

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

Dataset with all scraped items

# 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,
    "specialty": "cardiology",
    "includeDetails": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/doximity-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,
    "specialty": "cardiology",
    "includeDetails": False,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/doximity-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,
  "specialty": "cardiology",
  "includeDetails": false
}' |
apify call parseforge/doximity-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Doximity Physician Directory Scraper",
        "description": "Extract US physician profiles from Doximity — name, specialty, credentials, city, state, phone, fax, hospital affiliation, education, certifications, awards, publications, and professional memberships. Free preview caps at 10 profiles.",
        "version": "1.0",
        "x-build-id": "EuTBJNTDtHtAHllja"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~doximity-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-doximity-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~doximity-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-doximity-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~doximity-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-doximity-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": {
                    "startUrl": {
                        "title": "Start URL",
                        "type": "string",
                        "description": "Direct URL to a Doximity directory page (e.g. /directory/md/specialty/cardiology). If provided, specialty and state filters below are ignored."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items. Paid users: Optional, max 1,000,000."
                    },
                    "specialty": {
                        "title": "Specialty",
                        "enum": [
                            "allergy-immunology",
                            "anesthesiology",
                            "cardiology",
                            "colon-rectal-surgery",
                            "dermatology",
                            "emergency-medicine",
                            "endocrinology",
                            "family-medicine",
                            "gastroenterology",
                            "general-surgery",
                            "geriatrics",
                            "hematology",
                            "infectious-disease",
                            "internal-medicine",
                            "interventional-radiology",
                            "medical-genetics",
                            "nephrology",
                            "neurology",
                            "neurosurgery",
                            "nuclear-medicine",
                            "obstetrics-gynecology",
                            "occupational-medicine",
                            "oncology",
                            "ophthalmology",
                            "orthopaedic-surgery",
                            "otolaryngology-ent",
                            "pathology",
                            "pediatric-cardiology",
                            "pediatrics",
                            "physical-medicine-rehab",
                            "plastic-surgery",
                            "psychiatry",
                            "pulmonology",
                            "radiation-oncology",
                            "radiology",
                            "rheumatology",
                            "thoracic-surgery",
                            "urology",
                            "vascular-surgery"
                        ],
                        "type": "string",
                        "description": "Filter physicians by medical specialty (e.g. cardiology, dermatology, neurology). Used to build the directory URL."
                    },
                    "state": {
                        "title": "State",
                        "enum": [
                            "alabama",
                            "alaska",
                            "arizona",
                            "arkansas",
                            "california",
                            "colorado",
                            "connecticut",
                            "delaware",
                            "district-of-columbia",
                            "florida",
                            "georgia",
                            "hawaii",
                            "idaho",
                            "illinois",
                            "indiana",
                            "iowa",
                            "kansas",
                            "kentucky",
                            "louisiana",
                            "maine",
                            "maryland",
                            "massachusetts",
                            "michigan",
                            "minnesota",
                            "mississippi",
                            "missouri",
                            "montana",
                            "nebraska",
                            "nevada",
                            "new-hampshire",
                            "new-jersey",
                            "new-mexico",
                            "new-york",
                            "north-carolina",
                            "north-dakota",
                            "ohio",
                            "oklahoma",
                            "oregon",
                            "pennsylvania",
                            "rhode-island",
                            "south-carolina",
                            "south-dakota",
                            "tennessee",
                            "texas",
                            "utah",
                            "vermont",
                            "virginia",
                            "washington",
                            "west-virginia",
                            "wisconsin",
                            "wyoming"
                        ],
                        "type": "string",
                        "description": "Filter physicians by US state (e.g. new-york, california). Combined with specialty if both are provided."
                    },
                    "includeDetails": {
                        "title": "Include Full Profile Details",
                        "type": "boolean",
                        "description": "When enabled, fetches each physician's full profile page to extract education, certifications, awards, publications, and professional memberships. Slower but more complete data.",
                        "default": false
                    },
                    "maxConcurrency": {
                        "title": "Max Concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum number of parallel requests. Lower this if you get rate-limited.",
                        "default": 5
                    },
                    "requestDelayMs": {
                        "title": "Request Delay (ms)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Milliseconds to wait between requests. Increase if the site rate-limits you.",
                        "default": 500
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
