V5 is live

UP TO

60% OFF
Hot December Sale
Launch Sale
0 DAYS
:
0 HOURS
:
0 MINUTES
:
0 SECONDS
GET NOW percent icon

Booknetic REST API

Learn how to use the Booknetic REST API (v1.0.0) to manage appointments and customers.

Version:
Categories

This document describes the Booknetic REST API endpoints included in the provided OpenAPI specification.

Version: 1.0.0
Base path: /wp-json/booknetic/v1
Format: JSON (application/json)

Base URL

All endpoints in this documentation are relative to:

/wp-json/booknetic/v1

In a typical WordPress installation, the full URL is:

https://your-domain.com/wp-json/booknetic/v1

Content Type

Send and receive JSON:

  • Request header: Content-Type: application/json
  • Response header: Content-Type: application/json

Resources

  • Appointments: appointment management
  • Customers: customer management

Appointments

Get appointments

GET /appointments

Returns a list of appointments.

Response

200 OK — List of appointments

Response body (schema)

Array of Appointment

Example response

[
  {
    "id": 101,
    "customer_id": 55,
    "service_id": 9,
    "staff_id": 3,
    "date": "2026-01-10T14:30:00Z",
    "status": "approved"
  }
]

Create appointment

POST /appointments

Creates a new appointment.

Request body

Required — AppointmentCreate

Example request

{
  "customer_id": 55,
  "service_id": 9,
  "staff_id": 3,
  "date": "2026-01-10T14:30:00Z"
}

Responses

201 Created — Appointment created

Response body: Appointment

Example response

{
  "id": 102,
  "customer_id": 55,
  "service_id": 9,
  "staff_id": 3,
  "date": "2026-01-10T14:30:00Z",
  "status": "pending"
}

Get appointment by ID

GET /appointments/{id}

Returns a single appointment by its ID.

Path parameters

Name

Type

Required

Description

idintegerYesAppointment ID

Responses

200 OK — Appointment

Response body: Appointment

Example response

{
  "id": 102,
  "customer_id": 55,
  "service_id": 9,
  "staff_id": 3,
  "date": "2026-01-10T14:30:00Z",
  "status": "pending"
}

Update appointment

PUT /appointments/{id}

Updates an appointment by its ID.

Path parameters

Name

Type

Required

Description

idintegerYesAppointment ID

Request body

Required — AppointmentUpdate

Example request

{
  "staff_id": 4,
  "date": "2026-01-10T15:00:00Z",
  "status": "approved"
}

Responses

200 OK — Appointment updated

The OpenAPI file does not define a response schema for this endpoint.
In your implementation, you may return the updated Appointment object for consistency.

Delete appointment

DELETE /appointments/{id}

Deletes an appointment by its ID.

Path parameters

Name

Type

Required

Description

idintegerYesAppointment ID

Responses

204 No Content — Appointment deleted

Change appointment status

PUT /appointments/{id}/change-status

Updates the status of an appointment.

Path parameters

Field

Type

Required

Description

idintegerYesAppointment ID

Request body

Required

Field

Type

Required

Description

statusstringYesNew status value

Example request

{
  "status": "approved"
}

Responses

200 OK — Status updated

The OpenAPI file does not define a response schema.

Recommended: return the updated Appointment or a standard success payload.

Get appointment statuses

GET /appointments/statuses

Returns a list of available appointment statuses.

Responses

200 OK — Available statuses

Response body: array of strings

Example response

["pending", "approved", "canceled"]

Get available appointment times

GET /appointments/available-times

Returns a list of available appointment time slots.

Responses

200 OK — Available times

Response body: array of strings

Example response

[
  "2026-01-10 14:30",
  "2026-01-10 15:00",
  "2026-01-10 15:30"
]

Note: The OpenAPI schema uses "example": "2026-01-10 14:30" and defines a plain string.

If your system expects timezone or ISO8601, document it explicitly.

Customers

Get customers

GET /customers

Returns a list of customers.

Responses

200 OK — Customer list

Response body: array of Customer

Example response

[
  {
    "id": 55,
    "name": "Jane Doe",
    "email": "[email protected]",
    "phone": "+1 555 123 4567"
  }
]

Get customer info

GET /customer/info/{id}

Returns a customer by ID.

Path parameters

Field

Type

Required

Description

idintegerYesCustomer ID

Responses

200 OK — Customer info

Response body: Customer

Example response

{
  "id": 55,
  "name": "Jane Doe",
  "email": "[email protected]",
  "phone": "+1 555 123 4567"
}

Create customer

POST /customer/create

Creates a new customer.

Request body

Required — CustomerCreate

Example request

{
  "name": "Jane Doe",
  "email": "[email protected]",
  "phone": "+1 555 123 4567"
}

Responses

201 Created — Customer created

Response body: Customer

Edit customer

POST /customer/edit

Edits an existing customer.

Request body

Required — CustomerUpdate

Example request

{
  "id": 55,
  "name": "Jane A. Doe",
  "email": "[email protected]",
  "phone": "+1 555 123 4567"
}

Responses

200 OK — Customer updated

The OpenAPI file does not define a response schema.

Recommended: return the updated Customer object.

Delete customer

POST /customer/delete

Deletes a customer by ID.

Request body

Required

Field

Type

Required

Description

idintegerYesCustomer ID

Example request

{
  "id": 55
}

Responses

200 OK — Customer deleted

This endpoint uses POST rather than DELETE. If intentional (e.g., WP patterns, permissions, or nonce constraints), document the rationale.

Schemas

Appointment

Field

Type

Notes

id integerAppointment ID
customer_id integerRelated customer ID
service_id integerRelated service ID
staff_id integerRelated staff ID
date string (date-time)ISO 8601 datetime
status stringAppointment status

AppointmentCreate

Required fields: customer_id, service_id, date

Field

Type

Required

Notes

customer_id integer YesCustomer ID
service_id integer YesService ID
staff_id integer NoStaff ID
date string (date-time) YesISO 8601 datetime

AppointmentUpdate 

Field

Type

Required

Notes

staff_idinteger NoStaff ID
datestring (date-time) NoISO 8601 datetime
statusstring NoAppointment status

Customer

Field

Type

Notes

id integerCustomer ID
name stringCustomer name
email string (email)Customer email
phone stringCustomer phone

CustomerCreate

Required fields: name

Field

Type

Required

Notes

name string YesCustomer name
email string (email) NoCustomer email
phone string NoCustomer phone

CustomerUpdate

Required fields: id

Field

Type

Required

Notes

id integer YesCustomer ID
name string NoCustomer name
email string (email) NoCustomer email
phone string NoCustomer phone