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.
Terms of Service
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
PractitionertoGetPractitionerResponse - DEA licenses use
GetPractitionerDeaLicenseResponsetype - Exclusions use
GetPractitionerExclusionResponsetype
Migration Steps:
- 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:
- The practitioner is added to one of your rosters
- Your organization has been granted DEA data access permissions
- 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.
Response
Returns a GetPractitionerVerificationResponse
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.
Response
Returns a GetPractitionerVerificationsResponse!
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.
Response
Returns a CreatePractitionerVerificationResponse!
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
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
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
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 |
|---|---|
|
|
|
|
|
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.
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 |
|---|---|
|
|
Sort by practitioner first name |
|
|
Sort by practitioner last name |
|
|
Sort by license state |
|
|
Sort by license type |
Example
"firstName"
FindPractitionersFilterInput
Description
Filter criteria for findPractitioners query
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
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.
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.
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
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
Permission
Description
The supported permission levels for roster access.
Values
| Enum Value | Description |
|---|---|
|
|
Can only view the roster and its items |
|
|
Can view and edit the roster and its items |
|
|
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.
Example
{
"practitionerId": "9150147f-6b49-56c5-b25c-a2e12ef89ee4",
"firstName": "Alexandra",
"lastName": "Rochman",
"npi": "1871122168"
}
PrimarySourceExtension
Description
primarySourceExtension
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"
}
ProviderVerificationsSortBy
Description
The field to sort practitioner verifications by.
Values
| Enum Value | Description |
|---|---|
|
|
Sort by verification ID. |
|
|
Sort by verification timestamp. |
|
|
Sort by creation date. |
Example
"id"
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 |
|---|---|
|
|
Ascending order (A to Z, 0 to 9) |
|
|
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
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.
Example
{"success": true, "message": "Verification completed successfully"}