Skiddle API and MCP server Let your AI agent run your Skiddle events.

Send guestlist tickets, refund orders, change tickets and read sales in your Skiddle promoter account. Use it in ChatGPT, Claude or any AI agent over MCP, or in n8n, Make and scripts over REST.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with Skiddle
Skiddle logo Skiddle Cloud Browser

15 tools Read and write

Listing to door

What can you automate in Skiddle? Use an AI agent, a workflow or a script.

  • Send guestlist tickets to artists and staff

  • Refund one ticket for a customer

  • Check ticket sales every morning

  • Close tickets on the night

  • Launch a discount code

  • Copy an event for the next date

No promoter API

Does Skiddle have an MCP server or an API? A public events API, no MCP server.

Skiddle has a public events API, still in beta and for non-commercial use only, but no MCP server and no endpoint for guestlists, refunds or tickets (checked 31 Oct 2026). Cotlet runs 15 Skiddle tools hosted, over MCP for agents and REST for scripts.

  • The API needs a key from a form, and Skiddle says it monitors requests and may rate-limit or block excessive ones. Commercial use needs written approval from api@skiddle.com.
  • Skiddle's GitHub repositories are the events web API wiki (22 stars, last push 4 Mar 2020) and a PHP SDK for listings (2 stars, last push 21 Mar 2024).
  • Zapier and n8n have no Skiddle app (both pages answer 404, 31 Oct 2026). Make answered 403 and was not checked.
Skiddle's public API and Cotlet compared
What you need Skiddle public APICotlet
Search public events Yes Yes, your own events
Read orders and sales reports No Yes
Send guestlist tickets No Yes, after your OK
Refund an order or ticket No Yes, after your OK
Close, reopen or resize a ticket No Yes
Commercial use Written approval first Your own account

Checked 31 Oct 2026. Sources: Skiddle API · Skiddle web API on GitHub · Promotion Centre help: Order Admin

Set up once

How does Cotlet connect to Skiddle? One account, two ways to connect.

  1. 1Sign in to Skiddle

    Use your own account in its Cotlet Cloud Browser.

  2. 2Choose MCP or REST

    Connect your agent or create a Cotlet API key.

  3. 3Run your workflow

    Ask your agent or send an HTTP request.

We never keep your Skiddle password, and no guestlist ticket, refund or receipt goes out until you approve it. Who can see your session

Any MCP client

Connect Skiddle to your agent or workflow

Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.

  1. 1

    Enable Skiddle for agents. Open a free Cotlet account, log in to Skiddle in its Cloud Browser and press Enable for agents.

  2. 2

    Add the Cotlet address. Enter https://cotlet.dev/mcp/v1 as a new MCP server or connector in your agent.

  3. 3

    Sign the connection. Chat apps open a Cotlet sign-in page. Code editors, n8n and scripts use an API key from the console.

Skiddle rides on https://cotlet.dev/mcp/v1 together with the other apps on your account. If you switch Skiddle on after connecting, refresh the connector to load the ticket tools.

Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet-skiddle \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet-skiddle": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet-skiddle]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: skiddle_read
Make, Zapier
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: skiddle_write
Scripts and HTTP

How to use the Skiddle REST API

Create your Cotlet API key

Create a Cotlet API key with access to Skiddle and its read operations. Store it as COTLET_API_KEY in your environment or automation platform's credential store.

Connect Skiddle in Cotlet and enable it for agents. Account access: Your own Promotion Centre promoter account, or a team member invited with the Listings + Tickets and Customer Data permissions.

Make your first Skiddle API request

REST
curl https://cotlet.dev/api/v1/skiddle/events \
  -H "Authorization: Bearer $COTLET_API_KEY"

Read events and apply the operation limits

A successful REST call puts the tool output in result. This illustrative response excerpt omits call IDs, messages and credit details.

Illustrative response excerpt
{
  "status": "success",
  "app": "skiddle",
  "tool": "list_events",
  "result": {
    "events": [
      {
        "event_id": "5821140",
        "name": "Warehouse Sessions",
        "starts_at": "2026-11-14T22:00:00+00:00",
        "status": "live",
        "visibility": "public",
        "tickets_sold": 412
      },
      {
        "event_id": "5821377",
        "name": "Rooftop Social",
        "starts_at": "2026-11-21T19:00:00+00:00",
        "status": "live",
        "visibility": "public",
        "tickets_sold": 198
      }
    ]
  }
}

Lists the events on the Promotion Centre dashboard, soonest first. By default it returns active upcoming events; status switches to past, draft, embargoed, deleted or suspended events.

Each row carries the event_id the other tools take. Use get_event for the full listing.

status: upcoming, past, draft, embargoed, deleted or suspended. Default upcoming.

Keep the same selection when continuing a list. Compare changed record values as well as identifiers when refreshing your destination.

Skiddle workflows for agents and automations

Skiddle workflows you configure
ToolConnect throughExample workflow
n8nHTTP RequestThe tickets of an event with price, allocation and sales state. Use list_tickets in your configured sales report.
MakeHTTP > Make a requestTicket sales for chosen events in a date range. Use get_ticket_sales in your configured sales report.
Python or Node.jsREST APIOrders of one event, found by name, email, postcode or order ID. Use list_orders in your configured sales report.

Send Authorization: Bearer <your Cotlet API key> in request headers. You configure the schedule, destination and record comparisons.

Cotlet reads Skiddle; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.

Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.

The API and MCP reference lists operations and inputs. The REST API guide explains authentication, errors and approvals.

7 read, 8 write

Skiddle API endpoints and MCP tools

Events and tickets7

Active upcoming events by default, other states on request. Price cannot change once a ticket has sold; Skiddle wants a new ticket instead.

  • list_events Your events with date, status and tickets sold. read

    Lists the events on the Promotion Centre dashboard, soonest first. By default it returns active upcoming events; status switches to past, draft, embargoed, deleted or suspended events, the same filter as the dashboard. Each row carries the event_id the other tools take. Use get_event for the full listing.

    MCP callskiddle_read → list_events

    REST endpointGET https://cotlet.dev/api/v1/skiddle/events

    Parameters

    Parameters: list_events
    NameTypeDescription
    status string string upcoming, past, draft, embargoed, deleted or suspended. Default upcoming.
    query string string Full event name or a keyword from it.

    Example response

    {
      "events": [
        {
          "event_id": "5821140",
          "name": "Warehouse Sessions",
          "starts_at": "2026-11-14T22:00:00+00:00",
          "status": "live",
          "visibility": "public",
          "tickets_sold": 412
        },
        {
          "event_id": "5821377",
          "name": "Rooftop Social",
          "starts_at": "2026-11-21T19:00:00+00:00",
          "status": "live",
          "visibility": "public",
          "tickets_sold": 198
        }
      ]
    }
  • get_event One event with venue, visibility and ticket totals. read

    Returns the listing of one event: name, venue, date, public or private visibility, the embargo time if one is set, and totals for tickets sold and on sale. Use list_tickets for the individual tickets.

    MCP callskiddle_read → get_event

    REST endpointGET https://cotlet.dev/api/v1/skiddle/events/{event_id}

    Parameters

    Parameters: get_event
    NameTypeDescription
    event_id string required string Event ID from list_events.

    Example input

    {
      "event_id": "event_8c41d2"
    }

    Example response

    {
      "event_id": "5821140",
      "name": "Warehouse Sessions",
      "venue": "The Foundry, Leeds",
      "starts_at": "2026-11-14T22:00:00+00:00",
      "visibility": "public",
      "embargo_until": null,
      "tickets_sold": 412,
      "tickets_on_sale": 150
    }
  • list_tickets The tickets of an event with price, allocation and sales state. read

    Lists what Manage Tickets > View Tickets shows: each ticket with price, allocation, how many are sold and whether it is on sale or closed. Guestlist tickets are included and marked, because they are hidden from the public listing. Take the ticket_id from here.

    MCP callskiddle_read → list_tickets

    REST endpointGET https://cotlet.dev/api/v1/skiddle/events/{event_id}/tickets

    Parameters

    Parameters: list_tickets
    NameTypeDescription
    event_id string required string Event ID from list_events.

    Example input

    {
      "event_id": "event_8c41d2"
    }

    Example response

    {
      "tickets": [
        {
          "ticket_id": "90113",
          "name": "Early Bird",
          "price": 12,
          "allocation": 150,
          "sold": 150,
          "state": "closed",
          "guestlist": false
        },
        {
          "ticket_id": "90114",
          "name": "General Release",
          "price": 15,
          "allocation": 300,
          "sold": 262,
          "state": "on_sale",
          "guestlist": false
        },
        {
          "ticket_id": "90120",
          "name": "Artist Guestlist",
          "price": 0,
          "allocation": 40,
          "sold": 6,
          "state": "on_sale",
          "guestlist": true
        }
      ]
    }
  • set_ticket_allocation Set how many tickets of a type can be sold. write

    Changes the allocation of one ticket while the event is on sale, the pencil icon in the Allocation column. The new number shows on the event listing at once. It reaches no customer and you can set the old number back, so it does not ask for confirmation by default. Price cannot be changed this way, and Skiddle blocks a price change once a ticket has sold.

    MCP callskiddle_write → set_ticket_allocation

    REST endpointPUT https://cotlet.dev/api/v1/skiddle/tickets/{ticket_id}/allocation

    Parameters

    Parameters: set_ticket_allocation
    NameTypeDescription
    ticket_id string required string Ticket ID from list_tickets.
    allocation integer required integer New number of tickets available in total.

    Example input

    {
      "ticket_id": "ticket_8c41d2",
      "allocation": 1
    }

    Example response

    {
      "ticket_id": "90114",
      "name": "General Release",
      "allocation": 350,
      "sold": 262
    }
  • close_ticket Take a ticket off sale. write

    Closes one ticket, so customers cannot buy it any more, like the Close option under the cog in View Tickets. It sends nothing to anyone and reopen_ticket puts it back on sale, so it does not ask for confirmation by default. Close all tickets before downloading a final customer list, so no late order is missed.

    MCP callskiddle_write → close_ticket

    REST endpointPOST https://cotlet.dev/api/v1/skiddle/tickets/{ticket_id}/close

    Parameters

    Parameters: close_ticket
    NameTypeDescription
    ticket_id string required string Ticket ID from list_tickets.

    Example input

    {
      "ticket_id": "ticket_8c41d2"
    }

    Example response

    {
      "ticket_id": "90114",
      "name": "General Release",
      "state": "closed"
    }
  • reopen_ticket Put a closed ticket back on sale. write

    Reopens a closed ticket, like Reopen under the cog in View Tickets. Skiddle asks when it should stop selling again: by default one hour before the event starts, or at a date and time you give in closes_at. It sends nothing to anyone and close_ticket undoes it, so it does not ask for confirmation by default.

    MCP callskiddle_write → reopen_ticket

    REST endpointPOST https://cotlet.dev/api/v1/skiddle/tickets/{ticket_id}/reopen

    Parameters

    Parameters: reopen_ticket
    NameTypeDescription
    ticket_id string required string Ticket ID from list_tickets.
    closes_at string string When sales stop again, ISO 8601. Default: 1 hour before the event starts.

    Example input

    {
      "ticket_id": "ticket_8c41d2"
    }

    Example response

    {
      "ticket_id": "90114",
      "name": "General Release",
      "state": "on_sale",
      "closes_at": "2026-11-14T21:00:00+00:00"
    }
  • copy_event Create a new event from an existing listing. write

    Does Manage Event > Copy Event: most details of the original are copied, and tickets are not, so add them afterwards. You still change the date, venue, artists and images. visibility is private unless you say public, so the copy does not appear on the Skiddle events guide until you decide. Nothing is sent to anyone, and the copy can be deleted in the app, so it does not ask for confirmation by default.

    MCP callskiddle_write → copy_event

    REST endpointPOST https://cotlet.dev/api/v1/skiddle/events/{event_id}/copy

    Parameters

    Parameters: copy_event
    NameTypeDescription
    event_id string required string Event ID from list_events.
    starts_at string required string Start of the new event, ISO 8601.
    visibility string string private or public. Default private.

    Example input

    {
      "event_id": "event_8c41d2",
      "starts_at": "starts at"
    }

    Example response

    {
      "event_id": "5822004",
      "copied_from": "5821140",
      "name": "Warehouse Sessions",
      "starts_at": "2026-11-28T22:00:00+00:00",
      "visibility": "private",
      "tickets_copied": false
    }

Orders and refunds4

Orders are found by name, email, postcode or order ID, the four keys Order Admin searches by. Refunds are per order or per ticket.

  • list_orders Orders of an event, found by name, email, postcode or order ID. read

    Runs the Order Admin search for one event, which matches customer name, email address, postcode or order ID. Each row shows the buyer, the tickets and the total. The rows carry customer contact details, so use them only for messages about the event, as Skiddle requires.

    MCP callskiddle_read → list_orders

    REST endpointGET https://cotlet.dev/api/v1/skiddle/events/{event_id}/orders

    Parameters

    Parameters: list_orders
    NameTypeDescription
    event_id string required string Event ID from list_events.
    query string string Name, email address, postcode or order ID. An order ID needs its hyphens.

    Example input

    {
      "event_id": "event_8c41d2"
    }

    Example response

    {
      "orders": [
        {
          "order_id": "48213-77120",
          "customer": "Maria Jensen",
          "email": "maria.jensen@example.com",
          "tickets": 2,
          "total": 30,
          "placed_at": "2026-10-22T18:41:00+01:00"
        }
      ]
    }
  • get_order One order with its tickets, customer details and refund state. read

    Opens the order page of Order Admin: order date and time, the customer, each ticket with its cost and whether it was already refunded. Read it before refund_order to pick the right ticket.

    MCP callskiddle_read → get_order

    REST endpointGET https://cotlet.dev/api/v1/skiddle/orders/{order_id}

    Parameters

    Parameters: get_order
    NameTypeDescription
    order_id string required string Order ID from list_orders, with the hyphens as shown in Order Admin.

    Example input

    {
      "order_id": "order_8c41d2"
    }

    Example response

    {
      "order_id": "48213-77120",
      "placed_at": "2026-10-22T18:41:00+01:00",
      "customer": "Maria Jensen",
      "email": "maria.jensen@example.com",
      "tickets": [
        {
          "ticket_id": "90114",
          "name": "General Release",
          "price": 15,
          "refunded": false
        },
        {
          "ticket_id": "90114",
          "name": "General Release",
          "price": 15,
          "refunded": false
        }
      ]
    }
  • refund_order Refund a whole order or one ticket of it. writeasks first

    Refunds through Order Admin, as the Refund options on the order page do. Without ticket_id the whole order is refunded; with it, one ticket. Use it for single customers; cancelling or postponing the whole event has its own procedure in Skiddle and is not a tool. By default you confirm each call; you can switch that off for this tool.

    MCP callskiddle_write → refund_order

    REST endpointPOST https://cotlet.dev/api/v1/skiddle/orders/{order_id}/refund

    Parameters

    Parameters: refund_order
    NameTypeDescription
    order_id string required string Order ID from list_orders, with the hyphens as shown in Order Admin.
    ticket_id string string Refund only this ticket of the order. Default: the whole order.

    Example input

    {
      "order_id": "order_8c41d2"
    }

    Example response

    {
      "order_id": "48213-77120",
      "scope": "ticket",
      "ticket_id": "90114",
      "status": "refunded",
      "amount": 15
    }
  • resend_order_receipt Email the ticket receipt of an order to the customer again. writeasks first

    Uses the Resend ticket receipts action on the order page of Order Admin. The receipt goes to the address on the order. By default you confirm each call; you can switch that off for this tool.

    MCP callskiddle_write → resend_order_receipt

    REST endpointPOST https://cotlet.dev/api/v1/skiddle/orders/{order_id}/receipt/resend

    Parameters

    Parameters: resend_order_receipt
    NameTypeDescription
    order_id string required string Order ID from list_orders, with the hyphens as shown in Order Admin.

    Example input

    {
      "order_id": "order_8c41d2"
    }

    Example response

    {
      "order_id": "48213-77120",
      "sent_to": "maria.jensen@example.com",
      "status": "sent"
    }

Guestlists, codes and sales4

Guestlist tickets are hidden from the public listing. Sales figures are ticket face value without booking fees.

  • add_to_guestlist Issue free guestlist tickets to a guest by email. writeasks first

    Does what Guestlist Manager > Add to Guestlist and Send Tickets does: the guest gets the number of tickets you give, of a guestlist ticket type, by email. Guestlist tickets are hidden from the public listing. The ticket type must exist already; list_tickets shows it with guestlist true. By default you confirm each call; you can switch that off for this tool.

    MCP callskiddle_write → add_to_guestlist

    REST endpointPOST https://cotlet.dev/api/v1/skiddle/events/{event_id}/guestlists

    Parameters

    Parameters: add_to_guestlist
    NameTypeDescription
    event_id string required string Event ID from list_events.
    ticket_id string required string A guestlist ticket ID from list_tickets.
    name string required string Guest name.
    email string required string Address that receives the tickets.
    quantity integer integer Tickets to issue. Default 1.

    Example input

    {
      "event_id": "5821140",
      "ticket_id": "90120",
      "name": "Tom Berg",
      "email": "tom.berg@example.com",
      "quantity": 2
    }

    Example response

    {
      "event_id": "5821140",
      "ticket_id": "90120",
      "name": "Tom Berg",
      "email": "tom.berg@example.com",
      "quantity": 2,
      "status": "sent"
    }
  • create_discount_code Create a promotion with one or more discount codes. write

    Creates a promotion under Manage Tickets > Discount Codes: a percentage or fixed amount, the eligible tickets, a usage limit per code (or unlimited), and either the codes you name or a number to generate. A customer can use one code per order. Nothing is sent to anyone, and the codes can be deactivated in the app, so it does not ask for confirmation by default.

    MCP callskiddle_write → create_discount_code

    REST endpointPOST https://cotlet.dev/api/v1/skiddle/events/{event_id}/discount-codes

    Parameters

    Parameters: create_discount_code
    NameTypeDescription
    event_id string required string Event ID from list_events.
    name string required string Promotion name.
    type string required string percentage or fixed.
    value number required number Percent off, or the amount off in the event currency.
    ticket_ids array array Eligible tickets. Default: all tickets on sale.
    codes array array Codes to create, one per entry. Leave out to use generate.
    generate integer integer Number of codes to generate when codes is empty.
    uses_per_code integer integer Uses per code. Default unlimited.

    Example input

    {
      "event_id": "event_8c41d2",
      "name": "Jane Doe",
      "type": "type",
      "value": 1
    }

    Example response

    {
      "promotion": "Last week 20%",
      "type": "percentage",
      "value": 20,
      "codes": [
        "LASTWEEK20"
      ],
      "uses_per_code": 100,
      "status": "active"
    }
  • list_discount_codes Promotions and their discount codes with usage. read

    Lists the promotions of an event from Manage Tickets > Discount Codes: discount type, eligible tickets and each code with its uses and limit. Usage is counted per order, not per ticket.

    MCP callskiddle_read → list_discount_codes

    REST endpointGET https://cotlet.dev/api/v1/skiddle/events/{event_id}/discount-codes

    Parameters

    Parameters: list_discount_codes
    NameTypeDescription
    event_id string required string Event ID from list_events.

    Example input

    {
      "event_id": "event_8c41d2"
    }

    Example response

    {
      "promotions": [
        {
          "promotion": "Last week 20%",
          "type": "percentage",
          "value": 20,
          "codes": [
            {
              "code": "LASTWEEK20",
              "used": 14,
              "limit": 100
            }
          ]
        }
      ]
    }
  • get_ticket_sales Ticket sales for chosen events within a date range. read

    Returns the Analytics > Ticket Stats > Ticket Sales report. By default it covers future events with sales in the last 14 days; choose events and a range to change that. Values are ticket face value, without booking fees, so they can differ from your Order History.

    MCP callskiddle_read → get_ticket_sales

    REST endpointGET https://cotlet.dev/api/v1/skiddle/ticket-sales

    Parameters

    Parameters: get_ticket_sales
    NameTypeDescription
    event_ids array array Event IDs to include. Default: future events with recent sales.
    from string string Start of the sales period, YYYY-MM-DD.
    to string string End of the sales period, YYYY-MM-DD.

    Example response

    {
      "period": {
        "from": "2026-10-17",
        "to": "2026-10-31"
      },
      "events": [
        {
          "event_id": "5821140",
          "name": "Warehouse Sessions",
          "tickets": 118,
          "face_value": 1647
        },
        {
          "event_id": "5821377",
          "name": "Rooftop Social",
          "tickets": 44,
          "face_value": 528
        }
      ]
    }
Encrypted, revocable

Who can see my Skiddle session, and how do I revoke it?

  • What we store

    Your logged-in Promotion Centre profile, AES-256-GCM encrypted, in Finland. No password.

  • What your agent gets

    The 15 Skiddle tools. Never the cookie or your bank details.

  • What the session sees

    What your login opens: events, orders, buyer names and emails, guestlists.

  • What no tool touches

    Bank details, payouts, finance reports, team members, cancelling or postponing an event.

  • Use a team member if you like

    Skiddle lets you invite users with set permissions. Log in as one with Listings + Tickets and Customer Data for the agent.

  • How to cut access

    Disable for agents, reset the browser or delete the API key.

Qualys SSL Labs, securityheaders.com and Mozilla Observatory grade our site A+ (live results). A SOC 2 report or third-party pentest does not exist yet.

Account risk

Is it against Skiddle's terms? Account safety No bot clause, but you answer for who uses the login.

"The Promoter must keep all account credentials secure and is responsible for all activity carried out through its account by its personnel, agents or any person given access to the account."
Skiddle promoter terms and conditions, clause 5.1, read 31 Oct 2026

The promoter terms never mention robots, bots, scraping or AI agents. Clause 5.1 puts everything done in the account on you, agent included, and clause 17.2 lets Skiddle suspend access when it "reasonably considers that continued use of the Services would create legal, regulatory, financial, operational or reputational risk". Clause 15.3 forbids selling or sharing customer details with unauthorised third parties. The API's non-commercial limit covers the public API, which Cotlet does not use. We found no public case of a promoter closed for automation (checked 31 Oct 2026).

How we keep your account looking like you

  • Your own promoter or team login, typed in by you
  • One Cloud Browser with its own IP and cookies
  • Guestlist tickets, refunds and receipts wait for your OK
  • No tool cancels an event, touches payouts or invites users
  • If Skiddle objects, we pause the Skiddle tools for everyone within 24 h

Customer details are for messages about the event the customer bought. Skiddle bans their use for promoting other events without an opt-in.

Tested every 12 h

What happens when Skiddle changes? We repair the tool; your prompts stay the same.

between tests of the Skiddle event and order reads
12 h
between tests of the guestlist and refund steps
24 h
for a call to a Skiddle tool paused for repair
$0

Skiddle replaced its old promotion centre with a new one (the old login is still listed as "legacy"). When it reworks Order Admin or the guestlist screen, the fix lands on our side. status.cotlet.dev checks the site, console and API every 3 minutes.

3 tools ask first

Approvals, undo and mistakes No ticket or refund goes out until you say so.

  1. 01 Finds the right order Name or email plus the event, so another event of the same buyer stays untouched.
  2. 02 Reads the tickets The order page shows each ticket and what was already refunded.
  3. 03 Waits for your OK Order, ticket and amount show up in your Cotlet console.
  4. 04 Reports what happened Tickets sent, amounts refunded and guests not found.
Which Skiddle actions can be undone
ActionUndo
Guestlist ticketsNo, the email with the tickets is out
Refund an order or ticketNo, the money goes back to the buyer
Resend a receiptNo, but a second copy harms nothing
Close a ticketReopen it, with a new closing time
Reopen a ticketClose it again
Change an allocationSet the old number back
Create discount codesDeactivate them in Discount Codes
Copy an eventEdit or delete the private copy

3 of 8 writes ask first: add_to_guestlist, refund_order, resend_order_receipt. They email a guest or move money. The other 5 change your listing and can be reversed in one step, and the 7 reads run at once. Turn the wait off per tool once a nightly run has earned your trust.

To cancel or postpone a whole event, use Skiddle's own procedure. It refunds every customer, so no tool does it.

MCP call
{
  "name": "add_to_guestlist",
  "arguments": {
    "event_id": "5821140",
    "ticket_id": "90120",
    "name": "Tom Berg",
    "email": "tom.berg@example.com",
    "quantity": 2
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/skiddle/events/5821140/guestlists \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ticket_id":"90120","name":"Tom Berg","email":"tom.berg@example.com","quantity":2}'
Response
{
  "event_id": "5821140",
  "ticket_id": "90120",
  "name": "Tom Berg",
  "email": "tom.berg@example.com",
  "quantity": 2,
  "status": "sent"
}

A cron job or script reaches the same tools over REST at /api/v1/skiddle, with the same key and price. The tools table lists the REST path of each tool.

Pay per call

How much does the Skiddle MCP server cost?

About $15 a monthfor a promoter with 4 events a month, 2,630 credits. Skiddle keeps charging its booking fee as before.

A month of Skiddle jobs for one small promoter, in credits
JobCallsCredits
Guestlist tickets to artists and staff3 × 4120
Refund one ticket for a customer3 × 5150
Morning sales check2 × 30600
Close and reopen tickets on the night3 × 4120
Discount code for a last-week push3 × 260
Copy an event for the next date2 × 480
Cloud Browser, 30 days1,500
Total2,630
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Same price on Essential and Growth

The month is our example: 4 events, 5 single-ticket refunds, 4 guestlist runs and a daily sales check. Skiddle costs the promoter nothing up front; the booking fee is 10% of face value plus 27p, at least £1, and the customer pays it unless you choose to (31 Oct 2026). Dollars at the $29 pack rate.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

Skiddle MCP server on GitHub or hosted: which to use The others search events; none runs your account.

Other Skiddle tools on GitHub and elsewhere, checked 31 Oct 2026
OptionWhat it doesWhere it stops
pipeworx-io/mcp-skiddleSearches public events, reads one event and lists categories, through a hosted gateway.0 stars, last push 29 Oct 2026; listings only, no promoter login.
kami4ka/skiddle-scraperA Python scraper of event listings through a scraping service.0 stars, last push 2 Jan 2026; public pages only.
Your own script on the Skiddle APIEvent search from your own code, with a PHP SDK.Needs a developer and an API key, non-commercial unless Skiddle approves in writing, and no orders or guestlists.

Pick the API if you build a listings site. Pick Cotlet when the agent should do your promoter admin: send the guestlist, refund the customer, close the tickets.

EU company, since 2019

Who runs Cotlet A company you can look up.

Take Group sp. z o.o. builds and runs Cotlet. The company is registered in Poland, EU (VAT PL6342984273), has worked since 2019 and was founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Send questions about the Skiddle tools to contact@cotlet.dev.

Skiddle API and MCP: questions

How do I get access?

Create a free account at https://cotlet.dev, pick Skiddle under Integrations in the console and log in to the Promotion Centre in its Cloud Browser. Your trial starts at once and asks for no card.

How do I connect Skiddle to ChatGPT or Claude?

Sign up at cotlet.dev, log in to Skiddle once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Skiddle account through Cotlet, in their phone apps too.

What can ChatGPT do in Skiddle?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Skiddle: send guestlist tickets to artists and staff; refund a customer who cannot come; check ticket sales every morning. You ask in plain words, and anything that reaches other people waits for your OK first.

Which Skiddle account does my agent need?

A Promotion Centre promoter login. Skiddle lets you invite team members with set permissions; Listings + Tickets covers events and tickets, and Customer Data is needed for order details. Log in as such a team member for the agent. Cotlet does not use the public Skiddle API (checked 31 Oct 2026).

Can my agent use customer details to market my next event?

No. Skiddle allows customer data only for messages about the event the customer bought, and the promoter terms limit direct marketing to opted-in customers. The tools return order details for event admin, such as entry times or a refund.

Does Skiddle have webhooks or Zapier?

No. Zapier and n8n have no Skiddle app (404, 31 Oct 2026). Run the Cotlet tools on a schedule over REST instead of waiting for a trigger.

Which login does it use, the new or the legacy one?

The new Promotion Centre at app.promotioncentre.co.uk. Skiddle lists the old login as legacy, and the help articles the tools follow describe the new screens.

Can the agent cancel or postpone an event?

No. Cancelling triggers face-value refunds for every customer, so you do it yourself in Manage Event. refund_order handles single orders and tickets only.

Is the MCP server different from the REST API?

Only the entrance differs. Both carry the same 15 tools, inputs and answers, one API key and one price. Agents use MCP; scripts and HTTP steps use REST.

Is Cotlet affiliated with Skiddle?

No. Cotlet is independent and not affiliated with Skiddle Ltd.

Can I use the Skiddle API without an AI agent?

Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.

Give your agent access to Skiddle.

Free 7-day trial with 2,000 credits, no card needed.