FHIR JSON utility

FHIR JSON Formatter & Resource Viewer

Format, inspect and explore FHIR JSON resources and Bundles locally in your browser.

Privacy reminder. Do not paste real patient data, credentials, secrets, production identifiers, or confidential resources. Use synthetic or properly de-identified test data only.

Formatter and viewer

Paste a FHIR JSON resource or Bundle

The tool validates JSON structure and provides practical FHIR-aware summaries. It is not a certified FHIR validator and does not validate profiles or implementation guides.

The content stays in your browser and is not saved by this tool.

No resource loadedPaste FHIR JSON and click Inspect resource.

A collapsible JSON tree will appear here.

FAQ

FHIR viewer questions

Does this validate FHIR conformance?

No. It validates JSON syntax and provides practical resource and Bundle checks, but it does not validate against the complete FHIR specification, profiles, terminology bindings, or implementation guides.

Which FHIR versions can it display?

The JSON tree works with any JSON-based FHIR resource. The built-in summaries focus on common R4-style fields and degrade gracefully when fields differ.

How are Bundle references checked?

The tool builds an index from Bundle fullUrl values and resourceType/id pairs, then checks reference strings that can be resolved within the Bundle. External references are listed separately rather than treated as automatically invalid.

Can I paste real patient data?

No. Use synthetic or appropriately de-identified test data only.

Practical guide

Inspect a FHIR resource before debugging the integration around it

The viewer helps turn dense FHIR JSON into a navigable technical picture. It is most useful when a payload is syntactically valid JSON but the important resource identity, references, repeating elements, or clinical values are difficult to follow in raw text.

Recommended workflow

  1. Paste a single resource or Bundle and confirm that the JSON parses successfully.
  2. Read the resource summary first: resource type, ID, profile declarations, status, subject, encounter, and other commonly useful fields.
  3. Use the tree to inspect the exact property path and data type rather than relying only on displayed text.
  4. For Bundles, browse entries individually and check whether internal references resolve to another entry.
  5. Copy the relevant path and value into the issue or mapping note so the problem can be reproduced precisely.

Paths worth checking first

  • meta.profile for claimed implementation guides or national profiles.
  • identifier for business identifiers and assigning systems.
  • subject.reference and encounter.reference for clinical context.
  • status, code.coding, and the resource's value element for result or workflow meaning.
  • Bundle.type, entry.fullUrl, and entry.resource.id when resolving internal links.

Worked example

Follow an Observation reference inside a Bundle

{
  "resourceType": "Observation",
  "id": "result-1",
  "status": "final",
  "subject": { "reference": "Patient/patient-1" },
  "encounter": { "reference": "Encounter/encounter-1" }
}

The viewer can show the Observation as an individual entry while also checking whether Patient/patient-1 and Encounter/encounter-1 can be matched to resources in the same Bundle. An unresolved internal reference often means the target entry is missing, the ID differs by case or spelling, or the Bundle uses a fullUrl form that does not match the reference.

Absolute references, canonical URLs, conditional references, and references intended for retrieval from a remote FHIR server are not necessarily errors merely because they do not resolve inside the pasted Bundle.

Troubleshooting

Common reasons a FHIR payload is hard to interpret

Structural problems

  • Trailing commas, comments, or unescaped control characters make the input invalid JSON.
  • A top-level JSON array is not itself a FHIR resource unless the surrounding workflow explicitly expects an array of resources.
  • Contained references begin with # and should point to an item in the resource's contained array.
  • Extensions may carry important data even when the base resource fields appear empty.

What this viewer does not validate

The page does not perform complete FHIR schema, profile, slicing, terminology, invariant, or server-operation validation. A resource can display cleanly and still be rejected by a profile validator or destination server.

Use the viewer to understand the payload, then use the applicable implementation guide and validator to decide whether it is conformant.

Authorship and review

Practical guidance backed by integration experience

Maintained and technically reviewed by Health Data Tools, drawing on more than 15 years of healthcare integration experience across HL7, FHIR, CDA, APIs, PKI, and clinical integration systems.

Technically reviewed: