List patients
GET/api/integration/v1/patients
Returns the clinic's patients, ordered by last update, oldest first. A record that was merged into another record is still listed, as a tombstone with mergedIntoId. Requires the patients:read scope.
Query parameters
| Parameter | Description |
|---|---|
updatedSincestring · date-timeoptional |
Returns only records whose updatedAt is at or after this time. Use an ISO 8601 date-time with a time zone, for example 2026-10-01T00:00:00.000Z. For how to use it, see Incremental sync. |
cursorstringoptional |
The nextCursor value from the previous page, exactly as returned. Omit it on the first page. See Pagination. |
limitintegeroptional |
From 1 to 500. Default 200. |
Response 200
A page of patients: { requestId, patients, nextCursor }. Each element of patients has the fields of a patient, or is a tombstone. If nextCursor is not null, there is a next page.
Errors
| Error code | When |
|---|---|
INVALID_UPDATED_SINCE400 | updatedSince is not an ISO 8601 date-time with a time zone, or appears more than once. |
INVALID_CURSOR400 | cursor is not valid, or was issued by a different endpoint. |
INVALID_LIMIT400 | limit is not an integer from 1 to 500. |
UNKNOWN_PARAMETER400 | A parameter that is not listed under “Query parameters”, including one with a misspelled name. |
INSUFFICIENT_SCOPE403 | The API key does not have the patients:read scope. |
Every endpoint can also return 401, 429 and 5xx. See Error codes.
curl -sS "https://iclinic.phongkhamhieploi.vn/api/integration/v1/patients?limit=200" \
-H "Authorization: Bearer $ICLINIC_API_KEY"
{
"requestId": "req_7c1f3a",
"patients": [
{
"id": "5b0d6a38-3f5a-4a52-8f7c-1d2e9c4b7a10",
"code": "BN-000412",
"name": "Nguyễn Văn A",
"phone": "0900000001",
"gender": "MALE",
"birthYear": 1984,
"patientType": "OLD",
"status": "ACTIVE",
"registeredDate": "2026-03-02",
"createdAt": "2026-03-02T01:30:00.000Z",
"updatedAt": "2026-10-04T08:12:45.120Z",
"deletedAt": null
},
{
"id": "c9a1d7e2-0b34-4c6f-8a51-6e7f3b2d9c08",
"deletedAt": "2026-10-05T03:00:00.000Z",
"updatedAt": "2026-10-05T03:00:00.000Z",
"mergedIntoId": "5b0d6a38-3f5a-4a52-8f7c-1d2e9c4b7a10"
}
],
"nextCursor": "djF8cGF0aWVudHN8MjAyNi0xMC0wNVQwMzowMDowMC4wMDBafGM5YTFkN2UyLTBiMzQtNGM2Zi04YTUxLTZlN2YzYjJkOWMwOA"
}