Coach Platform API reference
Connect your Coach account to your own code, automations and AI agents. This reference has one page for each of the 97 endpoints, generated from the OpenAPI spec.
Getting started
The API is available to Coach account holders and the people who build their automations. Create an API key in your Coach account under Settings → מפתחים ואוטומציות (Developers and automations), or connect an MCP client with one-click OAuth.
הסבר בעברית על ה-API וה-MCP של Coach נמצא בעמוד המפתחים.
- Base URL
https://api.coach-platform.com- Authentication
Authorization: Bearer cp_live_...on every endpoint except 6 public endpoints- OpenAPI spec
- openapi.json
- MCP server
https://api.coach-platform.com/api/public/mcp, with an API key or one-click OAuth
- Interactive explorer: the same OpenAPI spec in a browsable explorer.
- Hebrew overview: an overview of the API and MCP, written in Hebrew.
- llms.txt: every page of this reference as markdown, for AI agents.
- Agent guide served by the API: conventions and the MCP tool list.
Discovery
Unauthenticated discovery and reference endpoints.
- GETCheck API health
/api/public/healthPublic health check. - GETGet the catalog of scopes and webhook events
/api/public/catalogPublic catalog of available scopes, webhook events, payload schemas, and docs URL. - GETGet the AI agent guide (llms.txt)
/api/public/llms.txtPlain-text guide for AI agents: auth, conventions, machine-readable references, and the MCP tool list. - GETList error codes
/api/public/errorsReference for every error code returned by the API. - GETGet the API changelog
/api/public/changelogChangelog of breaking and non-breaking changes to this API. - GETGet API limits
/api/public/limitsBody size, timeout, retry, and pagination limits.
Coach
The authenticated coach profile.
Trainees
Create, read, and update trainees.
- GETList trainees
/api/public/traineesList trainees of the coach, filterable by label/search. - POSTCreate a trainee
/api/public/traineesCreate a new trainee for the coach. - POSTApprove or reject pending trainees
/api/public/trainees/pendingApprove or reject trainees from the coach's approval queue, which GET /trainees?status=pending lists. - GETGet a trainee
/api/public/trainees/{traineeId}Get a single trainee by id. - PATCHUpdate a trainee
/api/public/trainees/{traineeId}Update a trainee's personal details. - DELETERemove a trainee
/api/public/trainees/{traineeId}Remove a trainee from the coach account. - POSTRestore an archived trainee
/api/public/trainees/{traineeId}/restoreBring a trainee back from the archive, exactly as the dashboard does it. - POSTSend access details to a trainee
/api/public/trainees/{traineeId}/send-credentialsSend the trainee their app access details by email, and optionally by WhatsApp. - GETGet a trainee's weekly activity
/api/public/trainees/{traineeId}/weekly-activityDay-by-day activity for the week containing the given date (workouts, cardio, nutrition logging, water, measurements, form submissions). - GETGet a trainee's body measurements
/api/public/trainees/{traineeId}/measurementsA trainee's body measurements: weight history, body-fat history, circumference history, and custom measurement types. - POSTRecord a weigh-in
/api/public/trainees/{traineeId}/body-metricsRecord a weigh-in for a trainee: weight, body fat, and/or body measurements. - GETList a trainee's progress photos
/api/public/trainees/{traineeId}/photosA trainee's progress photos as temporary viewable image URLs (valid a few minutes). - GETList a trainee's personal records
/api/public/trainees/{traineeId}/personal-recordsA trainee's personal records per exercise: best weight, estimated 1RM, top-set reps, max reps, set and total volume, and max duration, each with the value achieved, the previous record and when it was set.
Labels
Trainee labels.
- GETList labels
/api/public/labelsList all trainee labels (tags) defined by the coach. - POSTAdd labels to a trainee
/api/public/trainees/{traineeId}/labelsAdd labels to a trainee. - DELETERemove a label from a trainee
/api/public/trainees/{traineeId}/labels/{labelId}Detach a single label from one trainee. - PATCHUpdate a label
/api/public/labels/{labelId}Rename a label or change its color. - DELETEDelete a label
/api/public/labels/{labelId}Delete a label.
Escorts
Coaching periods linking a coach and a trainee.
- GETGet a coaching period
/api/public/escorts/{escortId}Get a coaching period by id. - PATCHUpdate a coaching period
/api/public/escorts/{escortId}Update a coaching period. - DELETECancel a coaching period
/api/public/escorts/{escortId}Cancel a coaching period. - POSTStart a coaching period
/api/public/escortsStart a new coaching period (escort) for a trainee.
Training Plans
Workout plans and their workout days.
- GETList training plans
/api/public/training-plansList training plans. - POSTCreate a training plan
/api/public/training-plansCreate a training plan. - GETGet a training plan
/api/public/training-plans/{planId}Get a training plan by id. - PATCHUpdate a training plan
/api/public/training-plans/{planId}Partially update a training plan. - DELETEDelete a training plan
/api/public/training-plans/{planId}Delete a training plan permanently. - GETGet a trainee's active training plan
/api/public/trainees/{traineeId}/active-training-planGet a trainee's currently active training plan (resolved via the active coaching period). - POSTDuplicate a training plan
/api/public/training-plans/{planId}/duplicateCopy an existing training plan, including every exercise detail (per-set prescriptions, supersets, tempo, intensity, drop sets, alternatives).
Workout Logs
Completed workout logs.
Exercises
The exercise catalog.
Meetings
Scheduled meetings.
- GETList meetings
/api/public/meetingsList meetings in a time window. - POSTSchedule a meeting
/api/public/meetingsSchedule a meeting. - GETGet a meeting
/api/public/meetings/{meetingId}Get a meeting by id. - PATCHUpdate a meeting
/api/public/meetings/{meetingId}Update a meeting (time, title, attendees, notes, status). - DELETEDelete a meeting
/api/public/meetings/{meetingId}Delete a meeting permanently.
Forms
Coach forms.
- GETList forms
/api/public/formsList forms (questionnaires) created by the coach. - GETList registration form responses
/api/public/forms/registrationList submitted registration (intake) form responses across every registration form, newest first. - GETList check-in responses
/api/public/updatesList submitted update (check-in) form responses across every update form, newest first. - POSTRespond to a check-in
/api/public/updates/{updateId}/respondRespond to a submitted check-in. - GETGet a form with its questions
/api/public/forms/{formId}Get one form including its full question set. - GETGet a form response
/api/public/forms/{formId}/response/{responseId}Get a single submitted form response with its answers. - GETList responses to a form
/api/public/forms/{formId}/responsesList submitted responses for a form, newest first.
Notifications
Send notifications to trainees.
Monitoring
Trainee adherence monitoring and stalled-exercise tracking.
- GETGet the monitoring overview
/api/public/monitoring/overviewMonitoring overview: counts of trainees inactive in training, nutrition, water and weight, plus adherence graph data. - GETList trainees with no recent training
/api/public/monitoring/trainingTrainees who have not logged training within the inactivity window. - GETList trainees below their step target
/api/public/monitoring/stepsTrainees who logged fewer steps than their daily step target on the target day (default today). - GETList trainees with no recent nutrition logging
/api/public/monitoring/nutritionTrainees who have not logged nutrition within the inactivity window. - GETList trainees who logged nutrition
/api/public/monitoring/nutrition/logged-todayTrainees who logged nutrition on the target day (default today), with logged calories and protein against target. - GETList trainees who did not log nutrition
/api/public/monitoring/nutrition/not-loggedTrainees who did NOT log nutrition on the target day (default today). - GETGet weight monitoring
/api/public/monitoring/weightWeight monitoring: weight-inactive trainees, significant weight changes vs an aged baseline (with daysBetweenWeights), trend vs goal, plateaus, and broken weekly weigh-in streaks (streakBroken). - GETList trainees with no recent water logging
/api/public/monitoring/waterTrainees who have not logged water within the inactivity window. - GETList weekly check-ins for monitoring
/api/public/monitoring/updatesWeekly trainee updates (check-ins) for monitoring, filterable by form/label/gender. - GETList incomplete check-ins
/api/public/monitoring/incomplete-updatesUpdates submitted with missing measurements or photos. - GETList stalled exercises
/api/public/monitoring/stalled-exercisesExercises where trainees stopped progressing (no improvement over the configured window). - PATCHMark incomplete check-ins as read
/api/public/monitoring/incomplete-updates/readMark a set of incomplete updates as read. - POSTDismiss a stalled exercise
/api/public/monitoring/stalled-exercises/dismissDismiss a single stalled exercise for a trainee. - POSTDismiss stalled exercises in bulk
/api/public/monitoring/stalled-exercises/dismiss-allDismiss many stalled exercises at once. - POSTUndismiss a stalled exercise
/api/public/monitoring/stalled-exercises/undismissUndismiss a single stalled exercise for a trainee. - POSTUndismiss stalled exercises in bulk
/api/public/monitoring/stalled-exercises/undismiss-allUndismiss many stalled exercises at once. - POSTMark a stalled exercise as handled
/api/public/monitoring/stalled-exercises/handleMark a single stalled exercise as handled. - POSTMark stalled exercises as handled in bulk
/api/public/monitoring/stalled-exercises/handle-allMark many stalled exercises as handled at once. - GETList quick wins
/api/public/quick-winsList automatically detected positive moments for your trainees (new personal record, consistency streak, measurement progress, coaching milestone), newest first.
Journeys
Customer journeys and trainee enrollment progress.
- GETList journeys
/api/public/journeysList customer journeys (automation templates) with search and pagination, including how many trainees are actively enrolled in each. - POSTCreate a journey
/api/public/journeysCreate a customer journey, optionally with its ordered steps. - GETList journey enrollments
/api/public/journeys/enrollmentsList trainee enrollments across journeys, filterable by journey, escort and status, with trainee, escort and journey resolved. - GETGet a journey
/api/public/journeys/{journeyId}Get a single customer journey with its full step structure: triggers, timing and the actions each step runs. - PATCHUpdate a journey
/api/public/journeys/{journeyId}Update a customer journey's settings and steps. - GETGet journey analytics
/api/public/journeys/{journeyId}/analyticsEnrollment and completion statistics for a single customer journey. - POSTEnroll a trainee in a journey
/api/public/journeys/{journeyId}/enrollEnroll one trainee into an active journey. - GETGet a trainee's journey progress
/api/public/trainees/{traineeId}/journey-progressWhere a trainee stands in their customer journey(s): current effective day and week, completed versus upcoming steps, and each journey's status.
Employees
Team members.
Products
The coach product catalog and pricing.
Purchases
Customer purchase records and membership status.
Webhooks
Read configured webhooks.