curl --request PATCH \
--url https://{clinic}.{region}.practicehub.io/v3/api/patients/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"first_name": "<string>",
"last_name": "<string>",
"preferred_name": "<string>",
"dob": "2023-12-25",
"email": "jsmith@example.com",
"note": "<string>",
"custom_reference": "<string>",
"blocked": true,
"default_location_id": 2,
"referral_source_id": 2,
"communication_preferences": {
"marketing": {
"push_notification": true
},
"transactional": {
"push_notification": true
}
},
"numbers": [
{
"number": "<string>",
"id": 2,
"country_code": "<string>",
"iso2": "<string>",
"type": "<string>"
}
],
"address": {
"line_1": "<string>",
"line_2": "<string>",
"city": "<string>",
"state": "<string>",
"postal_code": "<string>",
"country": "<string>"
},
"metadata": {}
}
'import requests
url = "https://{clinic}.{region}.practicehub.io/v3/api/patients/{id}"
payload = {
"first_name": "<string>",
"last_name": "<string>",
"preferred_name": "<string>",
"dob": "2023-12-25",
"email": "jsmith@example.com",
"note": "<string>",
"custom_reference": "<string>",
"blocked": True,
"default_location_id": 2,
"referral_source_id": 2,
"communication_preferences": {
"marketing": { "push_notification": True },
"transactional": { "push_notification": True }
},
"numbers": [
{
"number": "<string>",
"id": 2,
"country_code": "<string>",
"iso2": "<string>",
"type": "<string>"
}
],
"address": {
"line_1": "<string>",
"line_2": "<string>",
"city": "<string>",
"state": "<string>",
"postal_code": "<string>",
"country": "<string>"
},
"metadata": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
first_name: '<string>',
last_name: '<string>',
preferred_name: '<string>',
dob: '2023-12-25',
email: 'jsmith@example.com',
note: '<string>',
custom_reference: '<string>',
blocked: true,
default_location_id: 2,
referral_source_id: 2,
communication_preferences: {marketing: {push_notification: true}, transactional: {push_notification: true}},
numbers: [
{
number: '<string>',
id: 2,
country_code: '<string>',
iso2: '<string>',
type: '<string>'
}
],
address: {
line_1: '<string>',
line_2: '<string>',
city: '<string>',
state: '<string>',
postal_code: '<string>',
country: '<string>'
},
metadata: {}
})
};
fetch('https://{clinic}.{region}.practicehub.io/v3/api/patients/{id}', 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://{clinic}.{region}.practicehub.io/v3/api/patients/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'first_name' => '<string>',
'last_name' => '<string>',
'preferred_name' => '<string>',
'dob' => '2023-12-25',
'email' => 'jsmith@example.com',
'note' => '<string>',
'custom_reference' => '<string>',
'blocked' => true,
'default_location_id' => 2,
'referral_source_id' => 2,
'communication_preferences' => [
'marketing' => [
'push_notification' => true
],
'transactional' => [
'push_notification' => true
]
],
'numbers' => [
[
'number' => '<string>',
'id' => 2,
'country_code' => '<string>',
'iso2' => '<string>',
'type' => '<string>'
]
],
'address' => [
'line_1' => '<string>',
'line_2' => '<string>',
'city' => '<string>',
'state' => '<string>',
'postal_code' => '<string>',
'country' => '<string>'
],
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{clinic}.{region}.practicehub.io/v3/api/patients/{id}"
payload := strings.NewReader("{\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"preferred_name\": \"<string>\",\n \"dob\": \"2023-12-25\",\n \"email\": \"jsmith@example.com\",\n \"note\": \"<string>\",\n \"custom_reference\": \"<string>\",\n \"blocked\": true,\n \"default_location_id\": 2,\n \"referral_source_id\": 2,\n \"communication_preferences\": {\n \"marketing\": {\n \"push_notification\": true\n },\n \"transactional\": {\n \"push_notification\": true\n }\n },\n \"numbers\": [\n {\n \"number\": \"<string>\",\n \"id\": 2,\n \"country_code\": \"<string>\",\n \"iso2\": \"<string>\",\n \"type\": \"<string>\"\n }\n ],\n \"address\": {\n \"line_1\": \"<string>\",\n \"line_2\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"country\": \"<string>\"\n },\n \"metadata\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://{clinic}.{region}.practicehub.io/v3/api/patients/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"preferred_name\": \"<string>\",\n \"dob\": \"2023-12-25\",\n \"email\": \"jsmith@example.com\",\n \"note\": \"<string>\",\n \"custom_reference\": \"<string>\",\n \"blocked\": true,\n \"default_location_id\": 2,\n \"referral_source_id\": 2,\n \"communication_preferences\": {\n \"marketing\": {\n \"push_notification\": true\n },\n \"transactional\": {\n \"push_notification\": true\n }\n },\n \"numbers\": [\n {\n \"number\": \"<string>\",\n \"id\": 2,\n \"country_code\": \"<string>\",\n \"iso2\": \"<string>\",\n \"type\": \"<string>\"\n }\n ],\n \"address\": {\n \"line_1\": \"<string>\",\n \"line_2\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"country\": \"<string>\"\n },\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{clinic}.{region}.practicehub.io/v3/api/patients/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"preferred_name\": \"<string>\",\n \"dob\": \"2023-12-25\",\n \"email\": \"jsmith@example.com\",\n \"note\": \"<string>\",\n \"custom_reference\": \"<string>\",\n \"blocked\": true,\n \"default_location_id\": 2,\n \"referral_source_id\": 2,\n \"communication_preferences\": {\n \"marketing\": {\n \"push_notification\": true\n },\n \"transactional\": {\n \"push_notification\": true\n }\n },\n \"numbers\": [\n {\n \"number\": \"<string>\",\n \"id\": 2,\n \"country_code\": \"<string>\",\n \"iso2\": \"<string>\",\n \"type\": \"<string>\"\n }\n ],\n \"address\": {\n \"line_1\": \"<string>\",\n \"line_2\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"country\": \"<string>\"\n },\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": 340,
"imported_id": "P-1042",
"custom_reference": "CRM-7781",
"first_name": "Ada",
"last_name": "Lovelace",
"preferred_name": "Ada",
"dob": "1985-12-10",
"email": "ada@example.org",
"sex": "female",
"balance": "45.00",
"private_balance": "45.00",
"third_party_balance": "0.00",
"updated_at": "2026-08-19T14:22:05Z",
"created_at": "2026-01-15T10:30:00Z",
"communication_status": 1,
"patient_status": "active",
"locale": "en",
"referral_source_id": 12,
"referral_source_type": "referral_source",
"note": "Prefers morning appointments.",
"default_location_id": 81,
"app_signup": "2026-02-01T08:15:00Z",
"app_last_accessed": "2026-08-15T18:42:10Z",
"blocked": false,
"communication_preferences": {
"transactional": {
"push_notification": true
},
"marketing": {
"push_notification": false
}
},
"numbers": [
{
"id": 5012,
"number": "07700 900123",
"country_code": "44",
"iso2": "gb",
"type": "mobile",
"intl_number": "+447700900123"
}
],
"address": {
"line_1": "12 Analytical Way",
"line_2": "Flat 2",
"city": "London",
"state": "Greater London",
"postal_code": "N1 9GU",
"country": "GB"
},
"tags": [
{
"id": 18,
"name": "VIP",
"color": "#4F86C6",
"patient_tag_id": 9021,
"editable": true,
"added_at": "2026-08-19T14:22:05Z"
}
]
}
}{
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"message": "<string>",
"code": "<string>",
"errors": {}
}Update patients
curl --request PATCH \
--url https://{clinic}.{region}.practicehub.io/v3/api/patients/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"first_name": "<string>",
"last_name": "<string>",
"preferred_name": "<string>",
"dob": "2023-12-25",
"email": "jsmith@example.com",
"note": "<string>",
"custom_reference": "<string>",
"blocked": true,
"default_location_id": 2,
"referral_source_id": 2,
"communication_preferences": {
"marketing": {
"push_notification": true
},
"transactional": {
"push_notification": true
}
},
"numbers": [
{
"number": "<string>",
"id": 2,
"country_code": "<string>",
"iso2": "<string>",
"type": "<string>"
}
],
"address": {
"line_1": "<string>",
"line_2": "<string>",
"city": "<string>",
"state": "<string>",
"postal_code": "<string>",
"country": "<string>"
},
"metadata": {}
}
'import requests
url = "https://{clinic}.{region}.practicehub.io/v3/api/patients/{id}"
payload = {
"first_name": "<string>",
"last_name": "<string>",
"preferred_name": "<string>",
"dob": "2023-12-25",
"email": "jsmith@example.com",
"note": "<string>",
"custom_reference": "<string>",
"blocked": True,
"default_location_id": 2,
"referral_source_id": 2,
"communication_preferences": {
"marketing": { "push_notification": True },
"transactional": { "push_notification": True }
},
"numbers": [
{
"number": "<string>",
"id": 2,
"country_code": "<string>",
"iso2": "<string>",
"type": "<string>"
}
],
"address": {
"line_1": "<string>",
"line_2": "<string>",
"city": "<string>",
"state": "<string>",
"postal_code": "<string>",
"country": "<string>"
},
"metadata": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
first_name: '<string>',
last_name: '<string>',
preferred_name: '<string>',
dob: '2023-12-25',
email: 'jsmith@example.com',
note: '<string>',
custom_reference: '<string>',
blocked: true,
default_location_id: 2,
referral_source_id: 2,
communication_preferences: {marketing: {push_notification: true}, transactional: {push_notification: true}},
numbers: [
{
number: '<string>',
id: 2,
country_code: '<string>',
iso2: '<string>',
type: '<string>'
}
],
address: {
line_1: '<string>',
line_2: '<string>',
city: '<string>',
state: '<string>',
postal_code: '<string>',
country: '<string>'
},
metadata: {}
})
};
fetch('https://{clinic}.{region}.practicehub.io/v3/api/patients/{id}', 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://{clinic}.{region}.practicehub.io/v3/api/patients/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'first_name' => '<string>',
'last_name' => '<string>',
'preferred_name' => '<string>',
'dob' => '2023-12-25',
'email' => 'jsmith@example.com',
'note' => '<string>',
'custom_reference' => '<string>',
'blocked' => true,
'default_location_id' => 2,
'referral_source_id' => 2,
'communication_preferences' => [
'marketing' => [
'push_notification' => true
],
'transactional' => [
'push_notification' => true
]
],
'numbers' => [
[
'number' => '<string>',
'id' => 2,
'country_code' => '<string>',
'iso2' => '<string>',
'type' => '<string>'
]
],
'address' => [
'line_1' => '<string>',
'line_2' => '<string>',
'city' => '<string>',
'state' => '<string>',
'postal_code' => '<string>',
'country' => '<string>'
],
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{clinic}.{region}.practicehub.io/v3/api/patients/{id}"
payload := strings.NewReader("{\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"preferred_name\": \"<string>\",\n \"dob\": \"2023-12-25\",\n \"email\": \"jsmith@example.com\",\n \"note\": \"<string>\",\n \"custom_reference\": \"<string>\",\n \"blocked\": true,\n \"default_location_id\": 2,\n \"referral_source_id\": 2,\n \"communication_preferences\": {\n \"marketing\": {\n \"push_notification\": true\n },\n \"transactional\": {\n \"push_notification\": true\n }\n },\n \"numbers\": [\n {\n \"number\": \"<string>\",\n \"id\": 2,\n \"country_code\": \"<string>\",\n \"iso2\": \"<string>\",\n \"type\": \"<string>\"\n }\n ],\n \"address\": {\n \"line_1\": \"<string>\",\n \"line_2\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"country\": \"<string>\"\n },\n \"metadata\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://{clinic}.{region}.practicehub.io/v3/api/patients/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"preferred_name\": \"<string>\",\n \"dob\": \"2023-12-25\",\n \"email\": \"jsmith@example.com\",\n \"note\": \"<string>\",\n \"custom_reference\": \"<string>\",\n \"blocked\": true,\n \"default_location_id\": 2,\n \"referral_source_id\": 2,\n \"communication_preferences\": {\n \"marketing\": {\n \"push_notification\": true\n },\n \"transactional\": {\n \"push_notification\": true\n }\n },\n \"numbers\": [\n {\n \"number\": \"<string>\",\n \"id\": 2,\n \"country_code\": \"<string>\",\n \"iso2\": \"<string>\",\n \"type\": \"<string>\"\n }\n ],\n \"address\": {\n \"line_1\": \"<string>\",\n \"line_2\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"country\": \"<string>\"\n },\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{clinic}.{region}.practicehub.io/v3/api/patients/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"preferred_name\": \"<string>\",\n \"dob\": \"2023-12-25\",\n \"email\": \"jsmith@example.com\",\n \"note\": \"<string>\",\n \"custom_reference\": \"<string>\",\n \"blocked\": true,\n \"default_location_id\": 2,\n \"referral_source_id\": 2,\n \"communication_preferences\": {\n \"marketing\": {\n \"push_notification\": true\n },\n \"transactional\": {\n \"push_notification\": true\n }\n },\n \"numbers\": [\n {\n \"number\": \"<string>\",\n \"id\": 2,\n \"country_code\": \"<string>\",\n \"iso2\": \"<string>\",\n \"type\": \"<string>\"\n }\n ],\n \"address\": {\n \"line_1\": \"<string>\",\n \"line_2\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"postal_code\": \"<string>\",\n \"country\": \"<string>\"\n },\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": 340,
"imported_id": "P-1042",
"custom_reference": "CRM-7781",
"first_name": "Ada",
"last_name": "Lovelace",
"preferred_name": "Ada",
"dob": "1985-12-10",
"email": "ada@example.org",
"sex": "female",
"balance": "45.00",
"private_balance": "45.00",
"third_party_balance": "0.00",
"updated_at": "2026-08-19T14:22:05Z",
"created_at": "2026-01-15T10:30:00Z",
"communication_status": 1,
"patient_status": "active",
"locale": "en",
"referral_source_id": 12,
"referral_source_type": "referral_source",
"note": "Prefers morning appointments.",
"default_location_id": 81,
"app_signup": "2026-02-01T08:15:00Z",
"app_last_accessed": "2026-08-15T18:42:10Z",
"blocked": false,
"communication_preferences": {
"transactional": {
"push_notification": true
},
"marketing": {
"push_notification": false
}
},
"numbers": [
{
"id": 5012,
"number": "07700 900123",
"country_code": "44",
"iso2": "gb",
"type": "mobile",
"intl_number": "+447700900123"
}
],
"address": {
"line_1": "12 Analytical Way",
"line_2": "Flat 2",
"city": "London",
"state": "Greater London",
"postal_code": "N1 9GU",
"country": "GB"
},
"tags": [
{
"id": 18,
"name": "VIP",
"color": "#4F86C6",
"patient_tag_id": 9021,
"editable": true,
"added_at": "2026-08-19T14:22:05Z"
}
]
}
}{
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"message": "<string>",
"code": "<string>",
"errors": {}
}{
"message": "<string>",
"code": "<string>",
"errors": {}
}Authorizations
API key from Developers → API Keys, sent as Authorization: Bearer .
Path Parameters
Body
Patient's first name, ≤ 255 chars. Required on create — the same minimum every patient form in PracticeHub enforces.
255Patient's last name, ≤ 255 chars. Required on create.
255The name the patient goes by, alongside the legal name. Optional, ≤ 255 chars.
255Date of birth, YYYY-MM-DD.
Email address, validated as an email, ≤ 255 chars. Optional and not unique — treat a match as a dedupe candidate, never an identifier.
255One of male, female or other on read — words on the API, never a stored code — or null when not stated. On write prefer_not_to_say is accepted too; PracticeHub keeps no separate mark for it, so it reads back as null and cannot be filtered on.
male, female, other, prefer_not_to_say Preferred language override: one of the language codes PracticeHub supports (e.g. en, de, es, fr, nl — the same list as the language select on the patient form). Copied from the account on create when not sent.
en, ca, dk, de, es, fr, is, it, hu, my, nl, no, po, fi, se, el, he Free text — the patient file's general note.
Your own reference string for the record, ≤ 255 chars — a plain field on the patient, distinct from metadata.
255The patient file's Block Online Booking toggle — records that the patient shouldn't be offered online self-booking. A flag only: POST /appointments does not check it.
The patient's home location. Must be one of the account's own locations (GET /locations) — 422 location_not_found otherwise.
x >= 1Required when referral_source_type is referral_source. Id of what referred the patient — an active source from GET /referral_sources, or another live patient, per referral_source_type. Travels with the type: send both or neither.
x >= 1Required when referral_source_id is provided. referral_source (a source from GET /referral_sources, must be active) or patient (another patient on the account — never this one). Requires referral_source_id alongside.
referral_source, patient Show child attributes
Show child attributes
Phone numbers, embedded on every read and written nested here — never via /numbers. Entries carry id, number, country_code, iso2, type (mobile/home/work/other), intl_number. PATCH reconciles by id.
Show child attributes
Show child attributes
The patient's single address — line_1, line_2, city, state, postal_code, country — embedded on read (null when none) and written nested here, never via /addresses. PATCH changes only the keys you send.
Show child attributes
Show child attributes
Integrator-owned key/value metadata (max 50 keys). Values are strings (≤500 chars), numbers or booleans and read back with the type they were written with. On write, a null value removes the key. Filter with metadata[key]=op:value; number operands compare numerically.
Show child attributes
Show child attributes
Response
The resource
Show child attributes
Show child attributes
{
"id": 340,
"imported_id": "P-1042",
"custom_reference": "CRM-7781",
"first_name": "Ada",
"last_name": "Lovelace",
"preferred_name": "Ada",
"dob": "1985-12-10",
"email": "ada@example.org",
"sex": "female",
"balance": "45.00",
"private_balance": "45.00",
"third_party_balance": "0.00",
"updated_at": "2026-08-19T14:22:05Z",
"created_at": "2026-01-15T10:30:00Z",
"communication_status": 1,
"patient_status": "active",
"locale": "en",
"referral_source_id": 12,
"referral_source_type": "referral_source",
"note": "Prefers morning appointments.",
"default_location_id": 81,
"app_signup": "2026-02-01T08:15:00Z",
"app_last_accessed": "2026-08-15T18:42:10Z",
"blocked": false,
"communication_preferences": {
"transactional": { "push_notification": true },
"marketing": { "push_notification": false }
},
"numbers": [
{
"id": 5012,
"number": "07700 900123",
"country_code": "44",
"iso2": "gb",
"type": "mobile",
"intl_number": "+447700900123"
}
],
"address": {
"line_1": "12 Analytical Way",
"line_2": "Flat 2",
"city": "London",
"state": "Greater London",
"postal_code": "N1 9GU",
"country": "GB"
},
"tags": [
{
"id": 18,
"name": "VIP",
"color": "#4F86C6",
"patient_tag_id": 9021,
"editable": true,
"added_at": "2026-08-19T14:22:05Z"
}
]
}
Was this page helpful?