Moving from api-exports
The pre-v1 endpoints on api-exports.vitruve.fit stop on 2027-01-31. How GET /users and GET /vbt-workouts map to the /v1 endpoints.
The pre-v1 endpoints, GET /users and GET /vbt-workouts on https://api-exports.vitruve.fit, keep answering exactly as they do today until 2027-01-31. On that date they stop, and the api-exports host goes away with them. Move every integration that still calls them to /v1, at https://api-next.vitruve.fit/v1, before then.
/v1 is only served at https://api-next.vitruve.fit and, from 2027-01-31, also at https://api.vitruve.fit. api-exports never serves /v1.
Before you switch
- Create a key in Settings → API Access if you don't have one yet. See Authentication.
- Send it in the
X-API-Keyheader on every/v1request, as before. - Point your base URL at
https://api-next.vitruve.fit/v1.
Endpoint mapping
Before, on api-exports | /v1 |
|---|---|
GET /vbt-workouts?date=last-7days | GET /v1/workouts?trainingType=vbt&from=…&to=…. ISO 8601 dates (YYYY-MM-DD or a datetime) instead of presets; epoch milliseconds answer 400. Completed workouts are dated by completedAt, newest first. |
| Workout trees in the list | The list returns workouts without their content. Fetch each one with GET /v1/workouts/{id}. See Export all workouts. |
cursor (last id) or offset | The opaque meta.nextCursor, passed as cursor while meta.hasMore is true. See Pagination. |
| Metric and exercise names in the payload | Ids. Resolve and cache /v1/metrics, /v1/units and /v1/exercises. See IDs and relations. |
GET /users | GET /v1/athletes and GET /v1/coaches, paginated, active members only. |
What else differs on /v1
- Field names are Vitruve's own and match the reference. Remap your parsers against the workout data model.
- Unknown query parameters answer
400instead of being ignored. Remove parameters the previous endpoints accepted. - Plan changes apply immediately. An organization whose plan stops including the API answers
403from the next request. - Rate limit: 30 requests per minute per key, reported in
RateLimit-*headers. See Rate limits. - More than workouts.
/v1also reads programs, templates, measurements and analytics, and accepts the writes that keep Vitruve in sync with your systems.
Sync athletes and teams from your system
Keep Vitruve's athletes, teams and coach assignments in step with the roster you already manage elsewhere, such as a club database or an athlete management system.
OpenAPI specification
Download the OpenAPI 3.1 description of the Vitruve API to generate clients or import it into Postman.