Vitruve API

A REST API for your organization's Vitruve data. Read athletes, workouts, repetitions, load-velocity profiles and more as JSON, and write what keeps Vitruve in sync with your systems.

The Vitruve API gives your own systems read access to everything your organization has recorded in Vitruve: athletes, coaches and teams, every workout down to the repetition, programs and templates, load-velocity profiles, leaderboards, wellness questionnaires and injury reports, plus metric trends and athlete rankings computed for you.

It also accepts the writes an external system needs to keep Vitruve in sync: athletes, coach assignments, teams, exercises, load-velocity profiles and injury reports. Programs, workouts, templates and measurements are created in the Vitruve apps.

Use it to feed a data warehouse, build dashboards in the tools you already use, connect Vitruve to a research pipeline, or keep your roster in step with an athlete management system.

PropertyValue
Base URLhttps://api-next.vitruve.fit/v1
ProtocolHTTPS, JSON
MethodsGET; POST, PATCH, PUT and DELETE on the write endpoints
AuthenticationX-API-Key header; each key belongs to one organization
AccessOrganizations on the Professional plan, checked on every request
Rate limit30 requests per minute per key
PaginationCursor-based, 1–100 items per page
curl "https://api-next.vitruve.fit/v1/organization" \
  -H "X-API-Key: YOUR_API_KEY"

Using an AI assistant instead?

The Vitruve MCP server gives Claude, ChatGPT, Cursor and other MCP clients read access to the same data, with an OAuth sign-in instead of an API key. Coaches can connect too, scoped to the athletes they can see.

Hosts and the 2027-01-31 date

  • Now: the Vitruve API answers at https://api-next.vitruve.fit/v1. Use it for everything you build.
  • From 2027-01-31: the same API also answers on https://api.vitruve.fit, at the same /v1 paths. https://api-next.vitruve.fit keeps working after that date, so nothing you build on it has to change.
  • Pre-v1 endpoints: GET /users and GET /vbt-workouts on https://api-exports.vitruve.fit keep working unchanged until 2027-01-31, and stop on that date. Move them to /v1 before then: see Moving from api-exports.

What you can read

AreaResources
Organization and peopleOrganization, athletes and their sport profile, coaches, teams
TrainingWorkouts with their full tree, programs, phases, scheduled workouts
TemplatesYour reusable workout, phase, block and prescription library
MeasurementsLoad-velocity profiles, leaderboards, wellness, injuries
CatalogsExercises, muscles, metrics, prescription types, units

Good to know

  • One key, one organization. A key only ever reads and writes the data of the organization that issued it.
  • Access follows your plan. Every request checks the organization's plan. If it stops including the API, keys answer 403 until it is restored.
  • Entities keep Vitruve's field names. Nothing is renamed or reshaped, so what you see in the reference is what the app stores.
  • Ids link resources. A workout holds an exerciseId, not an exercise name. See IDs and relations.
  • Unknown parameters are rejected. A misspelled filter answers 400 instead of silently returning unfiltered data.

Building a product for Vitruve customers?

Platforms that connect to Vitruve on behalf of shared customers use Partner integrations instead, with their own credentials.

On this page