Developer API

The Vytal API is a single REST surface at https://api.vytal.fit/v1. Partner
integrations read and write members, bookings, classes, subscriptions, payments,
and more, and every call runs in the context of the organization behind your
API key.

📘

New here? Start with the Quickstart: create a key and make

your first call in two requests.

Hosts

HostServes
api.vytal.fit/v1The REST API
api.vytal.fit/openapi.jsonThe OpenAPI contract
pro.vytal.fitproVytal, the staff backoffice
my.vytal.fitmyVytal, the athlete portal
vytal.fitThe public marketing site

Authentication

Send your organization API key as a Bearer token on every request:

Authorization: Bearer vk_live_…

Create and revoke keys in Settings → API Keys (see
Authentication). The organization is implied by the key,
never passed in a body.

What you can do

  • Members & memberships: list, create, update, archive members; manage
    subscriptions and plans.
  • Scheduling: read the class schedule and history; create classes; manage
    bookings and the waitlist; record attendance and check-ins.
  • Training: publish WODs to your spaces.
  • Commerce: products, sales, orders, suppliers, and payments.

Personal, health, financial-internal, and BI resources (individual records and
WOD results, workout feedback and wellness check-ins, leads, expenses, dashboard
and reports) are first-party only and are not part of the external API surface.

Surface at a glance

ResourceExample
MembersGET /v1/members · POST /v1/members
ClassesGET /v1/classes/schedule · POST /v1/classes
BookingsPOST /v1/bookings/book · POST /v1/bookings/cancel
SubscriptionsGET /v1/subscriptions · GET /v1/subscriptions/plans
PaymentsGET /v1/payments · GET /v1/payments/stats
Check-insPOST /v1/check-ins
WODsGET /v1/wods · POST /v1/wods/publish

The complete, always-current list is in the
OpenAPI document.

The contract

  • Versioned base path /v1; resources are clean nouns beneath it.
  • One error shape with predictable status codes.
  • Consistent conventions for list responses, dates, and
    idempotency.
  • The spec is generated directly from the live backend, so it never drifts from
    what's deployed.

Keep reading


Did this page help you?