Skip to main content
GET
/
{resourceType}
/
{id}
Read Resource
curl --request GET \
  --url http://localhost:8080/fhir/{resourceType}/{id} \
  --header 'Authorization: Bearer <token>'
{
  "resourceType": "Patient",
  "id": "123",
  "meta": {
    "versionId": "5",
    "lastUpdated": "2026-01-12T10:30:00.000Z"
  },
  "name": [
    {
      "use": "official",
      "family": "Doe",
      "given": ["John", "Michael"]
    }
  ],
  "gender": "male",
  "birthDate": "1990-01-01",
  "identifier": [
    {
      "system": "http://hospital.example/mrn",
      "value": "12345"
    }
  ],
  "telecom": [
    {
      "system": "phone",
      "value": "555-0100",
      "use": "home"
    }
  ]
}
Retrieves the current version of a specific resource by its logical ID.

Endpoint

GET /fhir/{resourceType}/{id}
resourceType
string
required
The FHIR resource type (e.g., Patient, Observation, Encounter)
id
string
required
The logical ID of the resource

Headers

Accept
string
Response format: application/fhir+json (default) or application/fhir+xml
If-None-Match
string
Conditional read. Only return resource if version differs from provided ETag.Example: W/"5" - Returns 304 Not Modified if current version is still “5”
If-Modified-Since
string
Conditional read. Only return resource if modified after this timestamp.Example: Mon, 12 Jan 2026 10:00:00 GMT

Response

200 OK

Resource found and returned.
id
string
required
The logical ID of the resource
meta.versionId
string
required
Current version number
meta.lastUpdated
string
required
ISO 8601 timestamp of last modification
{
  "resourceType": "Patient",
  "id": "123",
  "meta": {
    "versionId": "5",
    "lastUpdated": "2026-01-12T10:30:00.000Z"
  },
  "name": [
    {
      "use": "official",
      "family": "Doe",
      "given": ["John", "Michael"]
    }
  ],
  "gender": "male",
  "birthDate": "1990-01-01",
  "identifier": [
    {
      "system": "http://hospital.example/mrn",
      "value": "12345"
    }
  ],
  "telecom": [
    {
      "system": "phone",
      "value": "555-0100",
      "use": "home"
    }
  ]
}

304 Not Modified

Conditional read succeeded, resource hasn’t changed (when using If-None-Match or If-Modified-Since).
No body returned

404 Not Found

Resource does not exist.
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "not-found",
      "diagnostics": "Resource Patient/123 not found"
    }
  ]
}

410 Gone

Resource was deleted (soft delete).
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "deleted",
      "diagnostics": "Resource Patient/123 was deleted"
    }
  ]
}
Accessing Deleted Resources: Use the history endpoint to read deleted resources: GET /fhir/Patient/123/_history/5

HEAD Request

Check if a resource exists without retrieving its content.
HEAD /fhir/{resourceType}/{id}
Exists:

Examples

curl -H "Accept: application/fhir+json" \
  "https://your-server.com/fhir/Patient/123"

Notes

Case Sensitivity: Resource IDs are case-sensitive. Patient/abc and Patient/ABC are different resources.
Performance: Use If-None-Match to avoid transferring unchanged resources. Cache the ETag from previous reads and send it with subsequent requests.
Versioning: This endpoint always returns the current version. To read a specific historical version, use the versioned read endpoint: GET /fhir/Patient/123/_history/5

See Also

Authorizations

Authorization
string
header
required

Bearer token authentication

Headers

If-None-Match
string

For conditional reads (304 Not Modified)

If-Modified-Since
string<date-time>

For conditional reads (304 Not Modified)

Path Parameters

resourceType
string
required

The FHIR resource type (e.g., Patient, Observation, Encounter)

id
string
required

The logical ID of the resource

Response

Resource found

A FHIR resource. All resources have resourceType, id, and meta fields.

resourceType
string
required

The type of resource

id
string

Logical id of this artifact

meta
object

Metadata about a resource