get
https://api.apptoto.com/v1/booking_pages
List the authenticated user's booking pages.
Recent Requests
Log in to see full request history
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Loading…
Returns the list of booking pages for the authenticated user. The response is paginated.
| Field | Type | Required | Description |
|---|---|---|---|
| page_size | Number | no | Defaults to 30 |
| page | Number | no | Defaults to 1 |
Each booking page in the result has the following fields:
| Field | Type | Description |
|---|---|---|
| id | Number | The Apptoto id of the booking page. |
| name | String | The display name of the booking page. |
| url | String | The public URL of the booking page (e.g. https://yoursubdomain.apptoto.com/). |
| enabled | Boolean | Whether the page is enabled. |
| disabled_reason | String or null | If the page is not bookable, a human-readable reason; otherwise null. |
| appointment_types | Array of Object | The appointment types offered by this page. Empty array if the page does not use multiple types. |
| field_definitions | Array of Object | The custom intake fields shown on the booking form. |
Example response:
{
"booking_pages": [
{
"id": 12345,
"name": "Demo Booking Page",
"url": "https://apptotodemo.apptoto.com/",
"enabled": true,
"disabled_reason": null,
"appointment_types": [
{
"token": "30min",
"label": "30 Minute Meeting",
"default_length": 30,
"padding": 0
}
],
"field_definitions": [
{
"field_name": "company",
"label": "Company",
"type": "text",
"required": false
}
]
}
],
"total": 1
}total is only included in the response when page=1.
OAuth scope
Calls authenticated with an OAuth 2.0 bearer token must include the bookings:read scope. A token without it receives a 403 insufficient_scope response. HTTP Basic auth is not scope-gated.
