Skip to content

API Overview

The FitRepo API is a JSON REST API that powers both the web app and the MCP server. You can call it directly to build integrations or automate data access.

https://mydatafor.life

If self-hosting, replace with your instance URL.

Different route groups use different auth mechanisms:

Route groupAuth mechanism
GET /api/mcp/*MCP Bearer token (Authorization: Bearer <api-key>)
POST/DELETE /api/mcp/keysSupabase session cookie (web app login)
/api/account/*, /api/settings, /api/connections/*, /api/backfill/*, /api/activities/*Supabase session cookie
/api/webhooks/wahooPer-user webhook token (encoded in the webhook URL)
/api/health, /api/oauth/.*Public or session-mediated (see individual endpoint docs)

For direct API access to the MCP endpoints, generate an API key in Settings → MCP & API Keys and pass it as a Bearer token.

All responses are JSON. Successful responses return HTTP 2xx. Errors return a JSON body:

{ "error": "Human-readable error message" }

Common status codes:

CodeMeaning
200OK
400Bad request (invalid parameters)
401Unauthorized (missing or invalid API key)
404Not found
409Conflict (e.g. backfill already running)
503Service degraded (see /api/health)

List endpoints accept limit and offset query parameters. The activities endpoint defaults to limit=50 with a maximum of 200. Other list endpoints may differ — check the individual endpoint docs.

Dates are accepted as YYYY-MM-DD strings. Timestamps are returned as ISO 8601 UTC strings (2025-03-15T07:30:00Z).

MethodPathDescription
GET/api/healthHealthcheck
GET/api/mcp/activitiesList activities
GET/api/mcp/activities/:idGet activity
GET/api/mcp/fitnessFitness timeline (CTL/ATL/TSB)
GET/api/mcp/best-effortsAll-time best efforts
GET/api/mcp/wellnessWellness log
GET/api/mcp/thresholdsThreshold history
GET/api/mcp/profileAthlete profile
POST/api/mcp/keysGenerate API key
DELETE/api/mcp/keysRevoke API key
GET/api/account/exportExport all data (JSON download)
DELETE/api/account/deleteDelete account (GDPR erasure)