linkIds are the stable field identifiers in the Prior Auth API.
Use them as your integration keys.
If your source system already has one of these concepts, you can usually map it directly to the matching canonical linkId and reuse that mapping across templates. That is the point of the canonical field layer: you should not have to rediscover a different key for common patient, coverage, provider, service, or diagnosis data every time a payer form changes.
Why these fields exist
- Use canonical
linkIds for 1:1 mappings from your EHR, intake flow, or practice management system. - Treat canonical
linkIds as stable integration keys, not presentation labels. - Expect template-specific questions to use the
q.*namespace instead. - Treat a canonical
linkIdrename as a contract change, not a cosmetic change.
How to use this page
When you read a questionnaire from the API:- if the field uses a canonical
linkId, map your source data directly to that key - if the field uses
q.*, handle it as template-specific logic for that payer form
Common examples
patient.firstNamecoverage.memberIdproviders.prescribing.identifiers.npiservice.codediagnoses.code
Patient
| Link ID | Type | Allowed values | Notes |
|---|---|---|---|
patient.firstName | string | — | |
patient.middleName | string | — | |
patient.lastName | string | — | |
patient.dateOfBirth | date | — | |
patient.gender | choice | male, female, other, unknown | Limited enum |
patient.phone | string | — | |
patient.email | string | — | |
patient.address.line1 | string | — | |
patient.address.line2 | string | — | |
patient.address.city | string | — | |
patient.address.state | string | — | |
patient.address.zip | string | — | |
patient.height.value | decimal | — | |
patient.height.unit | choice | in, cm | Limited enum |
patient.weight.value | decimal | — | |
patient.weight.unit | choice | lb, kg | Limited enum |
Subscriber
| Link ID | Type | Allowed values | Notes |
|---|---|---|---|
subscriber.firstName | string | — | |
subscriber.middleName | string | — | |
subscriber.lastName | string | — | |
subscriber.dateOfBirth | date | — | |
subscriber.relationshipToPatient | choice | self, spouse, child, other | Limited enum |
subscriber.address.line1 | string | — | |
subscriber.address.line2 | string | — | |
subscriber.address.city | string | — | |
subscriber.address.state | string | — | |
subscriber.address.zip | string | — |
Coverage
| Link ID | Type | Allowed values | Notes |
|---|---|---|---|
coverage.memberId | string | — | |
coverage.groupNumber | string | — |
Request
| Link ID | Type | Allowed values | Notes |
|---|---|---|---|
request.type | choice | initiation, continuation | Limited enum |
request.urgency | choice | standard, urgent, retrospective | Limited enum |
request.siteOfCare | string | — | |
request.requestedBy.firstName | string | — | |
request.requestedBy.lastName | string | — | |
request.requestedBy.phone | string | — | |
request.requestedBy.extension | string | — | |
request.requestedBy.email | string | — |
Provider roles
The provider roles below share the same field set:providers.prescribingproviders.requestingproviders.referringproviders.servicing
| Pattern | Type | Allowed values | Notes |
|---|---|---|---|
providers.<role>.firstName | string | — | |
providers.<role>.middleName | string | — | |
providers.<role>.lastName | string | — | |
providers.<role>.credential | string | — | |
providers.<role>.specialty | string | — | |
providers.<role>.phone | string | — | |
providers.<role>.fax | string | — | |
providers.<role>.email | string | — | |
providers.<role>.address.line1 | string | — | |
providers.<role>.address.line2 | string | — | |
providers.<role>.address.city | string | — | |
providers.<role>.address.state | string | — | |
providers.<role>.address.zip | string | — | |
providers.<role>.identifiers.npi | string | — | |
providers.<role>.identifiers.dea | string | — | |
providers.<role>.identifiers.stateLicenseNumber | string | — | |
providers.<role>.identifiers.taxonomyCode | string | — |
Service
| Link ID | Type | Allowed values | Notes |
|---|---|---|---|
service.code | string | — | |
service.codeSystem | choice | hcpcs, cpt, ndc, other | Limited enum |
service.description | string | — | |
service.quantity.value | decimal | — | |
service.quantity.unit | open-choice | — | Can be a configured code or free text |
service.requestedStartDate | date | — | |
service.requestedEndDate | date | — |
Diagnoses
| Link ID | Type | Allowed values | Notes |
|---|---|---|---|
diagnoses | group | — | Repeats |
diagnoses.code | string | — | Child of repeated diagnoses group |
diagnoses.codeSystem | choice | icd10 | Limited enum |
diagnoses.role | choice | primary, secondary, other | Limited enum |
Template-specific fields
Fields in theq.* namespace are template-specific.
Use them when:
- the payer form asks for something that is not part of the canonical catalog
- the field only makes sense for one payer or one form family
- you need a short-term mapping before a concept earns a canonical field
q.* keys are shared across templates the way canonical fields are.