healthcare.dev docs

Prior authorization requirements (preview)

Whether a payer's public prior authorization lists require prior authorization for a procedure code, per line of business, with dates, evidence links and an honest answer when a code isn't listed. Preview: not available yet.

Preview: not available yet. The endpoint is documented so you can plan for it; until it is released it answers 503 dataset-unavailable, and the dataset doesn't appear in /v1/datasets.

SourcePayers' public prior authorization (precertification) lists, as each payer posts them
Source idpayer-pa-lists
CadenceWe check each list daily and publish a new version when one changes
LicenseFacts only: codes (as numbers), whether the list requires prior authorization, and dates, with a link to the list; never the list itself
PlansPro and Team (403 plan-upgrade-required below Pro)
EndpointGET /v1/prior-auth?payer=&code=&line=&modifier=

Reference data, not a prior authorization determination. Confirm with the payer.

curl "https://api.healthcare.dev/v1/prior-auth?payer=cigna&code=27447&line=commercial" \
  -H "Authorization: Bearer $HDEV_API_KEY"
{
  "data": {
    "payer": { "id": "cigna", "name": "Cigna Healthcare" },
    "code": "27447",
    "modifier": null,
    "disclaimer": "Reference data, not a prior authorization determination. Confirm with the payer.",
    "requirements": [
      {
        "line": "commercial",
        "prior_auth": {
          "answer": "required",
          "confidence": 1,
          "derivation": "source_stated",
          "evidence": [
            {
              "url": "https://www.cigna.com/.../master-precertification-list-for-providers.pdf",
              "anchor": "page 31"
            }
          ],
          "as_of": "2026-10-20T05:30:00.000Z"
        },
        "codes": ["27447"],
        "modifier": null,
        "effective_start": "2020-01-01",
        "effective_end": null,
        "conditions": [],
        "upcoming": [],
        "conflicts": [],
        "note": null
      }
    ],
    "lines_available": ["commercial"]
  }
}

Answers

One answer per line of business the payer's lists cover (commercial, medicare_advantage, medicaid), or only line when you give one:

prior_auth.answerMeaning
requiredA list says prior authorization is required for the code (or a range that includes it), in effect today
not_requiredA list says it isn't, for example the payer removed the code from its list on effective_start
unclearA list mentions the code in a way our rules can't read reliably (a condition, a diagnosis rule, a note), or two of the payer's documents disagree. Never served as required or not required
not_listedNone of the payer's lists we hold for this line names the code. Not proof prior authorization isn't needed: payers don't say their lists are complete

Every answer says how it was reached (see derivation): source_stated with confidence: 1 when a list states it and our rules read it; reviewed when a person read the row; derived for unclear (confidence: 0) and not_listed (confidence: 1, or 0.5 while rows of those lists wait for a person and might name the service without its code). evidence links the payer's list and page; as_of is when that version of the list was first seen.

  • Dates: effective_start and effective_end as the list gives them; a change the list announces for a later date is in upcoming, not in the answer.
  • Conditions: limits the list puts on a requirement, in plain words (the care management model it applies to, a modifier, plans it excludes).
  • Modifiers: a list may name a code with a modifier (L5856-RT). Pass modifier to match it; without one, the answer says which modifier the requirement is limited to.
  • Lists we couldn't read: if a payer's latest version of a list can't be read, answers keep using the last version we could read and say so in note; codes we can't place are unclear, never not_listed.
  • Conflicts: when two of the payer's documents state different requirements for the code and line (a list and its removed-codes list, say), conflicts shows both with their links, the answer is unclear, and neither is chosen.

Codes are served as numbers only: never a CPT description, and dental (CDT) codes are never served. Each account can look up a limited number of different payer and code pairs a day (429 enumeration-limit past it, until 00:00 UTC); repeats don't count.

On this page