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.
# 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();
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.
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.
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.
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.
// 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 }); } }
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.
# 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" })
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.
# 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);
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.
# 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);
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.
// 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);
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.
One flat price. Everything included.
API access is an add-on to the Studio and Studio+App plans.
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.
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?
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?
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?
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?
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?
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?
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.
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.