Skip to content

List Cases

Lists cases across the organisation, optionally filtered by patient or status.

Endpoint

GET /v2/cases

Query Parameters

Parameter Type Required Description
page integer Yes 1-based page number. Defaults to 1.
page_size integer Yes Results per page. Defaults to 25.
patient_id string Yes The patient. Correlate on this — it's a stable id, and there's no external-reference field.
status string No One of ACTIVE, DISCHARGED.

Request

curl --location '{base_url}/v2/cases?page=1&page_size=25&patient_id=63120' \
  --header 'Authorization: Bearer JWT_TOKEN'

Response

Success Response

Code: 200 OK

{
  "items": [
    {
      "spry_case_id": "SPRY-63120-2",
      "patient_id": "63120",
      "title": "L Knee Post-Op",
      "speciality": "PHYSICAL_THERAPY",
      "status": "ACTIVE",
      "body_parts": [
        "KNEE"
      ],
      "icd_codes": [
        "M25.562"
      ],
      "date_of_injury": "2026-08-27",
      "date_of_surgery": "2026-08-27",
      "referring_physician_id": "3377",
      "treating_provider_ids": [
        "2094"
      ],
      "primary_coverage_id": "90455",
      "secondary_coverage_id": null,
      "visit_count": null,
      "visit_limit": null,
      "authorization_required": true,
      "authorization_status": null,
      "created_at": "2026-08-27T14:30:00Z",
      "updated_at": "2026-08-27T14:30:00Z"
    }
  ],
  "page": 1,
  "page_size": 25,
  "total": 1,
  "total_pages": 1
}

Response Fields

Field Type Description
items array of object The page of results. See Items.
page integer 1-based page number.
page_size integer Results per page.
total integer Total results matching the query.
total_pages integer Total pages available.

Items

Field Type Description
spry_case_id string The case's business key.
patient_id string The patient. Correlate on this — it's a stable id, and there's no external-reference field.
title string A short label for the episode of care.
speciality string or null The record's primary speciality.
status string One of ACTIVE, DISCHARGED.
body_parts array of string Body parts treated on this case. Plain names; laterality isn't modelled.
icd_codes array of string
date_of_injury string (date) or null YYYY-MM-DD.
date_of_surgery string (date) or null YYYY-MM-DD.
referring_physician_id string or null Id from List Referring Physicians. Create the registry record first, then reference it here. An explicit null clears the slot.
treating_provider_ids array of string Providers treating this case.
primary_coverage_id string or null
secondary_coverage_id string or null Id of a second coverage to bill this episode against. null when unset; an explicit null on PATCH clears the slot.
visit_count integer or null
visit_limit integer or null
authorization_required boolean
authorization_status string or null
created_at string (date-time) or null
updated_at string (date-time) or null

Error Response

Code: 400 Bad Request

{
  "code": "bad_request",
  "message": "Validation failed",
  "errors": [
    {
      "field": "patient_id",
      "message": "must be a string"
    }
  ]
}

Every error has the same shape — a machine-readable code, a message, and an errors[] array that's empty when there's nothing field-specific to report. The HTTP status is authoritative.

Status code Meaning
400 Bad Request bad_request The request body or parameters failed validation. errors[] names the offending fields.
401 Unauthorized unauthorized The access token is missing, malformed or expired.
403 Forbidden forbidden The request references a resource outside the token's organisation or clinic scope.
404 Not Found not_found No such resource, or it's outside your scope.
429 Too Many Requests rate_limited Rate limit exceeded. Back off and retry.
500 Internal Server Error internal_error Unexpected server error.
502 Bad Gateway upstream_error Upstream service failed or timed out.