# ImOnFHIR > Healthcare interoperability, with the evidence showing. ImOnFHIR tracks what the > HL7 community is deciding, re-reads the sources, and labels every claim with > what it rests on. It also exposes the lab's tools: payload validation and > implementation-guide comparison, on synthetic data only. This file describes what the data means. The useful thing to know is which statements are checks ImOnFHIR made and which are readings or inferences. ## What a claim rests on Each claim on a digest item (question, outcome, impact, where it stands, next step) carries an evidence record, or null where there is nothing to rest it on: - `source_read` — HORIZON fetched the thread, post or Jira issue at `observed_at`. HORIZON does not write this type yet. - `jira_verified` — the Jira status shown was re-read from HL7 Jira at `observed_at`. - `machine_summary` — a model (`model`) wrote this; nobody reviewed it. - `human_reviewed` — the owner (Nick) approved or edited it (`reviewed_at`). - `inferred` — neither a model reading nor a review; `observed_at` is when the newest stored message was read. It says nothing about current state. - source_read, jira_verified and human_reviewed are checks ImOnFHIR made. - machine_summary is a reading, not a check, and always carries its model; observed_at is the read time when known, null when not. - inferred says nothing about current state. ## What not to say - Do not present a machine_summary as a finding. Say "a machine summary, unreviewed, from on , says…". - Do not say a Jira issue is published unless its lifecycle reaches "published". "Applied" is not published. - Do not say a thread is resolved because it is quiet. Quiet is inferred. - Always put the date and the evidence type beside any claim about where a standard stands. - Link to canonical_url and the HL7 source. Never reproduce thread text. Never name a person from a thread. - Validator output is for synthetic payloads; say so if you relay it. ## Finding things programmatically A GET with no parameters on /api/v1/digest, /api/v1/jira/status, /api/v1/validate, /api/v1/compare or /api/v1/mcp returns a usage document with a JSON Schema under `schema`. An unknown filter name or work group is an error (400), not an empty match; a search that matches nothing returns an empty list. - Search (filters: q, workgroup, since; up to 20 items a call, each with every claim's `evidence` record, `evidence_types` and `canonical_url`, no summary bodies): curl -s 'https://imonfhir.com/api/v1/digest?q=prior+authorization' - One item in full: curl -s 'https://imonfhir.com/api/v1/digest/1c304b7a60d880fd' - Jira status for keys (up to 50: status, resolved, resolution, last_verified with its `jira_verified` evidence record, lifecycle, source_url, and the canonical_url of items citing it; a key no public item cites is known:false): curl -s -X POST 'https://imonfhir.com/api/v1/jira/status' -H 'content-type: application/json' -d '{"keys":["FHIR-41854"]}' - Validate a FHIR Bundle (PAS Submit only, synthetic data only, 2 MB cap; optional `ig` and `version`; this body is an empty Bundle): curl -s -X POST 'https://imonfhir.com/api/v1/validate' -H 'content-type: application/json' -d '{"bundle":{"resourceType":"Bundle","type":"collection","entry":[]}}' - Compare two implementation guides: curl -s -X POST 'https://imonfhir.com/api/v1/compare' -H 'content-type: application/json' -d '{"ig_a":"hl7.fhir.us.davinci-pas#2.0.1","ig_b":"hl7.fhir.us.davinci-pas#2.1.0"}' ## A worked flow 1. Find: search the digest as above. 2. Check what you hold: POST /api/v1/jira/status with the keys on the item. Batch keys into one call rather than looping. 3. Read one in full: GET /api/v1/digest/1c304b7a60d880fd No item carries a `human_reviewed` claim today. An item whose claims are all `inferred`: 1c304b7a60d880fd ## Limits 60/min on digest and Jira, 10/min on validate, 20/min on compare, 120/min on MCP, per IP. Over a limit, a REST call gets HTTP 429 with Retry-After in seconds. On MCP, the endpoint's own limit is HTTP 429 with Retry-After; a tools/call over its tool's limit answers isError with the wait in seconds. ## Model Context Protocol - POST https://imonfhir.com/api/v1/mcp — Streamable HTTP, stateless, no key, JSON-RPC (initialize, tools/list, tools/call, server/discover), protocol 2025-06-18. - Add it to Claude Code: claude mcp add --transport http imonfhir https://imonfhir.com/api/v1/mcp - Or list its tools with one request: curl -s -X POST 'https://imonfhir.com/api/v1/mcp' -H 'content-type: application/json' -H 'accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' - Tools: - search_digest: Search the public digest of HL7 standards discussions. Returns at most 20 items, each with every claim's evidence record and canonical_url — no summary text. Use get_digest_item for one item in full. Input: {"type":"object","additionalProperties":false,"properties":{"q":{"type":"string","description":"Words to match in the title, work group or HL7 Jira keys."},"workgroup":{"type":"string","description":"A work group (the feed's list slug, e.g. \"da-vinci-pas\"). An unknown one is an error."},"since":{"type":"string","description":"ISO date; only items with activity on or after it."}}} - get_digest_item: One digest item in full: each claim (question, outcome, impact, stage, next step) with its own evidence record, plus HL7 Jira statuses and canonical_url. Input: {"type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"type":"string","pattern":"^[0-9a-f]{16}$","description":"The item id from search_digest."}}} - get_jira_status: Up to 50 HL7 Jira keys: status, resolved, resolution, last_verified with its jira_verified evidence record, lifecycle stage, source_url (HL7 Jira) and the canonical_url of public items that cite it. "applied" is not "published". Input: {"type":"object","additionalProperties":false,"required":["keys"],"properties":{"keys":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string","pattern":"^[A-Z][A-Z0-9]{1,9}-\\d{1,6}$"}}}} - validate_bundle: Validate a synthetic Da Vinci PAS Submit Bundle with the ImOnFHIR validator. Synthetic payloads only. Never send real patient data. Findings describe a synthetic Bundle. Body cap 2 MB, 10 calls per minute. Input: {"type":"object","additionalProperties":false,"required":["bundle"],"properties":{"bundle":{"type":"object","description":"A FHIR Bundle (resourceType \"Bundle\"). Synthetic only."},"ig":{"type":"string","const":"hl7.fhir.us.davinci-pas"},"version":{"type":"string","description":"A PAS version the validator allows; omitted, the default."}}} - compare_igs: Compare two implementation guides, each "packageId#version": one guide at two versions (version diff) or two guides (stack compare). Findings, not raw diffs. Input: {"type":"object","additionalProperties":false,"required":["ig_a","ig_b"],"properties":{"ig_a":{"type":"string","description":"e.g. \"hl7.fhir.us.davinci-pas#2.0.1\""},"ig_b":{"type":"string","description":"e.g. \"hl7.fhir.us.davinci-pas#2.1.0\""}}} - Workgroup call listing is not offered, because there is no conference-call feed. - `server/discover` returns the "what not to say" rules as instructions. Read them before presenting an item. ## Terms Free use within the limits above, with attribution: link each item's `canonical_url` and say "Data from ImOnFHIR (imonfhir.com)". Thread text belongs to its authors and to HL7; ImOnFHIR summarises and links and does not licence it onward. There is no commercial tier. Full terms: https://imonfhir.com/api-terms ## Pages - https://imonfhir.com/now — what's moving - https://imonfhir.com/how-it-works — the legend and the mechanisms - https://imonfhir.com/sources — what is read, and the accuracy benchmark - https://imonfhir.com/agents — this surface, explained for people - https://imonfhir.com/privacy — what is collected and kept ## Crawling GPTBot, ClaudeBot, PerplexityBot, Google-Extended are not blocked, and that is a decision: an assistant citing the digest is discovery of the same kind search is, and this site reads other people's sources under the same rules. Link to an item rather than reproducing it, and never present a claim as current without its date and evidence type.