Getting started

Build on Gravl.

Your training data, programmable. A versioned, scoped, read-only REST API over workouts, records, measurements and stats — plus an MCP server that lets AI assistants act on your Gravl account.

The API at a glance

Base URLhttps://api.gravl.ai
VersionAll endpoints live under /api/v1 — breaking changes only ever ship as a new version.
FormatJSON in and out; UTF-8; dates are UTC ISO 8601.
AuthBearer tokens (gat_…) from a personal token or an OAuth grant.
AccessRead-only today. Write scopes will be introduced deliberately, not implicitly.
CORSOpen (non-credentialed) on /api/v1 and /oauth — browser apps can call the API directly.
StatusBeta — the surface is stable, but registration for OAuth apps is manual.

Your first request

Grab a personal token and you’re one curl away from your training history:

List your workouts
curl "https://api.gravl.ai/api/v1/workouts?page=1&pageSize=2" \
  -H "Authorization: Bearer gat_…"

{
  "items": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "name": "Push Day",
      "notes": null,
      "startDate": "2026-07-12T17:03:00Z",
      "endDate": "2026-07-12T18:05:00Z",
      "durationMinutes": 62,
      "type": "custom",
      "volume": 24150,
      "calories": 410,
      "personalRecordCount": 1,
      "exerciseCount": 6
    }
  ],
  "pageNumber": 1,
  "totalPages": 87,
  "totalCount": 174,
  "hasPreviousPage": false,
  "hasNextPage": true
}

Every token — personal or OAuth — is bound to one user and a set of scopes. There is no scope that grants access to anyone else’s data.

Questions or ideas?

The developer platform is young and shaped by what people build. For OAuth app registration, questions, or feature requests, email developers@gravl.ai.