Skip to main content

Current API

Validate email

Auth: None — checks if email is already registered.

Get user by username

Auth: None — returns public user/tutor profile.

Claim username

Auth: signed middleware — validates signed URL (sent via email).

Update user

Auth: None (public endpoint)
This endpoint has no auth middleware in the current routes. Verify this is intentional — it may rely on the request body validation or internal checks. Confirm with team.

Legacy v1 API

Get user

Auth: auth:api

Update user

Auth: auth:api Policy: UserPolicy::update() — user must be internal or updating themselves.

Profile image

Auth: auth:api

Profile video

Auth: auth:api

Personal details

Auth: auth:api Fires PersonalDetailUpdated event → syncs DOB to Stripe for tutors.

Education

Auth: auth:api

Professions

Auth: auth:api

Profiles

Auth: auth:api Bio (max 500 chars), teacher reference number, tutoring experience.

Children

Auth: auth:api Parents manage child profiles. Children can be linked to lessons via lesson_child pivot.

Languages

Auth: auth:api

Addresses

Auth: auth:api Fires AddressUpdated event → syncs to Stripe.
Tutors are limited to one address — adding a new address deletes the existing one.

Mobile numbers

Auth: auth:api Fires MobileNumberUpdated event → syncs to Stripe.

User devices

Auth: auth:api Updates push notification device tokens.