Certifyos Npi Validation API

NPI validation operations

Business capability
Practitioner Credentialing BC-2890.10

Operations 1

POST /npi/validate Validate NPI #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/certifyos-npivalidation-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

certifyos-npivalidation-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: API for Certify application
  title: Certify API Layer Npi Validation API
  version: 1.0.0
servers:
- url: http://localhost:9000
  description: Local Development Server
- url: https://api-service.staging.certifyos.com
  description: Staging Server
- url: https://api-service.internal.certifyos.com
  description: Internal Server
- url: https://api-service.test.certifyos.com
  description: Test Server
- url: https://api-service.demo.certifyos.com
  description: Demo Server
- url: https://api-service.certifyos.com
  description: Production Server
tags:
- name: NpiValidation
  description: NPI validation operations
paths:
  /npi/validate:
    post:
      summary: Validate NPI
      description: Validates the NPI format (Luhn checksum), then checks the CertifyOS DAL (sourceType=nppes) using the declared entity type to route to the correct core resource API. Falls back to the live NPPES public registry if not found. 'entityType' is an optional query parameter (case-insensitive); defaults to practitioner when omitted. Status VALID_FOUND_IN_NPPES_BUT_FAILED_CROSSWALK_CREATION indicates the NPI was found in NPPES but the DAL crosswalk upsert failed.
      operationId: validateNpi
      tags:
      - NpiValidation
      parameters:
      - description: 'Entity type of the NPI: practitioner, facility, or group. Case-insensitive. Defaults to PRACTITIONER when omitted. Returns 400 if an unrecognised value is supplied.'
        example: facility
        name: entityType
        in: query
        schema:
          type: string
      - name: tenant-id
        in: header
        schema:
          type: string
      requestBody:
        description: Request object containing the NPI to validate
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NpiValidationRequest'
        required: true
      responses:
        '200':
          description: NPI is valid and found. Status is VALID_AND_FOUND (found in DAL), VALID_FOUND_IN_NPPES (found in live NPPES registry and crosswalk succeeded), or VALID_FOUND_IN_NPPES_BUT_FAILED_CROSSWALK_CREATION (found in live NPPES registry but DAL crosswalk upsert failed).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NpiValidationResponse'
        '400':
          description: 'Bad Request - Malformed request body (missing or null npi field) or unrecognised entityType query parameter value (accepted: practitioner, facility, group — case-insensitive)'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NpiValidationErrorResponse'
        '401':
          description: Unauthorized - Authentication required
        '403':
          description: Forbidden - Insufficient permissions
        '404':
          description: Not Found - NPI is valid but not found in the DAL or the NPPES registry
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NpiValidationErrorResponse'
        '422':
          description: Unprocessable Entity - NPI format is invalid (Luhn check failed), or the declared entityType does not match the enumeration type returned by NPPES (e.g. FACILITY declared but NPI is registered as a Type 1 individual provider)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NpiValidationErrorResponse'
        '503':
          description: Service Unavailable - Live NPPES registry fallback is disabled by configuration (NPI_VALIDATION_NPPES_ENABLED is set to false)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NpiValidationErrorResponse'
      security:
      - jwt: []
components:
  schemas:
    CorePractitionerdatabaseschemaMedicareInner:
      type: object
      properties:
        medicareNumber:
          type: string
        medicareState:
          type: string
        issueDate:
          $ref: '#/components/schemas/Date'
        expirationDate:
          $ref: '#/components/schemas/Date'
        source:
          type: string
        url:
          type: string
        reportDate:
          $ref: '#/components/schemas/Date'
        flaggedDate:
          $ref: '#/components/schemas/Date'
        createdAt:
          $ref: '#/components/schemas/Date'
        createdBy:
          type: string
        updatedAt:
          $ref: '#/components/schemas/Date'
        updatedBy:
          type: string
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/Attachment1'
        verifiedDate:
          $ref: '#/components/schemas/Date'
        verifiedBy:
          type: string
        dataAcquireDate:
          $ref: '#/components/schemas/Date'
        sourceUpdateDate:
          $ref: '#/components/schemas/Date'
        credWorkflowRecordOrigin:
          type: string
    CorePractitionerdataschema:
      type: object
      properties:
        caqhPdqs:
          $ref: '#/components/schemas/CorePractitionerdatabaseschemaCaqhPdqs'
        prefix:
          type: string
        firstName:
          type: string
        caqhPrimaryEmail:
          type: string
        middleName:
          type: string
        lastName:
          type: string
        suffix:
          type: string
        primaryEmail:
          type: string
        npi:
          type: string
        externalId:
          type: string
        enrollmentStartDate:
          $ref: '#/components/schemas/Date'
        reimbursementId:
          type: string
        supervisingPractitionerId:
          type: string
        caqhProviderId:
          type: string
        providerType:
          type: array
          items:
            type: string
        practitionerType:
          type: array
          items:
            type: string
        practitionerSpecializedTraining:
          type: array
          items:
            type: string
        practitionerTypesToCredential:
          type: array
          items:
            type: string
        reviewCompleteDate:
          $ref: '#/components/schemas/Date'
        statesToCredential:
          type: array
          items:
            type: string
        practitionerRoles:
          type: array
          items:
            type: string
        practitionerRolesMap:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PractitionerRolesMapValue'
        lineOfBusiness:
          type: array
          items:
            type: string
        providerId:
          type: string
        dateOfBirth:
          $ref: '#/components/schemas/Date'
        ssn:
          type: string
        gender:
          type: string
        race:
          type: string
        ethnicity:
          type: string
        providerCreatedDate:
          $ref: '#/components/schemas/Date'
        npdbDatabankSubjectId:
          type: string
        npdbDcn:
          type: string
        isDeceased:
          type: boolean
        deceasedDate:
          $ref: '#/components/schemas/Date'
        deceasedExplanation:
          type: string
        lastCredentialedDate:
          $ref: '#/components/schemas/Date'
        lastCredentialingDate:
          $ref: '#/components/schemas/Date'
        nextCredentialingDate:
          $ref: '#/components/schemas/Date'
        initialCredentialingDate:
          $ref: '#/components/schemas/Date'
        dataAcquireDate:
          $ref: '#/components/schemas/Date'
        sourceUpdateDate:
          $ref: '#/components/schemas/Date'
        emails:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaEmailsInner'
        userDefinedFields:
          type: object
          additionalProperties: {}
        delegationStatus:
          $ref: '#/components/schemas/DelegationStatusEnum'
        jurisdictionOfInterest:
          type: string
        businessPurpose:
          $ref: '#/components/schemas/PractitionerBusinessPurpose'
        phoneNumbers:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaPhoneNumbersInner'
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/PractitionerAddressesInner'
        licenses:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaLicensesInner'
        medicaid:
          type: array
          items:
            $ref: '#/components/schemas/PractitionerMedicaidInner'
        malpracticeInsurances:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaMalpracticeInsurancesInner'
        malpracticeInsurance:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaMalpracticeInsuranceInner'
        supportingDocuments:
          type: array
          items:
            $ref: '#/components/schemas/Attachment1'
        boardCertifications:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaBoardCertificationsInner'
        hospitalAffiliations:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaHospitalAffiliationsInner'
        sanctions:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaSanctionsInner'
        sanctionsLineage:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SanctionsLineageValue'
        workHistoryGaps:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaWorkHistoryGapsInner'
        disclosureQuestions:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaDisclosureQuestionsInner'
        nppes:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaNppesInner'
        practiceLocations:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaPracticeLocationsInner'
        languages:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaLanguagesInner'
        licensureActions:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaLicensureActionsInner'
        dea:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaDeaInner'
        cds:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaCdsInner'
        cmsSpecialties:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaCmsSpecialtiesInner'
        npdbReports:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaNpdbReportsInner'
        educationTraining:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaEducationTrainingInner'
        residency:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaResidencyInner'
        education:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaEducationInner'
        cliaCertificates:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaCliaCertificatesInner'
        medicare:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaMedicareInner'
        xRayLicenses:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaXRayLicensesInner'
        specialties:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaSpecialtiesInner'
        appVerifications:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaAppVerificationsInner'
        professionalIds:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaProfessionalIdsInner'
        siteVisits:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaSiteVisitsInner'
        performanceIndicators:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaPerformanceIndicatorsInner'
    MdmStepResult:
      type: object
      properties:
        status:
          type: string
        retryCount:
          type: integer
          format: int32
        matchedEntities:
          type: array
          items:
            type: string
        certifyId:
          type: string
        errorCode:
          type: string
        errorDetails:
          type: string
        message:
          type: string
    CorePractitionerdatabaseschemaNpdbReportsInnerMaintainedUnder:
      type: object
      properties:
        statute:
          type: array
          items:
            type: string
    CorePractitionerdatabaseschemaResidencyInner:
      type: object
      properties:
        schoolName:
          type: string
        credWorkflowRecordOrigin:
          type: string
    CoreFacilitydataschemaLicensesInner:
      type: object
      properties:
        type:
          type: string
        expirationDate:
          $ref: '#/components/schemas/Date'
        issueDate:
          $ref: '#/components/schemas/Date'
        licenseNumber:
          type: string
        state:
          type: string
        licenseType:
          type: string
        licenseStatus:
          type: string
        licenseSource:
          type: string
        reportDate:
          $ref: '#/components/schemas/Date'
        licenseNumberVariations:
          type: string
        flaggedDate:
          $ref: '#/components/schemas/Date'
        dataSource:
          type: string
        url:
          type: string
        createdAt:
          $ref: '#/components/schemas/Date'
        createdBy:
          type: string
        updatedAt:
          $ref: '#/components/schemas/Date'
        updatedBy:
          type: string
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/FacilityAttachment'
        verifiedDate:
          $ref: '#/components/schemas/Date'
        verifiedBy:
          type: string
    NppesMappedProviderDetails:
      description: providerDetails shape for entityType=GROUP or when the upsert fails for practitioner or facility. GROUP bypasses the DAL and always queries the live NPPES registry; no crosswalk upsert is performed. The nppes[] array carries the NPPES-mapped entries with both practitioner-level fields (firstName, lastName, organizationId) and nested addresses/taxonomies.
      examples:
      - npi: '1023950565'
        nppes:
        - npi: '1023950565'
          active: true
          firstName: PAMELA
          middleName: S
          lastName: COKER
          prefix: ''
          suffix: ''
          credential: ''
          gender: ''
          enumerationDate: '2026-04-06'
          lastUpdatedAt: '2026-04-06'
          certificationDate: '2026-04-06'
          enumerationType: '2'
          organizationId: ELEVATE ILLINOIS HOME CARE LLC
          addresses:
          - address1: 9239 KENNETH AVE
            address2: ''
            city: SKOKIE
            state: IL
            postalCode: '600761617'
            addressPurpose: ''
            countryCode: US
            countryName: US
            phone: 773-710-5375
            faxNumber: 773-710-5375
            addressType: mailing
            telephoneNumber: 773-710-5375
          - address1: 9239 KENNETH AVE
            address2: ''
            city: SKOKIE
            state: IL
            postalCode: '600761617'
            addressPurpose: ''
            countryCode: US
            countryName: US
            phone: 773-710-5375
            faxNumber: 773-710-5375
            addressType: practice
            telephoneNumber: 773-710-5375
          taxonomies:
          - code: 253Z00000X
            desc: ''
            license: ''
            primary: true
            state: ''
            taxonomyGroup: ''
          identifiers: []
          id: ''
          providerId: ''
          createdBy: ''
          createdByName: ''
          createdAt: ''
          updatedBy: ''
          updatedAt: ''
          status: ''
          verifiedAt: ''
          verifiedBy: ''
          verifiedDate: ''
          verifiedByName: ''
          source: ''
          credWorkflowRecordOrigin: ''
          otherNames: []
        emails: []
        phoneNumbers: []
        addresses: []
        licenses: []
        npdbReports: []
        certifications: []
        supportingDocuments: []
        insurances: []
        sanctions: []
        specialties: []
        accreditations: []
        siteVisits: []
        medicareStarRatings: []
        appVerifications: []
        performanceIndicators: []
        lineOfBusiness: []
        statesToCredential: []
      type: object
      properties:
        npi:
          type: string
          description: NPI number
          examples:
          - '1023950565'
        nppes:
          type: array
          items:
            $ref: '#/components/schemas/NppesEntry'
          description: NPPES registry entries mapped for this GROUP NPI
        emails:
          type: array
          items: {}
          description: Email addresses on record
        phoneNumbers:
          type: array
          items: {}
          description: Phone numbers on record
        addresses:
          type: array
          items: {}
          description: Addresses on record (top-level; detailed addresses are inside nppes[])
        licenses:
          type: array
          items: {}
          description: Licenses on record
        npdbReports:
          type: array
          items: {}
          description: NPDB reports
        certifications:
          type: array
          items: {}
          description: Certifications
        supportingDocuments:
          type: array
          items: {}
          description: Supporting documents
        insurances:
          type: array
          items: {}
          description: Insurance records
        sanctions:
          type: array
          items: {}
          description: Sanction records
        specialties:
          type: array
          items: {}
          description: Specialties
        accreditations:
          type: array
          items: {}
          description: Accreditations
        siteVisits:
          type: array
          items: {}
          description: Site visits
        medicareStarRatings:
          type: array
          items: {}
          description: Medicare star ratings
        appVerifications:
          type: array
          items: {}
          description: Application verifications
        performanceIndicators:
          type: array
          items: {}
          description: Performance indicators
        lineOfBusiness:
          type: array
          items: {}
          description: Lines of business
        statesToCredential:
          type: array
          items: {}
          description: States to credential in
      title: NppesMappedProviderDetails
    CorePractitionerdatabaseschemaPhoneNumbersInner:
      type: object
      properties:
        phoneNumber:
          type: string
        faxNumber:
          type: string
        type:
          type: string
        source:
          type: string
        createdAt:
          $ref: '#/components/schemas/Date'
        createdBy:
          type: string
        updatedAt:
          $ref: '#/components/schemas/Date'
        updatedBy:
          type: string
        credWorkflowRecordOrigin:
          type: string
    MdmExecutionSummary:
      type: object
      properties:
        stepsExecuted:
          type: array
          items:
            type: string
        stepsSkipped:
          type: array
          items:
            type: string
        stepsFailed:
          type: array
          items:
            type: string
        totalDurationMs:
          type: integer
          format: int64
    CorePractitionerdatabaseschemaSanctionsInner:
      type: object
      properties:
        dateOfReport:
          $ref: '#/components/schemas/Date'
        sanctionType:
          type: string
        typeOfAction:
          type: string
        verifiedBy:
          type: string
        data:
          type: string
        flaggedDate:
          $ref: '#/components/schemas/Date'
        sanctionStartDate:
          $ref: '#/components/schemas/Date'
        exclusionInitiatedBy:
          type: string
        source:
          type: string
        createdAt:
          $ref: '#/components/schemas/Date'
        createdBy:
          type: string
        updatedAt:
          $ref: '#/components/schemas/Date'
        url:
          type: string
        updatedBy:
          type: string
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/Attachment1'
        verifiedDate:
          $ref: '#/components/schemas/Date'
        dataAcquireDate:
          $ref: '#/components/schemas/Date'
        sourceUpdateDate:
          $ref: '#/components/schemas/Date'
        credWorkflowRecordOrigin:
          type: string
    MdmErrorDetail:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        failedStep:
          type: string
    NpiValidationErrorResponse:
      description: Error response for NPI validation
      type: object
      properties:
        status:
          type: integer
          format: int32
          description: HTTP status code
          examples:
          - 400
        error:
          type: string
          description: Error type
          examples:
          - Bad Request
        message:
          type: string
          description: Detailed error message
          examples:
          - Request body must be a valid JSON object with a non-null 'npi' field.
    CorePractitionerdatabaseschemaCaqhPdqsPractitionerProfessionalId:
      type: object
      properties:
        practitionerEcfmg:
          $ref: '#/components/schemas/CorePractitionerdatabaseschemaCaqhPdqsPractitionerProfessionalIdPractitionerEcfmg'
    CorePractitionerdatabaseschemaNppesInnerTaxonomiesInner:
      type: object
      properties:
        code:
          type: string
        desc:
          type: string
        license:
          type: string
        primary:
          type: boolean
        state:
          type: string
        taxonomyGroup:
          type: string
    CorePractitionerdatabaseschemaMalpracticeInsuranceInner:
      type: object
      properties:
        carrierName:
          type: string
        expiryDate:
          $ref: '#/components/schemas/Date'
        effectiveDate:
          $ref: '#/components/schemas/Date'
        flaggedDate:
          $ref: '#/components/schemas/Date'
        source:
          type: string
        status:
          type: string
        policyNumber:
          type: string
        aggregateCoverageAmount:
          type: string
        occuranceCoverageAmount:
          type: string
        verifiedBy:
          type: string
        verifiedDate:
          $ref: '#/components/schemas/Date'
        type:
          type: string
        unlimitedCoverage:
          type: boolean
        createdAt:
          $ref: '#/components/schemas/Date'
        createdBy:
          type: string
        updatedAt:
          $ref: '#/components/schemas/Date'
        updatedBy:
          type: string
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/Attachment1'
        dataAcquireDate:
          $ref: '#/components/schemas/Date'
        sourceUpdateDate:
          $ref: '#/components/schemas/Date'
        credWorkflowRecordOrigin:
          type: string
    JsonNodeType:
      type: string
      enum:
      - ARRAY
      - BINARY
      - BOOLEAN
      - MISSING
      - 'NULL'
      - NUMBER
      - OBJECT
      - POJO
      - STRING
    SanctionsLineageValue:
      type: object
      properties:
        dataAcquireDate:
          $ref: '#/components/schemas/Date'
        sourceUpdateDate:
          $ref: '#/components/schemas/Date'
        fileUrl:
          type: string
        sourceType:
          type: string
        sanctionType:
          type: string
        typeOfAction:
          type: string
        sourceName:
          type: string
    PractitionerAddressesInner:
      type: object
      properties:
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        state:
          type: string
        country:
          type: string
        zipcode:
          type: string
        source:
          type: string
        type:
          type: string
        createdAt:
          $ref: '#/components/schemas/Date'
        createdBy:
          type: string
        updatedAt:
          $ref: '#/components/schemas/Date'
        updatedBy:
          type: string
        credWorkflowRecordOrigin:
          type: string
    CorePractitionerdatabaseschemaNppesInnerAddressesInner:
      type: object
      properties:
        address1:
          type: string
        addressPurpose:
          type: string
        addressType:
          type: string
        city:
          type: string
        countryCode:
          type: string
        countryName:
          type: string
        faxNumber:
          type: string
        postalCode:
          type: string
        state:
          type: string
        telephoneNumber:
          type: string
    CorePractitionerdatabaseschemaNpdbReportsInnerEnrollmentStatus:
      type: object
      properties:
        dataBank:
          type: string
        status:
          type: string
        statusCode:
          type: string
        section1128e:
          type: boolean
        section1921:
          type: boolean
        titleIV:
          type: boolean
        startDate:
          $ref: '#/components/schemas/Date'
        endDate:
          $ref: '#/components/schemas/Date'
    Date:
      type: string
      format: date
    FacilityBusinessPurposeIsForMonitoring:
      type: object
      properties:
        value:
          type: boolean
        reason:
          type: string
    CorePractitionerdatabaseschemaNpdbReportsInnerOtherNameInner:
      type: object
      required:
      - firstName
      - lastName
      properties:
        firstName:
          type: string
        lastName:
          type: string
    CoreFacilitydataschemaNppesInnerAddressesInner:
      type: object
      required:
      - address1
      - addressType
      - city
      - countryCode
      - countryName
      - state
      properties:
        address1:
          type: string
        addressPurpose:
          type: string
        addressType:
          type: string
        city:
          type: string
        countryCode:
          type: string
        countryName:
          type: string
        faxNumber:
          type: string
        postalCode:
          type: string
        state:
          type: string
        telephoneNumber:
          type: string
    CorePractitionerdatabaseschemaPracticeLocationsInner:
      type: object
      properties:
        address1:
          type: string
        address2:
          type: string
        address3:
          type: string
        address4:
          type: string
        city:
          type: string
        county:
          type: string
        country:
          type: string
        state:
          type: string
        zipcode:
          type: string
        healthcareServiceName:
          type: string
        faxNumber:
          type: string
        telephoneNumber:
          type: string
        tin:
          type: string
        npi:
          type: string
        startDate:
          $ref: '#/components/schemas/Date'
        phoneCoverage24x7:
          type: boolean
        totalLocationHours:
          type: number
        locationHours:
          type: array
          items:
            $ref: '#/components/schemas/CorePractitionerdatabaseschemaPracticeLocationsInnerLocationHoursInner'
        drawingBlood:
          type: boolean
        laboratoryServices:
          type: boolean
        cliaNumber:
          type: string
        cliaExpirationDate:
          $ref: '#/components/schemas/Date'
        source:
          type: string
        createdAt:
          $ref: '#/components/schemas/Date'
        createdBy:
          type: string
        updatedAt:
          $ref: '#/components/schemas/Date'
        updatedBy:
          type: string
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/Attachment1'
        verifiedDate:
          $ref: '#/components/schemas/Date'
        verifiedBy:
          type: string
        locationAccessibility:
          $ref: '#/components/schemas/CorePractitionerdatabaseschemaPracticeLocationsInnerLocationAccessibility'
        dataAcquireDate:
          $ref: '#/components/schemas/Date'
        sourceUpdateDate:
          $ref: '#/components/schemas/Date'
        credWorkflowRecordOrigin:
          type: string
    CorePractitionerdatabaseschemaCaqhPdqsPractitionerProfessionalIdPractitionerEcfmg:
      type: object
      properties:
        ecfmgNumber:
          type: string
        ecfmgIssueDate:
          $ref: '#/components/schemas/Date'
    CorePractitionerResponse:
      type: object
      properties:
        certifyId:
          type: string
        crosswalkId:
          type: string
        sourceId:
          type: string
        sourceUrl:
          type: string
        sourceType:
          type: string
        sourceName:
          type: string
        sourceDescription:
          type: string
        sourceTenantId:
          type: string
        sourceTags:
          type: array
          items:
            type: string
        data:
          $ref: '#/components/schemas/CorePractitionerdataschema'
        rawSourceData:
          $ref: '#/components/schemas/JsonNode'
        survivorId:
          type: string
        createdAt:
          $ref: '#/components/schemas/Date'
        updatedAt:
          $ref: '#/components/schemas/Date'
        mdmProcessResult:
          $ref: '#/components/schemas/MdmProcessResponse'
      title: CorePractitionerResponse
    Attachment1:
      type: object
      properties:
        createdAt:
          $ref: '#/components/schemas/Date'
        fileType: {}
        fileUrl:
          type: string
        originalFileName:
          type: string
        state: {}
        expirationDate: {}
        source: {}
        createdBy: {}
        credWorkflowRecordOrigin:
          type: string
    DelegationStatusEnum1:
      type: string
      enum:
      - Delegated
      - Direct
    CorePractitionerdatabaseschemaCaqhPdqsPractitionerSpecialtyOtherSpecialty:
      type: object
      properties:
        listedUnderPPOFlag:
          type: boolean
    CorePractitionerdatabaseschemaSpecialtiesInner:
      type: object
      properties:
        specialty:
          type: string
        subspecialty:
          type: string
        primarySpecialty:
          type: boolean
        source:
          type: string
        type:
          type: string
        createdAt:
          $ref: '#/components/schemas/Date'
        createdBy:
          type: string
        updatedAt:
          $ref: '#/components/schemas/Date'
        updatedBy:
          type: string
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/Attachment1'
        verifiedDate:
          $ref: '#/components/schemas/Date'
        verifiedBy:
          type: string
        taxonomyCode:
          type: string
        classificationSource:
          $ref: '#/components/schemas/ClassificationSourceEnum'
        boardName:
          type: string
        dataAcquireDate:
          $ref: '#/components/schemas/Date'
        sourceUpdateDate:
          $ref: '#/components/schemas/Date'
 

# --- truncated at 32 KB (85 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/certifyos/refs/heads/main/openapi/certifyos-npivalidation-api-openapi.yml