Endpoints
The iClinic Integration API has 9 endpoints. All of them use GET and are read-only. Every path starts with /api/integration/v1. Select a description to see that endpoint's parameters, response and errors. Each group needs its own scope.
Encounters
| Description | HTTP request |
|---|---|
| List encounters | GET /encounters |
Patients
| Description | HTTP request |
|---|---|
| List patients | GET /patients |
| Get a patient | GET /patients/{id} |
Appointments
| Description | HTTP request |
|---|---|
| List appointments | GET /appointments |
| Get an appointment | GET /appointments/{id} |
Receipts
| Description | HTTP request |
|---|---|
| List receipts | GET /receipts |
| Get a receipt | GET /receipts/{id} |
Therapy plans
| Description | HTTP request |
|---|---|
| List therapy plans | GET /therapy-plans |
| Get a therapy plan | GET /therapy-plans/{id} |
The four lists of patients, appointments, receipts and therapy plans use cursor paging and accept the updatedSince filter. The encounters list uses page-number paging. See Pagination and Incremental sync.
BASE=https://iclinic.phongkhamhieploi.vn/api/integration/v1
AUTH="Authorization: Bearer $ICLINIC_API_KEY"
# Encounters by date (page / pageSize paging)
curl -sS -H "$AUTH" "$BASE/encounters?from=2026-09-14&to=2026-09-19"
# The other four lists (cursor / limit paging)
curl -sS -H "$AUTH" "$BASE/patients?limit=200"
curl -sS -H "$AUTH" "$BASE/appointments?limit=200"
curl -sS -H "$AUTH" "$BASE/receipts?limit=200"
curl -sS -H "$AUTH" "$BASE/therapy-plans?limit=200"
# One record by id (take the id from a list), for example a patient
curl -sS -H "$AUTH" "$BASE/patients/$PATIENT_ID"