Coach Watts Coaching API

The Coaching API from Coach Watts — 23 operation(s) for coaching.

GitHub OpenAPI

Operations 34

GET /api/coaching/athletes List athletes #
DELETE /api/coaching/athletes/{id} Remove athlete #
GET /api/coaching/athletes/{id} Get athlete profile #
GET /api/coaching/athletes/{id}/nutrition Get athlete nutrition summary #
POST /api/coaching/athletes/connect Connect athlete #
GET /api/coaching/athletes/invites List athlete invites #
POST /api/coaching/athletes/invites Create athlete invite #
DELETE /api/coaching/athletes/invites/{inviteId} Revoke athlete invite #
GET /api/coaching/coaches List coaches #
DELETE /api/coaching/coaches/{id} Remove coach #
DELETE /api/coaching/groups/{id} Delete athlete group #
GET /api/coaching/groups/{id} Get athlete group details #
POST /api/coaching/groups/{id}/members Add athlete to group #
DELETE /api/coaching/groups/{id}/members/{athleteId} Remove athlete from group #
GET /api/coaching/groups List athlete groups #
POST /api/coaching/groups Create athlete group #
GET /api/coaching/invite Get active invite #
POST /api/coaching/invite Create invite #
GET /api/coaching/overview Get coaching overview #
DELETE /api/coaching/teams/{id} Delete team #
GET /api/coaching/teams/{id} Get team details #
DELETE /api/coaching/teams/{id}/invites Revoke team invite #
GET /api/coaching/teams/{id}/invites List team invites #
POST /api/coaching/teams/{id}/invites Create team invite #
POST /api/coaching/teams/{id}/join-by-code Add athlete by code #
DELETE /api/coaching/teams/{id}/members/{userId} Remove team member #
PATCH /api/coaching/teams/{id}/members/{userId} Update team member role #
POST /api/coaching/teams/{id}/members/add Add connected athlete to team #
GET /api/coaching/teams/{id}/roster Get team roster #
POST /api/coaching/teams/accept Accept team invite #
GET /api/coaching/teams List teams #
POST /api/coaching/teams Create team #
GET /api/join/{code} Get invite details #
POST /api/join/{code} Accept invite #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/coachwatts-com:coachwatts-com-coaching-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

coachwatts-com-coaching-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Coachwatts Com Coaching API
  version: 0.5.25
  description: 'Operations tagged Coaching across 2 of this provider''s published API definitions: coachwatts-com-openapi.json, coachwatts-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://coachwatts.com
  description: Local Development Server
  variables: {}
tags:
- name: Coaching
paths:
  /api/coaching/athletes:
    get:
      tags:
      - Coaching
      parameters: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    name:
                      type: string
                    email:
                      type: string
                    status:
                      type: string
        '401':
          description: Unauthorized
      summary: List athletes
      description: Returns the list of athletes coached by the authenticated user.
      operationId: getApiCoachingAthletes
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/athletes/{id}:
    delete:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
        '401':
          description: Unauthorized
        '404':
          description: Athlete not found
      summary: Remove athlete
      description: Removes a coaching relationship, disconnecting from the specified athlete.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: The ID of the athlete to remove
      operationId: deleteApiCoachingAthletesById
      x-operation-id-source: derived
    get:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '403':
          description: Forbidden (Not coaching this athlete)
        '404':
          description: Athlete not found
      summary: Get athlete profile
      description: Returns the details of a specific athlete coached by the authenticated user.
      operationId: getApiCoachingAthletesById
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/athletes/{id}/nutrition:
    get:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '403':
          description: Forbidden (Not coaching this athlete)
      summary: Get athlete nutrition summary
      description: Returns a read-only summary of fueling strategy/targets for an athlete coached by the authenticated user. Does not include daily food logs or logged meal entries.
      operationId: getApiCoachingAthletesByIdNutrition
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/athletes/connect:
    post:
      tags:
      - Coaching
      parameters: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  athlete:
                    type: object
        '400':
          description: Invalid code or request
        '401':
          description: Unauthorized
        '429':
          description: Too many attempts
      summary: Connect athlete
      description: Connects a coach to an athlete using an invite code.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - code
              properties:
                code:
                  type: string
                  description: The invite code
      operationId: postApiCoachingAthletesConnect
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/athletes/invites:
    get:
      tags:
      - Coaching
      parameters: []
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
      summary: List athlete invites
      description: Returns the pending coach-generated athlete invites for the authenticated coach.
      operationId: getApiCoachingAthletesInvites
      x-operation-id-source: derived
    post:
      tags:
      - Coaching
      parameters: []
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
      summary: Create athlete invite
      description: Creates a coach-generated athlete invite. If an email is provided, the join link is emailed to the athlete; otherwise a shareable public invite link is created.
      operationId: postApiCoachingAthletesInvites
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/athletes/invites/{inviteId}:
    delete:
      tags:
      - Coaching
      parameters:
      - name: inviteId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '404':
          description: Invite not found
      summary: Revoke athlete invite
      description: Revokes a pending coach-generated athlete invite.
      operationId: deleteApiCoachingAthletesInvitesByInviteId
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/coaches:
    get:
      tags:
      - Coaching
      parameters: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    name:
                      type: string
                    email:
                      type: string
                    status:
                      type: string
        '401':
          description: Unauthorized
      summary: List coaches
      description: Returns the list of coaches for the authenticated athlete.
      operationId: getApiCoachingCoaches
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/coaches/{id}:
    delete:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
        '401':
          description: Unauthorized
        '404':
          description: Coach not found
      summary: Remove coach
      description: Removes a coaching relationship, disconnecting from the specified coach.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: The ID of the coach to remove
      operationId: deleteApiCoachingCoachesById
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/groups/{id}:
    delete:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Group not found
      summary: Delete athlete group
      description: Permanently deletes an athlete group and its memberships.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
      operationId: deleteApiCoachingGroupsById
      x-operation-id-source: derived
    get:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Group not found
      summary: Get athlete group details
      description: Returns the details and members of a specific athlete group.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
      operationId: getApiCoachingGroupsById
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/groups/{id}/members:
    post:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Added
        '400':
          description: Invalid input
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Group or Athlete not found
      summary: Add athlete to group
      description: Adds an athlete to a specific athlete group.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
      operationId: postApiCoachingGroupsByIdMembers
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/groups/{id}/members/{athleteId}:
    delete:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: athleteId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Group or member not found
      summary: Remove athlete from group
      description: Removes an athlete from a specific athlete group.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: The ID of the group
      - name: athleteId
        in: path
        required: true
        schema:
          type: string
        description: The ID of the athlete to remove
      operationId: deleteApiCoachingGroupsByIdMembersByAthleteId
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/groups:
    get:
      tags:
      - Coaching
      parameters: []
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
      summary: List athlete groups
      description: Returns the list of athlete groups owned by the coach, and optionally team-scoped groups.
      inputSchema:
      - name: teamId
        in: query
        required: false
        schema:
          type: string
      operationId: getApiCoachingGroups
      x-operation-id-source: derived
    post:
      tags:
      - Coaching
      parameters: []
      responses:
        '201':
          description: Created
        '400':
          description: Invalid input
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      summary: Create athlete group
      description: Creates a new athlete group for the authenticated coach, optionally scoped to a team.
      operationId: postApiCoachingGroups
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/invite:
    get:
      tags:
      - Coaching
      parameters: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    nullable: true
                  code:
                    type: string
                    nullable: true
                  expiresAt:
                    type: string
                    format: date-time
                    nullable: true
                  status:
                    type: string
        '401':
          description: Unauthorized
      summary: Get active invite
      description: Returns the currently active coaching invite code for the authenticated athlete.
      operationId: getApiCoachingInvite
      x-operation-id-source: derived
    post:
      tags:
      - Coaching
      parameters: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  code:
                    type: string
                  expiresAt:
                    type: string
                    format: date-time
                  status:
                    type: string
        '401':
          description: Unauthorized
      summary: Create invite
      description: Generates a new coaching invite code for the authenticated athlete.
      operationId: postApiCoachingInvite
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/overview:
    get:
      tags:
      - Coaching
      parameters: []
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
      summary: Get coaching overview
      description: Returns weekly compliance grid data and a combined activity feed for all coached athletes.
      operationId: getApiCoachingOverview
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/teams/{id}:
    delete:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Team not found
      summary: Delete team
      description: Permanently deletes a team and its groups. Only the team owner may delete.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
      operationId: deleteApiCoachingTeamsById
      x-operation-id-source: derived
    get:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Team not found
      summary: Get team details
      description: Returns the details of a specific team if the user has access.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
      operationId: getApiCoachingTeamsById
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/teams/{id}/invites:
    delete:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      summary: Revoke team invite
      description: Revokes a pending team invite code.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
      operationId: deleteApiCoachingTeamsByIdInvites
      x-operation-id-source: derived
    get:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      summary: List team invites
      description: Returns the list of pending invites for a team.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
      operationId: getApiCoachingTeamsByIdInvites
      x-operation-id-source: derived
    post:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      summary: Create team invite
      description: Generates a new invite code for the team.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
      operationId: postApiCoachingTeamsByIdInvites
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/teams/{id}/join-by-code:
    post:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '400':
          description: Invalid input
        '403':
          description: Forbidden
        '404':
          description: Invite not found
      summary: Add athlete by code
      description: Adds an athlete to the team using their personal coaching invite code.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
      operationId: postApiCoachingTeamsByIdJoinByCode
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/teams/{id}/members/{userId}:
    delete:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: userId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '400':
          description: Invalid input
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Member not found
      summary: Remove team member
      description: Removes a member from the team. Owners and admins can remove others; members can leave themselves.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: userId
        in: path
        required: true
        schema:
          type: string
      operationId: deleteApiCoachingTeamsByIdMembersByUserId
      x-operation-id-source: derived
    patch:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: userId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '400':
          description: Invalid input
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Member not found
      summary: Update team member role
      description: Updates a team member role. Owners and admins can change roles; only owners can assign admin.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: userId
        in: path
        required: true
        schema:
          type: string
      operationId: patchApiCoachingTeamsByIdMembersByUserId
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/teams/{id}/members/add:
    post:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Added
        '400':
          description: Invalid input
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      summary: Add connected athlete to team
      description: Directly adds an athlete the coach is already coaching to the team.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
      operationId: postApiCoachingTeamsByIdMembersAdd
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/teams/{id}/roster:
    get:
      tags:
      - Coaching
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      summary: Get team roster
      description: Returns the list of athletes in a team with their metrics.
      inputSchema:
      - name: id
        in: path
        required: true
        schema:
          type: string
      operationId: getApiCoachingTeamsByIdRoster
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/teams/accept:
    post:
      tags:
      - Coaching
      parameters: []
      responses:
        '200':
          description: Success
        '400':
          description: Invalid code
        '401':
          description: Unauthorized
      summary: Accept team invite
      description: Joins a team using an invite code.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - code
              properties:
                code:
                  type: string
      operationId: postApiCoachingTeamsAccept
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/coaching/teams:
    get:
      tags:
      - Coaching
      parameters: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    role:
                      type: string
                    status:
                      type: string
                    team:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        slug:
                          type: string
                        description:
                          type: string
        '401':
          description: Unauthorized
      summary: List teams
      description: Returns the list of teams the authenticated user is a member of.
      operationId: getApiCoachingTeams
      x-operation-id-source: derived
    post:
      tags:
      - Coaching
      parameters: []
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  slug:
                    type: string
        '400':
          description: Invalid input
        '401':
          description: Unauthorized
      summary: Create team
      description: Creates a new team and assigns the authenticated user as the owner.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              properties:
                name:
                  type: string
                  minLength: 2
                  maxLength: 100
                description:
                  type: string
                  maxLength: 500
      operationId: postApiCoachingTeams
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/join/{code}:
    get:
      tags:
      - Coaching
      parameters:
      - name: code
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '404':
          description: Invite not found
      summary: Get invite details
      description: Returns metadata for a coaching or team invitation code.
      inputSchema:
      - name: code
        in: path
        required: true
        schema:
          type: string
      operationId: getApiJoinByCode
      x-operation-id-source: derived
    post:
      tags:
      - Coaching
      parameters:
      - name: code
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '404':
          description: Invite not found
      summary: Accept invite
      description: Accepts a coaching or team invitation code.
      inputSchema:
      - name: code
        in: path
        required: true
        schema:
          type: string
      operationId: postApiJoinByCode
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
x-refined-from:
- coachwatts-com-openapi.json
- coachwatts-com-openapi.yml