generated: '2026-08-14' method: searched source: https://api.practicefusion.com/fhir/r4/v1/{organizationId}/metadata docs: https://www.practicefusion.com/fhir/api-specifications/ docs_additional: - https://www.practicefusion.com/pds-api/developer-guide/ notes: >- Cross-cutting request/response semantics for the Practice Fusion FHIR R4 API, derived from the CapabilityStatement and the HL7 FHIR R4 RESTful conventions the API implements (US Core 6.1.0, SMART App Launch 2.0.0, Bulk Data 1.0.1). authentication: style: SMART-on-FHIR OAuth2 bearer see: authentication/practice-fusion-authentication.yml media_types: request: [application/fhir+json] response: [application/fhir+json] versioning: style: uri-path value: /fhir/r4/v1/{organizationId} see: lifecycle/practice-fusion-lifecycle.yml pagination: style: fhir-bundle-link request_params: [_count] response: container: Bundle total_field: total next_link: Bundle.link[relation=next].url note: Search results return a FHIR searchset Bundle; follow link[relation=next] for continuation. search: style: fhir-search common_params: [_id, _lastUpdated, _include, _revinclude, _summary, _elements] note: US Core mandatory search parameters per resource type. idempotency: supported: true mechanisms: - name: conditional-create header: If-None-Exist note: FHIR conditional create — repeated create with the same search criteria yields one resource (declared on Group for Bulk Data $export). - name: version-aware-update headers: [ETag, If-Match] note: Optimistic-concurrency updates; If-Match on the resource version prevents duplicate/conflicting writes (412 on mismatch). caveat: API is predominantly read/search; write surface is limited (Group create/update for bulk export). bulk_data: standard: FHIR Bulk Data Access IG v1.0.1 operation: Group/{id}/$export async: true note: Kick-off returns 202 with a Content-Location poll URL; NDJSON output. error_envelope: resource: OperationOutcome see: errors/practice-fusion-problem-types.yml rate_limiting: enforced: true signal: HTTP 429 headers: [] retry_after: undocumented limits_published: false source: https://www.practicefusion.com/pds-api/developer-guide/ note: >- Practice Fusion confirms in the PDS API Developer Guide that rate limiting is enforced on every API call and returns 429 on exhaustion, but publishes no number, window, burst or response header — deliberately, so that the logic can be adjusted from an architectural risk analysis. 429 is the only runtime signal an agent gets. See rate-limits/practice-fusion-rate-limits.yml. tracing: request_id_header: none-documented note: >- No request-id / correlation-id header is documented on either surface. The Kong gateway fronting api.practicefusion.com does return a `request_id` in its own JSON error envelope for unrouted paths, but that is the gateway's 404 body, not a documented API convention. sandbox: available: false note: >- Practice Fusion publishes no sandbox or test environment for the PDS/FHIR API. The shared sandboxes named in the Veradigm Connect tier table are for Veradigm EHR (fhir.fhirpoint.open.allscripts.com), and the Veradigm sandbox page does not list Practice Fusion. Development happens against real organization endpoints once an application is approved.