curl --request POST \
--url https://api.dentalspace.ai/v1/appointments/{id}/move \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"start": "2023-11-07T05:31:56Z"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({start: '2023-11-07T05:31:56Z'})
};
fetch('https://api.dentalspace.ai/v1/appointments/{id}/move', 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}/move"
payload = { "start": "2023-11-07T05:31:56Z" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(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>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"details": {},
"requestId": "<string>"
}
}Sposta un appuntamento
Scope: appointments:write.
Cambia solo l’orario (medico, sede e durata restano), con le regole del calendario di provenienza. 409 no_availability (slot_taken / min_notice) con details.alternatives; 409 conflict con reason reschedule_disabled, status_not_movable, doctor_not_in_calendar o no_calendar.
curl --request POST \
--url https://api.dentalspace.ai/v1/appointments/{id}/move \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"start": "2023-11-07T05:31:56Z"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({start: '2023-11-07T05:31:56Z'})
};
fetch('https://api.dentalspace.ai/v1/appointments/{id}/move', 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}/move"
payload = { "start": "2023-11-07T05:31:56Z" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(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>"
}
}{
"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
Facoltativa. La stessa chiave entro 24 ore ripete la prima risposta 2xx.
255Path 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
Il nuovo inizio: uno degli orari di /availability del suo calendario.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$Response
L'appuntamento spostato (o gia' a quell'ora).
^([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.