{
  "openapi": "3.0.1",
  "info": {
    "title": "NPI Registry Scraper - Healthcare Provider Leads",
    "description": "Export US healthcare providers by specialty and location from the official NPPES NPI registry. Street address on every row, phone and fax where registered. Smart geo match keeps every lead in your target area. CSV/JSON.",
    "version": "1.0",
    "x-build-id": "Bho7c3fHY0VRrN5sl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/maydit~us-healthcare-providers-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-maydit-us-healthcare-providers-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/maydit~us-healthcare-providers-scraper/runs": {
      "post": {
        "operationId": "runs-sync-maydit-us-healthcare-providers-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/maydit~us-healthcare-providers-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-maydit-us-healthcare-providers-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": {
          "providerType": {
            "title": "Provider type",
            "enum": [
              "individual",
              "organization"
            ],
            "type": "string",
            "description": "Individual = clinicians (doctors, dentists, nurses, therapists). Organization = clinics, hospitals, group practices, pharmacies.",
            "default": "individual"
          },
          "specialty": {
            "title": "Specialty (taxonomy)",
            "type": "string",
            "description": "Provider specialty / taxonomy description, e.g. 'Cardiovascular Disease', 'Dentist', 'Physical Therapist', 'Dermatology', 'Pharmacy'. Taxonomy codes such as '207N00000X' are not accepted - NPPES refuses them and the run fails with its error message. Leave empty for all."
          },
          "state": {
            "title": "State",
            "type": "string",
            "description": "Two-letter US state code, e.g. 'CA', 'TX', 'NY'. Strongly recommended to narrow results, but NPPES refuses a state on its own - pair it with a specialty, city, ZIP code or name, or the run fails with NPPES's error message."
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "Full city name exactly as registered with NPPES, e.g. 'San Diego' (case-insensitive, no abbreviations). Pair it with State - city names repeat across states, and results are then filtered to addresses actually in that city."
          },
          "postalCode": {
            "title": "ZIP code",
            "type": "string",
            "description": "Full 5-digit ZIP code, e.g. '92101'. Use the complete ZIP - a shorter prefix such as '902' returns nothing, and a wildcard such as '902*' is discarded by the address filter, leaving an empty dataset."
          },
          "firstName": {
            "title": "First name",
            "type": "string",
            "description": "First name of an individual provider, e.g. 'Maria'. NPPES also returns common variants (Maria also matches Mary); add a trailing * for a prefix search, e.g. 'Mari*'."
          },
          "lastName": {
            "title": "Last name",
            "type": "string",
            "description": "Last name of an individual provider, e.g. 'Smith'. It is an exact match - add a trailing * for a prefix search ('Smi*'). NPPES also searches former and professional names, so some rows come back under a different current name."
          },
          "organizationName": {
            "title": "Organization name",
            "type": "string",
            "description": "Organization (NPI-2) name, e.g. 'Kaiser Permanente*'. It is an exact match by default - add a trailing * to match any name starting with your text. Set Provider type to Organization - with Provider type Individual, NPPES refuses the search and the run fails with its error message."
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Upper bound on providers returned per run. Note: the NPI Registry API returns at most 1,200 results per unique query — narrow by specialty + state + city to get everyone in a niche.",
            "default": 500
          },
          "maxRunSeconds": {
            "title": "Max run seconds",
            "minimum": 30,
            "type": "integer",
            "description": "Wall-clock budget for this run, in seconds. When it is reached the Actor stops cleanly and finishes successfully with the rows it already collected, instead of being killed mid-run. At most 6 pages, but the NPI Registry can stall for 30 s on each. Raise it (and the run timeout in Run options) for a deliberately large job.",
            "default": 240
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}