ROLLCALL HEALTH

The published run, as data.

Every figure this site publishes is served by an API, from the same published runs, with the provenance attached. Nothing unpublished is reachable.

Three levels of access

  • Open, no credential. The national index, its run series, and the methodology as data. Rate limited per address, cached for one minute, and exactly what the Index page renders.
  • Keyed. Every constituent directory's rate, band and history, the run log with its validation checks, and your account's own scope. Keys are issued by email and are free.
  • Granted. NPI-level findings with the federal evidence dated against each row, CSV export, and the dispute path. Findings are scoped to the issuers your organization publishes, never anyone else's.

Endpoints

Paths sit under https://api.rollcall.health/services/directory/v1/directory. The full contract, with every parameter and response shape, is the OpenAPI document, browsable as interactive documentation. Neither needs a credential to read.

Every endpoint, what it serves, and the access it needs.
EndpointServesAccess
GET /indexThe national index: value, bands, coverage, movement against the previous run, full provenance.OPEN
GET /index/historyThe published run series, newest first, with comparability flagged at every step.OPEN
GET /index/methodThe methodology as data: formula, banding constants, directory states, periods, carry rules.OPEN
GET /directoriesWhich directories are in the run, the issuers each serves and how much of each we read. No rate, band or rank: those are granted. The default page is 50 rows; the limit parameter goes to 200, which today is all of them.KEY
GET /directories/{payer_id}One directory’s own figures: its rate, band, rank and contribution, with its measurement, findings summary and reachability.GRANT
GET /directories/{payer_id}/historyThat directory’s own series across published runs.GRANT
GET /runsThe run log: period, attempt, funnel counts, and every validation check with its result.KEY
GET /meYour organization, its access, and the issuers granted to it.KEY
GET /directories/{payer_id}/findingsNPI-level findings with dated federal facts. A fmt parameter set to csv serves the same rows as the file your team works.GRANT
POST …/findings/{npi}/disputeContest a finding on the record. Filing never changes a score.GRANT
GET /directories/{payer_id}/disputesYour organization's own filings for that directory.GRANT

Periods are ISO weeks. Routes that read the latest published run accept period=2026-W34 to read an earlier one; a week nothing published in answers 404 rather than falling back.

The market is open; a directory’s own breakdown is granted. The Index, its method and its series need no credential. A key names the directories in the run. The rate, band and rank of one directory, and the dated federal record behind every finding in it, go to the organisation accountable for that directory, matched against its CMS registration rather than taken on assertion. To ask for that access, write to findings@rollcall.health naming the issuers you publish directories for.

The first call

One request, no credential, no signup.

GET /INDEX · NO KEY
curl https://api.rollcall.health/services/directory/v1/directory/index
RESPONSE · EXCERPT
{
  "index": {
    "period": "2026-W35",
    "value": 15.58,
    "unit": "qualified findings per 10,000 evaluated directory records",
    "polarity": "higher is worse; zero is the floor",
    "qualified_records": 25422,
    "evaluated_records": 16315452,
    "constituents": 98,
    "worst": 272.22
  }
}

FIELDS OMITTED FOR WIDTH · FIGURES ARE THE PUBLISHED RUN'S

Findings, with the evidence attached

A granted key reads the rows behind a directory's score. Every finding carries the federal fact and its date, the directory file it was read from and the day it was read, and its lifecycle across runs.

ONE FINDING · NPI AND DIRECTORY MASKED
{
  "npi": "******1838",
  "check": "deactivation",
  "code": "P1003",
  "code_name": "DeactivatedProviderNPI",
  "fact_date": "2022-09-23",
  "age_days": 1429,
  "fault": true,
  "tier": "ASSERT",
  "file_url": "https://********/********.json",
  "last_modified": "Wed, 22 Oct 2025 11:26:01 GMT",
  "episode": { "status": "PERSISTING", "first_seen": "2026-08-12", "days_open": 10 },
  "disputed": false
}

A PUBLISHED FINDING FROM THE 21 AUGUST 2026 RUN

The row is real and its identifiers are masked here, not invented: a granted key reads the clinician’s NPI and the file URL in full, and nobody else does. A finding you believe is wrong is disputed against that exact row, on the record, from the same key. The response says plainly that the score is unchanged while the dispute is reviewed, and every later read of the finding carries the dispute's status.

What the API promises

  • Only published runs. The API reads the same store the site renders from. A run that has not passed its checks and its review is not reachable, under any parameter.
  • Provenance on every response. The registry editions and retrieval times ride with the figures, so a number can be traced without a second request.
  • Errors identify themselves. Machine-readable code, a plain message, and a request_id to quote at us. Rate limits answer 429 with retry-after.
  • A key changes nothing that is published. Access is delivery, not influence, under the commercial independence policy.

Keys and issuer grants: findings@rollcall.health, from your organization's own domain. For the granted tier, name the issuers you publish directories for; grants are matched against the CMS registrations, not taken on assertion.