Scheduling
Appointment types
GET /v1/c/{slug}/appointment-types · Scopes: appointments:read
Path parameters
| Field | Notes |
|---|
slug | The company's identifier in DoneTalk (the key's own). |
Request example
curl -X GET "https://api.donetalk.com/v1/c/demo/appointment-types" \
-H "Authorization: Bearer $DONETALK_KEY"
Response 200
{
"types": [
{
"id": "01a1228c-c58f-796a-b3aa-54a953711c71",
"agendaId": "01a1228c-c584-73f7-b7e7-bfaa0d02fed0",
"name": "Visita ao imóvel",
"durationMin": 60,
"agendaName": "Visitas aos imóveis",
"timezone": "America/Sao_Paulo",
"isActive": true
}
]
}
Possible errors
401 unauthorized403 insufficient_scope422 validation_failed429 rate_limited
Free times
GET /v1/c/{slug}/appointment-types/{id}/slots · Scopes: appointments:read
Path parameters
| Field | Notes |
|---|
slug | The company's identifier in DoneTalk (the key's own). |
id | The record's id. |
Query parameters
| Field | Type | Required | Notes |
|---|
from | string (date-time) | no | |
to | string (date-time) | no | |
limit | integer | no | up to 500; at least 1; default 100 |
contactId | string (uuid) | no | |
memberId | string (uuid) | no | |
exclude | string (uuid) | no | |
Request example
curl -X GET "https://api.donetalk.com/v1/c/demo/appointment-types/:id/slots" \
-H "Authorization: Bearer $DONETALK_KEY"
Response 200
{
"timezone": "America/Sao_Paulo",
"durationMin": 60,
"slots": [
{
"start": "2026-10-27T13:00:00.000Z",
"end": "2026-10-27T14:00:00.000Z",
"memberIds": [
"01a0cac1-4a6f-7646-b5f8-c1d19090016a"
]
}
]
}
Possible errors
401 unauthorized403 insufficient_scope422 validation_failed429 rate_limited
Appointments
GET /v1/c/{slug}/appointments · Scopes: appointments:read
Path parameters
| Field | Notes |
|---|
slug | The company's identifier in DoneTalk (the key's own). |
Query parameters
| Field | Type | Required | Notes |
|---|
from | string (date-time) | no | |
to | string (date-time) | no | |
agendaId | string (uuid) | no | |
memberId | string (uuid) | no | |
mine | integer | no | up to 1; default 0 |
status | string | no | |
Request example
curl -X GET "https://api.donetalk.com/v1/c/demo/appointments" \
-H "Authorization: Bearer $DONETALK_KEY"
Response 200
{
"appointments": [
{
"id": "01a2f00d-1234-7abc-8def-0123456789ab",
"agendaId": "01a1228c-c584-73f7-b7e7-bfaa0d02fed0",
"agendaName": "Visitas aos imóveis",
"typeId": "01a1228c-c58f-796a-b3aa-54a953711c71",
"typeName": "Visita ao imóvel",
"typeColor": "#1daa61",
"contactId": "01a0d05a-3ee3-75bd-9db5-dc9856f079c8",
"contactName": "Ana Souza",
"conversationId": "01a3c0de-7a11-7b22-8c33-9d44e55f6677",
"channelId": "01a0cccc-0000-7000-8000-000000000002",
"memberId": "01a0cac1-4a6f-7646-b5f8-c1d19090016a",
"memberName": "Tayomara Batista",
"holderIds": [
"01a0cac1-4a6f-7646-b5f8-c1d19090016a"
],
"status": "booked",
"startsAt": "2026-10-27T13:00:00.000Z",
"endsAt": "2026-10-27T14:00:00.000Z",
"timezone": "America/Sao_Paulo",
"location": "Rua Bahia, 120 – Higienópolis, São Paulo",
"locationKind": "address",
"onlineUrl": null,
"answers": {
"imovel": "AP-2231"
},
"notes": null,
"source": "api",
"createdByKind": "api_key",
"createdById": null,
"confirmedAt": null,
"cancelledAt": null,
"cancelledByKind": null,
"cancelReason": null,
"rescheduleCount": 0,
"previousStartsAt": null,
"publicToken": "r3WqZ8",
"createdAt": "2026-10-23T13:02:11.000Z"
}
]
}
Possible errors
401 unauthorized403 insufficient_scope422 validation_failed429 rate_limited
Book
POST /v1/c/{slug}/appointments · Scopes: appointments:write
Path parameters
| Field | Notes |
|---|
slug | The company's identifier in DoneTalk (the key's own). |
Request body
| Field | Type | Required | Notes |
|---|
typeId | string (uuid) | yes | |
contactId | string (uuid) | yes | |
startsAt | string (date-time) | yes | |
conversationId | string (uuid) | no | null |
memberId | string (uuid) | no | null |
answers | object | no | |
notes | string | no | up to 2000 characters; null |
force | boolean | no | |
confirm | boolean | no | |
Request example
curl -X POST "https://api.donetalk.com/v1/c/demo/appointments" \
-H "Authorization: Bearer $DONETALK_KEY" \
-H "Content-Type: application/json" \
-d '{
"typeId": "01a1228c-c58f-796a-b3aa-54a953711c71",
"contactId": "01a0d05a-3ee3-75bd-9db5-dc9856f079c8",
"startsAt": "2026-10-27T13:00:00.000Z",
"answers": {
"imovel": "AP-2231"
}
}'
Response 201
{
"appointment": {
"id": "01a2f00d-1234-7abc-8def-0123456789ab",
"agendaId": "01a1228c-c584-73f7-b7e7-bfaa0d02fed0",
"agendaName": "Visitas aos imóveis",
"typeId": "01a1228c-c58f-796a-b3aa-54a953711c71",
"typeName": "Visita ao imóvel",
"typeColor": "#1daa61",
"contactId": "01a0d05a-3ee3-75bd-9db5-dc9856f079c8",
"contactName": "Ana Souza",
"conversationId": "01a3c0de-7a11-7b22-8c33-9d44e55f6677",
"channelId": "01a0cccc-0000-7000-8000-000000000002",
"memberId": "01a0cac1-4a6f-7646-b5f8-c1d19090016a",
"memberName": "Tayomara Batista",
"holderIds": [
"01a0cac1-4a6f-7646-b5f8-c1d19090016a"
],
"status": "booked",
"startsAt": "2026-10-27T13:00:00.000Z",
"endsAt": "2026-10-27T14:00:00.000Z",
"timezone": "America/Sao_Paulo",
"location": "Rua Bahia, 120 – Higienópolis, São Paulo",
"locationKind": "address",
"onlineUrl": null,
"answers": {
"imovel": "AP-2231"
},
"notes": null,
"source": "api",
"createdByKind": "api_key",
"createdById": null,
"confirmedAt": null,
"cancelledAt": null,
"cancelledByKind": null,
"cancelReason": null,
"rescheduleCount": 0,
"previousStartsAt": null,
"publicToken": "r3WqZ8",
"createdAt": "2026-10-23T13:02:11.000Z"
}
}
Possible errors
401 unauthorized403 insufficient_scope422 validation_failed429 rate_limited
Get an appointment
GET /v1/c/{slug}/appointments/{id} · Scopes: appointments:read
Path parameters
| Field | Notes |
|---|
slug | The company's identifier in DoneTalk (the key's own). |
id | The record's id. |
Request example
curl -X GET "https://api.donetalk.com/v1/c/demo/appointments/:id" \
-H "Authorization: Bearer $DONETALK_KEY"
Response 200
{
"appointment": {
"id": "01a2f00d-1234-7abc-8def-0123456789ab",
"agendaId": "01a1228c-c584-73f7-b7e7-bfaa0d02fed0",
"agendaName": "Visitas aos imóveis",
"typeId": "01a1228c-c58f-796a-b3aa-54a953711c71",
"typeName": "Visita ao imóvel",
"typeColor": "#1daa61",
"contactId": "01a0d05a-3ee3-75bd-9db5-dc9856f079c8",
"contactName": "Ana Souza",
"conversationId": "01a3c0de-7a11-7b22-8c33-9d44e55f6677",
"channelId": "01a0cccc-0000-7000-8000-000000000002",
"memberId": "01a0cac1-4a6f-7646-b5f8-c1d19090016a",
"memberName": "Tayomara Batista",
"holderIds": [
"01a0cac1-4a6f-7646-b5f8-c1d19090016a"
],
"status": "booked",
"startsAt": "2026-10-27T13:00:00.000Z",
"endsAt": "2026-10-27T14:00:00.000Z",
"timezone": "America/Sao_Paulo",
"location": "Rua Bahia, 120 – Higienópolis, São Paulo",
"locationKind": "address",
"onlineUrl": null,
"answers": {
"imovel": "AP-2231"
},
"notes": null,
"source": "api",
"createdByKind": "api_key",
"createdById": null,
"confirmedAt": null,
"cancelledAt": null,
"cancelledByKind": null,
"cancelReason": null,
"rescheduleCount": 0,
"previousStartsAt": null,
"publicToken": "r3WqZ8",
"createdAt": "2026-10-23T13:02:11.000Z"
},
"notices": [],
"events": [],
"history": []
}
Possible errors
401 unauthorized403 insufficient_scope422 validation_failed429 rate_limited
Reschedule
POST /v1/c/{slug}/appointments/{id}/reschedule · Scopes: appointments:write
Path parameters
| Field | Notes |
|---|
slug | The company's identifier in DoneTalk (the key's own). |
id | The record's id. |
Request body
| Field | Type | Required | Notes |
|---|
startsAt | string (date-time) | yes | |
memberId | string (uuid) | no | null |
force | boolean | no | |
Request example
curl -X POST "https://api.donetalk.com/v1/c/demo/appointments/:id/reschedule" \
-H "Authorization: Bearer $DONETALK_KEY" \
-H "Content-Type: application/json" \
-d '{
"startsAt": "2026-10-28T13:00:00.000Z"
}'
Response 200
{
"appointment": {
"id": "01a2f00d-1234-7abc-8def-0123456789ab",
"agendaId": "01a1228c-c584-73f7-b7e7-bfaa0d02fed0",
"agendaName": "Visitas aos imóveis",
"typeId": "01a1228c-c58f-796a-b3aa-54a953711c71",
"typeName": "Visita ao imóvel",
"typeColor": "#1daa61",
"contactId": "01a0d05a-3ee3-75bd-9db5-dc9856f079c8",
"contactName": "Ana Souza",
"conversationId": "01a3c0de-7a11-7b22-8c33-9d44e55f6677",
"channelId": "01a0cccc-0000-7000-8000-000000000002",
"memberId": "01a0cac1-4a6f-7646-b5f8-c1d19090016a",
"memberName": "Tayomara Batista",
"holderIds": [
"01a0cac1-4a6f-7646-b5f8-c1d19090016a"
],
"status": "booked",
"startsAt": "2026-10-27T13:00:00.000Z",
"endsAt": "2026-10-27T14:00:00.000Z",
"timezone": "America/Sao_Paulo",
"location": "Rua Bahia, 120 – Higienópolis, São Paulo",
"locationKind": "address",
"onlineUrl": null,
"answers": {
"imovel": "AP-2231"
},
"notes": null,
"source": "api",
"createdByKind": "api_key",
"createdById": null,
"confirmedAt": null,
"cancelledAt": null,
"cancelledByKind": null,
"cancelReason": null,
"rescheduleCount": 0,
"previousStartsAt": null,
"publicToken": "r3WqZ8",
"createdAt": "2026-10-23T13:02:11.000Z"
}
}
Possible errors
401 unauthorized403 insufficient_scope422 validation_failed429 rate_limited
Cancel
POST /v1/c/{slug}/appointments/{id}/cancel · Scopes: appointments:write
Path parameters
| Field | Notes |
|---|
slug | The company's identifier in DoneTalk (the key's own). |
id | The record's id. |
Request body
| Field | Type | Required | Notes |
|---|
reason | string | no | up to 300 characters; null |
notify | boolean | no | default true |
Request example
curl -X POST "https://api.donetalk.com/v1/c/demo/appointments/:id/cancel" \
-H "Authorization: Bearer $DONETALK_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "Cliente pediu"
}'
Response 200
{
"appointment": {
"id": "01a2f00d-1234-7abc-8def-0123456789ab",
"agendaId": "01a1228c-c584-73f7-b7e7-bfaa0d02fed0",
"agendaName": "Visitas aos imóveis",
"typeId": "01a1228c-c58f-796a-b3aa-54a953711c71",
"typeName": "Visita ao imóvel",
"typeColor": "#1daa61",
"contactId": "01a0d05a-3ee3-75bd-9db5-dc9856f079c8",
"contactName": "Ana Souza",
"conversationId": "01a3c0de-7a11-7b22-8c33-9d44e55f6677",
"channelId": "01a0cccc-0000-7000-8000-000000000002",
"memberId": "01a0cac1-4a6f-7646-b5f8-c1d19090016a",
"memberName": "Tayomara Batista",
"holderIds": [
"01a0cac1-4a6f-7646-b5f8-c1d19090016a"
],
"status": "cancelled",
"startsAt": "2026-10-27T13:00:00.000Z",
"endsAt": "2026-10-27T14:00:00.000Z",
"timezone": "America/Sao_Paulo",
"location": "Rua Bahia, 120 – Higienópolis, São Paulo",
"locationKind": "address",
"onlineUrl": null,
"answers": {
"imovel": "AP-2231"
},
"notes": null,
"source": "api",
"createdByKind": "api_key",
"createdById": null,
"confirmedAt": null,
"cancelledAt": null,
"cancelledByKind": null,
"cancelReason": null,
"rescheduleCount": 0,
"previousStartsAt": null,
"publicToken": "r3WqZ8",
"createdAt": "2026-10-23T13:02:11.000Z"
}
}
Possible errors
401 unauthorized403 insufficient_scope422 validation_failed429 rate_limited
This page as Markdown