{
  "openapi": "3.0.1",
  "info": {
    "title": "NPPES NPI Healthcare Provider Data Scraper",
    "description": "Scrape US healthcare provider records from the official NPPES NPI Registry. Get NPI number, provider name, specialty, credentials, license, practice address and phone across all 50 states and territories. Export to JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "fj37KMz9O6jynTV5L"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapers_lat~nppes-npi-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapers_lat-nppes-npi-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/scrapers_lat~nppes-npi-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapers_lat-nppes-npi-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/scrapers_lat~nppes-npi-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapers_lat-nppes-npi-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": {
          "maxProviders": {
            "title": "Max providers",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of provider records to collect across all pages. Optional. The NPPES API returns at most around 1200 records per single search query, so for larger pulls narrow your filters (for example add a city or taxonomy)."
          },
          "npiNumbers": {
            "title": "NPI Numbers",
            "type": "array",
            "description": "Look up specific providers by their 10-digit NPI number. When this list is filled, the search filters below are ignored and each NPI is fetched directly. One NPI per line.",
            "items": {
              "type": "string"
            }
          },
          "enumerationType": {
            "title": "Provider Type",
            "enum": [
              "",
              "NPI-1",
              "NPI-2"
            ],
            "type": "string",
            "description": "Restrict the search to individual providers (NPI-1) or organizations (NPI-2). Leave as Any to return both.",
            "default": ""
          },
          "firstName": {
            "title": "First Name",
            "type": "string",
            "description": "Individual provider first name. Supports a trailing wildcard, for example john*."
          },
          "lastName": {
            "title": "Last Name",
            "type": "string",
            "description": "Individual provider last name. Supports a trailing wildcard, for example sm*."
          },
          "organizationName": {
            "title": "Organization Name",
            "type": "string",
            "description": "Organization (NPI-2) name. Supports a trailing wildcard, for example dental*."
          },
          "taxonomyDescription": {
            "title": "Taxonomy / Specialty",
            "type": "string",
            "description": "Provider taxonomy description, that is the medical specialty, for example Dentist, Pharmacy, Internal Medicine, Chiropractor."
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "City of the provider address."
          },
          "state": {
            "title": "State",
            "enum": [
              "",
              "AL",
              "AK",
              "AZ",
              "AR",
              "CA",
              "CO",
              "CT",
              "DE",
              "DC",
              "FL",
              "GA",
              "HI",
              "ID",
              "IL",
              "IN",
              "IA",
              "KS",
              "KY",
              "LA",
              "ME",
              "MD",
              "MA",
              "MI",
              "MN",
              "MS",
              "MO",
              "MT",
              "NE",
              "NV",
              "NH",
              "NJ",
              "NM",
              "NY",
              "NC",
              "ND",
              "OH",
              "OK",
              "OR",
              "PA",
              "RI",
              "SC",
              "SD",
              "TN",
              "TX",
              "UT",
              "VT",
              "VA",
              "WA",
              "WV",
              "WI",
              "WY",
              "AS",
              "GU",
              "MP",
              "PR",
              "VI"
            ],
            "type": "string",
            "description": "Two-letter US state or territory code, for example CA, NY, TX, PR.",
            "default": ""
          },
          "postalCode": {
            "title": "Postal Code",
            "type": "string",
            "description": "US ZIP code. Supports a trailing wildcard, for example 902*."
          },
          "addressPurpose": {
            "title": "Address to match",
            "enum": [
              "",
              "LOCATION",
              "MAILING",
              "PRIMARY",
              "SECONDARY"
            ],
            "type": "string",
            "description": "Which address the City, State and Postal Code filters are matched against. LOCATION is the primary practice address, MAILING is the mailing address, PRIMARY matches the primary practice address, and SECONDARY matches the provider's additional practice locations. Leave as Any to match any address on file.",
            "default": ""
          },
          "namePurpose": {
            "title": "Name search target",
            "enum": [
              "",
              "Provider",
              "AO"
            ],
            "type": "string",
            "description": "For organization (NPI-2) searches, choose whether First Name and Last Name match the provider record or the organization's authorized official. Use Authorized Official to find every organization signed off by a named executive. Leave as Provider for normal searches.",
            "default": ""
          },
          "countryCode": {
            "title": "Country Code",
            "type": "string",
            "description": "Two-letter country code to search providers with a non-US address, for example CA, MX, GB. Leave empty for United States (US)."
          },
          "useFirstNameAlias": {
            "title": "Include first-name aliases",
            "enum": [
              "",
              "True",
              "False"
            ],
            "type": "string",
            "description": "When searching by First Name, also match common nicknames and aliases (for example Bob for Robert). Set to No for exact first-name matching only.",
            "default": ""
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}