Live

Perfect Venue logo

Perfect Venue API and MCP server

perfectvenue.com

Perfect Venue has one public API, the Leads API: a write-only endpoint that creates a lead from your own contact form, and only on the Enterprise plan (checked 11 Oct 2026). Cotlet is a hosted MCP server and REST API for Perfect Venue with 14 endpoints (7 read, 7 write): your AI agent signs in as you and does the work.

Endpoints
14 7 read, 7 write
Updated
How Cotlet connects your agent to Perfect Venue
  1. Your agent

    Claude Code, Codex, Cursor or a script

  2. Cotlet

    MCP server and REST API · 14 endpoints

    cotlet.dev/mcp/v1

  3. Perfect Venue logo

    Perfect Venue

    Signed in as you on perfectvenue.com

You sign in once. We never store your password.

Official API

Does Perfect Venue have an official API?

Perfect Venue has one public API, the Leads API: a write-only endpoint that creates a lead from your own contact form, and only on the Enterprise plan (checked 11 Oct 2026). Events, payments, messages and proposals cannot be read or changed by API.

What Perfect Venue's own tools do compared with Cotlet
Task Perfect Venue official Cotlet
List events and leads No Zapier triggers fire on new events, status changes and new contacts, but nothing lists existing events Yes
Read one event Partly Zapier action "Get Event Details", by event ID Yes
Create a lead Partly Leads API on Enterprise only, from a website form; Zapier "Create Event" on any plan with Zapier Yes
Update event details or status No Yes
Send a proposal No Yes
Read or send emails in the inbox No Yes
List payments and balances No Yes
Log an offline payment or refund a payment No Yes

Sources: Perfect Venue Help: Leads API (Enterprise Feature) · Perfect Venue pricing and plans · Perfect Venue on Zapier · Perfect Venue Help: Event Statuses Explained · Perfect Venue Help: Automatically Create Events from Emails with Zapier · Perfect Venue Help: Email Templates + Automated Emails · Perfect Venue Help: Tasks + Automated Tasks · Perfect Venue Help: Event Assistant with AI Reply

Common use cases

What can an AI agent do in Perfect Venue?

Cotlet is best for venue and restaurant event managers who want their AI agent to follow up on leads, update events, send proposals and track balances without running or fixing a server.

  • Follow up on leads that stopped replying Runs: Daily

    Find my Lead, Qualified and Proposal Sent events where the guest has not answered our last email in 3 days. Send each one the Follow-up template, and after the third unanswered follow-up suggest moving it to Lost. Your agent calls list_events, list_messages, list_email_templates, send_email and set_event_status.

  • Create leads from emailed and phoned inquiries

    Add this emailed inquiry as a Perfect Venue lead: Sam Rivera, sam.rivera@example.com, rehearsal dinner for 40 on Saturday 14 Nov, 18:00 to 22:00, wants the Private Room. Check first that Sam is not already in Perfect Venue. Your agent calls list_events, list_spaces, create_lead and send_email.

  • Send balance due reminders before the event Runs: Weekly

    Which events in the next 30 days still have a balance due and no scheduled payment? Email each contact the Balance reminder template, and list past events that are still unpaid. Your agent calls list_events, get_event, list_payments, list_email_templates, send_email and set_event_status.

  • Update an event and resend the proposal

    Change the Smith rehearsal dinner to 60 guests and send them the updated proposal. Your agent calls list_events, get_event, update_event and send_proposal.

  • Weekly bookings and sales report Runs: Weekly

    Every Monday, send me last week's new leads, confirmed events and sales. Your agent calls get_events_report.

Endpoints

What is the Perfect Venue API?

Cotlet's Perfect Venue API exposes 14 endpoints for your own Perfect Venue account: list events, get event, list payments, list messages, list email templates, list spaces, get events report, create lead, update event, set event status, send proposal, send email, log offline payment and refund payment. The list_events endpoint returns events and leads with status, dates, guest count, contact and event owner. Each endpoint takes simple JSON inputs like event_id, status or venue_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_events

    read

    Lists events from your account, including leads. Filter by status (lead, qualified, proposal_sent, confirmed, balance_due, completed or lost), by event date, by venue and by event owner. Each item has the event ID that the other tools take. Lost events are returned only when status is lost, as they are hidden from the home stages in the app.

    POST /api/v1/perfect-venue/list_events

    Input

    Input: list_events
    Parameter Type Description
    status enum lead, qualified, proposal_sent, confirmed, balance_due, completed or lost. Omit for all except lost.
    from date Only events on or after this date.
    to date Only events on or before this date.
    venue_id string Limit to one venue when you manage several locations.
    owner string Event owner, a team member email.
    limit integer Events per page.
    cursor string Next page cursor from the previous call.

    Example response

    {
      "events": [
        {
          "event_id": "ev_8812",
          "name": "Smith rehearsal dinner",
          "status": "confirmed",
          "start_date": "2026-11-14",
          "start_time": "18:00",
          "end_time": "22:00",
          "group_size": 40,
          "spaces": [
            "Private Room"
          ],
          "owner": "maria@example.com",
          "contact": {
            "name": "Jane Smith",
            "email": "jane@example.com"
          }
        }
      ],
      "next_cursor": null
    }
  • POST

    get_event

    read

    Returns the details of one event: date and time, spaces, group size, event type, owner, contact, status, internal notes and the proposal summary with totals, the deposit and the remaining balance. Use it before update_event or send_proposal. The proposal locks when your proposal locking rule says so (at signing, 2 weeks or 1 week before the event, or never), and the response tells you if it has.

    POST /api/v1/perfect-venue/get_event

    Input

    Input: get_event
    Parameter Type Description
    event_id required string Event ID from list_events.

    Example response

    {
      "event_id": "ev_8812",
      "name": "Smith rehearsal dinner",
      "status": "confirmed",
      "event_type": "Rehearsal",
      "start_date": "2026-11-14",
      "start_time": "18:00",
      "end_time": "22:00",
      "group_size": 40,
      "spaces": [
        "Private Room"
      ],
      "owner": "maria@example.com",
      "contact": {
        "name": "Jane Smith",
        "email": "jane@example.com",
        "phone": "555-555-0101"
      },
      "internal_notes": "Vegetarian menu for 6 guests.",
      "proposal": {
        "total": 4800,
        "deposit": 1000,
        "paid": 1800,
        "balance_due": 3000,
        "locked": false
      }
    }
  • POST

    list_payments

    read

    Returns the rows of the Payments tab of one event. Each payment says whether it was made online or logged offline, and its status. Offline payments already deduct from the total due on the proposal. Online payments can be refunded with refund_payment; offline payments cannot.

    POST /api/v1/perfect-venue/list_payments

    Input

    Input: list_payments
    Parameter Type Description
    event_id required string Event ID from list_events.

    Example response

    {
      "event_id": "ev_8812",
      "payments": [
        {
          "payment_id": "pay_3301",
          "type": "online",
          "purpose": "deposit",
          "amount": 1000,
          "method": "card",
          "status": "paid",
          "paid_on": "2026-10-04"
        },
        {
          "payment_id": "pay_3302",
          "type": "offline",
          "purpose": "remaining_balance",
          "amount": 800,
          "method": "check",
          "status": "paid",
          "paid_on": "2026-10-09"
        }
      ],
      "total": 4800,
      "balance_due": 3000
    }
  • POST

    list_messages

    read

    Returns the emails of one event from the Perfect Venue inbox, so your agent sees who wrote last and when before it answers. Each message says whether it came from the guest or from your team.

    POST /api/v1/perfect-venue/list_messages

    Input

    Input: list_messages
    Parameter Type Description
    event_id required string Event ID from list_events.

    Example response

    {
      "event_id": "ev_8812",
      "messages": [
        {
          "from": "team",
          "sent_at": "2026-10-02T10:15:00Z",
          "subject": "Your event inquiry",
          "body": "Thanks for your inquiry. Here is our proposal."
        },
        {
          "from": "guest",
          "sent_at": "2026-10-03T08:40:00Z",
          "subject": "Re: Your event inquiry",
          "body": "Can we move to 60 guests?"
        }
      ]
    }
  • POST

    list_email_templates

    read

    Returns the template emails you set up in Settings, Email. Use a template_id from this list in send_email. Templates carry the Personalize fields, which Perfect Venue fills in with the details of each event.

    POST /api/v1/perfect-venue/list_email_templates

    Input

    No parameters.

    Example response

    {
      "templates": [
        {
          "template_id": "tpl_followup",
          "name": "Follow-up",
          "subject": "Still looking at your date?",
          "body": "Hi, just checking in on your event."
        },
        {
          "template_id": "tpl_balance",
          "name": "Balance reminder",
          "subject": "Your remaining balance",
          "body": "Your remaining balance is due before your event."
        }
      ]
    }
  • POST

    list_spaces

    read

    Returns the spaces you set up in Settings, Spaces, with the ID that update_event and create_lead take. Use it to name the room a guest asked for.

    POST /api/v1/perfect-venue/list_spaces

    Input

    Input: list_spaces
    Parameter Type Description
    venue_id string Limit to one venue when you manage several locations.

    Example response

    {
      "spaces": [
        {
          "space_id": "sp_01",
          "name": "Private Room"
        },
        {
          "space_id": "sp_02",
          "name": "Patio"
        }
      ]
    }
  • POST

    get_events_report

    read

    Returns the rows of the Events report, with the filters of a custom view: event status, venue, event owner, event date and created date. Use created dates to count new leads in a week and the status filter to count confirmed events. Lost events come back only when status is lost, with the lost reason.

    POST /api/v1/perfect-venue/get_events_report

    Input

    Input: get_events_report
    Parameter Type Description
    status enum lead, qualified, proposal_sent, confirmed, balance_due, completed or lost.
    venue_id string Limit to one venue.
    owner string Event owner, a team member email.
    event_from date Event date on or after this date.
    event_to date Event date on or before this date.
    created_from date Created on or after this date.
    created_to date Created on or before this date.
    cursor string Next page cursor from the previous call.

    Example response

    {
      "rows": [
        {
          "event_id": "ev_8812",
          "name": "Smith rehearsal dinner",
          "status": "confirmed",
          "created_at": "2026-10-02",
          "start_date": "2026-11-14",
          "owner": "maria@example.com",
          "total": 4800
        },
        {
          "event_id": "ev_8830",
          "name": "Lee birthday",
          "status": "lead",
          "created_at": "2026-10-08",
          "start_date": "2026-12-05",
          "owner": "maria@example.com",
          "total": 0
        }
      ],
      "count": 2,
      "next_cursor": null
    }
  • POST

    create_lead

    write

    Adds an event in the Lead status, the status every contact-form inquiry starts in, with the contact, date, time, guest count and spaces you give. It sends nothing to the guest and is undone with set_event_status lost, so it runs without asking first. Perfect Venue may still run your automated emails for the Lead stage.

    POST /api/v1/perfect-venue/create_lead

    Input

    Input: create_lead
    Parameter Type Description
    first_name required string Contact first name.
    last_name string Contact last name.
    email required string Contact email.
    phone string Contact phone.
    start_date date Requested date.
    start_time string Start time, HH:MM.
    end_time string End time, HH:MM.
    group_size integer Expected number of guests.
    event_type string Event type as named in your account.
    spaces array Space IDs from list_spaces.
    message string Anything else from the inquiry.

    Example response

    {
      "event_id": "ev_8841",
      "status": "lead",
      "start_date": "2026-11-14",
      "group_size": 40,
      "contact": {
        "name": "Alex Client",
        "email": "client@example.com"
      }
    }
  • POST

    update_event

    write

    Changes the fields you pass and leaves the rest. It does not change the proposal items, prices or the status; use set_event_status for the status. It reaches no guest and is undone by calling it again with the old values, so it runs without asking first.

    POST /api/v1/perfect-venue/update_event

    Input

    Input: update_event
    Parameter Type Description
    event_id required string Event ID from list_events.
    name string Event name.
    start_date date New date.
    start_time string Start time, HH:MM.
    end_time string End time, HH:MM.
    group_size integer Number of guests.
    spaces array Space IDs from list_spaces.
    event_type string Event type as named in your account.
    owner string Event owner, a team member email.
    internal_notes string Internal notes of the event.

    Example response

    {
      "event_id": "ev_8812",
      "status": "confirmed",
      "group_size": 60,
      "updated": [
        "group_size"
      ]
    }
  • POST

    set_event_status

    write

    Sets the status of one event: lead, qualified, proposal_sent, confirmed, balance_due, completed or lost. Perfect Venue asks for a canceled reason when an event is moved to lost, so reason is required then. Statuses can trigger your automated emails, which are set by event stage, so a change can reach the guest. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/perfect-venue/set_event_status

    Input

    Input: set_event_status
    Parameter Type Description
    event_id required string Event ID from list_events.
    status required enum lead, qualified, proposal_sent, confirmed, balance_due, completed or lost.
    reason string Canceled reason. Required when status is lost.

    Example response

    {
      "event_id": "ev_8830",
      "status": "qualified",
      "previous_status": "lead"
    }
  • POST

    send_proposal

    write

    Sends the current proposal of one event to its contact. Perfect Venue then moves the event to Proposal Sent by itself. The guest can change their menu choices only until the proposal locks. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/perfect-venue/send_proposal

    Input

    Input: send_proposal
    Parameter Type Description
    event_id required string Event ID from list_events.
    message string Short note to the guest with the proposal.

    Example response

    {
      "event_id": "ev_8812",
      "status": "proposal_sent",
      "sent_to": "jane@example.com",
      "sent_at": "2026-10-11T09:30:00+02:00"
    }
  • POST

    send_email

    write

    Sends one email to the contact of an event from the inbox, so the reply lands in the same thread. With template_id, Perfect Venue fills in the event details of the Personalize fields. Give body or template_id. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/perfect-venue/send_email

    Input

    Input: send_email
    Parameter Type Description
    event_id required string Event ID from list_events.
    template_id string Template from list_email_templates.
    subject string Subject line.
    body string Email text. Required without template_id.

    Example response

    {
      "event_id": "ev_8830",
      "status": "sent",
      "to": "lee@example.com",
      "subject": "Still looking at Saturday 5 Dec?",
      "sent_at": "2026-10-11T09:32:00+02:00"
    }
  • POST

    log_offline_payment

    write

    Logs a payment made outside Perfect Venue on one event, with amount, method, status and date, as Add payment, Offline payment does in the app. It charges no one, but the amount deducts from the total due on the proposal and shows in your payment reports. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/perfect-venue/log_offline_payment

    Input

    Input: log_offline_payment
    Parameter Type Description
    event_id required string Event ID from list_events.
    amount required number Amount paid.
    method required string How it was paid, for example cash or check.
    status string Payment status as named in your account.
    paid_on date Date it was paid.

    Example response

    {
      "payment_id": "pay_3302",
      "event_id": "ev_8812",
      "type": "offline",
      "amount": 800,
      "method": "check",
      "paid_on": "2026-10-09",
      "balance_due": 3000
    }
  • POST

    refund_payment

    write

    Refunds a payment that was made online, in full or in part, with a reason. Offline payments cannot be refunded here; they go back by the original payment method. Perfect Venue notes that a refund can take 5 to 7 business days to reach the guest, and takes the money from your connected payment account or bank account. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/perfect-venue/refund_payment

    Input

    Input: refund_payment
    Parameter Type Description
    payment_id required string Online payment ID from list_payments.
    amount number Amount to refund. Omit for a full refund.
    reason required string Reason for the refund.

    Example response

    {
      "payment_id": "pay_3301",
      "event_id": "ev_8812",
      "refunded": 1000,
      "refund_type": "full",
      "status": "refunded"
    }

Setup

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

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

Connect Perfect Venue over MCP

  1. 1

    Create an account

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

  2. 2

    Sign in to Perfect Venue once

    Open the connect page from the console and sign in to Perfect Venue 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 Lead, Qualified and Proposal Sent events where the guest has not answered our last email in 3 days. Send each one the Follow-up template, and after the third unanswered follow-up suggest moving it to Lost.

    Ask in plain words. Your agent finds the Perfect Venue 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 Perfect Venue 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/perfect-venue/create_lead \
      -H "Authorization: Bearer $COTLET_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"first_name":"Alex","last_name":"Client","email":"client@example.com","start_date":"2026-11-14","start_time":"18:00","end_time":"22:00","group_size":40,"event_type":"Birthday","message":"Birthday dinner, needs a private room."}'

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

  3. 3

    Read the result

    Example response · create_lead

    {
      "event_id": "ev_8841",
      "status": "lead",
      "start_date": "2026-11-14",
      "group_size": 40,
      "contact": {
        "name": "Alex Client",
        "email": "client@example.com"
      }
    }

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

Why Cotlet

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

Alternatives

Is there a Perfect Venue MCP server on GitHub?

No open-source Perfect Venue MCP server exists. The realistic route is Zapier: it starts a Zap on new events, status changes and new contacts, creates an event and reads one event by ID, and Zapier MCP can call those two actions from an AI client.

Cotlet compared with a Zapier
Zapier Cotlet
Setup Connect Perfect Venue in Zapier, then build one Zap per task Request access, sign in to Perfect Venue once, add one MCP server or API key
What it can do Triggers on new events, status changes and new contacts; actions: create event, get event details Lists events, reads payments and the inbox, updates events, sends proposals and emails, logs payments
Your Perfect Venue session Zapier keeps its own connection to your account Encrypted in an EU vault, limited to the actions you allow, revoked in one click
When Perfect Venue changes Zapier maintains its actions; anything outside them is not available Our team tests it daily and fixes it for you; failed calls are free
Agent use Fixed Zaps, or the two actions through Zapier MCP Your agent picks the tools for each request, also on a schedule
Where it runs Zapier cloud Hosted: Claude Code, Codex, Cursor, n8n and scripts
Price Your Zapier plan, which has a free tier 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 Perfect Venue 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 Perfect Venue in plain text The facts on this page in one block: status, endpoints, access, pricing, contact.

Endpoint health

verified 2h ago

  • list_events passing
  • get_event passing
  • list_payments passing
  • list_messages passing
  • list_email_templates passing

+ 9 more endpoints

14/14 passing latest check self-healing

perfect-venue.txt

Perfect Venue has one public API, the Leads API: a write-only endpoint that creates a lead from your own contact form, and only on the Enterprise plan (checked 11 Oct 2026). Events, payments, messages and proposals cannot be read or changed by API.
Cotlet provides a hosted MCP server and REST API for Perfect Venue: 14 tools (7 read, 7 write).
Access       Request access at https://cotlet.dev/app/signup?app=perfect-venue; we email the API key.

MCP server   https://cotlet.dev/mcp/v1
REST base    https://cotlet.dev/api/v1/perfect-venue
Auth         Authorization: Bearer <COTLET_API_KEY>. Listing endpoints and schemas needs no key; calling an endpoint needs one.
Tools        list_events, get_event, list_payments, list_messages, list_email_templates, list_spaces, get_events_report, create_lead, update_event, set_event_status, send_proposal, send_email, log_offline_payment, refund_payment
Confirm      set_event_status, send_proposal, send_email, log_offline_payment, refund_payment (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/perfect-venue-api-mcp-server.md

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

Automations

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

Yes. Cotlet does not replace your automation platform: it gives it a Perfect Venue 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 on leads that stopped replying, and the schedule runs on its own. Cotlet runs in the cloud, so it keeps going while your computer is off.

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

Pricing & limits

How much does the Perfect Venue API cost?

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

Do I need to be technical?

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

Cotlet keeps your Perfect Venue 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 the Enterprise plan?

No. Cotlet works in your own Perfect Venue account, on any plan, and does not use the Leads API, which Perfect Venue limits to the Enterprise plan. Changing events and sending proposals needs an Admin or Editor role; Viewer and Limited View roles cannot edit anything.

Does changing an event status email the guest?

It can. Perfect Venue sends automated emails by event stage, such as Lead or Confirmed, and each one can be switched on or off in Settings, Email. Confirmed is set by Perfect Venue itself when the guest signs the proposal or pays the deposit. set_event_status asks for your OK by default for this reason.

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

No. Every call to set_event_status, send_proposal, send_email, log_offline_payment or refund_payment waits for your OK by default. For scheduled automations you can switch confirmation off per tool in your dashboard, for example only for approvals. create_lead, update_event runs without asking, because it sends nothing to anyone and one call undoes it.

Can I use the Perfect Venue 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/perfect-venue/{tool} from the HTTP Request node.

Give your agent access to Perfect Venue.

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.