Classes
This API documentation provides a comprehensive guide for interacting with the class management system in Whautomate. This allows you to interact using API and sync classes between multiple systems.
Search or retrieve Classes
200 response
GET /v1/classes HTTP/1.1
x-api-key: text
Accept: */*
200 response
[
{
"id": "text",
"location": {
"id": "text",
"title": "text"
},
"staff": {
"id": "text",
"name": "text"
},
"timezone": "text",
"date": "2026-01-01",
"time": "text",
"startTimeUTC": "2026-01-01T00:00:00.000Z",
"startTime": "2026-01-01T00:00:00.000Z",
"endTimeUTC": "2026-01-01T00:00:00.000Z",
"endTime": "2026-01-01T00:00:00.000Z",
"service": {
"id": "text",
"name": "text",
"durationMinutes": 1,
"sellingPrice": 1
},
"bookedParticipants": 1,
"numberOfParticipants": 1,
"status": "text",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
]Get Individual Class By Id
200 response
GET /v1/classes/{classId} HTTP/1.1
x-api-key: text
Accept: */*
200 response
{
"id": "text",
"location": {
"id": "text",
"title": "text"
},
"staff": {
"id": "text",
"name": "text"
},
"timezone": "text",
"date": "2026-01-01",
"time": "text",
"startTimeUTC": "2026-01-01T00:00:00.000Z",
"startTime": "2026-01-01T00:00:00.000Z",
"endTimeUTC": "2026-01-01T00:00:00.000Z",
"endTime": "2026-01-01T00:00:00.000Z",
"service": {
"id": "text",
"name": "text",
"durationMinutes": 1,
"sellingPrice": 1
},
"bookedParticipants": 1,
"numberOfParticipants": 1,
"status": "text",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}Create a new Class
Date of the class in YYYY-MM-DD format
Time of the class
Number of participants in the class (optional)
Timezone of the class (optional)
200 response
POST /v1/classes HTTP/1.1
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 223
{
"location": {
"id": "text",
"title": "text"
},
"staff": {
"id": "text",
"name": "text"
},
"date": "text",
"time": "text",
"service": {
"id": "text",
"name": "text",
"durationMinutes": 1,
"sellingPrice": 1
},
"numberOfParticipants": 1,
"timezone": "text"
}200 response
{
"id": "text",
"location": {
"id": "text",
"title": "text"
},
"staff": {
"id": "text",
"name": "text"
},
"timezone": "text",
"date": "2026-01-01",
"time": "text",
"startTimeUTC": "2026-01-01T00:00:00.000Z",
"startTime": "2026-01-01T00:00:00.000Z",
"endTimeUTC": "2026-01-01T00:00:00.000Z",
"endTime": "2026-01-01T00:00:00.000Z",
"service": {
"id": "text",
"name": "text",
"durationMinutes": 1,
"sellingPrice": 1
},
"bookedParticipants": 1,
"numberOfParticipants": 1,
"status": "text",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}Update Class
Date of the class in YYYY-MM-DD format
Time of the class
Number of participants in the class (optional)
Timezone of the class (optional)
200 response
PUT /v1/classes/{classId} HTTP/1.1
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 223
{
"location": {
"id": "text",
"title": "text"
},
"staff": {
"id": "text",
"name": "text"
},
"date": "text",
"time": "text",
"service": {
"id": "text",
"name": "text",
"durationMinutes": 1,
"sellingPrice": 1
},
"numberOfParticipants": 1,
"timezone": "text"
}200 response
{
"id": "text",
"location": {
"id": "text",
"title": "text"
},
"staff": {
"id": "text",
"name": "text"
},
"timezone": "text",
"date": "2026-01-01",
"time": "text",
"startTimeUTC": "2026-01-01T00:00:00.000Z",
"startTime": "2026-01-01T00:00:00.000Z",
"endTimeUTC": "2026-01-01T00:00:00.000Z",
"endTime": "2026-01-01T00:00:00.000Z",
"service": {
"id": "text",
"name": "text",
"durationMinutes": 1,
"sellingPrice": 1
},
"bookedParticipants": 1,
"numberOfParticipants": 1,
"status": "text",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}Delete Class By Id
200 response
DELETE /v1/classes/{classId} HTTP/1.1
x-api-key: text
Accept: */*
200 response
{
"success": true
}Get Participants of a Class
200 response
GET /v1/classes/{classId}/participants HTTP/1.1
x-api-key: text
Accept: */*
200 response
[
{
"id": "text",
"client": {
"id": "text",
"fullName": "text"
},
"paymentStatus": "text",
"status": "text",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
]Add Participant to Class
Client's booking status (optional)
200 response
POST /v1/classes/{classId}/participants/add HTTP/1.1
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 96
{
"client": {
"id": "text",
"fullName": "text",
"countryCode": "text",
"phone": "text"
},
"status": "BOOKED"
}200 response
{
"id": "text",
"client": {
"id": "text",
"fullName": "text"
},
"paymentStatus": "text",
"status": "text",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}Remove Participant from Class
Unique identifier for the participant
Reason for cancellation provided by the participant (optional)
200 response
POST /v1/classes/{classId}/participants/cancel HTTP/1.1
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 52
{
"participantId": "text",
"cancellationReason": "text"
}200 response
{
"id": "text",
"client": {
"id": "text",
"fullName": "text"
},
"paymentStatus": "text",
"status": "text",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}Get Class Bookings of Particular Client
200 response
GET /v1/classes/clients/{clientId}/bookings HTTP/1.1
Host: <YOUR HOST>
x-api-key: text
Accept: */*
200 response
[
{
"id": "text",
"client": {
"id": "text",
"fullName": "text"
},
"paymentStatus": "text",
"status": "text",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"class": {
"id": "text",
"location": {
"id": "text",
"title": "text"
},
"staff": {
"id": "text",
"name": "text"
},
"timezone": "text",
"date": "2026-01-01",
"time": "text",
"startTimeUTC": "2026-01-01T00:00:00.000Z",
"startTime": "2026-01-01T00:00:00.000Z",
"endTimeUTC": "2026-01-01T00:00:00.000Z",
"endTime": "2026-01-01T00:00:00.000Z",
"service": {
"id": "text",
"name": "text",
"durationMinutes": 1,
"sellingPrice": 1
},
"bookedParticipants": 1,
"numberOfParticipants": 1,
"status": "text",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
}
]Last updated