Live

Meevo logo

Meevo API and MCP server

meevo.com

Meevo has a Public API, but only after you send the request form with your Meevo Tenant ID and Millennium Systems reaches out with credentials (checked 11 Oct 2026). Cotlet is a hosted MCP server and REST API for Meevo with 14 endpoints (9 read, 5 write): your AI agent signs in as you and does the work.

Endpoints
14 9 read, 5 write
Updated
How Cotlet connects your agent to Meevo
  1. Your agent

    Claude Code, Codex, Cursor or a script

  2. Cotlet

    MCP server and REST API · 14 endpoints

    cotlet.dev/mcp/v1

  3. Meevo logo

    Meevo

    Signed in as you on meevo.com

You sign in once. We never store your password.

Official API

Does Meevo have an official API?

Meevo has a Public API, but only after you send the request form with your Meevo Tenant ID and Millennium Systems reaches out with credentials (checked 11 Oct 2026). It can create, update and delete appointments and client profiles, but memberships, packages and gift cards are read-only, there is no Register checkout and no reports.

What Meevo's own tools do compared with Cotlet
Task Meevo official Cotlet
List a day's appointments Partly Appointments are retrievable; the Daily Data Stream add-on sends changes from the last 7 days Yes
Find open slots for a service Partly Not on the capability list of the developer tools page Yes
Book an appointment Yes After API access is granted Yes
Reschedule or cancel an appointment Yes Update and delete, after API access is granted Yes
Find a client and read their profile Yes After API access is granted Yes
See a client's memberships, packages and gift cards Yes Read-only (client liabilities) Yes
Sell a package in the Register No Yes
Pull the Register Summary for a day Partly Raw sale changes via the Daily Data Stream, no reports Yes

Sources: Meevo API Developer Tools and access request · Meevo Public API documentation · Meevo Help: Online Booking setup overview · Meevo Help: 2-Way SMS getting started

Common use cases

What can an AI agent do in Meevo?

Cotlet is best for salon and spa owners and managers who want an AI agent to handle bookings, schedule changes, package sales and daily Register totals in Meevo without running or fixing a server.

  • Daily appointment schedule for each stylist Runs: Daily

    What does tomorrow look like for Alex? Flag any gap longer than an hour. Your agent calls list_staff and list_appointments.

  • Book appointment requests from texts and emails

    Jamie Doe texted last night asking for a balayage with toner on Saturday or Sunday, before noon, with anyone but Chris. Find her in Meevo, check what fits and book it, or give me two options to send back. Your agent calls find_client, get_client, list_services, find_open_slots and book_appointment.

  • Move appointments when a stylist is out

    Alex called in sick for today and tomorrow. Move each of her clients to another stylist who does the same services at the same time, or the closest time that day, and show me the plan before you move anyone. Your agent calls list_staff, list_appointments, find_open_slots and reschedule_appointment.

  • Sell a package at the Register

    Sell Jamie the 5 blowout package, paid in cash at the front desk. Your agent calls find_client, list_packages and sell_package.

  • Register Summary for every location Runs: Daily

    Every night at 9, send me the Register Summary for both salons in one message, with each location against the same weekday last week, and flag anything that does not add up. Your agent calls list_locations and get_register_summary.

Endpoints

What is the Meevo API?

Cotlet's Meevo API exposes 14 endpoints for your own Meevo account: list locations, list services, list staff, list appointments, find open slots, find client, get client, list packages, get Register Summary, add visit note, book appointment, reschedule appointment, cancel appointment and sell package. The list_locations endpoint returns locations your login can reach, with address and time zone. Each endpoint takes simple JSON inputs like location_id, staff_id or client_id 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_locations

    read

    Returns every Meevo location your staff login can reach. Use location_id from each item as the location_id parameter of the other tools. Time zone is the one set on the location.

    POST /api/v1/meevo/list_locations

    Input

    No parameters.

    Example response

    {
      "locations": [
        {
          "location_id": "201",
          "name": "Maple Street Salon",
          "address": "12 Maple St, Hoboken, NJ",
          "time_zone": "America/New_York"
        },
        {
          "location_id": "202",
          "name": "Harbor Spa",
          "address": "88 Harbor Rd, Jersey City, NJ",
          "time_zone": "America/New_York"
        }
      ]
    }
  • POST

    list_services

    read

    Lists the service menu of one location grouped by category. Each service has its duration, price and add-ons. Use service_id with find_open_slots and book_appointment.

    POST /api/v1/meevo/list_services

    Input

    Input: list_services
    Parameter Type Description
    location_id string Location ID from list_locations. Default: the location you signed in to.
    category string Only this service category.

    Example response

    {
      "categories": [
        {
          "category": "Color",
          "services": [
            {
              "service_id": "9a8b7c6d-1e2f-4a3b-8c4d-5e6f7a8b9c0d",
              "name": "Balayage",
              "duration_minutes": 150,
              "price": 220,
              "add_ons": [
                "Toner"
              ]
            }
          ]
        }
      ]
    }
  • POST

    list_staff

    read

    Lists the employees of one location with their title and the services each performs. Use staff_id to narrow list_appointments and find_open_slots, or to book with a specific employee.

    POST /api/v1/meevo/list_staff

    Input

    Input: list_staff
    Parameter Type Description
    location_id string Location ID from list_locations. Default: the location you signed in to.

    Example response

    {
      "staff": [
        {
          "staff_id": "e1d2c3b4-a5f6-4e7d-9c8b-7a6f5e4d3c2b",
          "name": "Alex Rivera",
          "title": "Senior Stylist",
          "services": [
            "Balayage",
            "Haircut"
          ]
        },
        {
          "staff_id": "a7b8c9d0-e1f2-4a3b-8c4d-9e0f1a2b3c4d",
          "name": "Sam Patel",
          "title": "Stylist",
          "services": [
            "Balayage",
            "Blowout"
          ]
        }
      ]
    }
  • POST

    list_appointments

    read

    Returns appointments from the Appointment Book for one location, oldest start first. Canceled appointments are left out unless include_canceled is true. Confirmation status is the one Meevo shows on the appointment. Use appointment_id with reschedule_appointment and cancel_appointment.

    POST /api/v1/meevo/list_appointments

    Input

    Input: list_appointments
    Parameter Type Description
    location_id string Location ID from list_locations. Default: the location you signed in to.
    from required date First day, inclusive.
    to date Last day, inclusive. Default: same as from.
    staff_id string Only this employee.
    include_canceled boolean Also return canceled appointments. Default: false.

    Example response

    {
      "appointments": [
        {
          "appointment_id": "4b5c6d7e-8f90-4a1b-b2c3-d4e5f6a7b8c9",
          "start": "2026-10-12T09:00:00-04:00",
          "end": "2026-10-12T11:30:00-04:00",
          "client": {
            "id": "c3f1a2b4-5d6e-4f70-8a91-0b2c3d4e5f60",
            "name": "Jamie Doe"
          },
          "services": [
            "Balayage"
          ],
          "staff": "Alex Rivera",
          "confirmation_status": "confirmed"
        },
        {
          "appointment_id": "7c8d9e0f-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
          "start": "2026-10-12T14:00:00-04:00",
          "end": "2026-10-12T14:45:00-04:00",
          "client": {
            "id": "d4e5f6a7-b8c9-4d0e-9f1a-2b3c4d5e6f7a",
            "name": "Sam Lee"
          },
          "services": [
            "Haircut"
          ],
          "staff": "Alex Rivera",
          "confirmation_status": "unconfirmed"
        }
      ]
    }
  • POST

    find_open_slots

    read

    Returns open start times for one service in a date range, earliest first, each with the employees free at that time. Without staff_id it searches every employee who performs the service. Use a start and staff_id from the result with book_appointment.

    POST /api/v1/meevo/find_open_slots

    Input

    Input: find_open_slots
    Parameter Type Description
    location_id string Location ID from list_locations. Default: the location you signed in to.
    service_id required string Service ID from list_services.
    from required date First day to search.
    to required date Last day to search.
    staff_id string Only this employee. Default: anyone who performs the service.

    Example response

    {
      "slots": [
        {
          "start": "2026-10-17T10:00:00-04:00",
          "staff": [
            {
              "staff_id": "e1d2c3b4-a5f6-4e7d-9c8b-7a6f5e4d3c2b",
              "name": "Alex Rivera"
            }
          ]
        },
        {
          "start": "2026-10-17T11:30:00-04:00",
          "staff": [
            {
              "staff_id": "a7b8c9d0-e1f2-4a3b-8c4d-9e0f1a2b3c4d",
              "name": "Sam Patel"
            }
          ]
        }
      ]
    }
  • POST

    find_client

    read

    Searches client profiles by name, email or phone and returns the matches with contact details and client type. Use client_id with get_client, book_appointment and sell_package. If several clients match, your agent should ask which one before it books.

    POST /api/v1/meevo/find_client

    Input

    Input: find_client
    Parameter Type Description
    query required string Name, email or phone number.

    Example response

    {
      "clients": [
        {
          "client_id": "c3f1a2b4-5d6e-4f70-8a91-0b2c3d4e5f60",
          "name": "Jamie Doe",
          "email": "client@example.com",
          "phone": "+15555550123",
          "client_type": "Regular"
        }
      ]
    }
  • POST

    get_client

    read

    Returns one client profile with upcoming appointments, visit notes, memberships, packages, gift cards and points. Use it before booking or selling, so your agent sees what the client already owns.

    POST /api/v1/meevo/get_client

    Input

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

    Example response

    {
      "client_id": "c3f1a2b4-5d6e-4f70-8a91-0b2c3d4e5f60",
      "name": "Jamie Doe",
      "upcoming_appointments": [
        {
          "appointment_id": "4b5c6d7e-8f90-4a1b-b2c3-d4e5f6a7b8c9",
          "start": "2026-10-12T09:00:00-04:00",
          "services": [
            "Balayage"
          ]
        }
      ],
      "visit_notes": [
        {
          "note_type": "Color formula",
          "text": "Formula 7N plus 20 vol.",
          "created_at": "2026-09-14T16:20:00-04:00"
        }
      ],
      "packages": [
        {
          "name": "5 Blowouts",
          "visits_left": 2
        }
      ],
      "memberships": [],
      "gift_cards": [],
      "points": 120
    }
  • POST

    list_packages

    read

    Lists the packages and memberships you sell at one location, with price and included services. kind narrows the list. Use package_id with sell_package.

    POST /api/v1/meevo/list_packages

    Input

    Input: list_packages
    Parameter Type Description
    location_id string Location ID from list_locations. Default: the location you signed in to.
    kind enum packages, memberships or all. Default: all.

    Example response

    {
      "packages": [
        {
          "package_id": "5f6a7b8c-9d0e-4f1a-8b2c-3d4e5f6a7b8c",
          "kind": "package",
          "name": "5 Blowouts",
          "price": 200,
          "includes": [
            "Blowout x5"
          ]
        }
      ]
    }
  • POST

    get_register_summary

    read

    Returns the Register Summary of one location for one business day: sales by type, payments by method, membership sales, returns and deposits. Sales by type add up to total_sales, and payments add up to the same total. Reads one location per call.

    POST /api/v1/meevo/get_register_summary

    Input

    Input: get_register_summary
    Parameter Type Description
    location_id string Location ID from list_locations. Default: the location you signed in to.
    date required date Business day to read.

    Example response

    {
      "location_id": "201",
      "date": "2026-10-10",
      "currency": "USD",
      "sales_by_type": {
        "services": 2840,
        "products": 410,
        "packages": 600
      },
      "total_sales": 3850,
      "payments": {
        "card": 3120.5,
        "cash": 500,
        "gift_card": 229.5
      },
      "membership_sales": 0,
      "returns": 0,
      "deposits": 150
    }
  • POST

    add_visit_note

    write

    Adds an internal visit note to a client profile, for example a color formula. The note is visible to staff, not to the client. note_type must be one set up at your location. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/meevo/add_visit_note

    Input

    Input: add_visit_note
    Parameter Type Description
    client_id required string Client ID from find_client.
    text required string Note text.
    note_type string Visit note type as set up at your location.

    Example response

    {
      "note_id": "n_20311",
      "client_id": "c3f1a2b4-5d6e-4f70-8a91-0b2c3d4e5f60",
      "note_type": "Color formula",
      "status": "saved"
    }
  • POST

    book_appointment

    write

    Books one or more services in order for a client with one employee, starting at the time you give. Meevo sends your usual confirmation to the client. The call fails if the time is no longer free. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/meevo/book_appointment

    Input

    Input: book_appointment
    Parameter Type Description
    client_id required string Client ID from find_client.
    location_id string Location ID from list_locations. Default: the location you signed in to.
    service_ids required string[] Service IDs from list_services, in order.
    staff_id required string Employee performing the services.
    start required datetime ISO 8601 with time zone.
    note string Appointment note.

    Example response

    {
      "appointment_id": "4b5c6d7e-8f90-4a1b-b2c3-d4e5f6a7b8c9",
      "status": "booked",
      "client": {
        "id": "c3f1a2b4-5d6e-4f70-8a91-0b2c3d4e5f60",
        "name": "Jamie Doe",
        "email": "client@example.com"
      },
      "services": [
        {
          "id": "9a8b7c6d-1e2f-4a3b-8c4d-5e6f7a8b9c0d",
          "name": "Balayage",
          "duration_minutes": 150,
          "staff": "Alex Rivera"
        }
      ],
      "start": "2026-10-17T10:00:00-04:00",
      "end": "2026-10-17T12:30:00-04:00",
      "confirmation_status": "unconfirmed"
    }
  • POST

    reschedule_appointment

    write

    Moves one appointment to a new start time, a new employee, or both. The services stay the same. Meevo sends your usual confirmation for the changed appointment. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/meevo/reschedule_appointment

    Input

    Input: reschedule_appointment
    Parameter Type Description
    appointment_id required string Appointment ID from list_appointments.
    start required datetime New start, ISO 8601 with time zone.
    staff_id string New employee. Default: unchanged.

    Example response

    {
      "appointment_id": "4b5c6d7e-8f90-4a1b-b2c3-d4e5f6a7b8c9",
      "status": "rescheduled",
      "start": "2026-10-17T10:00:00-04:00",
      "end": "2026-10-17T12:30:00-04:00",
      "staff": "Sam Patel"
    }
  • POST

    cancel_appointment

    write

    Cancels one appointment and records the reason you give. reason must be one set up at your location. Canceling affects the client's booking, so confirm it. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/meevo/cancel_appointment

    Input

    Input: cancel_appointment
    Parameter Type Description
    appointment_id required string Appointment ID from list_appointments.
    reason required string Cancellation reason as set up at your location.

    Example response

    {
      "appointment_id": "7c8d9e0f-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
      "status": "canceled",
      "reason": "Client request"
    }
  • POST

    sell_package

    write

    Rings up one package for a client in the Register and records the payment. payment_type must match a payment type named in your Register. It moves money, so confirm it. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/meevo/sell_package

    Input

    Input: sell_package
    Parameter Type Description
    client_id required string Client ID from find_client.
    location_id string Location ID from list_locations. Default: the location you signed in to.
    package_id required string Package ID from list_packages.
    payment_type required string Payment type as named in your Register, e.g. Cash or Visa.

    Example response

    {
      "sale_id": "s_88421",
      "status": "paid",
      "client_id": "c3f1a2b4-5d6e-4f70-8a91-0b2c3d4e5f60",
      "package": "5 Blowouts",
      "amount": 200,
      "payment_type": "Cash"
    }

Setup

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

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

Connect Meevo over MCP

  1. 1

    Create an account

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

  2. 2

    Sign in to Meevo once

    Open the connect page from the console and sign in to Meevo 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

    What does tomorrow look like for Alex? Flag any gap longer than an hour.

    Ask in plain words. Your agent finds the Meevo 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 Meevo 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/meevo/book_appointment \
      -H "Authorization: Bearer $COTLET_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"client_id":"c3f1a2b4-5d6e-4f70-8a91-0b2c3d4e5f60","location_id":"201","service_ids":["9a8b7c6d-1e2f-4a3b-8c4d-5e6f7a8b9c0d"],"staff_id":"e1d2c3b4-a5f6-4e7d-9c8b-7a6f5e4d3c2b","start":"2026-10-17T10:00:00-04:00"}'

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

  3. 3

    Read the result

    Example response · book_appointment

    {
      "appointment_id": "4b5c6d7e-8f90-4a1b-b2c3-d4e5f6a7b8c9",
      "status": "booked",
      "client": {
        "id": "c3f1a2b4-5d6e-4f70-8a91-0b2c3d4e5f60",
        "name": "Jamie Doe",
        "email": "client@example.com"
      },
      "services": [
        {
          "id": "9a8b7c6d-1e2f-4a3b-8c4d-5e6f7a8b9c0d",
          "name": "Balayage",
          "duration_minutes": 150,
          "staff": "Alex Rivera"
        }
      ],
      "start": "2026-10-17T10:00:00-04:00",
      "end": "2026-10-17T12:30:00-04:00",
      "confirmation_status": "unconfirmed"
    }

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

Why Cotlet

Why use Cotlet for Meevo? 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 Meevo 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 Meevo changes, the tool pauses until we fix it.
    • Failed calls cost nothing.

Alternatives

Is there a Meevo MCP server on GitHub?

No maintained community MCP server exists for Meevo; the alternative is requesting Meevo Public API access and building your own integration on it.

Cotlet compared with a Meevo Public API
Meevo Public API Cotlet
Setup Send the request form with your Tenant ID, wait for Millennium to reach out, then build against the docs Request access, sign in to Meevo once in your browser
What it covers Appointments and client profiles; memberships, packages and gift cards read-only Calendar, clients, Register package sales and the Register Summary
Your Meevo session App credentials you keep in your own code Encrypted in an EU vault, limited to the actions you allow, revoked in one click
When the session expires You renew credentials in your code We keep it alive; if Meevo logs you out, your agent gets a link to sign in again
When Meevo changes You update your code Our team tests it daily and fixes it for you; failed calls are free
Where it runs Your own server and code Hosted: Claude Code, Codex, Cursor, n8n and scripts, also on a schedule
Price Terms set by Millennium; overage charges above 1,000 calls a day per location 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 Meevo 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 Meevo in plain text The facts on this page in one block: status, endpoints, access, pricing, contact.

Endpoint health

verified 2h ago

  • list_locations passing
  • list_services passing
  • list_staff passing
  • list_appointments passing
  • find_open_slots passing

+ 9 more endpoints

14/14 passing latest check self-healing

meevo.txt

Meevo has a Public API, but only after you send the request form with your Meevo Tenant ID and Millennium Systems reaches out with credentials (checked 11 Oct 2026). It can create, update and delete appointments and client profiles, but memberships, packages and gift cards are read-only, there is no Register checkout and no reports.
Cotlet provides a hosted MCP server and REST API for Meevo: 14 tools (9 read, 5 write).
Access       Request access at https://cotlet.dev/app/signup?app=meevo; we email the API key.

MCP server   https://cotlet.dev/mcp/v1
REST base    https://cotlet.dev/api/v1/meevo
Auth         Authorization: Bearer <COTLET_API_KEY>. Listing endpoints and schemas needs no key; calling an endpoint needs one.
Tools        list_locations, list_services, list_staff, list_appointments, find_open_slots, find_client, get_client, list_packages, get_register_summary, add_visit_note, book_appointment, reschedule_appointment, cancel_appointment, sell_package
Confirm      add_visit_note, book_appointment, reschedule_appointment, cancel_appointment, sell_package (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/meevo-api-mcp-server.md

How access works:
1. The user requests access at https://cotlet.dev/app/signup?app=meevo (Meevo is pre-selected). Each request is reviewed and the API key is sent by email.
2. The user signs in to Meevo 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 Meevo 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 Meevo 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 Meevo's terms; Cotlet is not affiliated with Meevo.
Full page as Markdown

Automations

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

Yes. Cotlet does not replace your automation platform: it gives it a Meevo 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 daily appointment schedule for each stylist, and the schedule runs on its own. Cotlet runs in the cloud, so it keeps going while your computer is off.

Where to run Meevo 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/meevo/{tool}. Schedule Trigger node.
Make HTTP module: POST https://cotlet.dev/api/v1/meevo/{tool} with an Authorization: Bearer header and a JSON body. Scenario schedule.
Zapier Webhooks by Zapier: POST https://cotlet.dev/api/v1/meevo/{tool} with the same header and body. Schedule by Zapier trigger.
Your own script POST https://cotlet.dev/api/v1/meevo/{tool} with your API key. cron or GitHub Actions.

Pricing & limits

How much does the Meevo API cost?

Free 7-day trial with 5,000 credits, no card needed. After that, the Meevo 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 Meevo 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 Meevo 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 Meevo tool you allowed. When it expires, your agent gives you a link to sign in again. Security
Revoking access
Disconnect Meevo 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.
Meevo's terms
You use your own Meevo account and stay responsible for following Meevo's terms. Cotlet is independent and not affiliated with Meevo. 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 Meevo. Cotlet reviews each request and emails you your API key.

Do I need to be technical?

No. You sign in to Meevo 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 Meevo session would leave my computer.

Cotlet keeps your Meevo 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 Meevo API access to use Cotlet?

No. Cotlet works in your own Meevo account through your staff login, so you do not send the Meevo API request form or wait for Millennium. Your login needs security access to the areas your agent uses, for example the Register for package sales.

Does Cotlet hit the Meevo API call limits?

No. Cotlet does not use the Meevo Public API, so its per-location limit of 1,000 calls a day with overage charges and 60 calls a minute does not apply (checked 11 Oct 2026, docs.meevoapi.com).

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

No. Every call to add_visit_note, book_appointment, reschedule_appointment, cancel_appointment or sell_package 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 Meevo 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/meevo/{tool} from the HTTP Request node.

Give your agent access to Meevo.

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.