Built by SpreadRunBeta

Hospital Price Transparency MRF Validator

Check a hospital machine-readable price file against the CMS template and data specifications before you post it, or before you spend compute ingesting someone else's. Upload a file and get a deterministic, itemized report in seconds. No installs, no Docker, no sign-up required to run a test.

Free alternative: CMS publishes its own Hospital Price Transparency Validator at no cost, online and as a command-line tool, and it checks the whole file. Use it for one-off manual checks. This API is for checking files from code: no install, JSON reports, one endpoint for all three layouts. It inspects a bounded part of each file, described below.

What it checks

Every validation runs the same deterministic checks against the CMS v3.0.0 schema and templates:

  • File structure. Valid JSON for the v3.0.0 schema, or well-formed tall or wide CSV with every column the CMS template requires, no duplicate or placeholder headers, and every row as wide as its header.
  • Required metadata. Hospital name, last-updated date (a valid date), location names, addresses, Type 2 NPIs, license information, the attestation and version 3.0.0 are present and well-formed.
  • Standard charge records. Each inspected record has a description, billing codes, a care setting and charges that fit the schema.
  • 2026 data elements. For percentage or algorithm charges: count of allowed amounts, plus median, 10th and 90th percentile allowed amounts unless the count is 0.
  • Billing codes. Each code has a type from the CMS list: CPT, HCPCS, MS-DRG, NDC, RC, CDM and the rest.
  • Payer rules. Payer and plan names present, methodology from the CMS list, at least one of a dollar, percentage or algorithm charge, and notes when the methodology is "other".
  • Numbers. No negative or zero charges, no malformed or non-finite numbers.
  • Ambiguity. Duplicate keys in a JSON object are flagged.

Large files are validated with bounded sampling: the report always says how many records were inspected and whether part of the file was not, so you know exactly what the verdict covers.

Who it's for

  • Hospital revenue-cycle and compliance teams: check the file before it goes on your public site.
  • Price-transparency vendors: gate customer files in your onboarding pipeline instead of discovering breakage downstream.
  • Developers and data teams: preflight a third-party MRF before burning hours parsing it.
  • AI agents and automation: a plain REST endpoint with a file in and JSON out; no browser, no clicking.

Not checked

Payer and plan name consistency across rows, whether amounts were calculated from real remittance data, NPI registry lookups, file freshness, the cms-hpt.txt discovery file, and records beyond the inspected portion.

How it works

  1. Submit

    Upload the file as JSON, tall CSV or wide CSV, plain or gzip. The format is detected automatically.

  2. Validate

    The file is checked against the CMS template layouts and the v3.0.0 schema. Structural, field-level and conditional checks run deterministically.

  3. Report

    You get an itemized findings report with severity, rule and location for each problem, and a summary verdict. Keep the report as your pre-posting evidence.

Try it now

Free demo, no account: files up to 2.0 MB, the first 100 records, 10 runs a day. For full validations from this form, sign in and buy credits: $0.25 per completed report, packs from $5.

JSON, tall CSV, wide CSV or gzip of any of them.

The file is processed in memory and not stored.
Sample report
Synthetic JSON file with a bad last_updated_on date
FAIL
Format json1 records inspectedMetadata complete noTemplate structure yes
SeverityRuleLocation
ErrorSCHEMA_FORMATmetadata.last_updated_on

Pricing

$0.25 per completed validation. One file, one full report.

  • You are billed when a validation completes and produces a report, PASS, WARN or FAIL. Requests rejected before validation (empty or corrupt upload, invalid parameters) are not billed.
  • No subscription. No seat licenses. Prepaid credits from $5 (20 validations). Credits never expire. All pricing
  • Validating hundreds of hospital files on a schedule? Talk to us first so we can tell you honestly whether this fits.

Call it from code

Parameters, the report format, error codes and limits are in the API docs. For background on the rules, read the 2026 file requirements guide.

curl -X POST "https://www.spreadrun.com/api/v1/hospital-mrf-validator?maxRecords=500" \
  -H "Authorization: Bearer $SPREADRUN_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @123456789_example-hospital_standardcharges.json

Questions

How is this different from CMS's own validator?

CMS publishes a free Hospital Price Transparency Validator, online and as a command-line tool, that tests files against the CMS templates. It is a good tool for a one-off manual check, and it reads the whole file. Ours is built for programmatic use: a REST API with no installation, structured JSON reports your pipeline can parse, and all three CMS layouts (JSON, tall CSV, wide CSV) behind one endpoint. If a person needs to check one file once, use CMS's tool. If a system needs to check files repeatedly, use this.

Which file formats are supported?

CMS v3.0.0 JSON, tall CSV, and wide CSV: the three layouts in the CMS template and data specifications. UTF-8 only. Gzip-compressed uploads are fine. The format is detected automatically.

Does a passing result mean our hospital is compliant?

No. A validation checks the file against the published CMS template and data specifications: structure, required elements, formatting. Compliance is a legal determination CMS makes during enforcement review, and it can consider factors no file checker can see. Treat a passing report as evidence of diligence, not as a legal opinion.

Can it fetch the file directly from our website?

Not yet. In this version you upload the file. URL fetching is not offered, so there is nothing to configure on your server.

Our files are huge. Will it handle them?

Partly, and the report says exactly how much. An upload can be up to 4.4 MB, or up to 16 MB of content once a gzip upload is expanded. The validator checks the file's metadata and template structure, then inspects up to 1,000 standard-charge records (100 by default). Anything beyond that is not validated and the report says so with a SAMPLE_LIMIT warning. For exhaustive checks of very large files, run CMS's free validator on the whole file.

Does it check the 2026 requirements?

Yes, for the fields the CMS v3.0.0 schema defines. When a payer charge is a percentage or an algorithm, the count of allowed amounts is required, and the median, 10th percentile and 90th percentile allowed amounts are required unless the count is 0. Type 2 NPIs and the attestation must be present. It does not verify that the numbers were calculated from real remittance data, or that NPIs exist in the NPI registry.

Is our file data stored or shared?

Files are processed in memory for the length of the request and are not stored or shared. Reports do not repeat values from your file. For billing and usage we log the time, endpoint, result status, upload size and duration, never the file contents.

What do I get in the report?

A deterministic findings list: each problem with its severity, rule code and location (a record number with the CMS field path, or the part of the file it concerns), plus checks for parseability, required metadata and template structure, the number of records inspected, and a PASS, WARN or FAIL verdict. Structured JSON via the API and a readable summary in the test form.

When is a run charged?

When the validator finishes and returns a report, whether it says PASS, WARN or FAIL. That includes a FAIL for a file that turns out not to be a valid price file at all. Requests rejected before validation (empty body, corrupt gzip, invalid parameters, missing key) are free.

More validators: Clinical Trial Results Table QA | the full catalog