curl --request GET \
--url https://scribe-api.telepatia.ai/v1/appointments \
--header 'Authorization: Bearer <token>'import requests
url = "https://scribe-api.telepatia.ai/v1/appointments"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://scribe-api.telepatia.ai/v1/appointments', 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://scribe-api.telepatia.ai/v1/appointments",
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: Bearer <token>"
],
]);
$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://scribe-api.telepatia.ai/v1/appointments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scribe-api.telepatia.ai/v1/appointments")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scribe-api.telepatia.ai/v1/appointments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"appointmentType": "follow-up",
"consultationInternalId": "CONSULT-12345",
"createdAt": "2026-08-28T12:00:00.000Z",
"end": "2026-09-01T14:30:00.000Z",
"id": "apt_a1b2c3d4e5f6g7h8",
"minutesDuration": 30,
"reason": "Follow-up",
"serviceType": "cardiology",
"start": "2026-09-01T14:00:00.000Z",
"status": "booked"
}
],
"page": 123,
"limit": 123,
"hasMore": true,
"total": 123,
"totalPages": 123
}List appointments (agenda)
List the appointments visible to the authenticated caller, tenant-scoped by role, sorted by start time. Filter by a start-time range and status, paginated.
curl --request GET \
--url https://scribe-api.telepatia.ai/v1/appointments \
--header 'Authorization: Bearer <token>'import requests
url = "https://scribe-api.telepatia.ai/v1/appointments"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://scribe-api.telepatia.ai/v1/appointments', 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://scribe-api.telepatia.ai/v1/appointments",
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: Bearer <token>"
],
]);
$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://scribe-api.telepatia.ai/v1/appointments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scribe-api.telepatia.ai/v1/appointments")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scribe-api.telepatia.ai/v1/appointments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"appointmentType": "follow-up",
"consultationInternalId": "CONSULT-12345",
"createdAt": "2026-08-28T12:00:00.000Z",
"end": "2026-09-01T14:30:00.000Z",
"id": "apt_a1b2c3d4e5f6g7h8",
"minutesDuration": 30,
"reason": "Follow-up",
"serviceType": "cardiology",
"start": "2026-09-01T14:00:00.000Z",
"status": "booked"
}
],
"page": 123,
"limit": 123,
"hasMore": true,
"total": 123,
"totalPages": 123
}Authorizations
API key passed as a Bearer token
Query Parameters
ISO-8601 lower bound on start (inclusive).
ISO-8601 upper bound on start (inclusive).
Filter by one or more statuses (repeatable).
FHIR appointment status set (mirrors datalayer AppointmentStatus). Used to
validate the agenda status filter, so a typo is a clean 400, not a 5xx.
proposed, pending, booked, arrived, checkedIn, fulfilled, cancelled, noshow, waitlist, enteredInError Filter to the booking that carries this consultation id.
Page number (1-based).
x >= 1Number of items per page.
1 <= x <= 50Response
Successful Response
Paginated list of appointments (the agenda).
Page of appointments.
Show child attributes
Show child attributes
Current page number (1-based).
Number of items per page.
Whether another page likely exists (accurate on every page).
Total appointments matching the filter (null on later pages).
Total number of pages (null when the total is unknown).