Health & fitness
Trainerize
Clients, programs, check-ins and messages for your Trainerize business.
14 endpoints
Your AI agent books members into classes from messages, checks which classes need filling, finds members who stopped coming and logs leads. Sign in to Virtuagym once in your own Cloud Browser. No API request, no developer.
8 tools Read and write
Virtuagym has no MCP server, no ChatGPT or Claude app and no Zapier app. Its API docs and keys come only by email ("please reach out to api@virtuagym.com", Virtuagym help, checked 9 Nov 2026). Cotlet runs 8 Virtuagym tools hosted, over MCP for agents and REST for scripts, in your own Virtuagym login.
| What you need | Virtuagym API | By hand | Cotlet |
|---|---|---|---|
| Classes and bookings | Key by email | Yes, one by one | Yes, after your OK |
| Members and visits | Key by email | Yes, one by one | Yes |
| Leads | Lead API by email | Yes | Yes |
| Ask in ChatGPT or Claude | No | No | Yes |
| Developer needed | Yes | No | No |
Checked 8 Nov 2026. Sources: Virtuagym help: API link to your website · Virtuagym about us · Virtuagym help: managing clients and staff
Once, in a browser we host for you.
One address in its settings.
It drafts the work, you OK what customers get.
We never keep your Virtuagym password, and no booking or cancellation goes through until you approve it. Who can see your session
Sign in to Virtuagym in a Cloud Browser. Create a Cotlet account, open Virtuagym in its Cloud Browser, sign in with your business login and press Enable for agents.
Add the Cotlet address. Enter https://cotlet.dev/mcp/v1 as the MCP server or connector URL in your agent.
Let the agent in. Chat apps open a Cotlet sign-in page. Editors, n8n and scripts send an API key made in the console.
Virtuagym shares the address https://cotlet.dev/mcp/v1 with every other app you enable, so one connector covers them all. Turned Virtuagym on after connecting? Refresh the connector and the 8 tools appear.
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect
Claude Code:
claude mcp add --transport http cotlet \
https://cotlet.dev/mcp/v1 \
--header "Authorization: Bearer $COTLET_API_KEY" Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth // ~/.cursor/mcp.json
{
"mcpServers": {
"cotlet": {
"url": "https://cotlet.dev/mcp/v1",
"headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
}
}
} # ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY" MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: virtuagym_read Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: virtuagym_write Spaces come from the schedule. Bookings and cancellations wait for your OK; Virtuagym sends its usual messages.
Returns classes with time, instructor, capacity and booked count.
MCP callvirtuagym_read → list_classes
REST endpointGET https://cotlet.dev/api/v1/virtuagym/classes
| Name | Type | Description |
|---|---|---|
| date_from string required | string | ISO date. |
| date_to string | string | ISO date. Default: date_from. |
| page integer | integer | Page number. Default: 1. |
{
"date_from": "date from"
} {
"classes": [
{
"event_id": "EV-90122",
"name": "Bootcamp",
"instructor": "Femke",
"start": "2026-11-10T19:00",
"capacity": 16,
"booked": 14
}
],
"page": 1
} Returns booked members and who was present after the class.
MCP callvirtuagym_read → get_class
REST endpointGET https://cotlet.dev/api/v1/virtuagym/events/{event_id}/class
| Name | Type | Description |
|---|---|---|
| event_id string required | string | Class ID from list_classes. |
{
"event_id": "event_8c41d2"
} {
"event_id": "EV-90122",
"name": "Bootcamp",
"booked": [
{
"member": "Sanne Jansen",
"present": null
}
]
} Adds the member to the class the way staff do from the schedule. Virtuagym sends its usual booking message. By default you confirm each call; you can switch that off for this tool.
MCP callvirtuagym_write → book_member
REST endpointPOST https://cotlet.dev/api/v1/virtuagym/events/{event_id}/members/{member_id}
| Name | Type | Description |
|---|---|---|
| event_id string required | string | Class ID from list_classes. |
| member_id string required | string | Member ID from list_members. |
{
"event_id": "EV-90122",
"member_id": "M-44188"
} {
"event_id": "EV-90122",
"member": "Daan de Vries",
"status": "Booked"
} Removes the member from the class; your cancellation rules in Virtuagym apply. By default you confirm each call; you can switch that off for this tool.
MCP callvirtuagym_write → cancel_booking
REST endpointPOST https://cotlet.dev/api/v1/virtuagym/events/{event_id}/booking/cancel
| Name | Type | Description |
|---|---|---|
| event_id string required | string | Class ID from list_classes. |
| member_id string required | string | Member ID from list_members. |
{
"event_id": "event_8c41d2",
"member_id": "member_8c41d2"
} {
"event_id": "EV-90122",
"member": "Sanne Jansen",
"status": "Cancelled"
} Search by name and email. Notes and new leads reach no one, so they run at once.
Returns members with ID, active membership, end date and last check-in.
MCP callvirtuagym_read → list_members
REST endpointGET https://cotlet.dev/api/v1/virtuagym/members
| Name | Type | Description |
|---|---|---|
| query string | string | Name or email. |
| not_visited_days integer | integer | Only members with no visit in this many days. |
| page integer | integer | Page number. Default: 1. |
{
"members": [
{
"member_id": "M-44120",
"name": "Sanne Jansen",
"membership": "Unlimited monthly",
"ends": null,
"last_visit": "2026-11-06"
}
],
"page": 1
} Returns the member profile: membership and billing cycle, upcoming bookings, recent visits and staff notes.
MCP callvirtuagym_read → get_member
REST endpointGET https://cotlet.dev/api/v1/virtuagym/members/{member_id}
| Name | Type | Description |
|---|---|---|
| member_id string required | string | Member ID from list_members. |
{
"member_id": "member_8c41d2"
} {
"member_id": "M-44120",
"name": "Sanne Jansen",
"membership": "Unlimited monthly",
"upcoming": [
{
"class": "Bootcamp",
"start": "2026-11-10T19:00"
}
],
"visits_30d": 9,
"notes": []
} Appends a note staff see, for example an injury or a call outcome. Reaches no one, so it runs at once.
MCP callvirtuagym_write → add_member_note
REST endpointPOST https://cotlet.dev/api/v1/virtuagym/members/{member_id}/note
| Name | Type | Description |
|---|---|---|
| member_id string required | string | Member ID from list_members. |
| note string required | string | Note text. |
{
"member_id": "member_8c41d2",
"note": "note"
} {
"member_id": "M-44120",
"note_added": "Called about renewal, will decide Friday"
} Creates the lead with contact details and source, so your follow-up runs as usual. Reaches no one by itself, so it runs at once.
MCP callvirtuagym_write → add_lead
REST endpointPOST https://cotlet.dev/api/v1/virtuagym/leads
| Name | Type | Description |
|---|---|---|
| name string required | string | Full name. |
| email string | string | Email. |
| phone string | string | Phone. |
| source string | string | Where the lead came from. |
{
"name": "Jane Doe"
} {
"lead_id": "L-7781",
"name": "Mohammed El Amrani",
"source": "Website chat",
"status": "New"
} Your signed-in Virtuagym profile, AES-256-GCM encrypted, in Finland. No password.
The 8 Virtuagym tools, never the session cookie.
What your login sees: schedule, members, memberships, leads.
Invoices, payments, membership prices, webshop, deletes.
You sign in again yourself, in the same Cloud Browser.
Disable for agents, reset the browser, or change your Virtuagym password.
Cotlet never types your password: you sign in yourself, and the agent only uses the session. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results).
When Virtuagym moves a button on the schedule or renames a client tab, we fix the tool and your agent calls it the same way. status.cotlet.dev checks the site, console and API every 3 minutes.
| Action | Undo |
|---|---|
| Book a member into a class | Yes, cancel the booking |
| Cancel a booking | Book again if the space is still free |
| Add a note or lead | Yes, edit it in Virtuagym |
2 of 8 tools ask first: book_member, cancel_booking. Member notes and new leads reach no customer, so they run at once. You can turn the wait off per tool once you trust a routine.
{
"name": "book_member",
"arguments": {
"event_id": "EV-90122",
"member_id": "M-44188"
}
} curl -X POST https://cotlet.dev/api/v1/virtuagym/events/EV-90122/members/M-44188 \
-H "Authorization: Bearer $COTLET_API_KEY" {
"event_id": "EV-90122",
"member": "Daan de Vries",
"status": "Booked"
} A cron job or n8n flow can call the same tools over REST at /api/v1/virtuagym with the same key and price, in JSON. Failed calls are free. Each tool row above shows its REST path.
About $45 a monthfor a studio with about 350 members, 7,760 credits. Your Virtuagym plan stays as it is.
| Job | Calls | Credits |
|---|---|---|
| Booking from a message | 3 × 150 | 4,500 |
| Class fill checked, daily | 1 × 26 | 260 |
| Quiet members, weekly | 10 × 4 | 400 |
| Lead added | 1 × 50 | 500 |
| Member note | 2 × 30 | 600 |
| Cloud Browser, 30 days | 1,500 | |
| Total | 7,760 |
Virtuagym publishes no booking counts, so the month is our example. Dollars at the $29 pack rate.
| Credits | Price, one time | Calls at 10 credits | Per 1,000 credits |
|---|---|---|---|
| 5,000 | $29 | 500 | $5.80 |
| 15,000 | $79 | 1,500 | $5.27 |
| 32,000 | $149 | 3,200 | $4.66 |
| 60,000 | $249 | 6,000 | $4.15 |
Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.
| Option | What it does | Where it stops |
|---|---|---|
| Virtuagym API | Members, memberships, classes and leads for your own developer. | Docs and keys only after you email Virtuagym; you build and host the code. |
| Make app | Scenarios between Virtuagym and other apps on Make. | Needs the same API key; scenarios to build. |
| By hand | Every screen of Virtuagym, one booking at a time. | Your front desk's time. |
If you already have a Virtuagym API key and a developer, building on the API is cheaper for syncing data. To book, follow up and log leads from ChatGPT or Claude this week, Cotlet works in the Virtuagym account you already have.
Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), in business since 2019, led by its founders Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the Virtuagym tools go to contact@cotlet.dev.
Sign up free at https://cotlet.dev, open Virtuagym under Integrations in the console and sign in to Virtuagym in its Cloud Browser. The trial starts with your first app and asks for no card.
Sign up at cotlet.dev, log in to Virtuagym once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Virtuagym account through Cotlet, in their phone apps too.
With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Virtuagym: book members from messages; win back quiet members; check tomorrow's classes. You ask in plain words, and anything that reaches other people waits for your OK first.
No. Virtuagym has no ChatGPT or Claude connector of its own and Virtuagym has no official MCP server (checked 9 Nov 2026). Cotlet is an independent one that works in ChatGPT, Claude, Cursor and any MCP client, on your signed-in account.
Yes, with Cotlet. ChatGPT finds the member, checks spaces and books them into the class. Booking waits for your OK by default.
Yes, with Cotlet. ChatGPT lists members with no visit in the days you name, with their membership, so you can reach out before they cancel.
Yes, with Cotlet. ChatGPT adds enquiries from chats, calls or emails as Virtuagym leads with their source.
No. Cotlet works through your own Virtuagym business login, so you do not need to email for docs and keys or hire a developer. It can do what your login can do.
Only in how it is called. Both carry the same 8 tools, inputs, answers, API key and price. Agents use MCP; scripts and HTTP steps use REST.
No. Cotlet is independent and not affiliated with Virtuagym.
Free 7-day trial with 2,000 credits, no card needed.
May we use Google Analytics to see which pages help people? It sets cookies only if you accept. No ads, and we never sell data. Cookie policy