Skip to content

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

ControllerBase PathDescription
Appointments/appointmentsCRUD for appointments
Bookables/bookablesCRUD for bookable entities
Variants/variantsCRUD for bookable variants
Availability/availabilityQuery availability slots
Customers/customersCRUD for customers
Settings/settingsPlugin settings
Bookable Types/bookable-typesList registered bookable types