localis
API key

Describe a service in plain words, or type a CPT/HCPCS code.

Reference data API

API v1

Inspect published releases, their exact source files, and the payment rules the pricing engine applies.

Release directory

Every (schedule, year, quarter) release published, newest first — including the zip_locality crosswalk releases the ZIP endpoints resolve against.

GET /v1/releases
response — 200
{
  "count": 6,
  "releases": [
    { "schedule": "pfs", "year": 2026, "quarter": "A", "published_at": "2026-01-01" },
    { "schedule": "zip_locality", "year": 2026, "quarter": "A", "published_at": "2026-01-01" }
  ]
}

Release source files

The CMS files behind one release, with each file's SHA-256, row count, and column map. Where the citations on a rate answer "where did this number come from", this answers "what exactly did you parse for this whole release" — the manifest you'd pin an ingest to, or diff to spot CMS moving a column between quarters.

Metadata only. The archived bytes stay internal, and archive.download_url points at CMS's own published zip rather than at us.

GET /v1/releases/{schedule}/{year}/{quarter}/sources
sources.*.dataset
string
Which input the file fed — "rvu", "gpci", "zip_locality", "opps_caps", "anesthesia", and so on.
sources.*.file
string
The member file inside the CMS release, e.g. "PPRRVU2026_Jan_nonQPP.csv".
sources.*.sha256
string
SHA-256 of that member file — pin an ingest to it and you can prove you read the same bytes we did.
sources.*.row_count
integer
Data rows parsed out of the file.
sources.*.columns
object
The file's own header names mapped to their 1-based column positions. Diff this between releases to catch CMS renaming or reordering a column.
archive
object
The outer CMS zip: its file name, CMS download URL, and SHA-256 where CMS publishes a stable one.
request
curl https://localishealth.com/v1/releases/pfs/2026/A/sources \
  -H "Authorization: Bearer sk_live_…"
response — 200
{
  "release": { "schedule": "pfs", "year": 2026, "quarter": "A", "revision": 1, "superseded": false },
  "cms_page_url": "https://www.cms.gov/medicare/payment/fee-schedules/physician/pfs-relative-value-files",
  "archive": { "file": "RVU26A.zip", "download_url": "https://www.cms.gov/…/rvu26a.zip", "sha256": "…" },
  "count": 4,
  "sources": [
    {
      "dataset": "gpci",
      "file": "GPCI2026.csv",
      "sha256": "f28471c5…",
      "row_count": 113,
      "columns": { "MAC": 1, "STATE": 2, "LOCALITY_NUMBER": 3, "WORK_GPCI": 6, "PE_GPCI": 7, "MP_GPCI": 8 }
    }
  ]
}

{schedule} is a value from the release directorypfs, zip_locality, ncci, and so on. A quarter that was corrected answers with the revision currently in force.

Pricing-rule coverage matrix

Which PFS payment rules this API applies, applies with a documented simplification, or deliberately does not apply. When a rule is not_applied, affected lines are priced at full amount and the pricing response carries a reason — never a guessed discount. Static and release-independent; useful for audit trails and for deciding which claim shapes to route elsewhere. The human-readable version lives on the methodology page.

GET /v1/pricing-rules
response — 200
{
  "statuses": { "applied": "…", "partial": "…", "not_applied": "…" },
  "areas": { "formula": "Formula & payability", … },
  "count": 25,
  "rules": [
    {
      "id": "mppr-standard",
      "area": "multiple-procedure",
      "name": "Standard multiple-procedure reduction (indicator 2)",
      "status": "applied",
      "does": "Indicator-2 lines on a claim are ranked by fee-schedule amount: …",
      "limit": null,
      "indicator": { "field": "multiple_proc_indicator", "value": "2" }
    }
  ]
}

Conversion factors

The national physician conversion factor(s) and every locality's anesthesia conversion factor for one PFS release — the last term in the payment formula, alongside GPCI and RVU rows.

Each CF type traces to a different CMS file, so sources carries one entry per contributing dataset rather than a single file reference: the standard physician CF is read from the PPRRVU file itself, the qualifying-APM physician CF (CY2026+) from the separate QPP PPRRVU file, and anesthesia CFs from their own per-locality file. Anesthesia rows keep the release-stable MAC/locality key and omit mutable cross-release locality names and states.

GET /v1/conversion-factors
year, quarter, as_of
Answer from a specific PFS release instead of the latest.
request
curl https://localishealth.com/v1/conversion-factors \
  -H "Authorization: Bearer sk_live_…"
response — 200
{
  "release": { "schedule": "pfs", "year": 2026, "quarter": "A", "revision": 1 },
  "sources": {
    "rvu": { "dataset": "rvu", "file": "PPRRVU2026_Jan_nonQPP.csv", "sha256": "…", "row_count": 11762 },
    "rvu_qpp": { "dataset": "rvu_qpp", "file": "PPRRVU2026_Jan_QPP.csv", "sha256": "…", "row_count": 11413 },
    "anesthesia": { "dataset": "anesthesia", "file": "ANES2026.csv", "sha256": "…", "row_count": 109 }
  },
  "count": 220,
  "national": [
    { "type": "physician", "amount": 33.4009 },
    { "type": "physician_qpp", "amount": 33.5675 }
  ],
  "anesthesia": [
    { "type": "anesthesia_non_qpp", "locality": "01182-18", "mac": "01182", "code": "18", "amount": 24.3312 },
    { "type": "anesthesia_qpp", "locality": "01182-18", "mac": "01182", "code": "18", "amount": 24.9312 }
  ]
}

national.physician is the standard/non-QP CF — the headline number CMS publishes and the basis rate lookups use by default. physician_qpp only exists from CY2026 on, when MACRA split the physician CF in two.