Perform a vread (version-specific read): GET [base]/[ResourceType]/[id]/_history/[vid] where vid is the version ID from Resource.meta.versionId; the server returns the resource as it existed at that specific version
Perform a resource-level history: GET [base]/[ResourceType]/[id]/_history to retrieve a Bundle of type 'history' containing all versions of that resource instance in descending chronological order
Use the _count parameter to paginate long history Bundles: GET [base]/Patient/123/_history?_count=10 returns the 10 most recent versions; follow Bundle.link[next] to retrieve older pages
Use the _since parameter on history to retrieve only versions created or updated after a given timestamp: GET [base]/Patient/123/_history?_since=2025-01-01T00:00:00Z for incremental auditing
Perform a type-level history: GET [base]/[ResourceType]/_history to retrieve all versions of all instances of a resource type; or a system-level history: GET [base]/_history for all resource versions across the entire server (use with extreme caution on large servers)
Inspect Bundle.entry[].request.method (PUT/POST/DELETE) and Bundle.entry[].response.status in the history Bundle to understand what operation produced each version
Known gotchas
Not all FHIR servers are required to support history interactions — check the server's CapabilityStatement.resource[].versioning (set to 'versioned' or 'versioned-update') and CapabilityStatement.resource[].readHistory (true) before assuming _history is available
The version ID in the vread URL (/_history/[vid]) is server-assigned and opaque — it is not guaranteed to be sequential integers; do not construct version IDs programmatically or assume ordering from numeric comparison
Deleted resource versions appear in history with Bundle.entry[].request.method='DELETE' and no resource body (only a response status of 410 Gone) — clients must handle deleted entries in history Bundles without attempting to parse a resource payload
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp