Services and free times
Reads a published site's bookable services and the free times for a given day.
https://app.getera.io/api/site/v1/{siteId}/serviceshttps://app.getera.io/api/site/v1/{siteId}/slotsTo show in your own interface what your site's booking page shows: which services can be booked, how long they take, what they cost and which times are free on a chosen day. Services and working hours come from the Bookings module.
Authentication, the site id, CORS and rate limits are the same as on Site catalogue.
Services
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | number | No | 1–100, default 24. |
Example
curl "https://app.getera.io/api/site/v1/SITE_ID/services"Response
Each row is one option (variant) of a service. Use its variant_id when you ask for free times.
{
"data": [
{
"id": "d4e5f6a7-0000-4000-8000-000000000050",
"name": "Haircut",
"slug": "haircut",
"kind": "service",
"summary": "Wash included, demo service.",
"fulfilment": null,
"variant_id": "d4e5f6a7-0000-4000-8000-000000000051",
"variant_name": "Haircut",
"duration_minutes": 45,
"capacity": 1,
"price_amount": 600,
"price_currency": "TRY"
}
]
}Free times
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
serviceId | string | Yes | A variant_id from the services list. To book several services back to back, separate them with commas. |
date | string | Yes | The day, YYYY-MM-DD. |
memberId | string | No | Only one staff member's times. |
Example
curl "https://app.getera.io/api/site/v1/SITE_ID/slots?serviceId=d4e5f6a7-0000-4000-8000-000000000051&date=2026-10-15"Response
{
"data": {
"durationMinutes": 45,
"slots": [
{ "startTime": "09:00:00", "endTime": "09:45:00", "available": true, "memberUserId": "c0ffee00-0000-4000-8000-000000000002" },
{ "startTime": "09:45:00", "endTime": "10:30:00", "available": false, "memberUserId": "c0ffee00-0000-4000-8000-000000000002" }
]
}
}Times are in the business's own time zone.
Errors
Error bodies look like {"error": {"code": "...", "message": "..."}}.
| Status | code | When |
|---|---|---|
403 | origin_not_allowed | A browser call does not come from the site's domains. |
404 | site_not_found | No such site, or not published. |
429 | rate_limited | Rate limit. |
Creating a booking (POST /api/site/v1/{siteId}/bookings) needs the session of a customer signed in to the site and is not covered here. To let visitors book, use the booking page on your site.