Get Appointments
curl --request GET \
--url https://api.eka.care/dr/v1/appointment \
--header 'Authorization: <authorization>'import requests
url = "https://api.eka.care/dr/v1/appointment"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.eka.care/dr/v1/appointment', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.eka.care/dr/v1/appointment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.eka.care/dr/v1/appointment"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.eka.care/dr/v1/appointment")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eka.care/dr/v1/appointment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"appointments": [
{
"appointment_id": "apt_001",
"partner_appointment_id": "p_001",
"created_at": 1730189586,
"doctor_id": "doc_123",
"clinic_id": "cln_456",
"patient_id": "pat_789",
"channel": "Walkin",
"status": "CM",
"mode": "in_clinic",
"start_time": 1730189586,
"end_time": 1730189586,
"prescription_id": "presc_001",
"prescription_url": "https://prescription-store-s3.eka.care/P-DW-1234.pdf",
"partner_patient_id": "partner_patient_id1",
"partner_doctor_id": "partner_doc_id1",
"partner_clinic_id": "partner_clinic_id1"
}
]
}{
"error": {
"code": "INVALID_REQUEST_PARAMETERS",
"message": "You must provide one of the valid filter combinations."
}
}{
"message": "Forbidden"
}{
"error": {
"code": "SERVER_ERROR",
"message": "An unexpected error occurred while processing your request. Please try again later."
}
}Appointment API
Get Appointments
Overview
This API endpoint is used to retrieve all the appointments scheduled for a business with flexible filters.
Additional Information:
- Valid filter combinations:
patient_id(alone)doctor_id,start_date,end_dateclinic_id,start_date,end_datestart_date,end_datedoctor_id,clinic_id,start_date,end_date
- Dates must follow
YYYY-MM-DDformat. - The date range must not exceed 7 days.
end_datecannot be beforestart_date.- There is a
limiti.e the maximum number of appointments returned per page. The value oflimitis automatically set based on the filters used:- 20 → when filtering by
patient_id(alone). - 50 → when filtering by (
doctor_id,start_date,end_date) OR (clinic_id,start_date,end_date) OR (doctor_id,clinic_id,start_date,end_date). - 30 → when filtering only by (
start_date,end_date).
- 20 → when filtering by
Appointment_statuses:
Booked / Queue States:
- BK (Booked) : Appointment created/confirmed.
- CK (Checked-in) : Booked appointment added to the Queue (Checked-in).
- RV (Reserved) : Appointment marked as Reserved, when patient said they will come for the appointment on the follow-up appointment message.
- IN (Initiated) : Appointment marked as Initiated, when patient received follow-up appointment message.
- PA (Parked) : Appointment moved to Parked state.
Ongoing States:
- OG (Ongoing): Consultation is in progress.
Completion Statuses:
- CM (Completed): Appointment completed with a prescription created.
- CMNP (Completed No Prescription) : Appointment marked Exit from Queue / Completed without a prescription.
- AB (Aborted) : Appointment was started (Start Visit) but not completed. Automatically marked AB at 12:00 AM next day.
- NS (No Show) : Appointment was added to Queue but not started/completed. Automatically marked NS at 12:00 AM next day.
- NSD (No Show Doctor) : No-show tagged specifically from a doctor’s action (if implemented).
- NSS (No Show Staff) : No-show tagged specifically from a staff action (if implemented).
Cancellation Statuses:
- CN (Cancelled) : Appointment cancelled via API.
- CND (Cancelled Doctor) : Cancelled from the doctor’s account in the tool.
- CNS (Cancelled Staff) : Cancelled from the staff’s account in the tool.
- PC (Provisional Cancelled) : Appointment marked as provisional cancellation, when patient said they will not come for the appointment on the follow-up appointment message.
- PNR (Payment Not Received) : Appointment marked as PNR, when patient tried paying for a pre-paid appointment but the payment failed.
Reschedule Statuses:
- RE : Rescheduled via API.
- RES : Rescheduled from staff account.
- RED : Rescheduled from doctor account.
GET
/
dr
/
v1
/
appointment
Get Appointments
curl --request GET \
--url https://api.eka.care/dr/v1/appointment \
--header 'Authorization: <authorization>'import requests
url = "https://api.eka.care/dr/v1/appointment"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.eka.care/dr/v1/appointment', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.eka.care/dr/v1/appointment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.eka.care/dr/v1/appointment"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.eka.care/dr/v1/appointment")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eka.care/dr/v1/appointment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"appointments": [
{
"appointment_id": "apt_001",
"partner_appointment_id": "p_001",
"created_at": 1730189586,
"doctor_id": "doc_123",
"clinic_id": "cln_456",
"patient_id": "pat_789",
"channel": "Walkin",
"status": "CM",
"mode": "in_clinic",
"start_time": 1730189586,
"end_time": 1730189586,
"prescription_id": "presc_001",
"prescription_url": "https://prescription-store-s3.eka.care/P-DW-1234.pdf",
"partner_patient_id": "partner_patient_id1",
"partner_doctor_id": "partner_doc_id1",
"partner_clinic_id": "partner_clinic_id1"
}
]
}{
"error": {
"code": "INVALID_REQUEST_PARAMETERS",
"message": "You must provide one of the valid filter combinations."
}
}{
"message": "Forbidden"
}{
"error": {
"code": "SERVER_ERROR",
"message": "An unexpected error occurred while processing your request. Please try again later."
}
}Headers
Example:
"auth"
Query Parameters
Filter by patient. Cannot be combined with any other filter.
Filter by doctor (must be combined with start_date and end_date).
Filter by clinic (must be combined with start_date and end_date).
Start date of appointments.
Example:
"2025-05-01"
End date of appointments.
Example:
"2025-05-07"
Page number for pagination (starts from 0).
- Each page contains up to say 50 appointments (
limit=50). page_no=0means the first page.- If the
"appointments"array has exactly 50 items, there may be more results. Continue withpage_no=1,page_no=2, etc. - If the
"appointments"array has fewer than 50 items, there are no more results and you can stop fetching.
Example:
0
Response
Successful response with appointment list
Show child attributes
Show child attributes
Was this page helpful?

