API reference

Generated from the same schemas that shape and validate live responses, so this page cannot drift from what the API actually returns.

Machine readable spec

The OpenAPI 3.1 document is served at /openapi.json. Point your client generator at it directly. Authentication is HTTP bearer; supply your key as Authorization: Bearer epk_live_XXXX.

Version 1.0.0. Base URL https://app.enrollpilot.com/api/v1.

Endpoints

get/providersList providers

Requires the providers:read scope.

Parameters

NameInTypeDescription
limitqueryintegerMaximum rows to return. Default 50, maximum 200.
cursorquerystringOpaque keyset cursor returned as nextCursor by the previous page. Omit for the first page.
updated_sincequerystringISO 8601 timestamp. Returns rows whose updatedAt is greater than or equal to this value. The boundary is inclusive, so overlap your watermark and deduplicate by id.
activequeryenum(true, false)Filter by employment status. Omit to return both active and inactive providers.

Responses

  • 200A page of results.
  • 400invalid_request: a query parameter failed validation.
  • 401invalid_key: the key is missing, malformed, unknown, revoked or expired.
  • 402payment_past_due or subscription_inactive: API access is suspended for billing reasons.
  • 403insufficient_scope or api_disabled.
  • 404not_found: unknown id, or an id belonging to another organization.
  • 405method_not_allowed: v1 is read-only and supports GET only.
  • 429rate_limited: per-key or per-organization limit exceeded.
  • 500internal_error.
  • 503api_unavailable or api_temporarily_unavailable.
get/providers/{id}Get a provider

Requires the providers:read scope. Ids belonging to another organization return 404.

Parameters

NameInTypeDescription
idpathstringResource id.

Responses

  • 200The requested resource.
  • 400invalid_request: a query parameter failed validation.
  • 401invalid_key: the key is missing, malformed, unknown, revoked or expired.
  • 402payment_past_due or subscription_inactive: API access is suspended for billing reasons.
  • 403insufficient_scope or api_disabled.
  • 404not_found: unknown id, or an id belonging to another organization.
  • 405method_not_allowed: v1 is read-only and supports GET only.
  • 429rate_limited: per-key or per-organization limit exceeded.
  • 500internal_error.
  • 503api_unavailable or api_temporarily_unavailable.
get/provider-groupsList provider groups

Requires the groups:read scope.

Parameters

NameInTypeDescription
limitqueryintegerMaximum rows to return. Default 50, maximum 200.
cursorquerystringOpaque keyset cursor returned as nextCursor by the previous page. Omit for the first page.
updated_sincequerystringISO 8601 timestamp. Returns rows whose updatedAt is greater than or equal to this value. The boundary is inclusive, so overlap your watermark and deduplicate by id.

Responses

  • 200A page of results.
  • 400invalid_request: a query parameter failed validation.
  • 401invalid_key: the key is missing, malformed, unknown, revoked or expired.
  • 402payment_past_due or subscription_inactive: API access is suspended for billing reasons.
  • 403insufficient_scope or api_disabled.
  • 404not_found: unknown id, or an id belonging to another organization.
  • 405method_not_allowed: v1 is read-only and supports GET only.
  • 429rate_limited: per-key or per-organization limit exceeded.
  • 500internal_error.
  • 503api_unavailable or api_temporarily_unavailable.
get/provider-groups/{id}Get a provider group

Requires the groups:read scope. Ids belonging to another organization return 404.

Parameters

NameInTypeDescription
idpathstringResource id.

Responses

  • 200The requested resource.
  • 400invalid_request: a query parameter failed validation.
  • 401invalid_key: the key is missing, malformed, unknown, revoked or expired.
  • 402payment_past_due or subscription_inactive: API access is suspended for billing reasons.
  • 403insufficient_scope or api_disabled.
  • 404not_found: unknown id, or an id belonging to another organization.
  • 405method_not_allowed: v1 is read-only and supports GET only.
  • 429rate_limited: per-key or per-organization limit exceeded.
  • 500internal_error.
  • 503api_unavailable or api_temporarily_unavailable.
get/enrollmentsList provider enrollment cases

Requires the enrollments:read scope.

Parameters

NameInTypeDescription
limitqueryintegerMaximum rows to return. Default 50, maximum 200.
cursorquerystringOpaque keyset cursor returned as nextCursor by the previous page. Omit for the first page.
updated_sincequerystringISO 8601 timestamp. Returns rows whose updatedAt is greater than or equal to this value. The boundary is inclusive, so overlap your watermark and deduplicate by id.
statusquerystringFilter by enrollment status.
payerquerystringFilter by payer name.
provider_idquerystringFilter by provider id.

Responses

  • 200A page of results.
  • 400invalid_request: a query parameter failed validation.
  • 401invalid_key: the key is missing, malformed, unknown, revoked or expired.
  • 402payment_past_due or subscription_inactive: API access is suspended for billing reasons.
  • 403insufficient_scope or api_disabled.
  • 404not_found: unknown id, or an id belonging to another organization.
  • 405method_not_allowed: v1 is read-only and supports GET only.
  • 429rate_limited: per-key or per-organization limit exceeded.
  • 500internal_error.
  • 503api_unavailable or api_temporarily_unavailable.
get/enrollments/{id}Get an enrollment case

Requires the enrollments:read scope. Ids belonging to another organization return 404.

Parameters

NameInTypeDescription
idpathstringResource id.

Responses

  • 200The requested resource.
  • 400invalid_request: a query parameter failed validation.
  • 401invalid_key: the key is missing, malformed, unknown, revoked or expired.
  • 402payment_past_due or subscription_inactive: API access is suspended for billing reasons.
  • 403insufficient_scope or api_disabled.
  • 404not_found: unknown id, or an id belonging to another organization.
  • 405method_not_allowed: v1 is read-only and supports GET only.
  • 429rate_limited: per-key or per-organization limit exceeded.
  • 500internal_error.
  • 503api_unavailable or api_temporarily_unavailable.
get/group-enrollmentsList group contracts

Requires the enrollments:read scope.

Parameters

NameInTypeDescription
limitqueryintegerMaximum rows to return. Default 50, maximum 200.
cursorquerystringOpaque keyset cursor returned as nextCursor by the previous page. Omit for the first page.
updated_sincequerystringISO 8601 timestamp. Returns rows whose updatedAt is greater than or equal to this value. The boundary is inclusive, so overlap your watermark and deduplicate by id.
statusquerystringFilter by group enrollment status.
payerquerystringFilter by payer name.
group_idquerystringFilter by provider group id.

Responses

  • 200A page of results.
  • 400invalid_request: a query parameter failed validation.
  • 401invalid_key: the key is missing, malformed, unknown, revoked or expired.
  • 402payment_past_due or subscription_inactive: API access is suspended for billing reasons.
  • 403insufficient_scope or api_disabled.
  • 404not_found: unknown id, or an id belonging to another organization.
  • 405method_not_allowed: v1 is read-only and supports GET only.
  • 429rate_limited: per-key or per-organization limit exceeded.
  • 500internal_error.
  • 503api_unavailable or api_temporarily_unavailable.
get/group-enrollments/{id}Get a group contract

Requires the enrollments:read scope. Ids belonging to another organization return 404.

Parameters

NameInTypeDescription
idpathstringResource id.

Responses

  • 200The requested resource.
  • 400invalid_request: a query parameter failed validation.
  • 401invalid_key: the key is missing, malformed, unknown, revoked or expired.
  • 402payment_past_due or subscription_inactive: API access is suspended for billing reasons.
  • 403insufficient_scope or api_disabled.
  • 404not_found: unknown id, or an id belonging to another organization.
  • 405method_not_allowed: v1 is read-only and supports GET only.
  • 429rate_limited: per-key or per-organization limit exceeded.
  • 500internal_error.
  • 503api_unavailable or api_temporarily_unavailable.
get/documentsList document metadata

Requires the documents:read scope.

Parameters

NameInTypeDescription
limitqueryintegerMaximum rows to return. Default 50, maximum 200.
cursorquerystringOpaque keyset cursor returned as nextCursor by the previous page. Omit for the first page.
updated_sincequerystringISO 8601 timestamp. Returns rows whose updatedAt is greater than or equal to this value. The boundary is inclusive, so overlap your watermark and deduplicate by id.
provider_idquerystringFilter by provider id.
group_idquerystringFilter by provider group id.

Responses

  • 200A page of results.
  • 400invalid_request: a query parameter failed validation.
  • 401invalid_key: the key is missing, malformed, unknown, revoked or expired.
  • 402payment_past_due or subscription_inactive: API access is suspended for billing reasons.
  • 403insufficient_scope or api_disabled.
  • 404not_found: unknown id, or an id belonging to another organization.
  • 405method_not_allowed: v1 is read-only and supports GET only.
  • 429rate_limited: per-key or per-organization limit exceeded.
  • 500internal_error.
  • 503api_unavailable or api_temporarily_unavailable.
get/expirablesList expiring credentials

Requires the providers:read scope.

Parameters

NameInTypeDescription
limitqueryintegerMaximum rows to return. Default 50, maximum 200.
cursorquerystringOpaque keyset cursor returned as nextCursor by the previous page. Omit for the first page.
within_daysqueryintegerOnly return items expiring within this many days. Default 365, maximum 730.

Responses

  • 200A page of results.
  • 400invalid_request: a query parameter failed validation.
  • 401invalid_key: the key is missing, malformed, unknown, revoked or expired.
  • 402payment_past_due or subscription_inactive: API access is suspended for billing reasons.
  • 403insufficient_scope or api_disabled.
  • 404not_found: unknown id, or an id belonging to another organization.
  • 405method_not_allowed: v1 is read-only and supports GET only.
  • 429rate_limited: per-key or per-organization limit exceeded.
  • 500internal_error.
  • 503api_unavailable or api_temporarily_unavailable.

Schemas

Fields marked as not always present are omitted from the payload when the key lacks the scope that unlocks them.

Provider

FieldTypeAlways present
additionalSpecialty1string or nullYes
additionalSpecialty1TaxonomyCodestring or nullYes
additionalSpecialty2string or nullYes
additionalSpecialty2TaxonomyCodestring or nullYes
additionalSpecialty3string or nullYes
additionalSpecialty3TaxonomyCodestring or nullYes
additionalSpecialty4string or nullYes
additionalSpecialty4TaxonomyCodestring or nullYes
additionalSpecialty5string or nullYes
additionalSpecialty5TaxonomyCodestring or nullYes
billingAddressstring or nullYes
billingAddressLine2string or nullYes
billingCitystring or nullYes
billingStatestring or nullYes
billingZipstring or nullYes
birthCitystring or nullNo
birthCountrystring or nullNo
caqhIdstring or nullYes
createdAtstringYes
dateOfBirthstring or nullNo
ethnicitystring or nullNo
ethnicityDetailstring or nullNo
firstNamestring or nullYes
genderstring or nullNo
groupMembershipsarray of objectYes
idstringYes
isActivebooleanYes
languagesarray of stringYes
lastNamestring or nullYes
medicaidParticipationstring or nullYes
medicaidStatesarray of stringYes
medicareParticipationstring or nullYes
medicareStatesarray of stringYes
middleNamestring or nullYes
namestringYes
npistringYes
otherEmailsarray of stringYes
personalAddressstring or nullYes
personalAddressLine2string or nullYes
personalCitystring or nullYes
personalCountystring or nullYes
personalEmailstring or nullYes
personalFaxstring or nullYes
personalPhonestring or nullYes
personalStatestring or nullYes
personalZipstring or nullYes
providerIdsarray of objectYes
secondarySpecialtystring or nullYes
secondarySpecialtyTaxonomyCodestring or nullYes
specialtystring or nullYes
specialtyTaxonomyCodestring or nullYes
startDatestring or nullYes
suffixstring or nullYes
taxonomyCodestring or nullYes
telehealthServicesbooleanYes
termedDatestring or nullYes
typestring or nullYes
updatedAtstringYes

ProviderGroup

FieldTypeAlways present
createdAtstringYes
dbastring or nullYes
groupIdsarray of objectYes
idstringYes
locationsarray of objectYes
namestringYes
npistring or nullYes
tinstring or nullYes
updatedAtstringYes

Enrollment

FieldTypeAlways present
assigneesarray of stringYes
caseNumberstring or nullYes
dueDatestring or nullYes
effectiveDatestring or nullYes
enrollmentTypeenum(MEDICARE_FFS, MEDICAID_FFS, PRIVATE_PAYER) or nullYes
idstringYes
lobsarray of objectYes
missingCountintegerYes
nextFollowUpAtstring or nullYes
nextFollowUpTypeenum(FOLLOW_UP, TASK, REMINDER, PHONE, EMAIL, FAX, MAIL, WEBSITE) or nullYes
npistringYes
participationsarray of objectYes
payerNamestringYes
providerIdstringYes
providerNamestringYes
requirementsarray of objectYes
statestring or nullYes
statusenum(NOT_STARTED, DATA_COLLECTION, DRAFT, PENDING_SIGNATURE, SUBMITTED, ACKNOWLEDGED, PRE_SCREENING, PENDED_AI, PSV_IN_PROGRESS, PEER_REVIEW, VERIFIED, COMMITTEE_REVIEW, APPROVED_PENDING_NETWORK, NEGOTIATION, PENDING_EXECUTION, FULLY_EXECUTED, LOADING_ENTRY, LINKED_ASSOCIATED, PENDING_DIRECTORY, PAR, RE_CREDENTIALING, RE_VALIDATION, WITHDRAWN, DENIED, TERMINATED, DE_PARD, SUSPENDED, ARCHIVED, LOCUM_TENENS, RECIPROCITY_TRANSFER)Yes
statusReasonstring or nullYes
updatedAtstringYes

GroupEnrollment

FieldTypeAlways present
assigneesarray of stringYes
effectiveDatestring or nullYes
enrollmentTypestring or nullYes
groupNpistring or nullYes
idstringYes
lobsarray of objectYes
payerNamestringYes
providerGroupIdstringYes
providerGroupNamestringYes
statestring or nullYes
statusstringYes
statusReasonstring or nullYes
updatedAtstringYes

Document

FieldTypeAlways present
documentTypestring or nullYes
expiresOnstring or nullYes
fileNamestring or nullYes
idstringYes
providerGroupIdstring or nullYes
providerIdstring or nullYes
statusenum(PENDING, RECEIVED, VERIFIED, REJECTED, EXPIRED)Yes
updatedAtstringYes
uploadedAtstringYes

Expirable

FieldTypeAlways present
categorystringYes
daysUntilExpiryintegerYes
expiresOnstringYes
labelstringYes
sourceIdstringYes
sourceTypeenum(PROVIDER_ID, DOCUMENT, ENROLLMENT, ADDRESS_MEDICAID, SUPERVISORY_AGREEMENT, GROUP_ID, GROUP_ADDRESS_MEDICAID, GROUP_DOCUMENT)Yes
statusenum(EXPIRED, EXPIRING_SOON, UPCOMING)Yes

Error

Every failure uses this envelope. Branch on `code`; messages may be reworded.

FieldTypeAlways present
errorobjectYes

JsonValue

Any JSON value.

string or number or boolean or null or array of JsonValue or object