For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Scans up to 1000 patient updates. The since query parameter is inclusive, and the result list is ordered by updatedAt ascending.
**Polling Pattern:**
To continuously poll for updates without gaps:
1. Make your initial request with a `since` timestamp (e.g., `since=2020-01-01T13:00:00.000Z`)
2. The API returns 100 by default and up to 1000 patient records, sorted by `updated_at` ascending
3. Find the `updated_at` value from the last record in the response
4. Use that `updated_at` value as the `since` parameter in your next request
5. Repeat steps 2-4 to ingest updates until you receive an empty list
**Important Notes:**
- The `since` parameter is inclusive, so you may receive the last record from the previous batch again (you can deduplicate by ID and version)
- All patient records include `updated_at`, `id`, `version`, `deactivated`, and `updating_user` fields for tracking changes
- Timestamps have millisecond resolution for precise ordering
True if the object is deactivated. Deactivated objects are not returned in search results but are returned in all other endpoints including scan.
filing_orderobject
The patient's active coverages, in order of primary, secondary, etc.
general_practitionerslist of objects
idstring
The unique UUID identifier for a Patient. Patient ID is used in machine contexts.
mrnstring
The medical record number for the patient. Human-friendly Candid generated MRNs are of the form “YYMMDDXXXX”, where “YYMMDD” is the date of patient creation and “XXXX” is a zero-padded incrementing integer.
nameobject
organization_idstring
The organization that owns this object.
other_addresseslist of objects
Other addresses for the patient.
other_nameslist of objects
Other names for the patient.
other_telecomslist of objects
Other phone numbers for the patient.
primary_addressobject
The primary address for the patient.
updated_atdatetime
updating_user_idstring
The user ID of the user who last updated the object.
versioninteger
The version of the object. Any update to any property of an object object will create a new version.
advanced_directiveslist of enumsOptional
authorizationslist of objectsOptional
coverages_for_related_causesobjectOptional
Additional coverages for the patient applicable to related causes such as Auto or Workers Comp
custom_metadatalist of objectsOptional
Custom key/value metadata attached to this patient, grouped by the MetadataSchema that defines the keys’ types. Configure schemas via the metadata-schemas API. Values are validated against the referenced schema on write.
deceaseddatetimeOptional
Time of death for the patient. Leave unset if the patient is not deceased.
disability_statusenumOptional
do_not_invoice_reasonenumOptional
If this value is defined, the customer will not be invoiced.
electronic_communication_consentobjectOptional
Granular consent for electronic communication channels.
emailstringOptional
ethnicityenumOptional
external_provenanceobjectOptional
Information about the upstream system that owns this patient data. Leave unset if Candid owns patient data.
genderenumOptional
guarantorobjectOptional
hipaa_codestringOptional
inferred_patient_metadataobjectOptional
Metadata for the patient used for patient inference from encounters.
languagestringOptional
marital_statusenumOptional
multiple_birthintegerOptional
The number of siblings the patient was born with. Leave unset if the patient was not part of a multiple birth.
non_insurance_payer_associationslist of objectsOptional
note_idslist of stringsOptional
orconbooleanOptional
ORCON (Originator Controlled) - When set to true, the Candid system will hide this patient from downstream integrations. Updates made in the Candid UI will unset this flag. Defaults to false.
origination_detailobjectOptional
Information about the patient source, if applicable.
Use electronic_communication_consent for granular channel-level consent. This field is kept in sync automatically but should not be used for new integrations.
non_insurance_payerslist of stringsOptionalDeprecated
Scans up to 1000 patient updates. The since query parameter is inclusive, and the result list is ordered by updatedAt ascending.
Polling Pattern:
To continuously poll for updates without gaps:
Make your initial request with a since timestamp (e.g., since=2020-01-01T13:00:00.000Z)
The API returns 100 by default and up to 1000 patient records, sorted by updated_at ascending
Find the updated_at value from the last record in the response
Use that updated_at value as the since parameter in your next request
Repeat steps 2-4 to ingest updates until you receive an empty list
Important Notes:
The since parameter is inclusive, so you may receive the last record from the previous batch again (you can deduplicate by ID and version)
All patient records include updated_at, id, version, deactivated, and updating_user fields for tracking changes
Timestamps have millisecond resolution for precise ordering