Baton Health GraphQL API Reference

Welcome to Baton Health's GraphQL API! This documentation contains a complete set of GraphQL types, queries, mutations, and their parameters needed to obtain credentialing data. Please note, these are our current PUBLIC endpoints.

API Endpoints
https://api.batonhealth.com/graphql
Headers
# Your API token from the dashboard. Must be included in all API calls.
Authorization: <YOUR_TOKEN_HERE>

Breaking Changes

getPractitioner Query Update (Effective December 1st):

The getPractitioner query will be deprecated on December 1st and will return a new response type: GetPractitionerResponse.

What Changed:

  • Response type changed from Practitioner to GetPractitionerResponse
  • DEA licenses use GetPractitionerDeaLicenseResponse type
  • Exclusions use GetPractitionerExclusionResponse type

Migration Steps:

  1. Update your GraphQL queries to use the new type definitions

Example Query:

query GetPractitioner(: GetPractitionerInput!) {
  getPractitioner(input: ) {
    id
    npi
    fullName
    licenses {
      licenseNumber
      licenseState
      primarySource {
        name
        state
        url
      }
    }
    otherPossibleLicenses {
      licenseNumber
      licenseState
    }
    deaLicenses {
      deaRegistrationNumber
      expirationDate
    }
    exclusions {
      details
      authority
      status
    }
  }
}

For questions about this breaking change, please contact our support team.

API Authentication

To obtain your API Token, please contact a member of our support team. They will assist you with the process and provide the necessary credentials.

Once you have received your API Token, you can access Baton's API by including the token in the "Authorization" header of your requests. The header should be formatted as follows:

Authorization: YOUR_API_TOKEN

Ensure that you replace YOUR_API_TOKEN with the actual token provided to you. This token must be included in all requests to authenticate and authorize access to the API endpoints.

If you encounter any issues or have further questions about authentication, please contact our support team for assistance.

Notes

Data Access Requirements:

DEA License Data: DEA (Drug Enforcement Administration) license information is available for practitioners who are added to your rosters. This sensitive data requires special permissions and is only accessible when:

  1. The practitioner is added to one of your rosters
  2. Your organization has been granted DEA data access permissions
  3. You explicitly request DEA data in your GraphQL query

To access DEA data, include the deaLicenses field in your practitioner query:

query GetRosterItems(: GetRosterItemsInput!) {
  getRosterItems(input: ) {
    items {
      practitioner {
        deaLicenses {
          deaRegistrationNumber
          expirationDate
          activity
          businessActivityDescription
        }
      }
    }
  }
}

If you do not have DEA access permissions, the deaLicenses field will return an empty array.

Exclusion Data: Exclusion information is available for practitioners who are added to your rosters. This includes data from sources like SAM (System for Award Management) and OIG (Office of Inspector General). To access exclusion data, include the exclusions field in your practitioner query:

query GetRosterItems(: GetRosterItemsInput!) {
  getRosterItems(input: ) {
    items {
      practitioner {
        exclusions {
          details
          authority
          status
          effectiveDate
          matchType
          matchDetails
        }
      }
    }
  }
}

Fragment References: Anywhere the documentation notes a "Fragment", please refer to that type definition for all fields that can be included in that request.

Contact our support team if you need additional data access permissions for your organization.

Queries

findLicenses

Description

Search for licenses by practitioner name, license number, or state with pagination and sorting support. Returns license information with basic practitioner details.

This endpoint is useful for finding specific licenses when you have partial information about the practitioner or license.

Response

Returns a PaginatedFindLicensesResponse!

Arguments
Name Description
input - FindLicensesInput! To find licenses, provide filter criteria (firstName, lastName, state, and/or licenseNumber) along with pagination and optional sorting. firstName and lastName filters perform case-insensitive "starts-with" matching.

Example

Query
query FindLicenses($input: FindLicensesInput!) {
  findLicenses(input: $input) {
    items {
      id
      licenseNumber
      licenseType
      licenseState
      fullName
      firstName
      lastName
      statusRaw
      statusMapped
      primarySource
    }
    hasNextPage
    exceededSearchLimit
  }
}
Variables
{
  "input": {
    "filter": {"firstName": "Paul", "lastName": "Skaff", "state": "WV"},
    "pagination": {"skip": 0, "take": 20},
    "order": {"sortBy": "firstName", "sortDirection": "ASC"}
  }
}
Response
{
  "data": {
    "findLicenses": {
      "items": [FindLicensesResponse],
      "hasNextPage": false,
      "exceededSearchLimit": false
    }
  }
}

findPractitioners

Description

Search for practitioners by name or NPI with pagination support. Returns basic practitioner information along with associated licenses and DEA license counts.

Note: DEA license counts are only available for practitioners added to your rosters and require special permissions.

Response

Returns a PaginatedPractitionersResponse!

Arguments
Name Description
input - FindPractitionersInput! To find practitioners, provide filter criteria (NPI, firstName, and/or lastName) and pagination settings. All filters perform case-insensitive searches. firstName and lastName use "starts-with" matching.

Example

Query
query FindPractitioners($input: FindPractitionersInput!) {
  findPractitioners(input: $input) {
    items {
      id
      npi
      fullName
      firstName
      middleName
      lastName
      specialties
      concatenatedLicenseStates
      licenseStatesCount
      activeLicenseStatesCount
      practitionerType
      practitionerSpecialty
      deaCount {
        active
        inactive
      }
      licenses {
        licenseNumber
        licenseType
        licenseState
        fullName
      }
    }
    hasNextPage
    exceededSearchLimit
  }
}
Variables
{
  "input": {
    "filter": {"firstName": "Paul", "lastName": "Skaff"},
    "pagination": {"skip": 0, "take": 20}
  }
}
Response
{
  "data": {
    "findPractitioners": {
      "items": [FindPractitionersResponse],
      "hasNextPage": false,
      "exceededSearchLimit": false
    }
  }
}

getLicense

Description

Retrieves detailed information for a specific license by its ID. This query returns comprehensive license data including practitioner information, primary source details, and all license-related fields.

Response

Returns a License

Arguments
Name Description
input - GetLicenseInput! To retrieve a specific license, provide the license ID.

Example

Query
query GetLicense($input: GetLicenseInput!) {
  getLicense(input: $input) {
    id
    primarySourceId
    licenseNumber
    npi
    professionCode
    degree
    licenseType
    canPrescribe
    renewalDate
    statusEffectiveDate
    hadBoardActionRaw
    hadBoardActionMapped
    scriptId
    deeplink
    screenshotUrl
    businessName
    county
    mailingAddressLine2
    mailingAddressCity
    mailingAddressAreaCode
    mailingAddressPhoneNumber
    mailingAddressPhoneExtension
    practiceLocationAddressLine1
    practiceLocationAddressLine2
    practiceLocationAddressCity
    practiceLocationAddressState
    practiceLocationAddressZipcode
    email
    primaryWorkingSetting
    acceptingNewPatients
    acceptsMedicaid
    translationServicesAvailable
    insurancePlansAccepted
    hospitalAffiliations
    race
    ethnicity
    age
    birthYear
    continuingEducationDueDate
    specialtiesRaw
    refreshTimestamp
    licenseId
    sourceId
    licenseState
    fullName
    suffix
    firstName
    middleName
    lastName
    gender
    issueDate
    expirationDate
    verificationDate
    statusRaw
    practitionerTypeRaw
    practitionerTypeMapped
    mailingAddressLine1
    mailingAddressState
    mailingAddressZipcode
    statusMapped
    specialtiesMapped
    firstNameParsed
    middleNameParsed
    lastNameParsed
    suffixNameParsed
    fullNameParsed
    primarySource {
      organization
      state
      logoUrl
      url
      id
    }
  }
}
Variables
{"input": {"id": "license-123-456-789"}}
Response
{
  "data": {
    "getLicense": {
      "id": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
      "primarySourceId": "wv_lic_004",
      "licenseNumber": "16028",
      "npi": 1962402099,
      "professionCode": "null",
      "degree": "null",
      "licenseType": "MD",
      "canPrescribe": "true",
      "renewalDate": "2024-12-31",
      "statusEffectiveDate": "2023-01-01",
      "hadBoardActionRaw": "unknown",
      "hadBoardActionMapped": "PENDING",
      "scriptId": "null",
      "deeplink": "null",
      "screenshotUrl": "null",
      "businessName": "null",
      "county": "null",
      "mailingAddressLine2": "null",
      "mailingAddressCity": "VERO BEACH",
      "mailingAddressAreaCode": "null",
      "mailingAddressPhoneNumber": "3045453548",
      "mailingAddressPhoneExtension": "null",
      "practiceLocationAddressLine1": "1000 36TH ST",
      "practiceLocationAddressLine2": "null",
      "practiceLocationAddressCity": "VERO BEACH",
      "practiceLocationAddressState": "FL",
      "practiceLocationAddressZipcode": "329604862",
      "email": "null",
      "primaryWorkingSetting": "null",
      "acceptingNewPatients": "unknown",
      "acceptsMedicaid": "unknown",
      "translationServicesAvailable": "unknown",
      "insurancePlansAccepted": "null",
      "hospitalAffiliations": "null",
      "race": "null",
      "ethnicity": "null",
      "age": "null",
      "birthYear": "null",
      "continuingEducationDueDate": "null",
      "specialtiesRaw": "Anesthesiology",
      "refreshTimestamp": "2024-08-10T00:00:00Z",
      "licenseId": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
      "sourceId": "wv_lic_004",
      "licenseState": "WV",
      "fullName": "Paul Alexander Skaff",
      "suffix": "Jr.",
      "firstName": "Paul",
      "middleName": "Alexander",
      "lastName": "Skaff",
      "gender": "M",
      "issueDate": "2020-01-01",
      "expirationDate": "2024-12-31",
      "verificationDate": "2023-08-15",
      "statusRaw": "Active",
      "practitionerTypeRaw": "null",
      "practitionerTypeMapped": "null",
      "mailingAddressLine1": "1000 36TH ST",
      "mailingAddressState": "FL",
      "mailingAddressZipcode": "329604862",
      "statusMapped": "Active",
      "specialtiesMapped": "Anesthesiology",
      "firstNameParsed": "Paul",
      "middleNameParsed": "Alexander",
      "lastNameParsed": "Skaff",
      "suffixNameParsed": "Jr.",
      "fullNameParsed": "Paul Alexander Skaff",
      "primarySource": {
        "organization": "West Virginia Board of Medicine",
        "state": "West Virginia",
        "logoUrl": "https://baton-prd-static-files.s3.amazonaws.com/Seal_of_West_Virginia.svg",
        "url": "https://wvbom.wv.gov/public/search/index.asp",
        "id": "wv_lic_004"
      }
    }
  }
}

getPractitioner

Description

Fetch a single practitioner with comprehensive information including licenses, DEA data, and exclusions.

Response

Returns a GetPractitionerResponse!

Arguments
Name Description
input - GetPractitionerInput! To find a practitioner, GetPractitioner requires an input of filter with NPI. See GetPractitionerInput

Example

Query
query GetPractitioner($input: GetPractitionerInput!) {
  getPractitioner(input: $input) {
    id
    npi
    email
    degree
    suffix
    fullName
    lastName
    firstName
    middleName
    specialties
    businessName
    canPrescribe
    hadBoardAction
    professionCode
    practitionerType
    mailingAddressCity
    mailingAddressLine1
    mailingAddressLine2
    mailingAddressState
    mailingAddressZipcode
    practitionerSpecialty
    mailingAddressPhoneNumber
    practiceLocationAddressCity
    practiceLocationAddressLine1
    practiceLocationAddressLine2
    practiceLocationAddressState
    practiceLocationAddressZipcode
    licenses {
      id
      npi
      email
      county
      degree
      suffix
      deeplink
      fullName
      lastName
      middleName
      firstName
      issueDate
      licenseId
      statusRaw
      licenseType
      renewalDate
      canPrescribe
      licenseState
      statusMapped
      licenseNumber
      screenshotUrl
      expirationDate
      professionCode
      specialtiesRaw
      primarySource {
        id
        url
        state
        deeplink
        name
      }
      refreshTimestamp
      verificationDate
      hadBoardActionRaw
      specialtiesMapped
      mailingAddressCity
      mailingAddressLine1
      mailingAddressLine2
      mailingAddressState
      practitionerTypeRaw
      statusEffectiveDate
      hadBoardActionMapped
      hospitalAffiliations
      mailingAddressZipcode
      mailingAddressAreaCode
      practitionerTypeMapped
      mailingAddressPhoneNumber
      practiceLocationAddressCity
      mailingAddressPhoneExtension
      practiceLocationAddressLine1
      practiceLocationAddressLine2
      practiceLocationAddressState
      practiceLocationAddressZipcode
    }
    deaLicenses {
      id
      city
      state
      degree
      zipCode
      activity
      address1
      address2
      fullName
      paymentCode
      licenseNumber
      expirationDate
      drugScheduleCode
      refreshTimestamp
      businessActivityCode
      additionalCompanyInfo
      deaRegistrationNumber
      paymentCodeDescription
      businessActivitySubCode
      drugScheduleDescription
      businessActivityDescription
      controlledSubstanceLicenseNumber
    }
    exclusions {
      id
      sourceType
      lastUpdatedTs
      url
      fullNameOriginal
      firstNameOriginal
      middleNameOriginal
      lastNameOriginal
      fullNameParsed
      firstNameParsed
      middleNameParsed
      lastNameParsed
      businessName
      address
      address2
      city
      state
      zip
      authority
      effectiveDateOriginal
      endDateOriginal
      effectiveDate
      endDate
      duration
      waiver
      status
      details
      npi
      dea
      medicaidId
      licenseNumber
      affiliation
      specialty
      providerType
      dateOfBirth
      exclusionId
    }
    otherPossibleLicenses {
      id
      npi
      email
      county
      degree
      suffix
      deeplink
      fullName
      lastName
      middleName
      firstName
      issueDate
      licenseId
      statusRaw
      licenseType
      renewalDate
      canPrescribe
      licenseState
      statusMapped
      licenseNumber
      screenshotUrl
      expirationDate
      professionCode
      specialtiesRaw
      primarySource {
        id
        url
        state
        deeplink
        name
      }
      refreshTimestamp
      verificationDate
      hadBoardActionRaw
      specialtiesMapped
      mailingAddressCity
      mailingAddressLine1
      mailingAddressLine2
      mailingAddressState
      practitionerTypeRaw
      statusEffectiveDate
      hadBoardActionMapped
      hospitalAffiliations
      mailingAddressZipcode
      mailingAddressAreaCode
      practitionerTypeMapped
      mailingAddressPhoneNumber
      practiceLocationAddressCity
      mailingAddressPhoneExtension
      practiceLocationAddressLine1
      practiceLocationAddressLine2
      practiceLocationAddressState
      practiceLocationAddressZipcode
    }
  }
}
Variables
{"input": {"filter": {"npi": "1962402099"}}}
Response
{
  "data": {
    "getPractitioner": {
      "id": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
      "npi": 1962402099,
      "email": "null",
      "degree": "null",
      "suffix": "null",
      "fullName": "Paul Alexander Skaff",
      "lastName": "Skaff",
      "firstName": "Paul",
      "middleName": "Alexander",
      "specialties": "Anesthesiology",
      "businessName": "null",
      "canPrescribe": "false",
      "hadBoardAction": "unknown",
      "professionCode": "null",
      "practitionerType": "null",
      "mailingAddressCity": "VERO BEACH",
      "mailingAddressLine1": "1000 36TH ST",
      "mailingAddressLine2": "null",
      "mailingAddressState": "FL",
      "mailingAddressZipcode": "329604862",
      "practitionerSpecialty": "null",
      "mailingAddressPhoneNumber": "3045453548",
      "practiceLocationAddressCity": "VERO BEACH",
      "practiceLocationAddressLine1": "1000 36TH ST",
      "practiceLocationAddressLine2": "null",
      "practiceLocationAddressState": "FL",
      "practiceLocationAddressZipcode": "329604862",
      "licenses": [
        {
          "id": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
          "licenseNumber": "16028",
          "licenseState": "WV"
        },
        {
          "id": "69df08d0-f7af-5487-bd99-ec268567351c",
          "licenseNumber": "141517",
          "licenseState": "FL"
        }
      ],
      "deaLicenses": [GetPractitionerDeaLicenseResponse],
      "exclusions": [GetPractitionerExclusionResponse],
      "otherPossibleLicenses": [
        GetPractitionerLicenseResponse
      ]
    }
  }
}

getPractitionerVerification

Description

Retrieves detailed information for a specific practitioner verification by its ID. This query returns comprehensive verification data including the verification snapshot with practitioner details, licenses, and DEA information.

Arguments
Name Description
input - GetPractitionerVerificationInput! To retrieve a specific practitioner verification, provide the verification ID.

Example

Query
query GetPractitionerVerification($input: GetPractitionerVerificationInput!) {
  getPractitionerVerification(input: $input) {
    id
    practitionerId
    verificationTimeStamp
    verificationSnapshot {
      id
      npi
      email
      degree
      suffix
      fullName
      lastName
      firstName
      middleName
      specialties
      businessName
      canPrescribe
      hadBoardAction
      professionCode
      practitionerType
      mailingAddressCity
      mailingAddressLine1
      mailingAddressLine2
      mailingAddressState
      mailingAddressZipcode
      practitionerSpecialty
      mailingAddressPhoneNumber
      continuingEducationDueDate
      practiceLocationAddressCity
      practiceLocationAddressLine1
      practiceLocationAddressLine2
      practiceLocationAddressState
      practiceLocationAddressZipcode
      licenses {
        id
        npi
        email
        county
        degree
        suffix
        deeplink
        fullName
        lastName
        firstName
        issueDate
        licenseId
        statusRaw
        middleName
        licenseType
        renewalDate
        canPrescribe
        licenseState
        statusMapped
        licenseNumber
        screenshotUrl
        expirationDate
        professionCode
        specialtiesRaw
        primarySourceId
        refreshTimestamp
        verificationDate
        hadBoardActionRaw
        specialtiesMapped
        mailingAddressCity
        mailingAddressLine1
        mailingAddressLine2
        mailingAddressState
        practitionerTypeRaw
        statusEffectiveDate
        hadBoardActionMapped
        hospitalAffiliations
        mailingAddressZipcode
        mailingAddressAreaCode
        practitionerTypeMapped
        mailingAddressPhoneNumber
        continuingEducationDueDate
        practiceLocationAddressCity
        mailingAddressPhoneExtension
        practiceLocationAddressLine1
        practiceLocationAddressLine2
        practiceLocationAddressState
        practiceLocationAddressZipcode
        primarySource {
          ...VerificationSnapshotPrimarySourceFragment
        }
      }
      deaLicenses {
        id
        city
        state
        degree
        zipCode
        activity
        address1
        address2
        fullName
        paymentCode
        licenseNumber
        expirationDate
        practitionerId
        drugScheduleCode
        refreshTimestamp
        businessActivityCode
        additionalCompanyInfo
        deaRegistrationNumber
        paymentCodeDescription
        businessActivitySubCode
        drugScheduleDescription
        businessActivityDescription
        controlledSubstanceLicenseNumber
      }
      exclusions {
        id
        authority
        status
        effectiveDate
        matchType
        matchDetails
        details
      }
    }
    createdById
    createdAt
    updatedAt
  }
}
Variables
{"input": {"id": "1dbd1c0f-38df-4ed5-a0b3-4da465eb9c57"}}
Response
{
  "data": {
    "getPractitionerVerification": {
      "id": "1dbd1c0f-38df-4ed5-a0b3-4da465eb9c57",
      "practitionerId": "9150147f-6b49-56c5-b25c-a2e12ef89ee4",
      "verificationTimeStamp": "2025-10-17T16:55:15.088Z",
      "verificationSnapshot": "PractitionerVerification",
      "createdById": "user-123-456-789",
      "createdAt": "2025-10-17T16:55:15.091Z",
      "updatedAt": "2025-10-17T16:55:15.091Z"
    }
  }
}

getPractitionerVerifications

Description

Retrieves a paginated list of practitioner verifications for the authenticated user's organization. This query allows API users to view all verification records with optional filtering by practitioner details.

Arguments
Name Description
input - GetProviderVerificationsInput! To retrieve practitioner verifications, provide pagination settings and optionally filter by practitioner details. You can filter by practitionerId, firstName, lastName, or NPI to narrow down results.

Example

Query
query GetPractitionerVerifications($input: GetProviderVerificationsInput!) {
  getPractitionerVerifications(input: $input) {
    items {
      id
      verificationTimeStamp
      createdAt
      createdBy {
        firstName
        lastName
        email
      }
      practitioner {
        practitionerId
        firstName
        lastName
        npi
      }
    }
    hasNextPage
    exceededSearchLimit
  }
}
Variables
{
  "input": {
    "pagination": {"skip": 0, "take": 20},
    "filter": {"practitionerId": "9150147f-6b49-56c5-b25c-a2e12ef89ee4"}
  }
}
Response
{
  "data": {
    "getPractitionerVerifications": {
      "items": [PractitionerVerificationItem],
      "hasNextPage": false,
      "exceededSearchLimit": false
    }
  }
}

getRosterItems

Description

Get roster-items (practitioners) associated with a rosterId

DEA Data Access: DEA license information is only available for practitioners who are added to your rosters and requires special permissions. To access DEA data, include the deaLicenses field in your practitioner query. If you do not have DEA access permissions, the deaLicenses field will return an empty array.

Response

Returns a PaginatedRosterItems!

Arguments
Name Description
input - GetRosterItemsInput!

To get a list of practitioners and thier properties inside of a roster, getRosterITems requires an input of pagination as well as a filter. The filter requires rosterId, but can also accept npi and licenseStates to filter results.

Note: DEA license data is only available for rostered practitioners and requires special organizational permissions.

Example

Query
query GetRosterItems($input: GetRosterItemsInput!) {
  getRosterItems(input: $input) {
    items {
      id
      practitionerId
      practitioner {
        id
        npi
        businessName
        fullName
        firstName
        middleName
        lastName
        mailingAddressPhoneNumber
        practiceLocationAddressLine1
        practiceLocationAddressLine2
        practiceLocationAddressCity
        practiceLocationAddressState
        practiceLocationAddressZipcode
        mailingAddressLine1
        mailingAddressLine2
        mailingAddressCity
        mailingAddressState
        mailingAddressZipcode
        professionCode
        degree
        canPrescribe
        email
        primaryWorkingSetting
        acceptingNewPatients
        acceptsMedicaid
        translationServicesAvailable
        insurancePlansAccepted
        hospitalAffiliations
        race
        ethnicity
        age
        birthyear
        continuingEducationDueDate
        specialties
        suffix
        gender
        hadBoardAction
        concatenatedLicenseStates
        activeLicenseStates
        licenseStatesCount
        licenses {
          ...LicenseFragment
        }
        otherPossibleLicenses {
          ...LicenseFragment
        }
        deaLicenses {
          ...DeaFragment
        }
        exclusions {
          ...ExclusionFragment
        }
        practitionerType
        practitionerSpecialty
      }
      rosterId
      createdAt
      updatedAt
    }
    hasNextPage
  }
}
Variables
{
  "input": {
    "pagination": {"skip": "0", "take": "20"},
    "filter": {"rosterId": "6d8098a6-228f-4803-b2c3-28ae2fc15a0b"}
  }
}
Response
{
  "data": {
    "getRosterItems": {
      "items": [
        {
          "id": "468226f9-01c9-4ea2-9d30-c71b6cb02b1e",
          "practitioner": {
            "npi": "1417000233",
            "fullName": "Judd Steuber II",
            "hadBoardAction": null,
            "licenses": [
              {
                "id": "a64e05f3-dae4-46ff-8c1b-3d9c2076d5df",
                "issueDate": "1988-08-17",
                "licenseId": null,
                "licenseNumber": "8827827071",
                "expirationDate": "2025-02-17",
                "licenseState": "CA",
                "licenseType": "Customer Tactics Engineer"
              }
            ],
            "exclusions": [
              {
                "id": "39cb71b9-2d48-5698-8969-73aa0b84a3b1",
                "authority": "",
                "status": "",
                "providerType": "",
                "specialty": "",
                "effectiveDate": "1997-02-03T08:00:00.000Z",
                "npi": "",
                "details": "OPM - Ineligible (Proceedings Completed)",
                "fullNameParsed": "John Smith",
                "fullNameOriginal": "",
                "firstNameOriginal": "JOHN",
                "middleNameOriginal": "",
                "lastNameOriginal": "SMITH",
                "businessName": "",
                "address": "",
                "address2": "",
                "city": "DENVER",
                "state": "CO",
                "zip": "80222",
                "duration": "",
                "lastUpdatedTs": "2025-08-25T00:01:02.703Z",
                "waiver": "",
                "dea": "",
                "medicaidId": "",
                "licenseNumber": "",
                "affiliation": "",
                "endDate": "",
                "dateOfBirth": "",
                "matchType": "Fuzzy",
                "matchDetails": "Name",
                "sourceType": "SAM"
              }
            ]
          }
        },
        {
          "id": "57a33bd6-f8d1-4821-8a5d-080adf414197",
          "practitioner": {
            "npi": "8368177641",
            "fullName": "Ryleigh Wunsch",
            "hadBoardAction": null,
            "licenses": [
              {
                "id": "044c964f-b88a-456a-b7e2-00ab91adfdae",
                "issueDate": "1984-08-17",
                "licenseId": null,
                "licenseNumber": "2080314743",
                "expirationDate": "2026-08-17",
                "licenseState": "AR",
                "licenseType": "Forward Creative Facilitator"
              }
            ],
            "exclusions": []
          }
        }
      ],
      "hasNextPage": true
    }
  }
}

getRosters

Description

Get a list of Rosters

Response

Returns a PaginatedRosters!

Arguments
Name Description
input - GetRostersInput! To get a list of rosters, GetRosters requires an input of pagination. This is to allow returning any number of rosters a team may have.

Example

Query
query GetRosters($input: GetRostersInput!) {
  getRosters(input: $input) {
    items {
      id
      name
      createdAt
      updatedAt
    }
    hasNextPage
  }
}
Variables
{"input": {"pagination": {"skip": "0", "take": "20"}}}
Response
{
  "data": {
    "getRosters": {
      "items": [
        {
          "id": "6d8098a6-228f-4803-b2c3-28ae2fc15a0b",
          "name": "Personal Roster"
        }
      ],
      "hasNextPage": false
    }
  }
}

Mutations

createPractitionerVerification

Description

Creates a practitioner verification record for credentialing purposes. This mutation allows API users to initiate verification processes for practitioners.

Arguments
Name Description
input - CreatePractitionerVerificationInput! To create a practitioner verification, provide the practitioner ID that needs verification.

Example

Query
mutation CreatePractitionerVerification($input: CreatePractitionerVerificationInput!) {
  createPractitionerVerification(input: $input) {
    status {
      success
      message
    }
    id
    practitionerId
    verificationTimeStamp
    createdById
    createdAt
  }
}
Variables
{"input": {"practitionerId": "40a6419b-6a42-5de3-8299-ccb4c85aaff3"}}
Response
{
  "data": {
    "createPractitionerVerification": {
      "status": {
        "success": true,
        "message": "Verification completed successfully"
      },
      "id": "verification-123-456-789",
      "practitionerId": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
      "verificationTimeStamp": "2024-01-15T10:30:00Z",
      "createdById": "user-123-456-789",
      "createdAt": "2024-01-15T10:30:00Z"
    }
  }
}

createRoster

Description

Creates a new roster for the authenticated user's organization.

Response

Returns a RosterResponse!

Arguments
Name Description
input - CreateRosterInput! To create a roster, provide a name and optionally configure sharing settings.

Example

Query
mutation CreateRoster($input: CreateRosterInput!) {
  createRoster(input: $input) {
    id
    name
    createdAt
    updatedAt
  }
}
Variables
{"input": {"name": "My Healthcare Roster"}}
Response
{
  "data": {
    "createRoster": {
      "id": "6d8098a6-228f-4803-b2c3-28ae2fc15a0b",
      "name": "My Healthcare Roster",
      "createdAt": "2024-01-01T12:00:00Z",
      "updatedAt": "2024-01-02T12:00:00Z"
    }
  }
}

createRosterItems

Description

Performs an atomic bulk insert of multiple roster items. If the input exceeds the maximum allowed records of 25, a ForbiddenException is thrown. Returns a success status upon completion.

Response

Returns a CreateRosterItemsResponse!

Arguments
Name Description
input - [CreateRosterItemInput!]! To add roster items, a rosterId and practitionerId is required. The practitionerId is searchable via the getPractitioner query

Example

Query
mutation CreateRosterItems($input: [CreateRosterItemInput!]!) {
  createRosterItems(input: $input) {
    success
  }
}
Variables
{
  "input": [
    {
      "rosterId": "6d8098a6-228f-4803-b2c3-28ae2fc15a0b",
      "practitionerId": "01fc83d8-5878-454a-8914-7414b4aef73d"
    }
  ]
}
Response
{"data": {"createRosterItems": {"success": false}}}

deleteRoster

Description

Permanently deletes a roster and all its associated items. This is a hard delete operation that cascades to all related roster items.

Response

Returns a DeleteRosterResponse!

Arguments
Name Description
input - DeleteRosterInput! To delete a roster, provide the roster ID. This operation cannot be undone.

Example

Query
mutation DeleteRoster($input: DeleteRosterInput!) {
  deleteRoster(input: $input) {
    success
    description
  }
}
Variables
{"input": {"id": "6d8098a6-228f-4803-b2c3-28ae2fc15a0b"}}
Response
{
  "data": {
    "deleteRoster": {
      "success": true,
      "description": "Roster deleted successfully"
    }
  }
}

deleteRosterItems

Description

Performs a bulk deletion of multiple roster items in a single atomic operation. If the input exceeds the maximum allowed records of 25, a ForbiddenException is thrown. Returns a success status upon completion.

Response

Returns a DeleteRosterItemResponse!

Arguments
Name Description
input - DeleteRosterItemInput! To remove practitioners from a roster, provide an array of roster item IDs. Maximum 25 items per operation.

Example

Query
mutation DeleteRosterItems($input: DeleteRosterItemInput!) {
  deleteRosterItems(input: $input) {
    success
  }
}
Variables
{
  "input": {
    "ids": [
      "01fc83d8-5878-454a-8914-7414b4aef73d",
      "02fc83d8-5878-454a-8914-7414b4aef73e"
    ]
  }
}
Response
{"data": {"deleteRosterItems": {"success": true}}}

updateRoster

Description

Updates the name and sharing configuration of an existing roster by its ID.

Response

Returns a RosterResponse!

Arguments
Name Description
input - UpdateRosterInput! To update a roster, provide the roster ID and the fields you want to update.

Example

Query
mutation UpdateRoster($input: UpdateRosterInput!) {
  updateRoster(input: $input) {
    id
    name
    createdAt
    updatedAt
  }
}
Variables
{
  "input": {
    "id": "6d8098a6-228f-4803-b2c3-28ae2fc15a0b",
    "name": "Updated Healthcare Roster"
  }
}
Response
{
  "data": {
    "updateRoster": {
      "id": "6d8098a6-228f-4803-b2c3-28ae2fc15a0b",
      "name": "My Healthcare Roster",
      "createdAt": "2024-01-01T12:00:00Z",
      "updatedAt": "2024-01-02T12:00:00Z"
    }
  }
}

Types

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

CreatePractitionerVerificationInput

Description

Input for creating a practitioner verification.

Fields
Input Field Description
practitionerId - String! The unique identifier of the practitioner to verify.
Example
{"practitionerId": "40a6419b-6a42-5de3-8299-ccb4c85aaff3"}

CreatePractitionerVerificationResponse

Description

Response object for practitioner verification creation.

Fields
Field Name Description
status - VerificationStatus! Status information about the verification process.
id - String! Unique identifier for the created verification record.
practitionerId - String! The practitioner ID that was verified.
verificationTimeStamp - DateTime! Timestamp when the verification was completed.
createdById - String! ID of the user who created the verification.
createdAt - DateTime! Timestamp when the verification record was created.
Example
{
  "status": {"success": true, "message": "Verification completed successfully"},
  "id": "verification-123-456-789",
  "practitionerId": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
  "verificationTimeStamp": "2024-01-15T10:30:00Z",
  "createdById": "user-123-456-789",
  "createdAt": "2024-01-15T10:30:00Z"
}

CreateRosterInput

Fields
Input Field Description
name - String! The name of the roster. No uniqueness constraints are applied to this field.
publicShareConfig - PublicShareConfig Turns Private Rosters to Public, allowing new signups to have immediate access to the roster
privateShareConfig - [PrivateShareConfig!] Turns Public rosters to private, removing existing members, replacing with the members in your request.
Example
{
  "name": "My Healthcare Roster",
  "publicShareConfig": null,
  "privateShareConfig": [null]
}

CreateRosterItemInput

Fields
Input Field Description
rosterId - String! The unique identifier of the associated roster.
practitionerId - String! The unique identifier of the associated practitioner.
Example
{
  "rosterId": "6d8098a6-228f-4803-b2c3-28ae2fc15a0b",
  "practitionerId": "01fc83d8-5878-454a-8914-7414b4aef73d"
}

CreateRosterItemsResponse

Fields
Field Name Description
success - Boolean! Indicates whether the deletion of the roster was successful.
Example
{"success": false}

DateTime

Description

A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format.

Example
"2019-10-07T01:08:03.420Z"

Dea

Description

DEA License Information. Available for practitioners added to your rosters.

Fields
Field Name Description
id - String!
practitionerId - String The unique identifier of the associated practitioner.
deaRegistrationNumber - String DEA registration number issued by the Drug Enforcement Administration.
fullName - String Full name of the practitioner as recorded in DEA records.
firstNameParsed - String First name parsed from DEA records.
middleNameParsed - String Middle name parsed from DEA records.
lastNameParsed - String Last name parsed from DEA records.
licenseNumber - String License number associated with the DEA registration.
activity - String Type of activity the practitioner is authorized for.
businessActivityCode - String Business activity code from DEA records.
businessActivitySubCode - String Business activity sub-code from DEA records.
businessActivityDescription - String Description of the business activity.
additionalCompanyInfo - String Additional company information from DEA records.
paymentCode - String Payment code from DEA records.
paymentCodeDescription - String Description of the payment code.
degree - String Degree information from DEA records.
expirationDate - String Date when the DEA registration expires.
controlledSubstanceLicenseNumber - String Controlled substance license number.
drugScheduleCode - String Drug schedule code from DEA records.
drugScheduleDescription - String Description of the drug schedule.
s3Url - String URL to screenshot of DEA registration in S3.
address1 - String Address line 1 from DEA records.
address2 - String Address line 2 from DEA records.
city - String City from DEA records.
state - String State from DEA records.
zipCode - String ZIP code from DEA records.
refreshTimestamp - String Timestamp when the DEA data was last refreshed.
toDelete - Boolean! Flag indicating if this record is marked for deletion.
Example
{
  "id": "dea-123-456",
  "practitionerId": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
  "deaRegistrationNumber": "AB1234567",
  "fullName": "Dr. John Smith",
  "firstNameParsed": "John",
  "middleNameParsed": "Michael",
  "lastNameParsed": "Smith",
  "licenseNumber": "MD123456",
  "activity": "Practitioner",
  "businessActivityCode": "1",
  "businessActivitySubCode": "A",
  "businessActivityDescription": "Practitioner",
  "additionalCompanyInfo": "null",
  "paymentCode": "null",
  "paymentCodeDescription": "null",
  "degree": "MD",
  "expirationDate": "2025-12-31",
  "controlledSubstanceLicenseNumber": "CS123456",
  "drugScheduleCode": "II",
  "drugScheduleDescription": "Schedule II Controlled Substances",
  "s3Url": "null",
  "address1": "123 Main St",
  "address2": "Suite 100",
  "city": "New York",
  "state": "NY",
  "zipCode": "10001",
  "refreshTimestamp": "2024-08-10T00:00:00Z",
  "toDelete": false
}

DeaCountResponse

Description

DEA license activity counts for a practitioner

Fields
Field Name Description
active - Int! Number of active DEA licenses
inactive - Int! Number of inactive DEA licenses
Example
{"active": 2, "inactive": 1}

DeleteRosterInput

Fields
Input Field Description
id - String! The unique identifier of the roster to be deleted.
Example
{"id": "6d8098a6-228f-4803-b2c3-28ae2fc15a0b"}

DeleteRosterItemInput

Fields
Input Field Description
ids - [String!]! The unique identifiers of the roster items to be deleted. Maximum of 25 items allowed per operation.
Example
{
  "ids": [
    "01fc83d8-5878-454a-8914-7414b4aef73d",
    "02fc83d8-5878-454a-8914-7414b4aef73e"
  ]
}

DeleteRosterItemResponse

Fields
Field Name Description
success - Boolean! Indicates whether the deletion of the roster items was successful.
Example
{"success": true}

DeleteRosterResponse

Fields
Field Name Description
success - Boolean! Indicates whether the deletion of the roster was successful.
description - String Provides an error message when the deletion fails. This field is null when the operation is successful.
Example
{"success": true, "description": "Roster deleted successfully"}

Exclusion

Description

Exclusion information from sources like SAM and OIG. Available for practitioners added to your rosters.

Fields
Field Name Description
id - String!
authority - String
status - String
providerType - String
specialty - String
effectiveDate - DateTime
npi - String
details - String
fullNameParsed - String
fullNameOriginal - String
firstNameOriginal - String
middleNameOriginal - String
lastNameOriginal - String
businessName - String
address - String
address2 - String
city - String
state - String
zip - String
duration - String
lastUpdatedTs - DateTime
waiver - String
dea - String DEA-related information from the exclusion source (not related to DEA licenses).
medicaidId - String
licenseNumber - String
affiliation - String
endDate - String
dateOfBirth - String
practitioners - [Practitioner!]
matchType - String
matchDetails - String
sourceType - ExclusionSource
exclusionPractitionerRelationships - [ExclusionPractitionerRelationship!] Internal relationships between exclusions and practitioners. This field is used internally to determine matchType and matchDetails.
Example
{
  "id": "39cb71b9-2d48-5698-8969-73aa0b84a3b1",
  "authority": "",
  "status": "",
  "providerType": "",
  "specialty": "",
  "effectiveDate": "1997-02-03T08:00:00.000Z",
  "npi": "",
  "details": "OPM - Ineligible (Proceedings Completed)",
  "fullNameParsed": "John Smith",
  "fullNameOriginal": "",
  "firstNameOriginal": "JOHN",
  "middleNameOriginal": "",
  "lastNameOriginal": "SMITH",
  "businessName": "",
  "address": "",
  "address2": "",
  "city": "DENVER",
  "state": "CO",
  "zip": "80222",
  "duration": "",
  "lastUpdatedTs": "2025-08-25T00:01:02.703Z",
  "waiver": "",
  "dea": "null",
  "medicaidId": "",
  "licenseNumber": "",
  "affiliation": "",
  "endDate": "",
  "dateOfBirth": "",
  "practitioners": [Practitioner],
  "matchType": "Fuzzy",
  "matchDetails": "Name",
  "sourceType": "SAM",
  "exclusionPractitionerRelationships": [
    ExclusionPractitionerRelationship
  ]
}

ExclusionPractitionerRelationship

Description

ExclusionPractitionerRelationship

Fields
Field Name Description
id - String!
exclusionId - String! The unique identifier of the exclusion.
practitionerId - String! The unique identifier of the practitioner.
resolutionLevel - String The resolution level for this exclusion-practitioner relationship.
resolutionDetails - String Additional details about the resolution.
Example
{
  "id": "rel-123-456",
  "exclusionId": "39cb71b9-2d48-5698-8969-73aa0b84a3b1",
  "practitionerId": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
  "resolutionLevel": "Fuzzy",
  "resolutionDetails": "Name"
}

ExclusionSource

Description

Defines the Source in which Exclusion is originated from

Values
Enum Value Description

OIG

SAM

Example
"OIG"

FindLicensesFilterInput

Description

Filter criteria for findLicenses query

Fields
Input Field Description
firstName - String Practitioner first name. Performs case-insensitive "starts-with" search.
lastName - String Practitioner last name. Performs case-insensitive "starts-with" search.
state - String Two-letter state code where the license was issued.
licenseNumber - String License number for exact matching.
Example
{
  "firstName": "Paul",
  "lastName": "Skaff",
  "state": "WV",
  "licenseNumber": "16028"
}

FindLicensesInput

Description

Input for finding licenses with filtering, pagination, and sorting

Fields
Input Field Description
filter - FindLicensesFilterInput Filter criteria for finding licenses. firstName and lastName perform case-insensitive "starts-with" search.
pagination - PaginationInput! Pagination settings
order - FindLicensesOrderInput Optional sorting configuration
Example
{
  "filter": {"firstName": "Paul", "lastName": "Skaff", "state": "WV"},
  "pagination": {"skip": 0, "take": 20},
  "order": {"sortBy": "firstName", "sortDirection": "ASC"}
}

FindLicensesOrderInput

Description

Sort configuration for findLicenses query

Fields
Input Field Description
sortBy - FindLicensesSortBy Field to sort by
sortDirection - SortDirection Sort direction (ascending or descending)
Example
{"sortBy": "firstName", "sortDirection": "ASC"}

FindLicensesResponse

Description

Response type for findLicenses query. Returns license information with basic practitioner details.

Fields
Field Name Description
id - String!
licenseNumber - String
licenseType - String
licenseState - String
fullName - String
firstName - String
lastName - String
statusRaw - String
statusMapped - String
primarySource - String
Example
{
  "id": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
  "licenseNumber": "16028",
  "licenseType": "MD",
  "licenseState": "WV",
  "fullName": "Paul Alexander Skaff",
  "firstName": "Paul",
  "lastName": "Skaff",
  "statusRaw": "Active",
  "statusMapped": "Active",
  "primarySource": "West Virginia Board of Medicine"
}

FindLicensesSortBy

Description

Available fields for sorting licenses

Values
Enum Value Description

firstName

Sort by practitioner first name

lastName

Sort by practitioner last name

licenseState

Sort by license state

licenseType

Sort by license type
Example
"firstName"

FindPractitionersFilterInput

Description

Filter criteria for findPractitioners query

Fields
Input Field Description
npi - String National Provider Identifier. Must be exactly 10 digits.
firstName - String Practitioner first name. Performs case-insensitive "starts-with" search.
lastName - String Practitioner last name. Performs case-insensitive "starts-with" search.
Example
{"npi": "1962402099", "firstName": "Paul", "lastName": "Skaff"}

FindPractitionersInput

Description

Input for finding practitioners by name or NPI

Fields
Input Field Description
filter - FindPractitionersFilterInput Filter criteria for finding practitioners
pagination - PaginationInput! Pagination settings
Example
{
  "filter": {"firstName": "Paul", "lastName": "Skaff"},
  "pagination": {"skip": 0, "take": 20}
}

FindPractitionersLicenses

Description

License information returned with findPractitioners response

Fields
Field Name Description
licenseNumber - String
licenseType - String
licenseState - String
fullName - String
Example
{
  "licenseNumber": "16028",
  "licenseType": "MD",
  "licenseState": "WV",
  "fullName": "Paul Alexander Skaff"
}

FindPractitionersResponse

Description

Response type for findPractitioners query. Returns practitioner information with associated licenses and DEA license counts.

Fields
Field Name Description
id - String!
npi - Float
fullName - String
firstName - String
middleName - String
lastName - String
specialties - String
concatenatedLicenseStates - String
licenseStatesCount - String
activeLicenseStatesCount - Float
practitionerType - String
practitionerSpecialty - String
deaCount - DeaCountResponse DEA license counts. Only available for rostered practitioners with DEA access permissions.
licenses - [FindPractitionersLicenses!] List of licenses associated with this practitioner.
Example
{
  "id": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
  "npi": 1962402099,
  "fullName": "Paul Alexander Skaff",
  "firstName": "Paul",
  "middleName": "Alexander",
  "lastName": "Skaff",
  "specialties": "Anesthesiology",
  "concatenatedLicenseStates": "FL, SC, WV",
  "licenseStatesCount": "3",
  "activeLicenseStatesCount": 2,
  "practitionerType": "Physician",
  "practitionerSpecialty": "Anesthesiology",
  "deaCount": DeaCountResponse,
  "licenses": [FindPractitionersLicenses]
}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

GetLicenseInput

Description

Input for retrieving a specific license by ID.

Fields
Input Field Description
id - String! The unique identifier of the license to retrieve.
Example
{"id": "license-123-456-789"}

GetPractitionerDeaLicenseResponse

Description

Returns DEA license information for a practitioner in the getPractitioner response. DEA information is only available for practitioners added to your rosters and requires special permissions.

Fields
Field Name Description
id - String
city - String
state - String
degree - String
zipCode - String
activity - String
address1 - String
address2 - String
fullName - String
paymentCode - String
licenseNumber - String
expirationDate - String
drugScheduleCode - String
refreshTimestamp - String
businessActivityCode - String
additionalCompanyInfo - String
deaRegistrationNumber - String
paymentCodeDescription - String
businessActivitySubCode - String
drugScheduleDescription - String
businessActivityDescription - String
controlledSubstanceLicenseNumber - String
Example
{
  "id": "dea-123-456",
  "city": "Charleston",
  "state": "WV",
  "degree": "MD",
  "zipCode": "25301",
  "activity": "A",
  "address1": "123 Main St",
  "address2": "Suite 100",
  "fullName": "Dr. John Smith",
  "paymentCode": "1",
  "licenseNumber": "MD123456",
  "expirationDate": "2025-08-31",
  "drugScheduleCode": "22N",
  "refreshTimestamp": "2024-08-10T00:00:00Z",
  "businessActivityCode": "C",
  "additionalCompanyInfo": "null",
  "deaRegistrationNumber": "AB1234567",
  "paymentCodeDescription": "Non-Renewal",
  "businessActivitySubCode": "null",
  "drugScheduleDescription": "Schedules 2, 2N, 3, 3N, 4, 5",
  "businessActivityDescription": "Practitioner",
  "controlledSubstanceLicenseNumber": "null"
}

GetPractitionerExclusionResponse

Description

Returns exclusion information for a practitioner in the getPractitioner response. Exclusions are from sources like SAM (System for Award Management) and OIG (Office of Inspector General). Available for practitioners added to your rosters.

Fields
Field Name Description
id - String
sourceType - ExclusionSource
lastUpdatedTs - String
url - String
fullNameOriginal - String
firstNameOriginal - String
middleNameOriginal - String
lastNameOriginal - String
fullNameParsed - String
firstNameParsed - String
middleNameParsed - String
lastNameParsed - String
businessName - String
address - String
address2 - String
city - String
state - String
zip - String
authority - String
effectiveDateOriginal - String
endDateOriginal - String
effectiveDate - String
endDate - String
duration - String
waiver - String
status - String
details - String
npi - String
dea - String DEA-related information from the exclusion source (not related to DEA licenses).
medicaidId - String
licenseNumber - String
affiliation - String
specialty - String
providerType - String
dateOfBirth - String
exclusionId - String
Example
{
  "id": "39cb71b9-2d48-5698-8969-73aa0b84a3b1",
  "sourceType": "SAM",
  "lastUpdatedTs": "2025-08-25T00:01:02.703Z",
  "url": "null",
  "fullNameOriginal": "JOHN SMITH",
  "firstNameOriginal": "JOHN",
  "middleNameOriginal": "",
  "lastNameOriginal": "SMITH",
  "fullNameParsed": "John Smith",
  "firstNameParsed": "John",
  "middleNameParsed": "",
  "lastNameParsed": "Smith",
  "businessName": "",
  "address": "",
  "address2": "",
  "city": "DENVER",
  "state": "CO",
  "zip": "80222",
  "authority": "",
  "effectiveDateOriginal": "02/03/1997",
  "endDateOriginal": "",
  "effectiveDate": "1997-02-03",
  "endDate": "",
  "duration": "",
  "waiver": "",
  "status": "",
  "details": "OPM - Ineligible (Proceedings Completed)",
  "npi": "",
  "dea": "null",
  "medicaidId": "",
  "licenseNumber": "",
  "affiliation": "",
  "specialty": "",
  "providerType": "",
  "dateOfBirth": "",
  "exclusionId": "39cb71b9-2d48-5698-8969-73aa0b84a3b1"
}

GetPractitionerFilterInput

Fields
Input Field Description
npi - String! Pass a practitioner's NPI
Example
{"npi": "1962402099"}

GetPractitionerInput

Fields
Input Field Description
filter - GetPractitionerFilterInput! GetPractitioner requires a filter that uses NPI.
Example
{"filter": {"npi": "1962402099"}}

GetPractitionerLicenseResponse

Description

Returns License information for a practitioner in the getPractitioner response. This is a streamlined version of the License type containing only fields returned by getPractitioner.

Fields
Field Name Description
id - String!
npi - Float
email - String
county - String
degree - String
suffix - String
deeplink - String
fullName - String
lastName - String
middleName - String
firstName - String
issueDate - String
licenseId - String
statusRaw - String
licenseType - String
renewalDate - String
canPrescribe - String
licenseState - String
statusMapped - String
licenseNumber - String
screenshotUrl - String
expirationDate - String
professionCode - String
specialtiesRaw - String
primarySource - GetPractitionerPrimarySourceResponse Primary source information for this license. Uses the new GetPractitionerPrimarySourceResponse type.
refreshTimestamp - String
verificationDate - String
hadBoardActionRaw - String
specialtiesMapped - String
mailingAddressCity - String
mailingAddressLine1 - String
mailingAddressLine2 - String
mailingAddressState - String
practitionerTypeRaw - String
statusEffectiveDate - String
hadBoardActionMapped - String
hospitalAffiliations - String
mailingAddressZipcode - String
mailingAddressAreaCode - String
practitionerTypeMapped - String
mailingAddressPhoneNumber - String
practiceLocationAddressCity - String
mailingAddressPhoneExtension - String
practiceLocationAddressLine1 - String
practiceLocationAddressLine2 - String
practiceLocationAddressState - String
practiceLocationAddressZipcode - String
Example
{
  "id": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
  "npi": 1962402099,
  "email": "null",
  "county": "null",
  "degree": "null",
  "suffix": "null",
  "deeplink": "null",
  "fullName": "Paul Alexander Skaff",
  "lastName": "Skaff",
  "middleName": "Alexander",
  "firstName": "Paul",
  "issueDate": "2023-01-01",
  "licenseId": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
  "statusRaw": "Active",
  "licenseType": "MD",
  "renewalDate": "2024-12-31",
  "canPrescribe": "true",
  "licenseState": "WV",
  "statusMapped": "Active",
  "licenseNumber": "16028",
  "screenshotUrl": "null",
  "expirationDate": "2025-12-31",
  "professionCode": "null",
  "specialtiesRaw": "Anesthesiology",
  "primarySource": {
    "id": "wv_lic_004",
    "name": "West Virginia Board of Medicine",
    "state": "West Virginia",
    "url": "https://wvbom.wv.gov/public/search/index.asp"
  },
  "refreshTimestamp": "2024-08-10T00:00:00Z",
  "verificationDate": "2024-08-10",
  "hadBoardActionRaw": "unknown",
  "specialtiesMapped": "Anesthesiology",
  "mailingAddressCity": "VERO BEACH",
  "mailingAddressLine1": "1000 36TH ST",
  "mailingAddressLine2": "null",
  "mailingAddressState": "FL",
  "practitionerTypeRaw": "null",
  "statusEffectiveDate": "2023-01-01",
  "hadBoardActionMapped": "PENDING",
  "hospitalAffiliations": "null",
  "mailingAddressZipcode": "329604862",
  "mailingAddressAreaCode": "null",
  "practitionerTypeMapped": "null",
  "mailingAddressPhoneNumber": "3045453548",
  "practiceLocationAddressCity": "VERO BEACH",
  "mailingAddressPhoneExtension": "null",
  "practiceLocationAddressLine1": "1000 36TH ST",
  "practiceLocationAddressLine2": "null",
  "practiceLocationAddressState": "FL",
  "practiceLocationAddressZipcode": "329604862"
}

GetPractitionerPrimarySourceResponse

Description

Returns Primary Source information for a license. This type is used in the getPractitioner response.

Fields
Field Name Description
id - String
url - String
state - String
deeplink - String
name - String! The name of the licensing organization (e.g., "West Virginia Board of Medicine").
Example
{
  "id": "wv_lic_004",
  "url": "https://wvbom.wv.gov/public/search/index.asp",
  "state": "West Virginia",
  "deeplink": "null",
  "name": "West Virginia Board of Medicine"
}

GetPractitionerResponse

Description

Response type for the getPractitioner query. Returns comprehensive practitioner information including licenses, DEA data, exclusions, and possible alternate licenses.

Fields
Field Name Description
id - String!
npi - Float
email - String
degree - String
suffix - String
fullName - String
lastName - String
firstName - String
middleName - String
specialties - String
businessName - String
canPrescribe - String
hadBoardAction - String
professionCode - String
practitionerType - String
mailingAddressCity - String
mailingAddressLine1 - String
mailingAddressLine2 - String
mailingAddressState - String
mailingAddressZipcode - String
practitionerSpecialty - String
mailingAddressPhoneNumber - String
practiceLocationAddressCity - String
practiceLocationAddressLine1 - String
practiceLocationAddressLine2 - String
practiceLocationAddressState - String
practiceLocationAddressZipcode - String
licenses - [GetPractitionerLicenseResponse!] List of licenses associated with this practitioner. Uses GetPractitionerLicenseResponse type with updated structure.
deaLicenses - [GetPractitionerDeaLicenseResponse!] DEA licenses associated with this practitioner. Only available for rostered practitioners and requires special permissions. Uses GetPractitionerDeaLicenseResponse type.
exclusions - [GetPractitionerExclusionResponse!] Exclusion records associated with this practitioner. Available for practitioners added to your rosters. Uses GetPractitionerExclusionResponse type.
otherPossibleLicenses - [GetPractitionerLicenseResponse!] Other possible licenses that may belong to this practitioner based on name matching. This field is now included directly in the response (previously a resolver field). Uses GetPractitionerLicenseResponse type.
Example
{
  "id": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
  "npi": 1962402099,
  "email": "null",
  "degree": "null",
  "suffix": "null",
  "fullName": "Paul Alexander Skaff",
  "lastName": "Skaff",
  "firstName": "Paul",
  "middleName": "Alexander",
  "specialties": "Anesthesiology",
  "businessName": "null",
  "canPrescribe": "false",
  "hadBoardAction": "unknown",
  "professionCode": "null",
  "practitionerType": "null",
  "mailingAddressCity": "VERO BEACH",
  "mailingAddressLine1": "1000 36TH ST",
  "mailingAddressLine2": "null",
  "mailingAddressState": "FL",
  "mailingAddressZipcode": "329604862",
  "practitionerSpecialty": "null",
  "mailingAddressPhoneNumber": "3045453548",
  "practiceLocationAddressCity": "VERO BEACH",
  "practiceLocationAddressLine1": "1000 36TH ST",
  "practiceLocationAddressLine2": "null",
  "practiceLocationAddressState": "FL",
  "practiceLocationAddressZipcode": "329604862",
  "licenses": [
    {
      "id": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
      "licenseNumber": "16028",
      "licenseState": "WV"
    },
    {
      "id": "69df08d0-f7af-5487-bd99-ec268567351c",
      "licenseNumber": "141517",
      "licenseState": "FL"
    }
  ],
  "deaLicenses": [GetPractitionerDeaLicenseResponse],
  "exclusions": [GetPractitionerExclusionResponse],
  "otherPossibleLicenses": [
    GetPractitionerLicenseResponse
  ]
}

GetPractitionerVerificationInput

Description

Input for retrieving a specific practitioner verification by ID.

Fields
Input Field Description
id - String! The unique identifier of the verification to retrieve.
Example
{"id": "1dbd1c0f-38df-4ed5-a0b3-4da465eb9c57"}

GetPractitionerVerificationResponse

Description

Response object for retrieving a specific practitioner verification.

Fields
Field Name Description
id - String! Unique identifier for the verification record.
practitionerId - String! The practitioner ID that was verified.
verificationTimeStamp - DateTime! Timestamp when the verification was completed.
verificationSnapshot - PractitionerVerification! Comprehensive verification snapshot containing practitioner details, licenses, and DEA information. This JSON object includes all the data that was captured at the time of verification.
createdById - String! ID of the user who created the verification.
createdAt - DateTime! Timestamp when the verification record was created.
updatedAt - DateTime! Timestamp when the verification record was last updated.
Example
{
  "id": "1dbd1c0f-38df-4ed5-a0b3-4da465eb9c57",
  "practitionerId": "9150147f-6b49-56c5-b25c-a2e12ef89ee4",
  "verificationTimeStamp": "2025-10-17T16:55:15.088Z",
  "verificationSnapshot": "PractitionerVerification",
  "createdById": "user-123-456-789",
  "createdAt": "2025-10-17T16:55:15.091Z",
  "updatedAt": "2025-10-17T16:55:15.091Z"
}

GetPractitionerVerificationsResponse

Description

Response object for retrieving practitioner verifications.

Fields
Field Name Description
items - [PractitionerVerificationItem!]! List of practitioner verification records.
hasNextPage - Boolean! Indicates whether there are more records available beyond the current page.
exceededSearchLimit - Boolean Indicates whether the search exceeded the maximum limit and results were truncated.
Example
{
  "items": [PractitionerVerificationItem],
  "hasNextPage": false,
  "exceededSearchLimit": false
}

GetProviderVerificationsFilterInput

Description

Filter criteria for practitioner verification queries.

Fields
Input Field Description
firstName - String Filter by practitioner's first name.
lastName - String Filter by practitioner's last name.
practitionerId - String Filter by practitioner ID.
npi - String Filter by practitioner's NPI number.
rosterId - String Filter by roster ID (optional).
Example
{
  "firstName": "Alexandra",
  "lastName": "Rochman",
  "practitionerId": "9150147f-6b49-56c5-b25c-a2e12ef89ee4",
  "npi": "1871122168",
  "rosterId": "roster-123-456-789"
}

GetProviderVerificationsInput

Description

Input for querying practitioner verifications.

Fields
Input Field Description
pagination - PaginationInput! Pagination settings for the query results.
filter - GetProviderVerificationsFilterInput Optional filter criteria to narrow down the results.
order - GetProviderVerificationsOrderInput Optional ordering criteria for the results.
Example
{
  "pagination": PaginationInput,
  "filter": GetProviderVerificationsFilterInput,
  "order": GetProviderVerificationsOrderInput
}

GetProviderVerificationsOrderInput

Description

Ordering criteria for practitioner verification queries.

Fields
Input Field Description
sortBy - ProviderVerificationsSortBy Field to sort by.
sortDirection - SortDirection Sort direction.
Example
{"sortBy": "verificationTimeStamp", "sortDirection": "DESC"}

GetRosterItemsFilterInput

Fields
Input Field Description
rosterId - String! The unique identifier of the roster to filter the roster items by. This field is required.
npi - String The National Provider Identifier (NPI) of the practitioner. Must be exactly 10 characters long.
licenseStates - [String!] A list of license states to filter the roster items by. Only items matching these states will be included in the results.
Example
{
  "rosterId": "6d8098a6-228f-4803-b2c3-28ae2fc15a0b",
  "npi": "1417000233",
  "licenseStates": ["CA", "AZ", "AR"]
}

GetRosterItemsInput

Fields
Input Field Description
filter - GetRosterItemsFilterInput
pagination - PaginationInput!
Example
{
  "filter": {"rosterId": "6d8098a6-228f-4803-b2c3-28ae2fc15a0b"},
  "pagination": {"skip": "0", "take": "20"}
}

GetRostersInput

Fields
Input Field Description
pagination - PaginationInput!
Example
{"pagination": {"skip": "0", "take": "20"}}

HadBoardActionMapped

Values
Enum Value Description

TRUE

FALSE

UNKNOWN

PENDING

Example
"TRUE"

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
123

License

Description

Licenses

Fields
Field Name Description
id - String!
primarySourceId - String Baton Generated ID of a primary source.
licenseNumber - String
npi - Float Practitioner individual NPI number.
professionCode - String Profession code states use to identify the type of license being issued by a state licensing board.
degree - String Degree earned at an educational institution.
licenseType - String
canPrescribe - String Practitioner is licensed to prescribe. Designated issued by certain state (FL).
renewalDate - String License renewal date. Some states use this as a date that licenses must be renewed by and may be different than the actual expiration date.
statusEffectiveDate - String License effective date. This is not to be confused with the issue date and should only be mapped as such when an issue date has already been mapped.
hadBoardActionRaw - String Indicates whether a board action is present as a raw value.
hadBoardActionMapped - HadBoardActionMapped Indicates whether a board action is present as a mapped value.
scriptId - String Baton generated ID of the script that created the record.
deeplink - String URL pattern with merge tags to dynamically generate a deeplink to the primary source.
screenshotUrl - String System generated URL of the screenshot hosted in S3 of the provider license at time of scrape.
businessName - String Name of business or practice that is either the licensed entity or the business or practice the licensed practitioner works for.
county - String County of primary practice address.
mailingAddressLine2 - String
mailingAddressCity - String
mailingAddressAreaCode - String
mailingAddressPhoneNumber - String
mailingAddressPhoneExtension - String
practiceLocationAddressLine1 - String
practiceLocationAddressLine2 - String
practiceLocationAddressCity - String
practiceLocationAddressState - String
practiceLocationAddressZipcode - String
email - String
primaryWorkingSetting - String
acceptingNewPatients - String
acceptsMedicaid - String
translationServicesAvailable - String
insurancePlansAccepted - String
hospitalAffiliations - String
race - String
ethnicity - String
age - String
birthYear - String
continuingEducationDueDate - String
specialtiesRaw - String
refreshTimestamp - String Timestamp from when data was last scraped and ingested to the platform.
licenseId - String Unique ID number issued by some states. This is not the same as the License Number.
sourceId - String Baton Generated ID of a primary source.
licenseState - String
fullName - String
suffix - String
firstName - String
middleName - String
lastName - String
gender - String
issueDate - String Date license was originally issued.
expirationDate - String Date license is currently scheduled to expire.
verificationDate - String Freshness date provided by primary source.
statusRaw - String Status of a license at time of verification.
practitionerTypeRaw - String
practitionerTypeMapped - String
mailingAddressLine1 - String
mailingAddressState - String
mailingAddressZipcode - String
statusMapped - String Status of a license at time of verification.
specialtiesMapped - String
firstNameParsed - String
middleNameParsed - String
lastNameParsed - String
suffixNameParsed - String
fullNameParsed - String
primarySource - PrimarySourceExtension
Example
{
  "id": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
  "primarySourceId": "wv_lic_004",
  "licenseNumber": "16028",
  "npi": 1962402099,
  "professionCode": "null",
  "degree": "null",
  "licenseType": "MD",
  "canPrescribe": "true",
  "renewalDate": "2024-12-31",
  "statusEffectiveDate": "2023-01-01",
  "hadBoardActionRaw": "unknown",
  "hadBoardActionMapped": "PENDING",
  "scriptId": "null",
  "deeplink": "null",
  "screenshotUrl": "null",
  "businessName": "null",
  "county": "null",
  "mailingAddressLine2": "null",
  "mailingAddressCity": "VERO BEACH",
  "mailingAddressAreaCode": "null",
  "mailingAddressPhoneNumber": "3045453548",
  "mailingAddressPhoneExtension": "null",
  "practiceLocationAddressLine1": "1000 36TH ST",
  "practiceLocationAddressLine2": "null",
  "practiceLocationAddressCity": "VERO BEACH",
  "practiceLocationAddressState": "FL",
  "practiceLocationAddressZipcode": "329604862",
  "email": "null",
  "primaryWorkingSetting": "null",
  "acceptingNewPatients": "unknown",
  "acceptsMedicaid": "unknown",
  "translationServicesAvailable": "unknown",
  "insurancePlansAccepted": "null",
  "hospitalAffiliations": "null",
  "race": "null",
  "ethnicity": "null",
  "age": "null",
  "birthYear": "null",
  "continuingEducationDueDate": "null",
  "specialtiesRaw": "Anesthesiology",
  "refreshTimestamp": "2024-08-10T00:00:00Z",
  "licenseId": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
  "sourceId": "wv_lic_004",
  "licenseState": "WV",
  "fullName": "Paul Alexander Skaff",
  "suffix": "Jr.",
  "firstName": "Paul",
  "middleName": "Alexander",
  "lastName": "Skaff",
  "gender": "M",
  "issueDate": "2020-01-01",
  "expirationDate": "2024-12-31",
  "verificationDate": "2023-08-15",
  "statusRaw": "Active",
  "practitionerTypeRaw": "null",
  "practitionerTypeMapped": "null",
  "mailingAddressLine1": "1000 36TH ST",
  "mailingAddressState": "FL",
  "mailingAddressZipcode": "329604862",
  "statusMapped": "Active",
  "specialtiesMapped": "Anesthesiology",
  "firstNameParsed": "Paul",
  "middleNameParsed": "Alexander",
  "lastNameParsed": "Skaff",
  "suffixNameParsed": "Jr.",
  "fullNameParsed": "Paul Alexander Skaff",
  "primarySource": {
    "organization": "West Virginia Board of Medicine",
    "state": "West Virginia",
    "logoUrl": "https://baton-prd-static-files.s3.amazonaws.com/Seal_of_West_Virginia.svg",
    "url": "https://wvbom.wv.gov/public/search/index.asp",
    "id": "wv_lic_004"
  }
}

PaginatedFindLicensesResponse

Fields
Field Name Description
items - [FindLicensesResponse!]!
hasNextPage - Boolean!
exceededSearchLimit - Boolean
Example
{
  "items": [FindLicensesResponse],
  "hasNextPage": false,
  "exceededSearchLimit": false
}

PaginatedPractitionersResponse

Fields
Field Name Description
items - [FindPractitionersResponse!]!
hasNextPage - Boolean!
exceededSearchLimit - Boolean
Example
{
  "items": [FindPractitionersResponse],
  "hasNextPage": false,
  "exceededSearchLimit": false
}

PaginatedRosterItems

Fields
Field Name Description
items - [RosterItemResponse!]!
hasNextPage - Boolean!
Example
{
  "items": [
    {
      "id": "468226f9-01c9-4ea2-9d30-c71b6cb02b1e",
      "practitioner": {
        "npi": "1417000233",
        "fullName": "Judd Steuber II",
        "hadBoardAction": null,
        "licenses": [
          {
            "id": "a64e05f3-dae4-46ff-8c1b-3d9c2076d5df",
            "issueDate": "1988-08-17",
            "licenseId": null,
            "licenseNumber": "8827827071",
            "expirationDate": "2025-02-17",
            "licenseState": "CA",
            "licenseType": "Customer Tactics Engineer"
          }
        ],
        "exclusions": [
          {
            "id": "39cb71b9-2d48-5698-8969-73aa0b84a3b1",
            "authority": "",
            "status": "",
            "providerType": "",
            "specialty": "",
            "effectiveDate": "1997-02-03T08:00:00.000Z",
            "npi": "",
            "details": "OPM - Ineligible (Proceedings Completed)",
            "fullNameParsed": "John Smith",
            "fullNameOriginal": "",
            "firstNameOriginal": "JOHN",
            "middleNameOriginal": "",
            "lastNameOriginal": "SMITH",
            "businessName": "",
            "address": "",
            "address2": "",
            "city": "DENVER",
            "state": "CO",
            "zip": "80222",
            "duration": "",
            "lastUpdatedTs": "2025-08-25T00:01:02.703Z",
            "waiver": "",
            "dea": "",
            "medicaidId": "",
            "licenseNumber": "",
            "affiliation": "",
            "endDate": "",
            "dateOfBirth": "",
            "matchType": "Fuzzy",
            "matchDetails": "Name",
            "sourceType": "SAM"
          }
        ]
      }
    },
    {
      "id": "57a33bd6-f8d1-4821-8a5d-080adf414197",
      "practitioner": {
        "npi": "8368177641",
        "fullName": "Ryleigh Wunsch",
        "hadBoardAction": null,
        "licenses": [
          {
            "id": "044c964f-b88a-456a-b7e2-00ab91adfdae",
            "issueDate": "1984-08-17",
            "licenseId": null,
            "licenseNumber": "2080314743",
            "expirationDate": "2026-08-17",
            "licenseState": "AR",
            "licenseType": "Forward Creative Facilitator"
          }
        ],
        "exclusions": []
      }
    }
  ],
  "hasNextPage": false
}

PaginatedRosters

Fields
Field Name Description
items - [RosterResponse!]
hasNextPage - Boolean!
Example
{
  "items": [
    {"id": "6d8098a6-228f-4803-b2c3-28ae2fc15a0b", "name": "Personal Roster"}
  ],
  "hasNextPage": true
}

PaginationInput

Description

Pagination Input

Fields
Input Field Description
skip - Int! The number of records to skip, used for pagination. Must be 0 or greater. Default = 0
take - Int! The number of records to take, used for pagination. Must be between 1 and 100. Default = 20
Example
{"skip": 0, "take": 20}

Permission

Description

The supported permission levels for roster access.

Values
Enum Value Description

VIEWER

Can only view the roster and its items

EDITOR

Can view and edit the roster and its items

OWNER

Full control over the roster including sharing and deletion
Example
"VIEWER"

Practitioner

Description

Practitioner

Fields
Field Name Description
id - String!
npi - Float Practitioner individual NPI number.
businessName - String Name of business or practice that is either the licensed entity or the business or practice the licensed practitioner works for.
fullName - String
firstName - String
middleName - String
lastName - String
mailingAddressPhoneNumber - String
practiceLocationAddressLine1 - String
practiceLocationAddressLine2 - String
practiceLocationAddressCity - String
practiceLocationAddressState - String
practiceLocationAddressZipcode - String
mailingAddressLine1 - String
mailingAddressLine2 - String
mailingAddressCity - String
mailingAddressState - String
mailingAddressZipcode - String
professionCode - String Profession code states use to identify the type of license being issued by a state licensing board.
degree - String Degree earned at an educational institution.
canPrescribe - String Practitioner is licensed to prescribe. Designated issued by certain state (FL).
email - String
primaryWorkingSetting - String
acceptingNewPatients - String
acceptsMedicaid - String
translationServicesAvailable - String
insurancePlansAccepted - String
hospitalAffiliations - String
race - String
ethnicity - String
age - String
birthyear - String
continuingEducationDueDate - String
specialties - String List of practitioner certified specialties.
suffix - String
gender - String
hadBoardAction - String Indicates whether a board action is present.
concatenatedLicenseStates - String
activeLicenseStates - String
licenseStatesCount - String
licenses - [License!]
otherPossibleLicenses - [License]
deaLicenses - [Dea!] DEA licenses associated with this practitioner. Only available for rostered practitioners and requires special permissions.
exclusions - [Exclusion!]
practitionerType - String
practitionerSpecialty - String
Example
{
  "id": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
  "npi": 1962402099,
  "businessName": "null",
  "fullName": "Paul Alexander Skaff",
  "firstName": "Paul",
  "middleName": "Alexander",
  "lastName": "Skaff",
  "mailingAddressPhoneNumber": "3045453548",
  "practiceLocationAddressLine1": "1000 36TH ST",
  "practiceLocationAddressLine2": "null",
  "practiceLocationAddressCity": "VERO BEACH",
  "practiceLocationAddressState": "FL",
  "practiceLocationAddressZipcode": "329604862",
  "mailingAddressLine1": "1000 36TH ST",
  "mailingAddressLine2": "null",
  "mailingAddressCity": "VERO BEACH",
  "mailingAddressState": "FL",
  "mailingAddressZipcode": "329604862",
  "professionCode": "null",
  "degree": "null",
  "canPrescribe": "false",
  "email": "null",
  "primaryWorkingSetting": "null",
  "acceptingNewPatients": "unknown",
  "acceptsMedicaid": "unknown",
  "translationServicesAvailable": "unknown",
  "insurancePlansAccepted": "null",
  "hospitalAffiliations": "null",
  "race": "null",
  "ethnicity": "null",
  "age": "null",
  "birthyear": "null",
  "continuingEducationDueDate": "null",
  "specialties": "Anesthesiology",
  "suffix": "null",
  "gender": "M",
  "hadBoardAction": "unknown",
  "concatenatedLicenseStates": "FL, SC, WV",
  "activeLicenseStates": "null",
  "licenseStatesCount": "3",
  "licenses": [
    {
      "id": "40a6419b-6a42-5de3-8299-ccb4c85aaff3",
      "licenseNumber": "16028",
      "licenseState": "WV"
    },
    {
      "id": "69df08d0-f7af-5487-bd99-ec268567351c",
      "licenseNumber": "141517",
      "licenseState": "FL"
    }
  ],
  "otherPossibleLicenses": [License],
  "deaLicenses": [Dea],
  "exclusions": [Exclusion],
  "practitionerType": "null",
  "practitionerSpecialty": "null"
}

PractitionerVerification

Description

Comprehensive verification snapshot containing practitioner details, licenses, DEA information, and exclusions. This type represents the complete data captured at the time of verification.

Fields
Field Name Description
id - String! Unique identifier for the practitioner.
npi - String National Provider Identifier.
email - String Practitioner's email address.
degree - String Practitioner's degree.
suffix - String Practitioner's suffix (e.g., MD, DO, RN).
fullName - String Practitioner's full name.
lastName - String Practitioner's last name.
firstName - String Practitioner's first name.
middleName - String Practitioner's middle name.
specialties - String Practitioner's specialties.
businessName - String Business name associated with the practitioner.
canPrescribe - String Whether the practitioner can prescribe medications.
hadBoardAction - String Whether the practitioner has had board actions.
professionCode - String Profession code.
practitionerType - String Type of practitioner.
mailingAddressCity - String Mailing address city.
mailingAddressLine1 - String Mailing address line 1.
mailingAddressLine2 - String Mailing address line 2.
mailingAddressState - String Mailing address state.
mailingAddressZipcode - String Mailing address zipcode.
practitionerSpecialty - String Practitioner specialty.
mailingAddressPhoneNumber - String Mailing address phone number.
continuingEducationDueDate - String Continuing education due date.
practiceLocationAddressCity - String Practice location address city.
practiceLocationAddressLine1 - String Practice location address line 1.
practiceLocationAddressLine2 - String Practice location address line 2.
practiceLocationAddressState - String Practice location address state.
practiceLocationAddressZipcode - String Practice location address zipcode.
licenses - [VerificationSnapshotLicense] Array of license information.
deaLicenses - [VerificationSnapshotDeaLicense] Array of DEA license information.
exclusions - [VerificationSnapshotExclusion] Array of exclusion information.
Example
{
  "id": "9150147f-6b49-56c5-b25c-a2e12ef89ee4",
  "npi": "1871122168",
  "email": "alexandra.rochman@example.com",
  "degree": "MD",
  "suffix": "MD",
  "fullName": "Alexandra Rochman",
  "lastName": "Rochman",
  "firstName": "Alexandra",
  "middleName": "Marie",
  "specialties": "Internal Medicine",
  "businessName": "Rochman Medical Group",
  "canPrescribe": "Yes",
  "hadBoardAction": "No",
  "professionCode": "MD",
  "practitionerType": "Physician",
  "mailingAddressCity": "San Francisco",
  "mailingAddressLine1": "123 Medical Center Dr",
  "mailingAddressLine2": "Suite 200",
  "mailingAddressState": "CA",
  "mailingAddressZipcode": "94102",
  "practitionerSpecialty": "Internal Medicine",
  "mailingAddressPhoneNumber": "(415) 555-0123",
  "continuingEducationDueDate": "2025-12-31",
  "practiceLocationAddressCity": "San Francisco",
  "practiceLocationAddressLine1": "456 Healthcare Blvd",
  "practiceLocationAddressLine2": "Floor 3",
  "practiceLocationAddressState": "CA",
  "practiceLocationAddressZipcode": "94103",
  "licenses": [
    {
      "id": "license-123",
      "npi": "1871122168",
      "email": "alexandra.rochman@example.com",
      "county": "San Francisco",
      "degree": "MD",
      "suffix": "MD",
      "deeplink": "https://www.mbc.ca.gov/verify",
      "fullName": "Alexandra Marie Rochman",
      "lastName": "Rochman",
      "firstName": "Alexandra",
      "issueDate": "2015-06-15",
      "licenseId": "MD123456",
      "statusRaw": "ACTIVE",
      "middleName": "Marie",
      "licenseType": "Medical Doctor",
      "renewalDate": "2025-06-15",
      "canPrescribe": "Yes",
      "licenseState": "CA",
      "statusMapped": "Active",
      "licenseNumber": "MD123456",
      "screenshotUrl": "https://screenshots.batonhealth.com/license-123.png",
      "expirationDate": "2025-12-31",
      "professionCode": "MD",
      "specialtiesRaw": "Internal Medicine",
      "primarySourceId": "ca-med-board",
      "refreshTimestamp": "2025-10-17T16:55:15.088Z",
      "verificationDate": "2025-10-17T16:55:15.088Z",
      "hadBoardActionRaw": "No",
      "specialtiesMapped": "Internal Medicine",
      "mailingAddressCity": "San Francisco",
      "mailingAddressLine1": "123 Medical Center Dr",
      "mailingAddressLine2": "Suite 200",
      "mailingAddressState": "CA",
      "practitionerTypeRaw": "Physician",
      "statusEffectiveDate": "2015-06-15",
      "hadBoardActionMapped": "No",
      "hospitalAffiliations": "UCSF Medical Center",
      "mailingAddressZipcode": "94102",
      "mailingAddressAreaCode": "415",
      "practitionerTypeMapped": "Physician",
      "mailingAddressPhoneNumber": "(415) 555-0123",
      "continuingEducationDueDate": "2025-12-31",
      "practiceLocationAddressCity": "San Francisco",
      "mailingAddressPhoneExtension": "123",
      "practiceLocationAddressLine1": "456 Healthcare Blvd",
      "practiceLocationAddressLine2": "Floor 3",
      "practiceLocationAddressState": "CA",
      "practiceLocationAddressZipcode": "94103",
      "primarySource": {
        "id": "ca-med-board",
        "url": "https://www.mbc.ca.gov",
        "state": "California",
        "deeplink": "https://www.mbc.ca.gov/verify",
        "licenseType": "Medical Doctor",
        "organization": "California Medical Board"
      }
    }
  ],
  "deaLicenses": [
    {
      "id": "dea-123",
      "city": "San Francisco",
      "state": "CA",
      "degree": "MD",
      "zipCode": "94102",
      "activity": "Practitioner",
      "address1": "123 Medical Center Dr",
      "address2": "Suite 200",
      "fullName": "Alexandra Marie Rochman",
      "paymentCode": "P",
      "licenseNumber": "MD123456",
      "expirationDate": "2025-12-31",
      "practitionerId": "9150147f-6b49-56c5-b25c-a2e12ef89ee4",
      "drugScheduleCode": "II-V",
      "refreshTimestamp": "2025-10-17T16:55:15.088Z",
      "businessActivityCode": "P",
      "additionalCompanyInfo": "None",
      "deaRegistrationNumber": "AB1234567",
      "paymentCodeDescription": "Practitioner",
      "businessActivitySubCode": "P",
      "drugScheduleDescription": "Schedule II-V Controlled Substances",
      "businessActivityDescription": "Prescribing controlled substances",
      "controlledSubstanceLicenseNumber": "CS123456"
    }
  ],
  "exclusions": [
    {
      "id": "exclusion-123",
      "authority": "OIG",
      "status": "Active",
      "effectiveDate": "2023-01-15",
      "matchType": "Exact",
      "matchDetails": "Name and NPI match",
      "details": "Excluded from participation in Medicare, Medicaid, and all other Federal health care programs"
    }
  ]
}

PractitionerVerificationItem

Description

Individual practitioner verification record in query responses.

Fields
Field Name Description
id - String! Unique identifier for the verification record.
verificationTimeStamp - DateTime! Timestamp when the verification was completed.
createdAt - DateTime! Timestamp when the verification record was created.
createdBy - User! User who created the verification.
practitioner - PractitionerVerificationPractitionerInfo! Basic practitioner information for this verification.
Example
{
  "id": "1dbd1c0f-38df-4ed5-a0b3-4da465eb9c57",
  "verificationTimeStamp": "2025-10-17T16:55:15.088Z",
  "createdAt": "2025-10-17T16:55:15.091Z",
  "createdBy": User,
  "practitioner": PractitionerVerificationPractitionerInfo
}

PractitionerVerificationPractitionerInfo

Description

Basic practitioner information included in verification responses.

Fields
Field Name Description
practitionerId - String! The practitioner ID that was verified.
firstName - String Practitioner's first name.
lastName - String Practitioner's last name.
npi - String Practitioner's NPI number.
Example
{
  "practitionerId": "9150147f-6b49-56c5-b25c-a2e12ef89ee4",
  "firstName": "Alexandra",
  "lastName": "Rochman",
  "npi": "1871122168"
}

PrimarySourceExtension

Description

primarySourceExtension

Fields
Field Name Description
organization - String
state - String
logoUrl - String
url - String
id - String!
Example
{
  "organization": "West Virginia Board of Medicine",
  "state": "West Virginia",
  "logoUrl": "https://baton-prd-static-files.s3.amazonaws.com/Seal_of_West_Virginia.svg",
  "url": "https://wvbom.wv.gov/public/search/index.asp",
  "id": "wv_lic_004"
}

PrivateShareConfig

Description

Configures roster share settings for private sharing.

Fields
Input Field Description
permission - Permission! What the user chooses to grant permission for the userId.
authId - String! Gives this user access to roster with the provided permission
Example
{"permission": "EDITOR", "authId": "user-auth-id-123"}

ProviderVerificationsSortBy

Description

The field to sort practitioner verifications by.

Values
Enum Value Description

id

Sort by verification ID.

verificationTimeStamp

Sort by verification timestamp.

createdAt

Sort by creation date.
Example
"id"

PublicShareConfig

Description

Configures roster share settings for public sharing.

Fields
Input Field Description
permission - Permission! Granted permission for ALL USERS of the ORGANIZATION.
Example
{"permission": "VIEWER"}

RosterItemResponse

Fields
Field Name Description
id - String! The unique identifier of the roster item.
practitionerId - String! The unique identifier of the associated practitioner.
practitioner - Practitioner! The practitioner associated with this roster item.
rosterId - String! The unique identifier of the associated roster.
createdAt - DateTime! The date and time when the roster item was created.
updatedAt - DateTime! The date and time when the roster item was last updated.
Example
{
  "id": "468226f9-01c9-4ea2-9d30-c71b6cb02b1e",
  "practitionerId": "1417000233",
  "practitioner": {
    "npi": "1417000233",
    "fullName": "Judd Steuber II",
    "hadBoardAction": null,
    "licenses": [
      {
        "id": "a64e05f3-dae4-46ff-8c1b-3d9c2076d5df",
        "issueDate": "1988-08-17",
        "licenseId": null,
        "licenseNumber": "8827827071",
        "expirationDate": "2025-02-17",
        "licenseState": "CA",
        "licenseType": "Customer Tactics Engineer"
      }
    ]
  },
  "rosterId": "6d8098a6-228f-4803-b2c3-28ae2fc15a0b",
  "createdAt": "2024-01-01T12:00:00Z",
  "updatedAt": "2024-01-02T12:00:00Z"
}

RosterResponse

Description

Roster for API users

Fields
Field Name Description
id - String! A unique identifier for the record, generated automatically in UUID format.
name - String This field can store up to 150 characters. It's designed for short to medium-length text, such as names or titles. While it allows for flexibility, keeping the value under 150 characters is recommended for consistency and optimal performance.
createdAt - DateTime! This field records the creation timestamp in UTC. The format includes the date, time, and time zone offset.
updatedAt - DateTime! This field tracks the last update timestamp in UTC. The format includes the date, time, and time zone offset.
Example
{
  "id": "6d8098a6-228f-4803-b2c3-28ae2fc15a0b",
  "name": "My Healthcare Roster",
  "createdAt": "2024-01-01T12:00:00Z",
  "updatedAt": "2024-01-02T12:00:00Z"
}

SortDirection

Description

The direction to sort by.

Values
Enum Value Description

ASC

Ascending order (A to Z, 0 to 9)

DESC

Descending order (Z to A, 9 to 0)
Example
"ASC"

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

UpdateRosterInput

Fields
Input Field Description
id - String! The unique identifier of the roster to be updated.
name - String The new name of the roster. No uniqueness constraints are applied to this field.
publicShareConfig - PublicShareConfig Turns Private Rosters to Public, allowing new signups to have immediate access to the roster
privateShareConfig - [PrivateShareConfig!] Turns Public rosters to private, removing existing members, replacing with the members in your request.
Example
{
  "id": "6d8098a6-228f-4803-b2c3-28ae2fc15a0b",
  "name": "Updated Healthcare Roster",
  "publicShareConfig": null,
  "privateShareConfig": [null]
}

User

Description

User information for verification records.

Fields
Field Name Description
firstName - String User's first name.
lastName - String User's last name.
email - String! User's email address.
Example
{
  "firstName": "Vivek",
  "lastName": "Sharma",
  "email": "vivek+api@batonhealth.com"
}

VerificationSnapshotDeaLicense

Description

DEA license information from verification snapshot.

Fields
Field Name Description
id - String! Unique identifier for the DEA license.
city - String City where the DEA license is registered.
state - String State where the DEA license is registered.
degree - String Degree associated with the DEA license.
zipCode - String Zip code of the DEA license address.
activity - String Activity type for the DEA license.
address1 - String Address line 1 for the DEA license.
address2 - String Address line 2 for the DEA license.
fullName - String Full name on the DEA license.
paymentCode - String Payment code for the DEA license.
licenseNumber - String License number.
expirationDate - String DEA license expiration date.
practitionerId - String Practitioner ID associated with the DEA license.
drugScheduleCode - String Drug schedule code.
refreshTimestamp - String Timestamp when the data was refreshed.
businessActivityCode - String Business activity code.
additionalCompanyInfo - String Additional company information.
deaRegistrationNumber - String DEA registration number.
paymentCodeDescription - String Payment code description.
businessActivitySubCode - String Business activity sub code.
drugScheduleDescription - String Drug schedule description.
businessActivityDescription - String Business activity description.
controlledSubstanceLicenseNumber - String Controlled substance license number.
Example
{
  "id": "xyz789",
  "city": "xyz789",
  "state": "xyz789",
  "degree": "abc123",
  "zipCode": "xyz789",
  "activity": "xyz789",
  "address1": "abc123",
  "address2": "xyz789",
  "fullName": "xyz789",
  "paymentCode": "abc123",
  "licenseNumber": "abc123",
  "expirationDate": "xyz789",
  "practitionerId": "xyz789",
  "drugScheduleCode": "abc123",
  "refreshTimestamp": "xyz789",
  "businessActivityCode": "xyz789",
  "additionalCompanyInfo": "abc123",
  "deaRegistrationNumber": "abc123",
  "paymentCodeDescription": "xyz789",
  "businessActivitySubCode": "abc123",
  "drugScheduleDescription": "xyz789",
  "businessActivityDescription": "abc123",
  "controlledSubstanceLicenseNumber": "abc123"
}

VerificationSnapshotExclusion

Description

Exclusion information from verification snapshot.

Fields
Field Name Description
id - String! Unique identifier for the exclusion.
authority - String Authority that issued the exclusion.
status - String Status of the exclusion.
effectiveDate - String Effective date of the exclusion.
matchType - String Type of match for the exclusion.
matchDetails - String Details about the match.
details - String Detailed description of the exclusion.
Example
{
  "id": "abc123",
  "authority": "abc123",
  "status": "xyz789",
  "effectiveDate": "abc123",
  "matchType": "abc123",
  "matchDetails": "abc123",
  "details": "abc123"
}

VerificationSnapshotLicense

Description

License information from verification snapshot.

Fields
Field Name Description
id - String! Unique identifier for the license.
npi - String National Provider Identifier.
email - String Email address associated with the license.
county - String County where the license is issued.
degree - String Degree associated with the license.
suffix - String Suffix (e.g., MD, DO, RN).
deeplink - String Deep link to the license verification page.
fullName - String Full name on the license.
lastName - String Last name on the license.
firstName - String First name on the license.
issueDate - String Issue date of the license.
licenseId - String License ID.
statusRaw - String Raw status from the source.
middleName - String Middle name on the license.
licenseType - String Type of license.
renewalDate - String License renewal date.
canPrescribe - String Whether the practitioner can prescribe medications.
licenseState - String State where the license is issued.
statusMapped - String Mapped status of the license.
licenseNumber - String License number.
screenshotUrl - String URL to screenshot of the license.
expirationDate - String License expiration date.
professionCode - String Profession code.
specialtiesRaw - String Raw specialties from the source.
primarySourceId - String Primary source ID.
refreshTimestamp - String Timestamp when the data was refreshed.
verificationDate - String Date when the verification was performed.
hadBoardActionRaw - String Raw board action information.
specialtiesMapped - String Mapped specialties.
mailingAddressCity - String Mailing address city.
mailingAddressLine1 - String Mailing address line 1.
mailingAddressLine2 - String Mailing address line 2.
mailingAddressState - String Mailing address state.
practitionerTypeRaw - String Raw practitioner type.
statusEffectiveDate - String Status effective date.
hadBoardActionMapped - String Mapped board action information.
hospitalAffiliations - String Hospital affiliations.
mailingAddressZipcode - String Mailing address zipcode.
mailingAddressAreaCode - String Mailing address area code.
practitionerTypeMapped - String Mapped practitioner type.
mailingAddressPhoneNumber - String Mailing address phone number.
continuingEducationDueDate - String Continuing education due date.
practiceLocationAddressCity - String Practice location address city.
mailingAddressPhoneExtension - String Mailing address phone extension.
practiceLocationAddressLine1 - String Practice location address line 1.
practiceLocationAddressLine2 - String Practice location address line 2.
practiceLocationAddressState - String Practice location address state.
practiceLocationAddressZipcode - String Practice location address zipcode.
primarySource - VerificationSnapshotPrimarySource Primary source information.
Example
{
  "id": "xyz789",
  "npi": "abc123",
  "email": "abc123",
  "county": "xyz789",
  "degree": "xyz789",
  "suffix": "abc123",
  "deeplink": "xyz789",
  "fullName": "xyz789",
  "lastName": "xyz789",
  "firstName": "xyz789",
  "issueDate": "xyz789",
  "licenseId": "abc123",
  "statusRaw": "abc123",
  "middleName": "abc123",
  "licenseType": "xyz789",
  "renewalDate": "abc123",
  "canPrescribe": "xyz789",
  "licenseState": "abc123",
  "statusMapped": "abc123",
  "licenseNumber": "abc123",
  "screenshotUrl": "abc123",
  "expirationDate": "xyz789",
  "professionCode": "abc123",
  "specialtiesRaw": "xyz789",
  "primarySourceId": "abc123",
  "refreshTimestamp": "abc123",
  "verificationDate": "xyz789",
  "hadBoardActionRaw": "xyz789",
  "specialtiesMapped": "abc123",
  "mailingAddressCity": "abc123",
  "mailingAddressLine1": "xyz789",
  "mailingAddressLine2": "xyz789",
  "mailingAddressState": "abc123",
  "practitionerTypeRaw": "abc123",
  "statusEffectiveDate": "abc123",
  "hadBoardActionMapped": "abc123",
  "hospitalAffiliations": "xyz789",
  "mailingAddressZipcode": "xyz789",
  "mailingAddressAreaCode": "xyz789",
  "practitionerTypeMapped": "xyz789",
  "mailingAddressPhoneNumber": "xyz789",
  "continuingEducationDueDate": "abc123",
  "practiceLocationAddressCity": "xyz789",
  "mailingAddressPhoneExtension": "abc123",
  "practiceLocationAddressLine1": "xyz789",
  "practiceLocationAddressLine2": "xyz789",
  "practiceLocationAddressState": "abc123",
  "practiceLocationAddressZipcode": "abc123",
  "primarySource": VerificationSnapshotPrimarySource
}

VerificationSnapshotPrimarySource

Description

Primary source information for verification snapshot.

Fields
Field Name Description
id - String! Unique identifier for the primary source.
url - String URL of the primary source.
state - String State where the source operates.
deeplink - String Deep link to the verification page.
licenseType - String Type of license.
organization - String Organization name.
Example
{
  "id": "xyz789",
  "url": "abc123",
  "state": "abc123",
  "deeplink": "xyz789",
  "licenseType": "xyz789",
  "organization": "abc123"
}

VerificationStatus

Description

Status information for verification operations.

Fields
Field Name Description
success - Boolean! Indicates whether the verification was successful.
message - String Optional message providing additional details about the verification status.
Example
{"success": true, "message": "Verification completed successfully"}