Log in Request access

Search & pagination

Type-level search is a GET against the resource type with query parameters:

curl "{fhir_base_url}/Condition?patient=Patient/synthetic-patient-1&clinical-status=active" \
  -H "Authorization: Bearer $SMART_ACCESS_TOKEN" \
  -H "Accept: application/fhir+json"

Search requires an s in your granted scope for that resource (patient/Condition.rs), and only searchable resources advertise a search route at all — check the API reference per resource.

Results are searchset Bundles

{
  "resourceType": "Bundle",
  "type": "searchset",
  "link": [
    { "relation": "self", "url": "" },
    { "relation": "next", "url": "…&_page_token=eyJvZmZzZXQiOjEwfQ" }
  ],
  "entry": [
    { "fullUrl": "", "resource": { "resourceType": "Condition",  }, "search": { "mode": "match" } }
  ]
}

An empty entry array with a 200 status is a valid result: nothing matched (or your scope's context contains no matching data).

Universal parameters

Every searchable resource supports:

Parameter Purpose
_id Match a specific logical id
_lastUpdated Filter by modification time (ge, lt, … prefixes)
_count Page-size hint
_page_token Opaque pagination cursor

Resource-specific parameters (like Patient?family= or Condition?clinical-status=) are listed per resource in the reference and advertised in the CapabilityStatement.

Pagination is cursor-based

Follow the Bundle's next link until it disappears:

  • _page_token is opaque — never parse, construct, or store one long-term; tokens belong to the query that issued them.
  • There is no total count guarantee and no way to jump to page N; iterate.
  • _count is a hint; the server may return fewer entries per page.

Date parameters

Date-typed parameters accept FHIR prefixes: ge (on or after), le, gt, lt, eq. Ranges combine two parameters:

/Appointment?patient=Patient/{id}&date=ge2026-08-01&date=lt2026-09-01

Deliberately not supported

_sort, _include, _revinclude, chained parameters, bulk export, and FHIR Subscriptions are not part of the current registry. Don't send them — requests that were already invalid may be rejected more strictly over time. Fetch referenced resources (like an Appointment's Practitioner) with follow-up reads under their own scopes.