YOGO API

Your data.
In plain language.

The YOGO MCP server connects your studio straight to ChatGPT and Claude in the browser, plus Claude Desktop, Claude Code and Gemini. Ask in plain language, get answers in seconds. Or use the underlying REST API to build your own integrations with CRM, BI stack or employee app.

REST & JSON MCP ready Hosted in the EU
first-call.sh
# Asked in Claude with YOGO MCP
> How many customers signed up
  last month?

# Claude calls the MCP tool:
list_customers(auto_paginate: true)

< 147 new customers in April, 23% more
  than March. Want a breakdown?
# A first call: fetch your customers
curl https://api.yogobooking.com/customers \
  -H "X-API-KEY: your_api_key_here"
// A first call: fetch your customers
const res = await fetch(
  'https://api.yogobooking.com/customers',
  { headers: { 'X-API-KEY': process.env.YOGO_KEY } }
);

const { data, hasMore, next } = await res.json();
AI ready · MCP

The whole studio.
In one chat.

The YOGO MCP server runs at mcp.yogobooking.com/mcp and exposes every REST endpoint as an MCP tool. With OAuth you connect it directly inside ChatGPT and Claude in the browser, or use your API key in Claude Desktop, Claude Code and Gemini. Same auth, same audit log. No glue code, no servers for you to run.

Demo

Ask your member management system anything.

Ask about member numbers, swap a teacher, build a dashboard. All in the chat, on your own data.

Watch the demo 45 sec.
New: connecting with OAuth and a first question asked in plain language. No keys in your clipboard, no config files.
yogo-mcp · connected
L
You
What classes are on the schedule next week?
C
Claude
Let me check the class schedule.
tool_calllist_classes(from: "2026-05-11", expand: "teachers")
C
Claude
You have 24 classes next week. Vinyasa Thursday 07:00 has no teacher assigned. Want me to put Mette on it?

The whole studio as tools

Customers, teachers, orders, bookings and classes. Every REST endpoint is exposed as an MCP tool, including set_class_teachers for reassigning teachers straight from the chat.

Same API key, same rules

The MCP server uses your existing API key as a bearer token. Same plan gating and same audit log via list_write_logs.

Connected in 5 minutes

ChatGPT, Claude in the browser, Claude Desktop, Claude Code and Gemini are supported. In the browser you sign in with OAuth, on desktop you use the API key. No code required.

Important: use a business account with a data processing agreement at your AI vendor, and read their privacy policy so you know how your data is handled. See what applies on GDPR.
Real integrations

Examples you could build this week.

This is not theory. It is exactly what the YOGO API was designed for. Each integration takes a dev team a few days to build, and saves you manual work for as long as the studio runs.

Staff scheduling

Sync classes as shifts to Planday, Tamigo or Sameworks.

Pull the class schedule out of YOGO and create shifts automatically in your scheduling system. Teachers see their YOGO classes as real shifts alongside the rest of the staff, and the payroll export matches what was actually taught.

GET /classes GET /teachers nightly sync
// Daily: create shifts in Planday
const classes = await paginate(
  `${YOGO}/classes?from=today&to=+14d`
);

for (const c of classes) {
  for (const teacherId of c.teacherIds) {
    await planday.shifts.create({
      employeeId: mapTeacher(teacherId),
      departmentId: DEPT,
      startDateTime: c.startsAt,
      endDateTime: c.endsAt
    });
  }
}
Teacher swaps in Claude

Reassign teachers from a chat, without opening the admin module.

Ask Claude in plain language. It finds the class and the teacher via list_classes and list_teachers, then runs set_class_teachers. Every write is recorded in the audit log and can be pulled via list_write_logs.

list_classes list_teachers set_class_teachers list_write_logs
# Example prompt in Claude Desktop
> Put Mette on Vinyasa Thursday 07:00.

# Claude finds the class and teacher:
list_classes({ from: "2026-05-14", to: "2026-05-14" })
list_teachers({ search: "Mette" })

# Writes the change:
set_class_teachers({
  classId: 12345,
  teacherIds: [678]
})

# Audit-log:
list_write_logs({ entityType: "class.teachers" })
CRM & email

Sync members into HubSpot, Mailchimp or Klaviyo.

Run a nightly job that pulls every customer with their booking history and pushes it into your marketing platform. Segment on actual behaviour, whether active, lapsed or newly signed up, and send campaigns that fit.

GET /customers GET /bookings cursor pagination
# Nightly: sync customers to Mailchimp
let cursor;
do {
  const res = await fetch(
    `${YOGO}/customers?after=${cursor || ''}`,
    { headers: { 'X-API-KEY': KEY } }
  ).then(r => r.json());

  await mailchimp.lists.batchSubscribe(
    LIST_ID,
    res.data.map(toMailchimpMember)
  );

  cursor = res.hasMore ? extractAfter(res.next) : null;
} while (cursor);
BI & reporting

Live dashboards in Power BI or Looker Studio.

Pull bookings and class data into your BI stack, combined with finance data from your accounting system, fitness data from Strava, or whatever else you run. Finally, one management report that covers everything.

GET /classes GET /bookings GET /customers
# Daily ETL → Power BI dataset
const bookings = await paginate(
  `${YOGO}/bookings?from=${yesterday}`
);

// Bookings + class expansion (requires expand=class)
const bookings = await paginate(
  `${YOGO}/bookings?from=yesterday&to=today&expand=class`
);

const rows = bookings.map(b => ({
  date: b.class.startsAt,
  className: b.class.className,
  status: b.cancelledAt ? 'cancelled'
        : b.checkedInAt ? 'checked-in'
        : 'booked',
  customerId: b.customerId
}));

await powerbi.pushRows(DATASET, rows);
Employee app

Push teachers and classes into your branded employee app.

Sync the class schedule and teacher records to your employee app, for example Monotree, so staff have today's shifts, contact details and class information in their pocket, alongside onboarding and internal comms. One app, one source of truth.

GET /classes GET /teachers nightly sync
// Daily push to Monotree
const classes = await paginate(
  `${YOGO}/classes?from=today&to=+14d&expand=classType,room`
);

const shifts = classes.map(c => ({
  date: c.startsAt,
  title: c.classType.name,
  teacherIds: c.teacherIds,
  room: c.room.name
}));

await monotree.shifts.upsert(shifts);
KK
Inspiration · Open source

Kristian built an sGTM integration, then open-sourced it.

Kristian Krogh Bang built an open-source pipeline that polls /orders, /bookings and /customers every 60 seconds and forwards the data to server-side GTM, and from there to GA4, Meta CAPI, Klaviyo or whatever you run. The whole project is Apache 2.0 licensed on GitHub. A good reference if you want to build something similar.

Pricing

One flat price. Everything included.

API access is an add-on to the Studio and Studio+App plans.

€79 / month

Requires an active Studio or Studio+App plan.

  • Complete, public documentation
  • Access to every existing endpoint
  • New endpoints as they ship, at no extra cost
  • EU-hosted, GDPR compliant

The small print

We provide comprehensive API documentation, but we do not support the integration work itself. That means you need the capacity to build and maintain your integration in-house. We of course keep the API maintained and updated on our side. If you have questions about how the API works, you are welcome to get in touch.

If you connect an AI service via MCP, your data is processed by that vendor under their terms and privacy policy, not by YOGO, and the vendor may be based outside the EU. Use a business account with a data processing agreement, name the vendor in your privacy policy, and review the AI's answers before acting on anything significant.

Questions & answers

What we get asked most.

What is the YOGO API?

The YOGO API is the official REST API for the YOGO Booking platform. It lets yoga studios, gyms and wellness businesses pull out their own data, including customers, orders, bookings, classes and teachers, and build integrations with CRM, email marketing, BI stacks, staff scheduling and employee apps.

What does the YOGO API cost?

API access costs €79 per month as an add-on to the YOGO Studio and Studio+App plans. The price includes access to every existing endpoint, the MCP server and any future endpoints at no extra cost. Complete public documentation is available for free at docs.api.yogobooking.com.

What is the YOGO MCP server?

The YOGO MCP server is a Model Context Protocol server that exposes YOGO's REST endpoints as tools directly inside ChatGPT, Claude in the browser, Claude Desktop, Claude Code and Gemini. It runs at mcp.yogobooking.com/mcp and shares the same audit log as the REST API. In the browser you connect with OAuth, on desktop with your API key as a bearer token. Connecting takes five minutes and requires no code.

Does YOGO MCP support OAuth?
Yes. You can now connect YOGO directly inside ChatGPT and Claude in the browser, without copying API keys around or editing config files.

You add mcp.yogobooking.com/mcp as an MCP connector, get sent to YOGO, sign in with your own account and approve the access. After that you can ask in plain language.

Clients such as Claude Desktop, Claude Code and Gemini can still use an API key as a bearer token. Both methods hit the same endpoints and the same audit log.

What integrations can I build with the YOGO API?

Typical integrations are: syncing customer data to CRM (HubSpot, Klaviyo, Mailchimp), live dashboards in BI tools (Power BI, Looker Studio, BigQuery), staff scheduling where teachers appear as shifts (Planday, Tamigo, Sameworks), branded employee apps showing today's classes (for example Monotree), custom booking widgets on your own website (Squarespace, Webflow, Next.js), and server-side analytics tracking (sGTM → GA4, Meta CAPI). A developer can usually build a standard integration in a few days.

Does YOGO support the integration work itself?

No. We provide comprehensive API documentation, but we do not support the integration work itself. That means you need the capacity to build and maintain your integration in-house, or hire an external developer. We of course keep the API maintained and updated on our side, and you are welcome to contact us with questions about how the API works.

Which YOGO plans include API access?

API access is available as an add-on to the YOGO Studio and Studio+App plans. You need an active Studio or Studio+App plan, and then activate API access for €79 per month.

Is the YOGO API GDPR compliant?
Yes, on YOGO's side. The YOGO API and MCP server run in the EU (AWS Frankfurt), and your use is covered by the data processing agreement you already have with YOGO.

The AI service you connect yourself is not YOGO's. Data the AI pulls through the API is processed by that vendor under their own terms and privacy policy, and the vendor may be based outside the EU.

Use a business account with a data processing agreement, read the vendor's privacy policy so you understand how your data is handled, and name the vendor in your own privacy policy.

Terms in the AI market keep changing. Check what applies at your vendor before you start.

Can I see what the AI did, and revoke access?
Yes. Every change made through the API is logged, so you can see what changed and when.

The API key is created in YOGO admin under Settings, and you can disable it at any time. If you use OAuth, access can be revoked in the same place without affecting your other integrations.

The audit log can also be pulled programmatically via list_write_logs, so you can feed it into your own monitoring setup.

Which account should we use with the AI vendor?
A business account with a data processing agreement. Personal accounts, including paid ones, are not meant for customer data.

Most AI vendors offer a business plan with a data processing agreement, but terms keep changing, so check what applies at your own vendor.

If you can turn off training on your data, do it, but that does not replace the agreement. When in doubt, run it past your own data protection adviser.

Who is responsible for the AI's answers?
The AI's responses are not generated by YOGO. Always review anything significant before acting on it.

YOGO supplies the data through the API. The interpretation, the summary and the conclusion come from the AI service, and it can be wrong. Treat it as a working tool, not an auditor-approved report.

For write operations we recommend enabling approval, so a person confirms the change before it is saved.

Where does the YOGO MCP server run?
In the EU, on AWS Frankfurt (eu-central-1), the same place as the rest of YOGO.

The MCP server does not store your data. It forwards calls to YOGO's REST API and returns the response to the AI client you approved. All traffic is encrypted, and access is bound to your own account, so the API only exposes data from your own studio.

Ready to build?

Start with the docs.

The full, up-to-date documentation is public. Write to us when you are ready to activate API access on your account.