tumbuh.ai
tumbuh.ai Public API

List appointments

GET
https://<domain-anda>
/api/v1/public/appointments

Return appointments in a time window with their customer and status.

Returns appointments between startAt and endAt, earliest first, each with its customer, slot and status. Use it to check what is already booked before offering a time, or to list today's schedule. With no window it returns the next 30 days; a window longer than 92 days is refused. Paginated by window rather than by cursor: narrow startAt and endAt to page through, and check meta.window.truncated to see whether the row limit cut the answer short. Read-only and rate-limited to 20 calls per minute.

List appointments › query Parameters

limit
​integer · min: 1 · max: 100

Rows to return, 1-100. Defaults to 25.

Rows to return, 1-100. Defaults to 25.

startAt
​string

ISO-8601 start of the window. Defaults to now.

ISO-8601 start of the window. Defaults to now.

endAt
​string

ISO-8601 end of the window. Defaults to 30 days out; 92 days is the maximum.

ISO-8601 end of the window. Defaults to 30 days out; 92 days is the maximum.

status
​string

Filter by status, e.g. SCHEDULED, COMPLETED, CANCELLED or NO_SHOW.

Filter by status, e.g. SCHEDULED, COMPLETED, CANCELLED or NO_SHOW.

customerId
​string

Only this customer, id from customers.list.

Only this customer, id from customers.list.

branchId
​string · maxLength: 256

Only appointments recorded at this branch (id from branches.list), or none for appointments with no branch.

Only appointments recorded at this branch (id from branches.list), or none for appointments with no branch.

List appointments › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

Book an appointment

POST
https://<domain-anda>
/api/v1/public/appointments

Create an appointment for a customer in a specific slot.

Books a slot with a title, start and end. Use it once the customer has confirmed the time — check appointments.list first so you do not offer a taken slot. Writes a booking and reports any conflicting appointment in the same slot; it does not message the customer, so tell them yourself with messages.send.

Book an appointment › Request Body

title
​string · required

What the appointment is for, e.g. "Scaling gigi".

customerId
​string · required

Customer id from customers.list.

startAt
​string · required

ISO-8601 start of the slot.

endAt
​string · required

ISO-8601 end of the slot.

​

Manual create branch id from branches.list; null selects no branch. Omit for the existing resolver. The snapshot cannot be changed later.

notes
​string

Internal notes for the booking.

Book an appointment › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

Delete an appointment

DELETE
https://<domain-anda>
/api/v1/public/appointments/{id}

Permanently erase an appointment record.

Deletes the appointment outright. This cannot be undone, and it destroys the history — to record that a booking was called off, set its status to CANCELLED with appointments.update instead. Requires the separate appointments:delete scope and is limited to 5 calls per minute.

Delete an appointment › path Parameters

id
​string · required

Appointment id from appointments.list. Erases the booking — prefer appointments.update with status CANCELLED.

Appointment id from appointments.list. Erases the booking — prefer appointments.update with status CANCELLED.

Delete an appointment › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

Reschedule or update an appointment

PATCH
https://<domain-anda>
/api/v1/public/appointments/{id}

Change an appointment’s time, title, customer or status.

Updates the fields you send. Use it to reschedule, or to set the status to COMPLETED, CANCELLED or NO_SHOW. Cancelling this way keeps the record, which is what you almost always want — appointments.delete erases it. Writes only; the customer is not notified.

Reschedule or update an appointment › path Parameters

id
​string · required

Appointment id from appointments.list.

Appointment id from appointments.list.

Reschedule or update an appointment › Request Body optional

title
​string

New title.

startAt
​string

ISO-8601 new start. Send endAt with it.

endAt
​string

ISO-8601 new end.

status
​string · enum

Set CANCELLED to cancel while keeping the record.

Enum values:
SCHEDULED
COMPLETED
CANCELLED
NO_SHOW
notes
​string

Replace the internal notes.

Reschedule or update an appointment › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required