REST API Reference

All requests must be authenticated. Provide your API key as a Bearer token in the Authorization header, or as an x-api-key header.

Need an API Key?

You can generate one in the dashboard under Integrations & API > API & Webhooks. Don't have an account yet? Sign up for free.

Base URL

https://booking.pynath.com/api/v1

List Bookings

Retrieve a paginated list of all bookings. Returns the most recent bookings first.

GET/api/v1/bookings

Parameters

NameTypeDescription
pagenumberThe page number to retrieve. Defaults to 1.
limitnumberNumber of records per page. Defaults to 20. Max 100.
statusstringFilter by booking status (e.g. 'confirmed', 'pending', 'cancelled').
sourcestringFilter by booking source (e.g. 'widget', 'dashboard').
customerEmailstringFilter by exact customer email.
customerNamestringSearch for a customer by partial name.
serviceIdstringFilter by specific service UUID.
curl -X GET https://booking.pynath.com/api/v1/bookings \
-H "Authorization: Bearer YOUR_API_KEY"
Response
200 OK
{
  data: [
    {
      id: "uuid",
      serviceId: "uuid",
      customerName: "John Doe",
      startTime: "2026-07-20T10:00:00Z",
      status: "confirmed"
    }
  ],
  metadata: {
    total: 45,
    page: 1,
    limit: 20,
    totalPages: 3
  }
}

Create a Booking

Programmatically create a new booking for a service. This automatically checks against your plan limits.

POST/api/v1/bookings

Body Parameters

NameTypeDescription
serviceIdRequiredstring (uuid)The ID of the service to book.
startTimeRequiredstring (datetime)ISO 8601 formatted start time of the booking.
endTimeRequiredstring (datetime)ISO 8601 formatted end time of the booking.
customerNameRequiredstringFull name of the customer.
customerEmailRequiredstringEmail address of the customer.
customerPhonestringPhone number of the customer.
notesstringAny additional notes for the booking.
curl -X POST https://booking.pynath.com/api/v1/bookings \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "serviceId": "uuid", "startTime": "2026-07-20T10:00:00Z", "endTime": "2026-07-20T11:00:00Z", "customerName": "John Doe", "customerEmail": "[email protected]", "customerPhone": "+1234567890", "notes": "First time client"}'
Response
200 OK
{
  id: "uuid",
  status: "confirmed",
  customerName: "John Doe"
}