Skip to main content

Current API

List bookings

Auth: auth:api Policy: BookingPolicy::viewAll() — internal users see all, others see only their own.

List own bookings

Auth: auth:api Returns bookings where the authenticated user is the student or the parent.

Create booking

Auth: auth:api Creates a new lesson and booking. Body includes:
  • Tutor ID, subject, level, exam board
  • Start/finish times
  • Lesson type (online, tutor’s home, student’s home)
  • Child IDs (optional, for parent bookings)
  • Address (for in-person lessons)
Creates Lesson (state: ACTIVE) and Booking (state: AWAITING_PAYMENT).

Get booking

Auth: web.api Returns full booking details via BookingTransformer including:
  • Lesson info (state, times, subject, address)
  • Tutor info (profile, rating, hours taught)
  • Student/contact info
  • Meeting details (join URLs)
  • Notes (student + tutor)
  • Payment receipt with pricing breakdown
  • Activity timeline
  • Calendar events

Update booking

Auth: web.api Updates booking details (e.g., approve/confirm).

Cancel booking

Auth: web.api Policy: BookingPolicy::cancel() — internal users, booking owner, lesson student, or lesson parent. Cancels the lesson and processes refund via Stripe. Sends LessonCancelled email.

Legacy v1 API

Bookings CRUD

Auth: auth:api

Reschedule

Auth: auth:api

Approve

Auth: auth:api

Cancel

Auth: auth:api

Booking state transitions