---
title: "Read raw secondary care consultation records"
method: GET
path: "/api/sites/hospital/consultations"
tags: ["Secondary care"]
---

# Read raw secondary care consultation records

`GET /api/sites/hospital/consultations`

## Request

- Base URL: `https://sim.animahealth.com`
- URL: `https://sim.animahealth.com/api/sites/hospital/consultations`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer
  - API key in cookie `sim_session`

Requires hospital scope. Returns complete stored synthetic resources owned by and visible to hospital in your team's world without truncating or projecting their data or provenance. Exact patient filtering excludes records without that patient ID; unknown patients return an empty page. total counts matching records before pagination. Records retain storage insertion order; advance offset by items.length until reaching total. Pause simulation time for stable pagination. Includes hospital-note, clinical-note, consultation and encounter records owned by hospital. Preserves narrative text, sections, draft/signed status, signedBy, signedAt and addenda when stored. GP encounters, GP consultations and longitudinal GP EHR records are excluded. Discharge correspondence is available separately through /api/sites/hospital/documents. Hospital-note data follows HospitalNote.

## Query parameters

- `patient` string
- `offset` integer
- `limit` integer
- `world` string

## Response `200`

Success

- SecondaryCareConsultationsPage
  - `items` SecondaryCareConsultation[], required
    - `id` string, required
    - `patientId` string
    - `kind` 'hospital-note' | 'clinical-note' | 'consultation' | 'encounter', required
    - `title` string, required
    - `status` string, required
    - `owner` 'hospital', required
    - `visibleTo` string[], required
    - `priority` 'routine' | 'urgent', required
    - `createdAt` number, required: Simulation Unix timestamp in milliseconds.
    - `dueAt` number: Simulation Unix timestamp in milliseconds.
    - `data` object, required: Kind-specific payload. Hospital notes, medication orders and blood-test orders use the named schemas; the full workspace payload is returned without projection.
    - `version` integer, required
    - `provenance` object
      - `created` RecordChange, required
        - `actor` object, required
          - `kind` 'team' | 'operator' | 'simulation', required
          - `name` string, required
        - `source` string, required
        - `action` string, required
        - `time` number, required: Simulation Unix timestamp in milliseconds.
        - `version` integer, required
      - `changes` RecordChange[], required
        - `actor` object, required
          - `kind` 'team' | 'operator' | 'simulation', required
          - `name` string, required
        - `source` string, required
        - `action` string, required
        - `time` number, required: Simulation Unix timestamp in milliseconds.
        - `version` integer, required
      - `recovery` object
  - `total` integer, required
  - `offset` integer, required
  - `limit` integer, required
  - `now` number, required: Simulation Unix timestamp in milliseconds.

## Other responses

- `400`: Invalid input or unsupported workflow
- `401`: Missing or invalid credentials
- `403`: Scope, origin or operator restriction
- `404`: Unknown resource
- `405`: Read-only endpoint; use GET
- `409`: Stale version, invalid transition or unavailable capacity
- `413`: Request exceeds this operation's body-size limit
- `429`: Deployment has reached its 5,000-team capacity
- `500`: Internal simulation error

---

[API](https://skmtc.dev/animahealth/apis/nhs-sim-api.md) - [All operations](https://skmtc.dev/animahealth/apis/nhs-sim-api/llms.txt) - [OpenAPI document](https://skmtc.dev/animahealth/apis/nhs-sim-api/revisions/c7803d7a3e58?raw)
