REST API
All endpoints are under the /wpappointments/v1/ namespace and require authentication (cookie or application password).
Authentication
The API uses WordPress nonce-based authentication for logged-in users:
import apiFetch from '@wordpress/api-fetch';
const appointments = await apiFetch({ path: '/wpappointments/v1/appointments',});For external integrations, use WordPress application passwords.
Response Format
All list endpoints return a standardized envelope:
{ "data": [...], "totalItems": 50, "totalPages": 5, "postsPerPage": 10, "currentPage": 1}Endpoints
| Controller | Base Path | Description |
|---|---|---|
| Appointments | /appointments | CRUD for appointments |
| Bookables | /bookables | CRUD for bookable entities |
| Variants | /variants | CRUD for bookable variants |
| Availability | /availability | Query availability slots |
| Customers | /customers | CRUD for customers |
| Settings | /settings | Plugin settings |
| Bookable Types | /bookable-types | List registered bookable types |