API reference

The routes both apps use. Linked routes are public. The others need the login token the app receives after entering the emailed code.

MethodRouteWhat it does
POST/auth/request-codeEmail a 6-digit login code (golfer or coach)
POST/auth/verify-codeCheck the code, create the account if new, return a login token
GET/settingsTerms, privacy, support and how-it-works texts
GET/faqFAQ
GET/packagesPlans and prices
GET/meSigned-in profile · PATCH to edit · DELETE to delete the account
GET/categoriesDrill categories (signed in)
GET/drillsDrills with levels, steps and the best-matched coach's recordings (signed in); ?coachId= to choose a coach
GET/levelsLevels with their match and hold times (signed in)
GET/routinesGolfer's routines · POST to create · PUT/DELETE /routines/:id
GET/sessionsGolfer's practice history · POST to record a session
GET/coach/drillsCoach: drills with recording status
GET/instructorsGolfer: golf instructors to book, with their next free time · /instructors/:id/slots for all free times
GET/lessonsVideo lessons of the signed-in golfer or instructor · POST to book (golfer) · PATCH /lessons/:id {status: cancelled}
GET/noticesNotifications (lesson booked or cancelled) · POST /notices/read
PUT/coach/drills/:drillId/levels/:levelId/videoCoach: upload a reference video (max 30 MB)
PUT/coach/drills/:drillId/positions/:positionIdCoach: save the recorded skeleton for one swing position (same at every level) · DELETE to re-record
PUT/coach/drills/:drillId/positions/:positionId/photoCoach: optional photo for a recorded position (max 2 MB)
POST/webhooks/revenuecatApp Store / Google Play purchases (from RevenueCat only)