Skip to main content
GET
List patients

Example Request

Example Response

The nightly EHR sync fills the core demographics: name, date of birth, sex, phone numbers, email, address, MRN, and primary insurance. Other fields, such as language, race, ethnicity, deceased, and insurances, can be filled only by a live fetch of the patient, and are null until then. Live fetch a patient once to fill these fields. object_metadata.live_fetched_at shows when the patient was last live-fetched (null if never).
All filter parameters are optional. If no filters are provided, the endpoint returns all patients, paginated according to the default values or specified page and page_size. To resolve a patient you already track by an external identifier, filter by mrn or ehr_id (both are exact-match): the response includes Cobalt’s id alongside ehr_id and mrn.
ehr_id is the patient’s EHR-native identifier. It is null while a patient is still pending creation or failed in the EHR, and is populated once the EHR record exists. object_metadata.source reports provenance: cobalt_operation, ehr_sync, or unknown.

Authorizations

client_id
string
header
required
client_secret
string
header
required
access_token
string
header
required

Query Parameters

dob
string<date>

Filter by date of birth (YYYY-MM-DD).

Example:

"1980-01-15"

first_name
string

Filter by first name.

Example:

"Jane"

last_name
string

Filter by last name.

Example:

"Doe"

phone
string

Filter by phone.

Example:

"555-123-4567"

cell_phone
string

Filter by cell phone.

Example:

"555-987-6543"

mrn
string

Filter by Medical Record Number.

Example:

"12345"

ehr_id
string

Filter by EMR patient ID.

Example:

"patient-emr-123"

address_state
string

Filter by two-letter U.S. state abbreviation.

Example:

"CA"

status
string

Filter by status: active, inactive, or all (default active).

Example:

"active"

include_inactive
enum<string>

Legacy toggle to include inactive patients. Prefer status. When true, inactive patients are returned alongside active ones.

Available options:
true,
false
Example:

"false"

sort
string

Sort order by creation time: created_at (oldest first) or -created_at (newest first, default).

Example:

"-created_at"

page
integer | null

Page number (>= 1, default 1).

Required range: x >= 1
Example:

1

page_size
integer | null

Results per page (1–1000, default 100).

Required range: 1 <= x <= 1000
Example:

100

Response

Patients for the account

success
boolean
required
Example:

true

patients
object[]
required
Example:
pagination
object
required