{
  "openapi": "3.0.1",
  "info": {
    "title": "NPPES Provider & Organization Change Monitor",
    "description": "Look up and export official CMS NPPES provider and organization records, then track verified NEW, UPDATED, DEACTIVATED, and REACTIVATED changes from V2 releases.",
    "version": "0.1",
    "x-build-id": "MbtPklOHAvcCv2Qct"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/luminar~nppes-provider-change-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-luminar-nppes-provider-change-monitor",
        "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/luminar~nppes-provider-change-monitor/runs": {
      "post": {
        "operationId": "runs-sync-luminar-nppes-provider-change-monitor",
        "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/luminar~nppes-provider-change-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-luminar-nppes-provider-change-monitor",
        "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": {
          "workflow": {
            "title": "What do you want to do?",
            "enum": [
              "lookup",
              "search",
              "baseline",
              "changes"
            ],
            "type": "string",
            "description": "Lookup is the cheapest default and reconciles exact NPIs with deactivation history. Search uses the current Read API. Snapshot and the first Changes run download the roughly 1.15 GB monthly V2 ZIP, so this Actor reserves 1,024 MB memory and 2,048 MB disk for those workflows. Changes then returns verified later changes from the same scope.",
            "default": "lookup"
          },
          "npis": {
            "title": "NPI numbers",
            "maxItems": 5000,
            "uniqueItems": true,
            "type": "array",
            "description": "Required for exact status checks. Optional in the other workflows as a precise filter. Values are normalized, checksum-validated, and deduplicated before source work.",
            "items": {
              "type": "string",
              "pattern": "^[0-9 -]{10,20}$",
              "maxLength": 20
            }
          },
          "maxResults": {
            "title": "Maximum delivered records or changes",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Search supports 1,200, Snapshot 100,000, and Changes 25,000. Lookup delivers one status row per NPI. This limits delivered rows and price events; it does not make the official monthly ZIP smaller. Reaching a source or buyer boundary reports CAPPED instead of pretending coverage is complete.",
            "default": 25
          },
          "maxBuyerChargeUsd": {
            "title": "Maximum projected Actor charge",
            "minimum": 0.00001,
            "maximum": 5000,
            "type": "number",
            "description": "Stops before official source work when the requested maximum event vector could exceed this Actor-charge ceiling. It is not a promise that the full amount will be used.",
            "default": 5
          },
          "firstName": {
            "title": "Provider first name contains",
            "maxLength": 80,
            "type": "string",
            "description": "Filters NPI-1 records by official first name. Search sends the value to the Read API; Snapshot and Changes apply it while streaming V2 rows."
          },
          "lastName": {
            "title": "Provider last name contains",
            "maxLength": 80,
            "type": "string",
            "description": "Filters NPI-1 records by official last name."
          },
          "organizationName": {
            "title": "Organization name contains",
            "maxLength": 160,
            "type": "string",
            "description": "Filters NPI-2 legal business names. It does not search websites or invent trading names."
          },
          "entityType": {
            "title": "Provider kind",
            "enum": [
              "all",
              "individual",
              "organization"
            ],
            "type": "string",
            "description": "Keeps both entity types or limits results to the official NPI enumeration type. Deactivation-only tombstones remain UNKNOWN unless prior verified state supplies identity.",
            "default": "all"
          },
          "taxonomyCodes": {
            "title": "Taxonomy codes",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Matches official taxonomy codes. Search accepts one source query value; use Snapshot or Changes for several codes in one complete traversal.",
            "items": {
              "type": "string",
              "maxLength": 32
            }
          },
          "states": {
            "title": "Practice or mailing states",
            "maxItems": 64,
            "uniqueItems": true,
            "type": "array",
            "description": "Matches official practice, secondary-practice, or mailing state/territory codes. Search accepts one state; bulk workflows accept several.",
            "items": {
              "type": "string",
              "minLength": 2,
              "maxLength": 3
            }
          },
          "cities": {
            "title": "Practice or mailing cities",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Case-insensitive city match across official addresses. Search accepts one city; bulk workflows accept several.",
            "items": {
              "type": "string",
              "maxLength": 80
            }
          },
          "postalPrefixes": {
            "title": "ZIP or postal prefixes",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Keeps addresses whose official postal code starts with any supplied value.",
            "items": {
              "type": "string",
              "maxLength": 10
            }
          },
          "nameContains": {
            "title": "Any provider or organization name contains",
            "maxLength": 160,
            "type": "string",
            "description": "Bulk-only broad name filter across normalized official individual and organization display names."
          },
          "status": {
            "title": "NPI record status",
            "enum": [
              "all",
              "active",
              "deactivated",
              "reactivated_history"
            ],
            "type": "string",
            "description": "Uses only official NPPES status and lifecycle dates. NPI status is not proof of an active professional license.",
            "default": "all"
          },
          "enumeratedFrom": {
            "title": "Enumerated from",
            "type": "string",
            "description": "Optional inclusive Provider Enumeration Date filter."
          },
          "enumeratedThrough": {
            "title": "Enumerated through",
            "type": "string",
            "description": "Optional inclusive Provider Enumeration Date end."
          },
          "updatedFrom": {
            "title": "Updated from",
            "type": "string",
            "description": "Optional inclusive Last Update Date filter."
          },
          "updatedThrough": {
            "title": "Updated through",
            "type": "string",
            "description": "Optional inclusive Last Update Date end."
          },
          "deactivatedFrom": {
            "title": "Deactivated from",
            "type": "string",
            "description": "Optional inclusive official deactivation-date filter."
          },
          "deactivatedThrough": {
            "title": "Deactivated through",
            "type": "string",
            "description": "Optional inclusive official deactivation-date end."
          },
          "reactivatedFrom": {
            "title": "Reactivated from",
            "type": "string",
            "description": "Optional inclusive official reactivation-date filter."
          },
          "reactivatedThrough": {
            "title": "Reactivated through",
            "type": "string",
            "description": "Optional inclusive official reactivation-date end."
          },
          "outputProfile": {
            "title": "How much official detail?",
            "enum": [
              "core",
              "full"
            ],
            "type": "string",
            "description": "Core returns identity, lifecycle, primary addresses, taxonomies, and provenance. Full also streams official other names, secondary practice locations, endpoints, identifiers, and authorized-official fields; it adds source work but no invented email.",
            "default": "core"
          },
          "asOfDate": {
            "title": "Use releases available through",
            "type": "string",
            "description": "Optional historical cutoff for Snapshot and Changes. The run fails closed if the official index no longer contains a required release; it never guesses a filename."
          },
          "stateNamespace": {
            "title": "Monitoring scope name",
            "pattern": "^[A-Za-z0-9._~-]{1,64}$",
            "maxLength": 64,
            "type": "string",
            "description": "Changes only. Separates intentional watch states. Every result-changing filter and limit is also included automatically, and same-scope runs must be sequential.",
            "default": "default"
          },
          "maxTrackedNpis": {
            "title": "Maximum NPIs kept in monitoring state",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Changes only. Must be at least Maximum delivered records or changes. The state is validated and partitioned before its pointer is committed.",
            "default": 1000
          },
          "maxRequests": {
            "title": "Official request guard",
            "minimum": 1,
            "maximum": 6500,
            "type": "integer",
            "description": "Internal run-wide official CMS request ceiling.",
            "default": 6500
          },
          "maxSourceBytes": {
            "title": "Official transfer guard",
            "minimum": 100000,
            "maximum": 2000000000,
            "type": "integer",
            "description": "Internal run-wide official-source transfer ceiling.",
            "default": 2000000000
          },
          "maxRuntimeSecs": {
            "title": "Source runtime guard",
            "minimum": 30,
            "maximum": 14400,
            "type": "integer",
            "description": "Internal source-work runtime ceiling.",
            "default": 14400
          },
          "maxArchiveCompressedBytes": {
            "title": "Archive compressed-byte guard",
            "minimum": 100000,
            "maximum": 1500000000,
            "type": "integer",
            "description": "Internal per-archive compressed-byte ceiling.",
            "default": 1500000000
          },
          "maxArchiveInflatedBytes": {
            "title": "Archive inflated-byte guard",
            "minimum": 1000000,
            "maximum": 15000000000,
            "type": "integer",
            "description": "Internal combined inflated-byte ceiling.",
            "default": 15000000000
          },
          "maxArchiveEntryBytes": {
            "title": "Archive entry guard",
            "minimum": 1000000,
            "maximum": 12500000000,
            "type": "integer",
            "description": "Internal per-entry Zip64-aware ceiling.",
            "default": 12500000000
          },
          "maxArchiveEntries": {
            "title": "Archive entry-count guard",
            "minimum": 1,
            "maximum": 24,
            "type": "integer",
            "description": "Internal archive-directory fan-out ceiling.",
            "default": 24
          },
          "maxArchiveExpansionRatio": {
            "title": "Archive expansion guard",
            "minimum": 1,
            "maximum": 20,
            "type": "number",
            "description": "Internal inflated-to-compressed ratio ceiling.",
            "default": 20
          },
          "_luminarQaFaultStage": {
            "title": "Private QA fault stage",
            "type": "string",
            "description": "Factory QA only. It fails closed outside the exact registered private QA Actor, key, and immutable build tag."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}