Create Appointment¶
Create a new appointment for a patient with a doctor at a specific clinic.
Endpoint¶
Request Body¶
| Parameter | Type | Required | Description |
|---|---|---|---|
doctor_id |
integer | Yes | The unique identifier of the doctor |
patient_id |
integer | Yes | The unique identifier of the patient |
clinic_id |
integer | Yes | The unique identifier of the clinic |
appointment_category |
array | Yes | Array of appointment category IDs |
timestamp |
integer | Yes | Start time as Unix timestamp (seconds since epoch) |
end_timestamp |
integer | Yes | End time as Unix timestamp (seconds since epoch) |
payment_mode |
string | Yes | Payment method (see Payment Mode Values) |
spry_case_id |
string | No | Case to associate with this appointment (e.g. "SPRY_CASE_694937120fde6014d5956f69"); links appointment to an existing patient case |
tele_health_url |
string | No | Telehealth session URL; set when booking a virtual appointment |
comments |
string | No | Provider-facing notes or comments for the appointment |
appointment_notes |
string | No | Additional notes attached to the appointment |
Request¶
curl --location '{base_url}/apis/v1/appointment' \
--header 'Authorization: Bearer JWT_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"doctor_id": 239,
"patient_id": 538748,
"clinic_id": 18,
"appointment_category": [14],
"timestamp": 1768055113,
"end_timestamp": 1768058713,
"payment_mode": "INSURANCE_PAY",
"spry_case_id": "SPRY_CASE_694937120fde6014d5956f69"
}'
Request Examples¶
Self-Pay Appointment¶
{
"doctor_id": 485195,
"patient_id": 12345,
"clinic_id": 525,
"appointment_category": [3403],
"timestamp": 1721836800,
"end_timestamp": 1721838600,
"payment_mode": "SELF_PAY"
}
Insurance-Pay Appointment Linked to a Case¶
{
"doctor_id": 485195,
"patient_id": 12345,
"clinic_id": 525,
"appointment_category": [3403],
"timestamp": 1721836800,
"end_timestamp": 1721838600,
"payment_mode": "INSURANCE_PAY",
"spry_case_id": "SPRY_CASE_694937120fde6014d5956f69"
}
Response¶
Success Response¶
Code: 200 OK
{
"code": 2000,
"message": "Success",
"data": {
"appointment_id": 2245423,
"doctor": {
"doctor_id": 239,
"first_name": "ADMIN",
"last_name": "",
"email": "t@spryhealth.care"
},
"patient": {
"patient_id": 538748,
"first_name": "Jane",
"last_name": "Doe"
},
"clinic": {
"clinic_id": 18,
"name": "Spry Main Clinic"
},
"category": [
{ "category_id": 14, "name": "Initial Evaluation" }
],
"date_time": 1768055113,
"end_date_time": 1768058713,
"status": "SCHEDULED",
"payment_mode": "INSURANCE_PAY",
"spry_case_id": "SPRY_CASE_694937120fde6014d5956f69",
"case_title": "Stable Burst Fracture",
"tele_health_url": null,
"comments": null,
"appointment_notes": null,
"created_at": "2026-06-16T10:30:00",
"updated_at": "2026-06-16T10:30:00"
}
}
Response Fields¶
| Field | Type | Description |
|---|---|---|
appointment_id |
integer | Unique ID of the created appointment |
doctor |
object | Doctor summary (id, name, email) |
patient |
object | Patient summary (id, name) |
clinic |
object | Clinic summary (id, name) |
category |
array | Appointment categories with id and name |
date_time |
integer | Start time as Unix timestamp |
end_date_time |
integer | End time as Unix timestamp |
status |
string | Appointment status (e.g. SCHEDULED) |
payment_mode |
string | Payment mode for this appointment |
spry_case_id |
string | Associated case ID, if provided |
case_title |
string | Title of the associated case, if any |
tele_health_url |
string | Telehealth URL, if set |
comments |
string | Provider-facing comments |
appointment_notes |
string | Notes attached to the appointment |
created_at |
string | Creation timestamp |
updated_at |
string | Last updated timestamp |
Error Response¶
Code: 400 Bad Request
Payment Mode Values¶
| Value | Description |
|---|---|
SELF_PAY |
Patient pays directly out of pocket |
INSURANCE_PAY |
Payment through insurance coverage |
CASH |
Cash payment |
CARD |
Card payment |
UPI |
UPI payment |
WALLET |
Wallet payment |