Coach Watts Wellness API

The Wellness API from Coach Watts — 4 operation(s) for wellness.

GitHub OpenAPI

Operations 6

GET /api/wellness/{wellnessId} Get wellness by ID or Date #
PATCH /api/wellness/{wellnessId} Update wellness record #
GET /api/wellness/events List normalized wellness events #
GET /api/wellness List wellness data #
POST /api/wellness Upload wellness data #
GET /api/wellness/trend Get wellness trends #

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-wellness-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-wellness-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Coachwatts Com Wellness API
  version: 0.5.25
  description: 'Operations tagged Wellness 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: Wellness
paths:
  /api/wellness/{wellnessId}:
    get:
      tags:
      - Wellness
      parameters:
      - name: wellnessId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '400':
          description: Invalid format
        '401':
          description: Unauthorized
        '403':
          description: Access denied
        '404':
          description: Not found
      summary: Get wellness by ID or Date
      description: Returns a wellness record by ID or Date.
      inputSchema:
      - name: wellnessParam
        in: path
        required: true
        schema:
          type: string
        description: UUID or Date (YYYY-MM-DD)
      operationId: getApiWellnessByWellnessId
      x-operation-id-source: derived
    patch:
      tags:
      - Wellness
      parameters:
      - name: wellnessId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '400':
          description: Invalid input
        '401':
          description: Unauthorized
        '404':
          description: Wellness record not found
        '409':
          description: Date conflict
      summary: Update wellness record
      description: Updates editable fields on a specific wellness record. Fields may be set to null to clear bad data.
      security:
      - bearerAuth: []
      inputSchema:
      - name: wellnessId
        in: path
        required: true
        schema:
          type: string
        description: Wellness record ID
      operationId: patchApiWellnessByWellnessId
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/wellness/events:
    get:
      tags:
      - Wellness
      parameters: []
      responses:
        '200':
          description: Success
        '401':
          description: Unauthorized
      summary: List normalized wellness events
      description: Returns normalized wellness events from synced tags and wellness-related calendar periods for chart overlays and AI context.
      security:
      - bearerAuth: []
      inputSchema:
      - name: days
        in: query
        schema:
          type:
          - integer
          - string
          default: 30
      operationId: getApiWellnessEvents
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/wellness:
    get:
      tags:
      - Wellness
      parameters: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    date:
                      type: string
                      format: date-time
                    hrv:
                      type: number
                      nullable: true
                    restingHr:
                      type: integer
                      nullable: true
                    sleepScore:
                      type: integer
                      nullable: true
                    readiness:
                      type: integer
                      nullable: true
                    recoveryScore:
                      type: integer
                      nullable: true
                    weight:
                      type: number
                      nullable: true
                    systolic:
                      type: integer
                      nullable: true
                    diastolic:
                      type: integer
                      nullable: true
        '400':
          description: Invalid date range
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      summary: List wellness data
      description: Returns wellness data for the authenticated user. Accepts optional startDate and endDate query parameters; defaults to the last 90 days when omitted.
      security:
      - bearerAuth: []
      inputSchema:
      - name: startDate
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Range start (inclusive). Must be provided with endDate.
      - name: endDate
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Range end (inclusive). Must be provided with startDate.
      operationId: getApiWellness
      x-operation-id-source: derived
    post:
      tags:
      - Wellness
      parameters: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
        '400':
          description: Invalid data
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      summary: Upload wellness data
      description: Logs or updates wellness metrics for a specific date.
      security:
      - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WellnessUpload'
      operationId: postApiWellness
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
  /api/wellness/trend:
    get:
      tags:
      - Wellness
      parameters: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    date:
                      type: string
                    hrv:
                      type: number
                      nullable: true
                    restingHr:
                      type: integer
                      nullable: true
                    hoursSlept:
                      type: number
                      nullable: true
                    sleepScore:
                      type: integer
                      nullable: true
                    recoveryScore:
                      type: integer
                      nullable: true
        '400':
          description: Invalid date range
        '401':
          description: Unauthorized
      summary: Get wellness trends
      description: Returns daily wellness metrics for a specified date range.
      inputSchema:
      - name: startDate
        in: query
        required: true
        schema:
          type: string
          format: date-time
      - name: endDate
        in: query
        required: true
        schema:
          type: string
          format: date-time
      operationId: getApiWellnessTrend
      x-operation-id-source: derived
    servers:
    - url: https://coachwatts.com
      description: Local Development Server
      variables: {}
components:
  schemas:
    WellnessUpload:
      type: object
      required:
      - date
      properties:
        date:
          type: string
          format: date
          description: YYYY-MM-DD or ISO string
        hrv:
          type: number
          description: Heart Rate Variability (ms)
        hrvSdnn:
          type: number
          description: Standard deviation of NN intervals (ms)
        restingHr:
          type: integer
          description: Resting Heart Rate (bpm)
        avgSleepingHr:
          type: integer
          description: Average HR during sleep (bpm)
        sleepScore:
          type: integer
          description: Sleep quality score (1-100)
        sleepHours:
          type: number
          description: Total sleep duration in hours
        sleepSecs:
          type: integer
          description: Total sleep duration in seconds
        sleepQuality:
          type: integer
          description: Subjective sleep quality (1-10)
        sleepDeepSecs:
          type: integer
          description: Deep sleep duration in seconds
        sleepRemSecs:
          type: integer
          description: REM sleep duration in seconds
        sleepLightSecs:
          type: integer
          description: Light sleep duration in seconds
        sleepAwakeSecs:
          type: integer
          description: Awake duration during sleep session in seconds
        readiness:
          type: integer
          description: Overall readiness score (1-100)
        recoveryScore:
          type: integer
          description: Recovery score (1-100)
        weight:
          type: number
          description: Body weight (kg)
        bodyFat:
          type: number
          description: Body fat percentage (%)
        bloodGlucose:
          type: number
          description: Blood glucose levels
        skinTemp:
          type: number
          description: Skin temperature deviation (Celsius)
        respiration:
          type: number
          description: Respiratory rate (breaths per min)
        spO2:
          type: number
          description: Blood oxygen saturation (%)
        vo2max:
          type: number
          description: Estimated VO2 Max
        restingCaloriesBurned:
          type: integer
          description: Resting calories burned for the day (kcal)
        activeCaloriesBurned:
          type: integer
          description: Active calories burned for the day (kcal)
        totalCaloriesBurned:
          type: integer
          description: Total calories burned for the day (kcal)
        steps:
          type: integer
          description: Daily step count
        distanceMeters:
          type: number
          description: Daily activity distance in meters
        exerciseMinutes:
          type: integer
          description: Daily exercise minutes
        floors:
          type: integer
          description: Daily floors climbed
        systolic:
          type: integer
          description: Systolic blood pressure
        diastolic:
          type: integer
          description: Diastolic blood pressure
        ctl:
          type: number
          description: Chronic Training Load (Fitness)
        atl:
          type: number
          description: Acute Training Load (Fatigue)
        stress:
          type: integer
          description: Subjective stress level (1-10)
        mood:
          type: integer
          description: Subjective mood level (1-10)
        motivation:
          type: integer
          description: Subjective motivation (1-10)
        fatigue:
          type: integer
          description: Subjective fatigue (1-10)
        soreness:
          type: integer
          description: Subjective soreness (1-10)
        comments:
          type: string
          description: User notes or journal entry
        rawJson:
          type: object
          description: Raw developer data for historical reference
x-refined-from:
- coachwatts-com-openapi.json
- coachwatts-com-openapi.yml