curl --request PATCH \
--url https://api.dentalspace.ai/v1/appointments/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"reason": "<string>",
"notes": "<string>"
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({title: '<string>', reason: '<string>', notes: '<string>'})
};
fetch('https://api.dentalspace.ai/v1/appointments/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dentalspace.ai/v1/appointments/{id}"
payload = {
"title": "<string>",
"reason": "<string>",
"notes": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"patientId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"facilityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"doctorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"chairId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"calendarId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"start": "<string>",
"end": "<string>",
"status": "draft",
"type": "checkup",
"category": "recall",
"title": "<string>",
"reason": "<string>",
"origin": "manual",
"treatmentPlanId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "<string>",
"updatedAt": "<string>",
"notes": "<string>",
"clinicalNotes": "<string>",
"completionNotes": "<string>"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}Modifica titolo, motivo o note
Scope: appointments:write.
Solo i testi: per l’orario c’e’ /move, per lo stato /status. Con If-Match (l’ETag ricevuto) la modifica passa solo se nessuno ha cambiato l’appuntamento nel frattempo, altrimenti 409 conflict.
curl --request PATCH \
--url https://api.dentalspace.ai/v1/appointments/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"reason": "<string>",
"notes": "<string>"
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({title: '<string>', reason: '<string>', notes: '<string>'})
};
fetch('https://api.dentalspace.ai/v1/appointments/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dentalspace.ai/v1/appointments/{id}"
payload = {
"title": "<string>",
"reason": "<string>",
"notes": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"patientId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"facilityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"doctorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"chairId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"calendarId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"start": "<string>",
"end": "<string>",
"status": "draft",
"type": "checkup",
"category": "recall",
"title": "<string>",
"reason": "<string>",
"origin": "manual",
"treatmentPlanId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "<string>",
"updatedAt": "<string>",
"notes": "<string>",
"clinicalNotes": "<string>",
"completionNotes": "<string>"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
L'ETag ricevuto: la modifica passa solo se nessuno ha cambiato la risorsa (altrimenti 409 conflict, details.reason = version_mismatch).
Path Parameters
Identificativo della risorsa.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$Body
Response
L'appuntamento modificato.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$Il calendario da cui e' nato: le sue regole valgono per spostarlo e disdirlo. null = fuori calendario.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$ISO 8601 con fuso (UTC).
ISO 8601 con fuso (UTC).
draft, scheduled, confirmed, checked_in, in_progress, completed, cancelled, no_show, pending, postponed checkup, treatment, consultation, emergency, other recall, treatment_plan, first_visit, case_study, standard Ogni lettura finisce nel registro accessi (testo libero).
Il motivo della visita. Ogni lettura finisce nel registro accessi (testo libero).
Da dove e' nato: manual (agenda), bot (WhatsApp), voice (agente vocale), api.
manual, bot, voice, api ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$ISO 8601 con fuso (UTC).
ISO 8601 con fuso (UTC).
Solo con lo scope clinical:read (l'accesso finisce nel registro).
Solo con lo scope clinical:read (l'accesso finisce nel registro).
Solo con lo scope clinical:read.