Live

Trainerize logo

Trainerize API and MCP server

trainerize.com

Trainerize has an API, but only on Studio and Enterprise plans or with the paid FitMetrics add-on (checked 10 Oct 2026). Cotlet is a hosted MCP server and REST API for Trainerize with 14 endpoints (8 read, 6 write): your AI agent signs in as you and does the work.

Endpoints
14 8 read, 6 write
Updated
How Cotlet connects your agent to Trainerize
  1. Your agent

    Claude Code, Codex, Cursor or a script

  2. Cotlet

    MCP server and REST API · 14 endpoints

    cotlet.dev/mcp/v1

  3. Trainerize logo

    Trainerize

    Signed in as you on trainerize.com

You sign in once. We never store your password.

Official API

Does Trainerize have an official API?

Trainerize has an API, but only on Studio and Enterprise plans or with the paid FitMetrics add-on (checked 10 Oct 2026). Grow and Pro trainers get Zapier, not the API, and there is no public API reference.

What Trainerize's own tools do compared with Cotlet
Task Trainerize official Cotlet
List and filter clients Partly Studio or Enterprise; Zapier only finds a client by email Yes
Read client progress and body stats Partly Studio or Enterprise, last 180 days only Yes
Read check-in forms Partly Studio or Enterprise only Yes
Read and send client messages Partly Studio or Enterprise; Zapier can send, not read Yes
Subscribe a client to a master program Partly Studio or Enterprise, or Zapier on paid plans Yes
Schedule appointments Partly Studio or Enterprise only, not in Zapier Yes
Log body stats for a client Partly Studio or Enterprise only, not in Zapier Yes
Tag, deactivate or reactivate clients Partly Studio or Enterprise, or Zapier on paid plans Yes

Sources: Using API and Webhooks With ABC Trainerize (help center) · What Is FitMetrics in ABC Trainerize? (help center) · Trainerize pricing · Trainerize triggers and actions on Zapier · Zapier MCP for ABC Trainerize · Automating Content Delivery with Product Automation (help center)

Common use cases

What can an AI agent do in Trainerize?

Cotlet is best for personal trainers and studio owners on Trainerize Grow or Pro who want their AI agent to handle check-ins, messages, programs and bookings without running or fixing a server.

  • Follow up with clients who stopped logging body stats Runs: Weekly

    Find my full-access clients whose last body stats entry is more than two weeks old and draft a short check-in message for each. Leave out anyone who told me they are sick or traveling. Your agent calls list_clients, get_body_stats, list_conversations and send_message.

  • Summarize weekly check-in forms Runs: Weekly

    Summarize the check-in forms submitted since last Monday. Flag anyone whose energy or motivation score dropped, anyone who mentions pain, and list who has not checked in. Your agent calls list_check_ins, get_client and list_clients.

  • Assign the next program when a client's program expires Runs: Weekly

    Find clients whose main program ends in the next week or already ended. Suggest the next master program for each based on their goal and last check-in, and subscribe them after I approve, starting the day after the old one ends. Your agent calls list_clients, get_client, list_check_ins, list_master_programs and subscribe_to_program.

  • Book recurring appointments Runs: Weekly

    Book a 1-on-1 with Sam every Tuesday at 7:00 for the next month. Your agent calls list_clients, list_appointments and schedule_appointment.

  • Draft replies to client messages Runs: Daily

    Go through my unread Trainerize messages from today, check each client's program before answering, and draft replies I can approve one by one. Flag anything about pain or payments for me. Your agent calls list_conversations, get_conversation, get_client and send_message.

  • Log body stats after a session

    Enter the weight and waist I measured for Alex at today's session. Your agent calls list_clients and log_body_stats.

Endpoints

What is the Trainerize API?

Cotlet's Trainerize API exposes 14 endpoints for your own Trainerize account: list clients, get client, get body stats, list check-ins, list conversations, get conversation, list master programs, list appointments, send message, subscribe to program, log body stats, schedule appointment, add client tags and set client status. The list_clients endpoint returns clients with client type, trainer, tags and last activity. Each endpoint takes simple JSON inputs like client_id, limit or search and works both as an MCP tool for agents and as a REST call for scripts.

All endpoints · 14 total

missing one? request an endpoint

  • POST

    list_clients

    read

    Lists the clients you can see, in the order Trainerize shows them. Deactivated clients are left out unless you ask for them with client_type. Filter by tag to get a group, or search by name or email. Pages hold up to 200 clients; pass next_cursor back as cursor for the next page.

    POST /api/v1/trainerize/list_clients

    Input

    Input: list_clients
    Parameter Type Description
    client_type enum full_access, offline, basic, prospect, pending or deactivated. Default: all except deactivated.
    tag string Only clients with this custom or auto client tag.
    search string Match on name or email.
    limit integer 1 to 200. Default: 50.
    cursor string Next page cursor from the previous call.

    Example response

    {
      "clients": [
        {
          "client_id": "4821937",
          "name": "Alex Rivera",
          "email": "alex@example.com",
          "client_type": "full_access",
          "trainer": "yourname",
          "tags": [
            "Challenge"
          ],
          "last_active": "2026-10-08T17:40:00Z"
        },
        {
          "client_id": "4821944",
          "name": "Sam Carter",
          "email": "sam@example.com",
          "client_type": "full_access",
          "trainer": "yourname",
          "tags": [
            "Challenge",
            "Online"
          ],
          "last_active": "2026-10-09T06:12:00Z"
        }
      ],
      "next_cursor": null
    }
  • POST

    get_client

    read

    Returns one client profile with contact details, client type, trainer, tags, goals and the main and add-on programs the client is on. Use it before a message or a program change to see where the client stands.

    POST /api/v1/trainerize/get_client

    Input

    Input: get_client
    Parameter Type Description
    client_id required string Client ID from list_clients.

    Example response

    {
      "client_id": "4821937",
      "name": "Alex Rivera",
      "email": "alex@example.com",
      "client_type": "full_access",
      "trainer": "yourname",
      "tags": [
        "Challenge"
      ],
      "goals": [
        "Lose 5 kg",
        "Run 5 km"
      ],
      "main_program": {
        "program_id": "552012",
        "name": "4-week Base"
      },
      "add_on_programs": []
    }
  • POST

    get_body_stats

    read

    Returns the entries a client logged in the range, oldest first, grouped by date. Default range is the last 90 days.

    POST /api/v1/trainerize/get_body_stats

    Input

    Input: get_body_stats
    Parameter Type Description
    client_id required string Client ID from list_clients.
    from date Start date. Default: 90 days ago.
    to date End date. Default: today.

    Example response

    {
      "client_id": "4821937",
      "entries": [
        {
          "date": "2026-09-12",
          "body_weight": 84.1,
          "waist": 90
        },
        {
          "date": "2026-09-26",
          "body_weight": 83.2,
          "waist": 89
        }
      ]
    }
  • POST

    list_check_ins

    read

    Lists submitted check-in forms, newest first, each with every question and the answer. Leave client_id empty to read all clients. Use since to read only what is new since your last run.

    POST /api/v1/trainerize/list_check_ins

    Input

    Input: list_check_ins
    Parameter Type Description
    client_id string One client. Default: all clients.
    since date Only check-ins submitted on or after this date.

    Example response

    {
      "check_ins": [
        {
          "check_in_id": "7710342",
          "client_id": "4821937",
          "client_name": "Alex Rivera",
          "submitted_at": "2026-10-06T08:15:00Z",
          "answers": [
            {
              "question": "How is your energy this week?",
              "answer": "2 out of 5"
            },
            {
              "question": "Anything getting in the way?",
              "answer": "Two late shifts, skipped Thursday."
            }
          ]
        }
      ]
    }
  • POST

    list_conversations

    read

    Lists your conversations in the Trainerize messenger, newest first, with the other person or group, unread count and a preview of the last message. Set unread_only to see only what needs an answer.

    POST /api/v1/trainerize/list_conversations

    Input

    Input: list_conversations
    Parameter Type Description
    unread_only boolean Only conversations with unread messages.
    limit integer 1 to 100. Default: 30.

    Example response

    {
      "conversations": [
        {
          "conversation_id": "3390127",
          "with": {
            "client_id": "4821937",
            "name": "Alex Rivera"
          },
          "unread": 1,
          "last_message": "Can I swap lunges for something easier on my knee?",
          "updated_at": "2026-10-10T07:02:00Z"
        }
      ]
    }
  • POST

    get_conversation

    read

    Returns the most recent messages of one conversation, oldest first, so your agent reads the thread in order. Attachments are listed by file name only.

    POST /api/v1/trainerize/get_conversation

    Input

    Input: get_conversation
    Parameter Type Description
    conversation_id required string Conversation ID from list_conversations.
    limit integer Most recent messages, 1 to 200. Default: 50.

    Example response

    {
      "conversation_id": "3390127",
      "messages": [
        {
          "from": "Alex Rivera",
          "body": "Can I swap lunges for something easier on my knee?",
          "sent_at": "2026-10-10T07:02:00Z",
          "attachments": []
        }
      ]
    }
  • POST

    list_master_programs

    read

    Lists the master programs in your library, with tags and how many clients are subscribed. Use the program_id with subscribe_to_program.

    POST /api/v1/trainerize/list_master_programs

    Input

    Input: list_master_programs
    Parameter Type Description
    search string Match on program name.

    Example response

    {
      "programs": [
        {
          "program_id": "552031",
          "name": "6-week Shred",
          "tags": [
            "fat loss"
          ],
          "subscribers": 14
        },
        {
          "program_id": "552012",
          "name": "4-week Base",
          "tags": [
            "beginner"
          ],
          "subscribers": 31
        }
      ]
    }
  • POST

    list_appointments

    read

    Lists appointments in the range, earliest first, with type, trainer and client. Admins and managers can read another trainer's schedule with trainer_id; other roles see their own.

    POST /api/v1/trainerize/list_appointments

    Input

    Input: list_appointments
    Parameter Type Description
    from required date Start date.
    to required date End date.
    trainer_id string Admins and managers: another trainer. Default: you.

    Example response

    {
      "appointments": [
        {
          "appointment_id": "90311102",
          "client_id": "4821944",
          "appointment_type": "1-on-1 Appointment",
          "start": "2026-10-13T08:00:00-04:00",
          "end": "2026-10-13T09:00:00-04:00",
          "trainer": "yourname"
        }
      ]
    }
  • POST

    send_message

    write

    Sends a message to one client in the Trainerize messenger under your name. The client sees it in the app. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/trainerize/send_message

    Input

    Input: send_message
    Parameter Type Description
    client_id required string Client ID from list_clients.
    body required string Message text.

    Example response

    {
      "conversation_id": "3390127",
      "message_id": "88120045",
      "status": "sent",
      "sent_at": "2026-10-10T09:05:00-04:00"
    }
  • POST

    subscribe_to_program

    write

    Subscribes the clients to a master program as their main program or as an add-on, starting on the date you give. The program appears in each client's app. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/trainerize/subscribe_to_program

    Input

    Input: subscribe_to_program
    Parameter Type Description
    program_id required string Program ID from list_master_programs.
    client_ids required string[] Clients to subscribe.
    start_date required date First day of the program.
    program_type enum main or add_on. Default: main.

    Example response

    {
      "program_id": "552031",
      "program_type": "main",
      "start_date": "2026-10-19",
      "subscribed": [
        {
          "client_id": "4821937",
          "status": "subscribed"
        },
        {
          "client_id": "4821944",
          "status": "subscribed"
        }
      ]
    }
  • POST

    log_body_stats

    write

    Enters body stats for one client on one date, in the client's units. The entry shows in the client's progress. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/trainerize/log_body_stats

    Input

    Input: log_body_stats
    Parameter Type Description
    client_id required string Client ID from list_clients.
    date required date Day of the measurement.
    stats required object Any of body_weight, body_fat_percent, waist, hips, chest, neck and other body measurements.

    Example response

    {
      "client_id": "4821937",
      "date": "2026-10-10",
      "status": "logged",
      "stats": {
        "body_weight": 82.4,
        "waist": 88
      }
    }
  • POST

    schedule_appointment

    write

    Books an appointment of the type you name, with the client, at the start time you give. A weekly or monthly repeat creates one appointment per date up to repeat_until. Notes are visible to the client. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/trainerize/schedule_appointment

    Input

    Input: schedule_appointment
    Parameter Type Description
    client_id required string Client ID from list_clients.
    appointment_type required string Appointment type name, e.g. 1-on-1 Appointment.
    start required datetime ISO 8601 with time zone.
    repeat enum none, weekly or monthly. Default: none.
    repeat_until date Last date of a repeating appointment.
    notes string Appointment notes. The client can see them.

    Example response

    {
      "appointment_id": "90311284",
      "client_id": "4821937",
      "appointment_type": "1-on-1 Appointment",
      "start": "2026-10-13T07:00:00-04:00",
      "end": "2026-10-13T08:00:00-04:00",
      "repeat": "weekly",
      "occurrences": 5,
      "trainer": "yourname"
    }
  • POST

    add_client_tags

    write

    Adds existing custom client tags to the clients. Tags group clients for list_clients and for your own filters in Trainerize. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/trainerize/add_client_tags

    Input

    Input: add_client_tags
    Parameter Type Description
    client_ids required string[] Clients to tag.
    tags required string[] Existing custom client tag names.

    Example response

    {
      "tags": [
        "Challenge"
      ],
      "tagged": [
        "4821937",
        "4821944"
      ],
      "status": "tagged"
    }
  • POST

    set_client_status

    write

    Deactivates a client, who then loses access to the app while the history is kept, or reactivates a deactivated one. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/trainerize/set_client_status

    Input

    Input: set_client_status
    Parameter Type Description
    client_id required string Client ID from list_clients.
    status required enum deactivated or active.

    Example response

    {
      "client_id": "4821944",
      "status": "deactivated"
    }

Setup

How do I connect Trainerize to Claude Code, Codex or Cursor?

Connecting Trainerize takes three steps: request access, sign in to Trainerize once, then add one MCP server or call the REST API with the same key.

Connect Trainerize over MCP

  1. 1

    Create an account

    Sign up and add Trainerize in the console. Your API key is there too.

  2. 2

    Sign in to Trainerize once

    Open the connect page from the console and sign in to Trainerize the way you always do. We keep the session, never your password, and you can revoke it anytime.

  3. 3

    Add Cotlet to your agent

    Claude Code
    claude mcp add --transport http cotlet \
      https://cotlet.dev/mcp/v1 \
      --header "Authorization: Bearer $COTLET_API_KEY"
    Cursor
    {
      "mcpServers": {
        "cotlet": {
          "url": "https://cotlet.dev/mcp/v1",
          "headers": {
            "Authorization": "Bearer ${COTLET_API_KEY}"
          }
        }
      }
    }
    Codex
    # ~/.codex/config.toml
    [mcp_servers.cotlet]
    url = "https://cotlet.dev/mcp/v1"
    bearer_token_env_var = "COTLET_API_KEY"

    Paste the snippet for your client. The same server and key serve every app you connect, so you do this once.

  4. 4

    Ask your agent

    Prompt

    Find my full-access clients whose last body stats entry is more than two weeks old and draft a short check-in message for each. Leave out anyone who told me they are sick or traveling.

    Ask in plain words. Your agent finds the Trainerize tools on the server and calls them for you; anything that reaches other people waits for your OK unless you switch that off for a tool.

Call Trainerize over REST

  1. 1

    Export your API key

    Shell

    export COTLET_API_KEY="cotlet_..."

    Your scripts use the same API key as your agent. Keep it in an environment variable, never in your code.

  2. 2

    Call a tool

    curl

    curl https://cotlet.dev/api/v1/trainerize/schedule_appointment \
      -H "Authorization: Bearer $COTLET_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"client_id":"4821937","appointment_type":"1-on-1 Appointment","start":"2026-10-13T07:00:00-04:00","repeat":"weekly","repeat_until":"2026-11-10"}'

    Every tool is a POST endpoint at /api/v1/trainerize/{tool}. Send its parameters as JSON, exactly as listed in the endpoints above.

  3. 3

    Read the result

    Example response · schedule_appointment

    {
      "appointment_id": "90311284",
      "client_id": "4821937",
      "appointment_type": "1-on-1 Appointment",
      "start": "2026-10-13T07:00:00-04:00",
      "end": "2026-10-13T08:00:00-04:00",
      "repeat": "weekly",
      "occurrences": 5,
      "trainer": "yourname"
    }

    You get plain JSON back, ready for your script. A failed call costs nothing.

Why Cotlet

Why use Cotlet for Trainerize? Hosted, safe and kept working.

  • Built for agents

    • One MCP server for every app you connect.
    • The same tools as a REST API for scripts and cron jobs.
    • Works with Claude Code, Codex and Cursor.
  • Your login stays yours

    • You sign in to Trainerize yourself. We keep only the session, encrypted with AES-256.
    • The model never sees a login.
    • No stored passwords, no CAPTCHA solving, no MFA bypass.
  • You stay in control

    • Pick read only, or read and write.
    • Anything that reaches other people waits for your OK, unless you switch it off per tool.
    • Revoke access in one click.
  • Kept working for you

    • We test every integration daily.
    • When Trainerize changes, the tool pauses until we fix it.
    • Failed calls cost nothing.

Alternatives

Is there a Trainerize MCP server on GitHub?

No open-source Trainerize MCP server turned up. Zapier works on paid Trainerize plans and its MCP server can create clients, assign programs and send messages, but it cannot read messages, progress, check-ins or appointments.

Cotlet compared with a Zapier
Zapier Cotlet
Setup Connect Trainerize in a Zapier account, then add Zapier MCP to your agent Request access, sign in to Trainerize once in your browser, add one MCP server or API key
Reading data Find a client by email; events arrive as triggers Clients, messages, body stats, check-ins, programs and appointments
Write actions Clients, tags, groups, programs, messages and files Clients, tags, programs, messages, appointments and body stats, with your OK on each by default
When Trainerize changes Zapier maintains its app Our team tests it daily and fixes it for you; failed calls are free
When the session expires Reconnect the account in Zapier Your agent gets a link to sign in again
Where it runs Zapier cloud, any MCP client Hosted: Claude Code, Codex, Cursor, n8n and scripts, also on a schedule
Price Free tier with limits, then a paid Zapier plan Free 7-day trial with 5,000 credits, then credits per call

Which one fits you

Pick Cotlet if

  • you are not a developer, or you do not want to maintain a server
  • you need it to keep working when Trainerize changes, without checking it yourself
  • your agent or a script should run it on a schedule, also while your computer is off

Pick an open-source server if

  • you are comfortable installing, updating and fixing it yourself
  • you want the session to stay on your own computer
  • you only need it now and then, from one MCP client

For AI agents

Cotlet for Trainerize in plain text The facts on this page in one block: status, endpoints, access, pricing, contact.

Endpoint health

verified 2h ago

  • list_clients passing
  • get_client passing
  • get_body_stats passing
  • list_check_ins passing
  • list_conversations passing

+ 9 more endpoints

14/14 passing latest check self-healing

trainerize.txt

Trainerize has an API, but only on Studio and Enterprise plans or with the paid FitMetrics add-on (checked 10 Oct 2026). Grow and Pro trainers get Zapier, not the API, and there is no public API reference.
Cotlet provides a hosted MCP server and REST API for Trainerize: 14 tools (8 read, 6 write).
Access       Request access at https://cotlet.dev/app/signup?app=trainerize; we email the API key.

MCP server   https://cotlet.dev/mcp/v1
REST base    https://cotlet.dev/api/v1/trainerize
Auth         Authorization: Bearer <COTLET_API_KEY>. Listing endpoints and schemas needs no key; calling an endpoint needs one.
Tools        list_clients, get_client, get_body_stats, list_check_ins, list_conversations, get_conversation, list_master_programs, list_appointments, send_message, subscribe_to_program, log_body_stats, schedule_appointment, add_client_tags, set_client_status
Confirm      send_message, subscribe_to_program, log_body_stats, schedule_appointment, add_client_tags, set_client_status (by default the user approves each call; the user can switch this off per tool, e.g. for scheduled automations)
Markdown     https://cotlet.dev/integrations/trainerize-api-mcp-server.md

How access works:
1. The user requests access at https://cotlet.dev/app/signup?app=trainerize (Trainerize is pre-selected). Each request is reviewed and the API key is sent by email.
2. The user signs in to Trainerize once in a browser. An agent cannot do this step.
3. The API key goes into the MCP client or the REST call as a bearer token.

Fits: people who want a hosted Trainerize server that someone else maintains, including non-developers.

Policy: Cotlet never stores passwords, never solves CAPTCHAs, never bypasses MFA.
Company: legal details in the Terms of service at https://cotlet.dev/terms. Contact contact@cotlet.dev.
Session: the user signs in to Trainerize in a browser; Cotlet keeps only the session, AES-256 encrypted, revocable in the dashboard at any time.
Terms: the user stays responsible for following Trainerize's terms; Cotlet is not affiliated with Trainerize.
Full page as Markdown

Automations

Can Trainerize automations run on a schedule in n8n, Make or Zapier?

Yes. Cotlet does not replace your automation platform: it gives it a Trainerize connection it does not have, with the same API key as your agent. Write actions ask for your OK by default; switch that off in your dashboard for the tools you choose, for example to follow up with clients who stopped logging body stats, and the schedule runs on its own. Cotlet runs in the cloud, so it keeps going while your computer is off.

Where to run Trainerize automations through Cotlet, and how to schedule them
Where How to connect How to schedule
Your AI agent Add https://cotlet.dev/mcp/v1 with your API key. A scheduled agent run, for example a Claude Code routine.
n8n MCP Client node with https://cotlet.dev/mcp/v1, or an HTTP Request node to https://cotlet.dev/api/v1/trainerize/{tool}. Schedule Trigger node.
Make HTTP module: POST https://cotlet.dev/api/v1/trainerize/{tool} with an Authorization: Bearer header and a JSON body. Scenario schedule.
Zapier Webhooks by Zapier: POST https://cotlet.dev/api/v1/trainerize/{tool} with the same header and body. Schedule by Zapier trigger.
Your own script POST https://cotlet.dev/api/v1/trainerize/{tool} with your API key. cron or GitHub Actions.

Pricing & limits

How much does the Trainerize API cost?

Free 7-day trial with 5,000 credits, no card needed. After that, the Trainerize API comes with the Cotlet plan, from $29 a month for 3,000 credits, with no limit on apps. Each month's credits stay valid for 3 months, so unused credits add up.

Cotlet plan sizes: price, monthly credits and price per credit
Size Price Credits / month Per credit
Solo $29/mo 3,000 about $0.0097
Pro $99/mo 12,000 about $0.0083
Agency $299/mo 40,000 $0.0075

Each successful call uses credits for the work it takes; failed calls and timeouts cost nothing. A hard spend cap is on by default. Authenticate with the Authorization: Bearer header.

About Cotlet

How Cotlet holds your access

Cotlet hosts MCP servers and REST APIs for apps with no usable API. Your agent works in your own Trainerize account.

Company details
The legal name, address and registration numbers of the company behind Cotlet are in the Terms of service. Terms
Your session
You sign in to Trainerize yourself, in your browser. We keep only the session, never your password: encrypted with AES-256 in an EU vault, isolated to your account and used only when your agent calls a Trainerize tool you allowed. When it expires, your agent gives you a link to sign in again. Security
Revoking access
Disconnect Trainerize in your dashboard: the session is deleted and access ends at once. Actions that reach other people wait for your OK unless you switch that off per tool.
What we never do
Store passwords, solve CAPTCHAs or bypass MFA.
Trainerize's terms
You use your own Trainerize account and stay responsible for following Trainerize's terms. Cotlet is independent and not affiliated with Trainerize. Terms
Contact
Questions about the company, security or an app: contact@cotlet.dev
About Cotlet

Frequently asked questions

How do I get access?

Request access and pick Trainerize. Cotlet reviews each request and emails you your API key.

Do I need to be technical?

No. You sign in to Trainerize once in your browser and paste one command into your agent, or one URL into n8n. Your agent can walk you through it. There is no server to install, update or fix.

Is a hosted server safe? My Trainerize session would leave my computer.

Cotlet keeps your Trainerize session encrypted with AES-256 in an EU vault, isolated to your account and used only for the tools you allow: read only, or read and write. The AI model never sees it, and you revoke it in one click. A local server keeps the same session in a file on your computer, readable by any program you run, and needs a fresh sign-in whenever it expires.

Do I need a Studio or Enterprise plan?

No. Cotlet works in your own Trainerize account and does not use the API, which Trainerize limits to Studio and Enterprise plans or the FitMetrics add-on (checked 10 Oct 2026). Some tools depend on your role: reading another trainer's schedule needs an admin or manager.

Can my agent post or send messages in Trainerize without asking me?

No. Every call to send_message, subscribe_to_program, log_body_stats, schedule_appointment, add_client_tags or set_client_status waits for your OK by default. For scheduled automations you can switch confirmation off per tool in your dashboard, for example only for approvals.

Can I use the Trainerize API in n8n?

Yes. Add https://cotlet.dev/mcp/v1 with your API key in n8n's MCP Client node, or call https://cotlet.dev/api/v1/trainerize/{tool} from the HTTP Request node.

Give your agent access to Trainerize.

Request access and pick it. We review each request and email you your API key. Free 7-day trial with 5,000 credits, no card needed.