---
title: "Get a list of patients"
method: GET
path: "/api/2026-01-01/patients"
tags: ["Patients"]
---

# Get a list of patients

`GET /api/2026-01-01/patients`

## Request

- Base URL: `https://jdpdocsdemo.jane.qa`
- URL: `https://jdpdocsdemo.jane.qa/api/2026-01-01/patients`
- Auth: OAuth 2
  - Authorization code: `https://login.id.janeapp.com/realms/jane_partner_sandbox/protocol/openid-connect/auth?response_type=code&resource=https://jdpdocsdemo.jane.qa&prompt=consent`
  - Token URL: `https://login.id.janeapp.com/realms/jane_partner_sandbox/protocol/openid-connect/token` scopes: `patients:read`

Retrieve a list of patients.

Filtering:
Filter records by field values using the format: field[operator]=value

Available fields:
- `public_id`: string
- `created_at`: ISO 8601 datetime (e.g. 2025-01-01T12:00:00Z)
- `updated_at`: ISO 8601 datetime

Available operators:
- `eq`: Equals
- `gt`: Greater than
- `gte`: Greater than or equal
- `lt`: Less than
- `lte`: Less than or equal

Date-time filters (ex. `created_at`, `updated_at`) must:
- Use [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format
- Be **precise to the second** (e.g. `2025-01-01T12:00:00Z`)

Free-text search across name, email, phone, and patient number is available via `POST /patients/search` (PII is not supported in query strings).

Examples:
```
/patients?public_id[eq]=abc123
/patients?created_at[gte]=2025-01-01T00:00:00Z&created_at[lt]=2025-01-02T00:00:00Z
```

## Query parameters

- `page[cursor]` string
- `page[limit]` integer
- `sort` string
- `public_id` StringFilterSchema
  - `eq` string: equals. Multiple equal values are comma-separated: ?field[eq]=value1,value2 (maximum 100 values)
  - `ne` string: not equals
  - `co` string: contains. Performs partial match (case-insensitive for string fields). Example: ?field[co]=search_term
  - `gt` string: greater than
  - `gte` string: greater than or equal to
  - `lt` string: less than
  - `lte` string: less than or equal to
  - `sw` string: starts with. Performs case-insensitive partial match for words in a string that begin with search term. Example: ?field[sw]=search_term
- `created_at` DateTimeFilterSchema
  - `eq` string, date-time: equals. Multiple equal values are comma-separated: ?field[eq]=value1,value2
  - `ne` string, date-time: not equals
  - `gt` string, date-time: greater than
  - `gte` string, date-time: greater than or equal to
  - `lt` string, date-time: less than
  - `lte` string, date-time: less than or equal to
- `updated_at` DateTimeFilterSchema
  - `eq` string, date-time: equals. Multiple equal values are comma-separated: ?field[eq]=value1,value2
  - `ne` string, date-time: not equals
  - `gt` string, date-time: greater than
  - `gte` string, date-time: greater than or equal to
  - `lt` string, date-time: less than
  - `lte` string, date-time: less than or equal to

## Response `200`

The paginated list of patients

- Patients: A list of patients.
  - `items` Patient2[]
    - `id` string, uuid, required: Unique identifier for the patient
    - `first_name` string: Patient's first name
    - `middle_name` string: Patient's middle name
    - `last_name` string: Patient's last name
    - `prefix` string: Patient's name prefix/title
    - `preferred_name` string: Patient's preferred name or nickname
    - `sex` 'male' | 'female' | 'x': Patient's sex which matches what is on their insurance policies
    - `gender` string: Patient's current gender, which may differ from gender indicated on their insurance policies
    - `pronouns` string: Patient's preferred pronouns
    - `date_of_birth` string, date: Patient's date of birth. Format: YYYY-MM-DD
    - `guardian_name` string: Patient's guardian name
    - `patient_since` string, date: Patient's date of registration
    - `patient_number` string: Patient's number
    - `email` string, email: Patient's email address
    - `send_marketing_emails` boolean: Patient's marketing email preferences
    - `do_not_email` boolean: Patient's general email opt-out preference
    - `status` 'active' | 'discharged' | 'deceased' | 'archived': Patient's current lifecycle state
    - `mobile_country_code` string: Deprecated. Use the phone_numbers array instead. This field will be removed in a future version.
    - `mobile_phone_number` string: Deprecated. Use the phone_numbers array instead. This field will be removed in a future version.
    - `phone_numbers` object[]: All phone numbers associated with the patient. Only non-blank numbers are included.
      - `type` 'home' | 'mobile' | 'work' | 'fax', required: The phone number type
      - `number` string, required: The phone number
      - `is_primary` boolean, required: Whether this is the patient's primary phone number
    - `street_address` string: Patient's street address
    - `street_address_2` string: Additional street address information
    - `city` string: Patient's city of residence
    - `province` string: Patient's state/province
    - `postal` string: Postal/ZIP code
    - `country` string: Country code
    - `deep_links` object: Platform-specific links for accessing this patient in different contexts (e.g., admin web app, mobile app)
      - `profile` object: Links to the patient profile resource
        - `web` string, uri: Direct link to the patient's profile in the Jane admin web UI
  - `cursor` string, nullable: The Base64 encoded cursor for the next page. null if this is the last page.
  - `limit` integer
  - `links` object
    - `after` string, nullable: URL for the next page of results. null if this is the last page.
  - `hasNextPage` boolean: Whether there is a next page of patients

## Other responses

- `400`: The request was invalid
- `401`: Unauthorized
- `429`: Rate limit exceeded - 100 requests per minute per endpoint per clinic

## Changes

- **2026-11-03** `01798f613a5e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/jane/apis/jdp-api/changes/api/2026-01-01/patients/get.md)

---

[API](https://skmtc.dev/jane/apis/jdp-api.md) - [All operations](https://skmtc.dev/jane/apis/jdp-api/llms.txt) - [OpenAPI document](https://skmtc.dev/jane/apis/jdp-api/revisions/01798f613a5e?raw)
