> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to the Ticket Tailor MCP server

The Ticket Tailor MCP connector routes your AI agent's tool calls to Ticket Tailor's own MCP server through Scalekit. Each user signs in to Ticket Tailor once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 65 tools.

**Authentication:** OAuth 2.1/DCR
**Categories:** Marketing, Calendar
**Tools:** 65: 21 read, 13 write, 31 destructive
**Users sign in with:** OAuth
**OAuth app:** Your own Ticket Tailor MCP server app
**Built by:** Vendor MCP
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=TICKETTAILORMCP)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Ticket Tailor MCP connection

   In **AgentKit > Connections**, create a Ticket Tailor MCP connection and copy its redirect URI. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Register an OAuth app

   Ticket Tailor MCP server connections use your own OAuth app. Register one with Ticket Tailor MCP server and add the redirect URI you copied.

   Then enter the app's Client ID and Client Secret on the Ticket Tailor MCP connection.

5. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'tickettailormcp'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Ticket Tailor MCP:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'tickettailormcp_check_ins_get',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "tickettailormcp"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Ticket Tailor MCP:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="tickettailormcp_check_ins_get",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user signs in once. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'tickettailormcp_check_ins_get',
  toolInput: {},
  connector: 'tickettailormcp',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="tickettailormcp_check_ins_get",
    tool_input={},
    connection_name="tickettailormcp",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `tickettailormcp_check_ins_get`

Get list of check-ins · Read-only

Returns a list of check-ins.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `checked_in_at` (`number`, optional): Unix timestamp that returns items with matched check_in_at value.
- `checked_in_at_gt` (`number`, optional): Unix timestamp that returns items with check_in_at greater than the value.
- `checked_in_at_gte` (`number`, optional): Unix timestamp that returns items with check_in_at greater than or equal to the value.
- `checked_in_at_lt` (`number`, optional): Unix timestamp that returns items with check_in_at less than the value.
- `checked_in_at_lte` (`number`, optional): Unix timestamp that returns items with check_in_at less than or equal to the value.
- `created_at` (`number`, optional): Unix timestamp for created at date
- `created_at_gt` (`number`, optional): Unix timestamp for created at date greater than
- `created_at_gte` (`number`, optional): Unix timestamp for created at date greater than or equal to
- `created_at_lt` (`number`, optional): Unix timestamp for created at date less than
- `created_at_lte` (`number`, optional): Unix timestamp for created at date less than or equal to
- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `event_id` (`string`, optional): The event ID of the check-in. Must have the prefix 'ev_'
- `event_series_id` (`string`, optional): The event series ID of the check-in. Must have the prefix 'es_'
- `issued_ticket_id` (`string`, optional): The issued ticket ID of the check-in. Must have the prefix 'it_'
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').

Example input: `{}`

### `tickettailormcp_checkout_form_elements_get`

Get list of checkout form elements · Read-only

Returns a list of checkout form elements. Pass checkout_form_element_id to get a single checkout form element.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `checkout_form_id` (`string`, required): The unique identifier for the checkout form. Must have the prefix 'cf_'
- `checkout_form_element_id` (`string`, optional): The unique identifier for the checkout form element. Must have the prefix 'cfe_'. Pass it to get that single checkout form element instead of a list; list filters are then ignored.
- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').

Example input: `{"checkout_form_id":"<checkout_form_id>"}`

### `tickettailormcp_checkout_forms_get`

Get list of checkout forms · Read-only

Returns a list of checkout forms.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').

Example input: `{}`

### `tickettailormcp_discounts_get`

Get list of discounts · Read-only

Returns a list of discounts. Pass discount_id to get a single discount.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `code` (`string`, optional): The code of the discount
- `discount_id` (`string`, optional): The unique identifier for the discount. Must have the prefix 'di_'. Pass it to get that single discount instead of a list; list filters are then ignored.
- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').

Example input: `{}`

### `tickettailormcp_event_occurrences_get`

Get list of event occurrences · Read-only

Returns a list of event occurrences. Pass event_occurrence_id to get a single event occurrence.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `event_series_id` (`string`, required): The unique identifier for the event series. Must have the prefix 'es_'
- `end_at` (`number`, optional): Unix timestamp for end at date
- `end_at_gt` (`number`, optional): Unix timestamp for end at date greater than
- `end_at_gte` (`number`, optional): Unix timestamp for end at date greater than or equal to
- `end_at_lt` (`number`, optional): Unix timestamp for end at date less than
- `end_at_lte` (`number`, optional): Unix timestamp for end at date less than or equal to
- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `event_occurrence_id` (`string`, optional): The unique identifier for the event occurrence. Must have the prefix 'ev_'. Pass it to get that single event occurrence instead of a list; list filters are then ignored.
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `override_id` (`string`, optional): The unique identifier for the override. Must have the prefix 'ov_'
- `start_at` (`number`, optional): Unix timestamp for start at date
- `start_at_gt` (`number`, optional): Unix timestamp for start at date greater than
- `start_at_gte` (`number`, optional): Unix timestamp for start at date greater than or equal to
- `start_at_lt` (`number`, optional): Unix timestamp for start at date less than
- `start_at_lte` (`number`, optional): Unix timestamp for start at date less than or equal to
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').

Example input: `{"event_series_id":"<event_series_id>"}`

### `tickettailormcp_event_series_get`

Get list of event series · Read-only

Retrieves a paginated list of event series from your Ticket Tailor account. Event series are collections of related events (like a recurring concert series or festival). Use this to browse, search, and filter your event series by status, name, venue, or creation date. This is a read-only operation that returns metadata about your event series without modifying any data. Pass event_series_id to get a single event series.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `created_at` (`number`, optional): Unix timestamp for created at date
- `created_at_gt` (`number`, optional): Unix timestamp for created at date greater than
- `created_at_gte` (`number`, optional): Unix timestamp for created at date greater than or equal to
- `created_at_lt` (`number`, optional): Unix timestamp for created at date less than
- `created_at_lte` (`number`, optional): Unix timestamp for created at date less than or equal to
- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `event_series_id` (`string`, optional): The unique identifier for the event series. Must have the prefix 'es_'. Pass it to get that single event series instead of a list; list filters are then ignored.
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `name` (`string`, optional): Search for event series by name. Performs a partial text match on the series name
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').
- `status` (`string`, optional): Filter event series by their publication status. 'draft' shows unpublished series, 'published' shows live series accepting orders, 'sales_closed' shows series that are no longer selling tickets. One of: `draft`, `published`, `sales_closed`.
- `venue` (`string`, optional): Filter event series by venue name. Performs a partial text match on the venue field

Example input: `{}`

### `tickettailormcp_events_get`

Get list of events · Read-only

Retrieves a paginated list of individual event occurrences from your Ticket Tailor account. Events are specific instances within an event series (typically either for time slot admission; or else individual instances of multi-day events like 'Saturday' or 'Sunday' festival tickets, or 'Workshop Session A'). Use this to browse, search, and filter your events by status, name, venue, or date range. This is a read-only operation that returns metadata about your events without modifying any data. Pass event_id to get a single event.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `end_at` (`number`, optional): Unix timestamp for end at date
- `end_at_gt` (`number`, optional): Unix timestamp for end at date greater than
- `end_at_gte` (`number`, optional): Unix timestamp for end at date greater than or equal to
- `end_at_lt` (`number`, optional): Unix timestamp for end at date less than
- `end_at_lte` (`number`, optional): Unix timestamp for end at date less than or equal to
- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `event_id` (`string`, optional): The unique identifier for the event. Must have the prefix 'ev_'. Pass it to get that single event instead of a list; list filters are then ignored.
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `name` (`string`, optional): Search for events by name. Performs a partial text match on the event name
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `start_at` (`number`, optional): Unix timestamp for start at date
- `start_at_gt` (`number`, optional): Unix timestamp for start at date greater than
- `start_at_gte` (`number`, optional): Unix timestamp for start at date greater than or equal to
- `start_at_lt` (`number`, optional): Unix timestamp for start at date less than
- `start_at_lte` (`number`, optional): Unix timestamp for start at date less than or equal to
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').
- `status` (`string`, optional): Filter events by their publication status. 'draft' shows unpublished events, 'published' shows live events accepting orders, 'sales_closed' shows events that are no longer selling tickets. One of: `draft`, `published`, `sales_closed`.
- `venue` (`string`, optional): Filter events by venue name. Performs a partial text match on the venue field

Example input: `{}`

### `tickettailormcp_holds_get`

Get list of holds · Read-only

Returns a list of holds. Pass hold_id to get a single hold.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `created_at` (`number`, optional): Unix timestamp for created at date
- `created_at_gt` (`number`, optional): Unix timestamp for created at date greater than
- `created_at_gte` (`number`, optional): Unix timestamp for created at date greater than or equal to
- `created_at_lt` (`number`, optional): Unix timestamp for created at date less than
- `created_at_lte` (`number`, optional): Unix timestamp for created at date less than or equal to
- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `event_id` (`string`, optional): The unique identifier for the event. Must have the prefix 'ev_'
- `hold_id` (`string`, optional): The unique identifier for the hold. Must have the prefix 'ho_'. Pass it to get that single hold instead of a list; list filters are then ignored.
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').
- `updated_at` (`number`, optional): Unix timestamp for updated at date
- `updated_at_gt` (`number`, optional): Unix timestamp for updated at date greater than
- `updated_at_gte` (`number`, optional): Unix timestamp for updated at date greater than or equal to
- `updated_at_lt` (`number`, optional): Unix timestamp for updated at date less than
- `updated_at_lte` (`number`, optional): Unix timestamp for updated at date less than or equal to

Example input: `{}`

### `tickettailormcp_issued_memberships_get`

Get list of issued memberships · Read-only

Returns a paginated list of issued memberships. Pass issued_membership_id to get a single issued membership.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `created_at` (`number`, optional): Unix timestamp for created at date
- `created_at_gt` (`number`, optional): Unix timestamp for created at date greater than
- `created_at_gte` (`number`, optional): Unix timestamp for created at date greater than or equal to
- `created_at_lt` (`number`, optional): Unix timestamp for created at date less than
- `created_at_lte` (`number`, optional): Unix timestamp for created at date less than or equal to
- `email` (`string`, optional): Filter by email (contains)
- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `first_name` (`string`, optional): Filter by first name (contains)
- `issued_membership_code` (`string`, optional): Filter by exact membership code
- `issued_membership_id` (`string`, optional): The unique identifier for the issued membership. Must have the prefix 'im_'. Pass it to get that single issued membership instead of a list; list filters are then ignored.
- `last_name` (`string`, optional): Filter by last name (contains)
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `memberships_status` (`string`, optional): Filter by membership validity status. 'valid' returns only currently valid memberships, 'invalid' returns expired or voided memberships, 'both' returns all. Defaults to 'valid'. One of: `valid`, `invalid`, `both`.
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `order` (`string`, optional): Sort direction when order_by is specified. Defaults to 'asc'. One of: `asc`, `desc`.
- `order_by` (`string`, optional): Order results by member's first_name or last_name. One of: `first_name`, `last_name`.
- `search` (`string`, optional): Search by first name, last name or email (contains)
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').
- `updated_at` (`number`, optional): Unix timestamp for updated at date
- `updated_at_gt` (`number`, optional): Unix timestamp for updated at date greater than
- `updated_at_gte` (`number`, optional): Unix timestamp for updated at date greater than or equal to
- `updated_at_lt` (`number`, optional): Unix timestamp for updated at date less than
- `updated_at_lte` (`number`, optional): Unix timestamp for updated at date less than or equal to

Example input: `{}`

### `tickettailormcp_issued_tickets_get`

Get list of issued tickets · Read-only

Returns a list of issued tickets. Pass issued_ticket_id to get a single issued ticket.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `barcode` (`string`, optional): The barcode of the issued ticket
- `created_at` (`number`, optional): Unix timestamp for created at date
- `created_at_gt` (`number`, optional): Unix timestamp for created at date greater than
- `created_at_gte` (`number`, optional): Unix timestamp for created at date greater than or equal to
- `created_at_lt` (`number`, optional): Unix timestamp for created at date less than
- `created_at_lte` (`number`, optional): Unix timestamp for created at date less than or equal to
- `email` (`string`, optional): The email of the person attending an event
- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `event_id` (`string`, optional): The unique identifier for the event. Must have the prefix 'ev_'
- `event_series_id` (`string`, optional): The unique identifier for the event series. Must have the prefix 'es_'
- `issued_ticket_id` (`string`, optional): The unique identifier for the issued ticket. Must have the prefix 'it_'. Pass it to get that single issued ticket instead of a list; list filters are then ignored.
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `name` (`string`, optional): The name of the person attending an event
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `order_id` (`string`, optional): The unique identifier for the order. Must have the prefix 'or_'
- `reference_id` (`string`, optional): The imported reference of the ticket
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').
- `status` (`string`, optional): The status of the issued ticket. One of: `valid`, `voided`.

Example input: `{}`

### `tickettailormcp_membership_photo_share_get`

Get issued membership photo URL · Read-only

Returns a temporary signed URL for the issued membership photo. The URL has an expiry time after which it will no longer be accessible.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `issued_membership_code` (`string`, required): The unique code of the issued membership

Example input: `{"issued_membership_code":"<issued_membership_code>"}`

### `tickettailormcp_membership_types_get`

Get list of membership types · Read-only

Returns a paginated list of membership types. Pass membership_type_id to get a single membership type.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `membership_type_id` (`string`, optional): The unique identifier for the membership type. Must have the prefix 'mt_'. Pass it to get that single membership type instead of a list; list filters are then ignored.
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').

Example input: `{}`

### `tickettailormcp_orders_get`

Get list of orders · Read-only

Retrieves a paginated list of customer orders from your Ticket Tailor account. Orders represent completed ticket (and/or product) purchases and contain information about the buyer, items purchased, payment status, and order details. Use this to track sales, analyze customer data, and manage order fulfillment. This is a read-only operation that returns order information without modifying any data. Pass order_id to get a single order.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `barcode` (`string`, optional): Search for orders containing a specific ticket barcode. Useful for finding orders associated with a particular ticket
- `created_at` (`number`, optional): Unix timestamp for created at date
- `created_at_gt` (`number`, optional): Unix timestamp for created at date greater than
- `created_at_gte` (`number`, optional): Unix timestamp for created at date greater than or equal to
- `created_at_lt` (`number`, optional): Unix timestamp for created at date less than
- `created_at_lte` (`number`, optional): Unix timestamp for created at date less than or equal to
- `email` (`string`, optional): Search for orders by the buyer's email address. Useful for finding all orders from a specific customer, or identifying repeat purchasers.
- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `event_id` (`string`, optional): Filter orders by a specific event occurrence. Returns only orders for tickets to this particular event. Must have the prefix 'ev_'
- `event_series_id` (`string`, optional): Filter orders by a specific event series. Returns all orders for tickets to any event within this series. Must have the prefix 'es_'
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `name` (`string`, optional): Search for orders by the buyer's full name. Performs a partial text match on the customer name field
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `order_id` (`string`, optional): The unique identifier for the order. Must have the prefix 'or_'. Pass it to get that single order instead of a list; list filters are then ignored.
- `referral_tag` (`string`, optional): Filter orders by the referral tag that tracks where the sale originated
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').
- `status` (`string`, optional): Filter orders by their current status. 'pending' means the order is complete but payment has not been received. One of: `completed`, `pending`, `canceled`.
- `store_id` (`string`, optional): Filter orders by a specific store. Must have the prefix 'st_'
- `txn_id` (`string`, optional): Search for a specific order by its transaction ID. Transaction IDs are unique identifiers for payment processing. These are added automatically to associate the respective transaction if made through Stripe, PayPal, or Square; otherwise they are entered manually.

Example input: `{}`

### `tickettailormcp_overrides_get`

Get list of overrides · Read-only

Returns a list of overrides.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `event_series_id` (`string`, required): The unique identifier for the event series. Must have the prefix 'es_'
- `created_at` (`number`, optional): Unix timestamp for created at date
- `created_at_gt` (`number`, optional): Unix timestamp for created at date greater than
- `created_at_gte` (`number`, optional): Unix timestamp for created at date greater than or equal to
- `created_at_lt` (`number`, optional): Unix timestamp for created at date less than
- `created_at_lte` (`number`, optional): Unix timestamp for created at date less than or equal to
- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `reference_id` (`string`, optional): A string representing the referenced ticket typ or ticket group
- `reference_type` (`string`, optional): A string representing the reference type, either ticket or ticket_group or bundle. One of: `ticket_type`, `ticket_group`, `bundle`.
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').
- `status` (`string`, optional): A string representing override status. One of: `on_sale`, `sold_out`, `unavailable`, `hidden`, `admin_only`, `locked`.

Example input: `{"event_series_id":"<event_series_id>"}`

### `tickettailormcp_overview_get`

Get account overview · Read-only

Retrieve a comprehensive overview of your Ticket Tailor box office account, including key metrics, account information, and summary statistics. This provides a high-level dashboard view with data about your events, sales, and account status. Useful for getting a quick snapshot of your business performance and account health. This is a read-only operation that returns account summary information without modifying any data.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `tickettailormcp_ping_get`

Ping server · Read-only

Tests connectivity to the Ticket Tailor API server and retrieves version information. This is a lightweight health check that verifies your API credentials are valid and the service is responding. Useful for troubleshooting connection issues, validating API access, or checking service status. Returns server version details and confirms your authentication is working properly.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `tickettailormcp_products_get`

Get list of products · Read-only

Returns a list of products. Pass product_id to get a single product.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `created_at` (`number`, optional): Unix timestamp for created at date
- `created_at_gt` (`number`, optional): Unix timestamp for created at date greater than
- `created_at_gte` (`number`, optional): Unix timestamp for created at date greater than or equal to
- `created_at_lt` (`number`, optional): Unix timestamp for created at date less than
- `created_at_lte` (`number`, optional): Unix timestamp for created at date less than or equal to
- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `event_series_id` (`string`, optional): The unique identifier for the event series. Must have the prefix 'es_'
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `product_id` (`string`, optional): The unique identifier for the product. Must have the prefix 'pr_'. Pass it to get that single product instead of a list; list filters are then ignored.
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').
- `status` (`string`, optional): The status of the product. One of: `on_sale`, `hidden`, `sold_out`.
- `updated_at` (`number`, optional): Unix timestamp for updated at date
- `updated_at_gt` (`number`, optional): Unix timestamp for updated at date greater than
- `updated_at_gte` (`number`, optional): Unix timestamp for updated at date greater than or equal to
- `updated_at_lt` (`number`, optional): Unix timestamp for updated at date less than
- `updated_at_lte` (`number`, optional): Unix timestamp for updated at date less than or equal to

Example input: `{}`

### `tickettailormcp_store_list`

List stores · Read-only

Retrieves a list of all stores associated with the provided API key. This tool is useful for managing multiple stores within your Ticket Tailor account. It returns a list of store IDs, names, and other relevant details for each store. This is a read-only operation that does not modify any data. Pass storeId to get a single store.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `storeId` (`string`, optional): The ID (prefixed with 'st_') of the store to get. Pass it to get that single store instead of a list.

Example input: `{}`

### `tickettailormcp_voucher_codes_get`

Get list of voucher codes · Read-only

Returns a list of voucher codes.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `voucher_id` (`string`, required): The unique identifier for the voucher. Must have the prefix 'vo_'
- `created_at` (`number`, optional): Unix timestamp for created at date
- `created_at_gt` (`number`, optional): Unix timestamp for created at date greater than
- `created_at_gte` (`number`, optional): Unix timestamp for created at date greater than or equal to
- `created_at_lt` (`number`, optional): Unix timestamp for created at date less than
- `created_at_lte` (`number`, optional): Unix timestamp for created at date less than or equal to
- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `expiry_at` (`number`, optional): Unix timestamp for expiry at date
- `expiry_at_gt` (`number`, optional): Unix timestamp for expiry at date greater than
- `expiry_at_gte` (`number`, optional): Unix timestamp for expiry at date greater than or equal to
- `expiry_at_lt` (`number`, optional): Unix timestamp for expiry at date less than
- `expiry_at_lte` (`number`, optional): Unix timestamp for expiry at date less than or equal to
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').

Example input: `{"voucher_id":"<voucher_id>"}`

### `tickettailormcp_vouchers_get`

Get list of vouchers · Read-only

Returns a list of vouchers. Pass voucher_id to get a single voucher.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `created_at` (`number`, optional): Unix timestamp for created at date
- `created_at_gt` (`number`, optional): Unix timestamp for created at date greater than
- `created_at_gte` (`number`, optional): Unix timestamp for created at date greater than or equal to
- `created_at_lt` (`number`, optional): Unix timestamp for created at date less than
- `created_at_lte` (`number`, optional): Unix timestamp for created at date less than or equal to
- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `expiry_at` (`number`, optional): Unix timestamp for expiry at date
- `expiry_at_gt` (`number`, optional): Unix timestamp for expiry at date greater than
- `expiry_at_gte` (`number`, optional): Unix timestamp for expiry at date greater than or equal to
- `expiry_at_lt` (`number`, optional): Unix timestamp for expiry at date less than
- `expiry_at_lte` (`number`, optional): Unix timestamp for expiry at date less than or equal to
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').
- `voucher_id` (`string`, optional): The unique identifier for the voucher. Must have the prefix 'vo_'. Pass it to get that single voucher instead of a list; list filters are then ignored.

Example input: `{}`

### `tickettailormcp_waitlist_signups_get`

Get list of waitlist signups · Read-only

Returns a list of waitlist signups.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `event_series_id` (`string`, required): The unique identifier for the event series. Must have the prefix 'es_'
- `created_at` (`number`, optional): Unix timestamp for created at date
- `created_at_gt` (`number`, optional): Unix timestamp for created at date greater than
- `created_at_gte` (`number`, optional): Unix timestamp for created at date greater than or equal to
- `created_at_lt` (`number`, optional): Unix timestamp for created at date less than
- `created_at_lte` (`number`, optional): Unix timestamp for created at date less than or equal to
- `email` (`string`, optional): Used for filtering waitlist signups by email
- `ending_before` (`string`, optional): Return items before this ID, i.e. older ones. Pass the ID with its prefix (e.g. 'or_123'). Takes precedence over starting_after.
- `event_ids` (`string`, optional): Used for filtering waitlist signups by events they belong to. Event id must have the prefix 'ev_'
- `is_notified` (`boolean`, optional): Used for filtering notified waitlist signups
- `limit` (`number`, optional): The maximum number of items to return. Maximum: 100
- `newest_first` (`boolean`, optional): Return the most recent items first. Items are returned oldest first by default. For the next page of older items, keep newest_first and pass the ID of the last item as ending_before.
- `starting_after` (`string`, optional): Return items after this ID, i.e. newer ones. Pass the ID of the last item on the previous page, with its prefix (e.g. 'or_123').

Example input: `{"event_series_id":"<event_series_id>"}`

### `tickettailormcp_bundle_create`

Create event series bundle · Write

Creates a new bundle in event series.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `description` (`string`, required): Description of the bundle
- `event_series_id` (`string`, required): The unique identifier for the event series. Must have the prefix 'es_'
- `name` (`string`, required): Name of the bundle
- `price` (`integer`, required): Price of the bundle in cents
- `ticket_types` (`array`, required): List of ticket type IDs included in the bundle. Ticket type id must have the prefix 'tt_'
- `access_code` (`string`, optional): Code to access a protected bundle
- `booking_fee` (`integer`, optional): Booking fee which is charged per bundle to the customer and the funds are paid to you. We would recommend charging no more than 10% of the bundle price.
- `product_ids` (`array`, optional): List of product IDs included in the bundle. Product id must have the prefix 'pr_'
- `status` (`string`, optional): Bundle status. One of: `ADMIN_ONLY`, `HIDDEN`, `LOCKED`, `SOLD_OUT`, `ON_SALE`, `UNAVAILABLE`.

Example input: `{"description":"<description>","event_series_id":"<event_series_id>","name":"Early Bird Discount","price":1000,"ticket_types":[]}`

### `tickettailormcp_check_in_create`

Create check-in · Write

Creates a check-in or check-out record for an issued ticket. Check-ins track when attendees arrive at or leave an event. This is essential for event management, attendance tracking, and security. You can check in attendees at the door, track early departures, or manage re-entry. The system prevents duplicate check-ins unless explicitly allowed. These records stack up, so the current check-in state of an issued ticket is the sum of its corresponding records.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `issued_ticket_id` (`string`, required): The unique identifier of the issued ticket to check in or check out. This is the ticket that will be marked as attended or left. Must have the prefix 'it_'
- `quantity` (`number`, required): The check-in action: 1 for check-in (attendee arriving), -1 for check-out (attendee leaving). Use 1 to mark attendance, -1 to record early departure or re-entry
- `check_in_at` (`integer`, optional): Unix timestamp (in seconds) when the check-in occurred. If not provided, the current time will be used. Useful for backdating check-ins or bulk imports
- `local_unique_id` (`string`, optional): A unique identifier to prevent duplicate check-ins when retrying failed operations. If not provided, Ticket Tailor will generate one automatically. Essential for reliable check-in systems

Example input: `{"issued_ticket_id":"<issued_ticket_id>","quantity":1}`

### `tickettailormcp_discount_create`

Create discount code · Write

Creates a discount code that customers can use during checkout to receive reduced pricing. Discount codes are powerful marketing tools that can increase sales, reward loyal customers, or fill seats. You can create percentage-based or fixed-amount discounts, set usage limits, and restrict them to specific ticket types or products. The discount code will be immediately available for customers to use.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `code` (`string`, required): The actual discount code that customers will enter at checkout (e.g., 'EARLYBIRD', 'STUDENT20', 'HOLIDAY50'). Should be memorable and easy to type and preferably unique
- `name` (`string`, required): A descriptive name for the discount code (e.g., 'Early Bird Discount', 'Student Discount', 'Holiday Special'). This is for internal reference and appears in your admin dashboard
- `type` (`string`, required): The type of discount: 'fixed_amount' reduces the item price by a specific amount, 'percentage' reduces the price by a percentage of the original cost. One of: `fixed_amount`, `percentage`.
- `booking_fee` (`integer`, optional): Fixed amount to reduce the booking fee by, in cents (e.g., 500 = $5.00 off booking fee). Can be used with either discount type
- `booking_fee_percent` (`integer`, optional): Percentage to reduce the booking fee by (e.g., 50 = 50% off booking fee). Can be used with either discount type
- `expires` (`integer`, optional): Unix timestamp (in seconds) when the discount code expires. After this date, the code will no longer be valid. Leave empty for no expiration
- `max_redemptions` (`integer`, optional): Maximum number of times this discount code can be used across all customers. Once reached, the code becomes invalid. Leave empty for unlimited usage
- `max_tickets` (`integer`, optional): Maximum number of tickets in a single order that can use this discount code. Prevents abuse of bulk discounts
- `min_tickets` (`integer`, optional): Minimum number of tickets that must be purchased in a single order to use this discount code. Useful for encouraging larger purchases
- `price` (`integer`, optional): For fixed_amount discounts, the amount to subtract from the item price in cents (e.g., 1000 = $10.00 off). Required when type is 'fixed_amount'
- `price_percent` (`integer`, optional): For percentage discounts, the percentage to reduce the item price by (e.g., 20 = 20% off). Required when type is 'percentage'
- `products` (`array`, optional): Array of product IDs where this discount can be applied. If empty, the discount applies to all products. Product id must have the prefix 'pr_'
- `ticket_types` (`array`, optional): Array of ticket type IDs where this discount can be applied. If empty, the discount applies to all ticket types. Ticket type id must have the prefix 'tt_'

Example input: `{"code":"EARLYBIRD","name":"Early Bird Discount","type":"fixed_amount"}`

### `tickettailormcp_event_management`

Create event series · Write

                <usecases>
                    Create multiple events with single tool call.
                    Create one or more event series.
                    Create one or more event occurrences for one or more new event series.
                    Create one or more event occurrences for one or more existing event series.
                    Create one or more ticket types for one or more new event series.
                    Create one or more ticket types for one or more existing event series.
                    Create one or more ticket groups for one or more new event series.
                    Create one or more ticket groups for one or more existing event series.
                </usecases>
                <instructions>
                    Pass event series related data in eventSeries array to create event series.
                    Pass event occurrences related data in eventOccurrences array to create event occurrences.
                    Pass ticket types related data in ticketTypes array to create ticket types.
                    Pass ticket groups related data in ticketGroups array to create ticket groups.
                    When creating multiple event series with multiple event occurrences and/or multiple ticket types and or multiple ticket groups, use a placeholder for event_series_id in eventOccurrences and ticketTypes and ticketGroups arrays. Placeholder must have a structure of es_placeholder1, es_placeholder2, etc. where the number is the index of the previously created event series.
                    When creating ticket groups and referencing a ticket type that is to be created in the same call, use a placeholder for ticket_type_ids in ticketGroups array. Placeholder must have a structure of tt_placeholder1, tt_placeholder2, etc. where the number is the index of the previously created ticket type.
                    When creating event occurrences or ticket types or ticket groups for an existing event series, use the id of the event series in the event_series_id field.
                    Try to find existing event series first before creating a new one (by name or venue), unless user is explicitly asking to create a new event series.
                    Do not use this tool to update or delete event series, event occurrences or ticket types or ticket groups. Use separate tools for that.
                </instructions>
                <validations>
                    Event occurrence end datetime must be after start datetime.
                    Ticket group can not contain bundle_ids when ticket group has max_quantity, max_per_order or min_per_order populated.
                </validations>

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `eventOccurrences` (`array`, required): Array of event occurrence objects (dates and times) to create for the series.
- `eventSeries` (`array`, required): Array of event series objects to create (one entry per series).
- `ticketGroups` (`array`, required): Array of ticket group objects to create for the series.
- `ticketTypes` (`array`, required): Array of ticket type objects to create for the series.

Example input: `{"eventOccurrences":[],"eventSeries":[],"ticketGroups":[],"ticketTypes":[]}`

### `tickettailormcp_event_series_duplicate`

Duplicate event series · Write

                <usecases>
                    Copy an existing event series one or more times, the same as Duplicate in the dashboard.
                    Bulk create events (e.g. a tour across many venues) from one event series the user has set up as a template.
                </usecases>
                <instructions>
                    Each copy keeps the source's images, description, venue, ticket types, ticket groups, bundles, checkout questions and settings. This is the only way to give new event series an image through this server.
                    Event occurrences (dates) are not copied. Each copy starts in DRAFT status with the same name as the source.
                    After duplicating: use event_series_update to change each copy's name, venue or postal code; use event_management with the copy's event_series_id to add event occurrences; then use event_series_status_change to publish.
                    Find the source event series first (by name or venue) and confirm it with the user before making many copies.
                </instructions>

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `event_series_id` (`string`, required): The unique identifier of the event series to copy. Must have the prefix 'es_'
- `copies` (`integer`, optional): How many copies to make. Defaults to 1. Maximum 50 per call

Example input: `{"event_series_id":"<event_series_id>"}`

### `tickettailormcp_hold_create`

Create hold · Write

Creates a new hold.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `event_id` (`string`, required): The ID of the associated event for which to create the hold. Must have the prefix 'ev_'
- `note` (`string`, required): A string that gives more information about the created hold
- `ticket_type_id` (`array`, required): List of ticket types and their quantities

Example input: `{"event_id":"<event_id>","note":"<note>","ticket_type_id":[]}`

### `tickettailormcp_issued_membership_create`

Create issued membership · Write

Creates a new issued membership for a membership type. An issued membership represents an actual membership given to a person.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `email` (`string`, required): Email address of the member
- `first_name` (`string`, required): First name of the member
- `last_name` (`string`, required): Last name of the member
- `membership_type_id` (`string`, required): The ID of the membership type. Must have the prefix 'mt_'
- `max_redemptions` (`string`, optional): Maximum number of times the issued membership can be redeemed. If not provided, the membership type's default is used. Provide empty string to set unlimited redemptions
- `valid_from_date` (`integer`, optional): Unix timestamp (UTC) for when the issued membership becomes valid. Required if valid_from_type is 'fixed'. When not provided, the membership type's default is used
- `valid_from_type` (`string`, optional): Type of valid from date. 'fixed' uses valid_from_date, 'relative' uses the date of issue. When not provided, the membership type's default is used. One of: `fixed`, `relative`.
- `valid_to_date` (`integer`, optional): Unix timestamp (UTC) for when the membership expires. Required if valid_to_type is 'fixed'. When not provided, the membership type's default is used
- `valid_to_interval_days` (`integer`, optional): Number of days the membership is valid for from the issue date. Used when valid_to_type is 'relative'. Must be between 1 and 365. When not provided, the membership type's default is used
- `valid_to_type` (`string`, optional): Type of valid to date. 'fixed' uses valid_to_date, 'relative' uses valid_to_interval_days from issue date. When not provided, the membership type's default is used. One of: `fixed`, `relative`.

Example input: `{"email":"<email>","first_name":"<first_name>","last_name":"<last_name>","membership_type_id":"<membership_type_id>"}`

### `tickettailormcp_issued_membership_redemption_create`

Create issued membership redemption · Write

Creates a redemption for an issued membership at a specific event. This records that the issued membership was used for entry to the event.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `code` (`string`, required): The issued membership code to redeem (e.g., 'MMABC123')
- `event_id` (`string`, required): The unique identifier for the event. Must have the prefix 'ev_'

Example input: `{"code":"MMABC123","event_id":"<event_id>"}`

### `tickettailormcp_issued_ticket_create`

Create issued ticket · Write

Creates a new issued ticket for an event occurrence from available inventory. Issued tickets represent actual tickets that have been allocated to a specific person and can be used for entry. This tool can create tickets from either existing ticket type inventory or from a hold (reserved tickets). The created ticket will be immediately available for check-in and will be included in ticket counts. Ticket Tailor fees apply to issued tickets created via the Ticket Tailor API, irrespective of whether those tickets are free or paid-for.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `full_name` (`string`, required): The full name of the person who will attend the event. This name appears on the ticket and is used for check-in verification. Should match the attendee's identification
- `barcode` (`string`, optional): A custom barcode for the ticket. If not provided, Ticket Tailor will generate a unique barcode automatically. Useful for integrating with external systems. This barcode is rendered as a QR code and 1D barcode on the ticket.
- `email` (`string`, optional): The email address of the ticket holder. If provided and send_email is true, Ticket Tailor will attempt to automatically send the ticket and event information to this email. The following conditions must be met for the email to be dispatched: (1) a valid email must be provided in the request payload; (2) the box office must be configured to use separate event confirmation emails and order confirmation emails; (3) the event series to which the event belongs must be approved by Ticket Tailor staff.
- `event_id` (`string`, optional): The unique identifier of the specific event occurrence. Required when creating tickets from ticket type inventory. Use this to specify which event the ticket is for. Must have the prefix 'ev_'
- `hold_id` (`string`, optional): The unique identifier of a hold (reserved tickets). Required when creating tickets from a hold. The ticket will be created from the reserved inventory in this hold. Hold id must have the prefix 'ho_'
- `reference` (`string`, optional): An external reference number or identifier for this ticket. Useful for linking tickets to orders in external systems or for internal tracking purposes
- `send_email` (`boolean`, optional): When set to true, Ticket Tailor will attempt to automatically send an email to the attendee containing their ticket and event details. The following conditions must be met for the email to be dispatched: (1) a valid email must be provided in the request payload; (2) the box office must be configured to use separate event confirmation emails and order confirmation emails; (3) the event series to which the event belongs must be approved by Ticket Tailor staff.
- `ticket_type_id` (`string`, optional): The unique identifier of the ticket type to create the ticket from. Required when creating from ticket type inventory. Determines the ticket category and pricing. Ticket type id must have the prefix 'tt_'

Example input: `{"full_name":"<full_name>"}`

### `tickettailormcp_membership_type_create`

Create membership type · Write

Creates a new membership type. Membership types define the configuration for issued memberships including validity periods, redemption limits, and whether photos are required.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Name of the membership type (e.g., 'Annual Pass', 'Monthly Subscription')
- `valid_from_type` (`string`, required): Type of valid from date. 'fixed' uses valid_from_date for all issued memberships, 'relative' uses the date of issue. One of: `fixed`, `relative`.
- `valid_to_type` (`string`, required): Type of valid to date. 'fixed' uses valid_to_date, 'relative' uses valid_to_interval_days from issue date. One of: `fixed`, `relative`.
- `conditions_and_benefits` (`array`, optional): Array of conditions and benefits for this membership type (e.g., ['Free entry to all events', '10% discount on merchandise'])
- `max_redemptions` (`string`, optional): Maximum number of times memberships of this type can be redeemed. If not provided, redemptions are unlimited
- `photo_required` (`string`, optional): Whether a photo is required when issuing memberships of this type. One of: `true`, `false`.
- `valid_from_date` (`integer`, optional): Unix timestamp (UTC) for when memberships of this type become valid. Required if valid_from_type is 'fixed'
- `valid_to_date` (`integer`, optional): Unix timestamp (UTC) for when memberships of this type expire. Required if valid_to_type is 'fixed'
- `valid_to_interval_days` (`integer`, optional): Number of days the membership is valid for from the issue date. Required if valid_to_type is 'relative'. Must be between 1 and 365

Example input: `{"name":"Annual Pass","valid_from_type":"fixed","valid_to_type":"fixed"}`

### `tickettailormcp_override_create`

Create event series override · Write

Creates a new override for event series.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `event_series_id` (`string`, required): The unique identifier for the event series. Must have the prefix 'es_'
- `name` (`string`, required): Name of the override
- `override_lines` (`array`, required): An array of associated ticket types (prefix id with 'tt_'), ticket groups (prefix id with 'tg_') or bundles (prefix id with 'bu_').
- `max_sellable_tickets` (`integer`, optional): Maximum number of sellable tickets

Example input: `{"event_series_id":"<event_series_id>","name":"Early Bird Discount","override_lines":[]}`

### `tickettailormcp_product_create`

Create product · Write

Creates a new product that can be sold alongside tickets. Products are additional items like merchandise, parking passes, meal vouchers, or special add-ons that customers can purchase during the ticket buying process. Products can be linked to specific event series or made available across all events, or sold via a standalone store (not yet available through the API). They can have their own pricing, inventory limits, and delivery instructions.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): The name of the product that customers will see (e.g., 'Event T-Shirt', 'Parking Pass', 'VIP Dinner Package', 'Program Book'). Should be clear and descriptive
- `price` (`integer`, required): The price of the product in cents (e.g., 1500 = $15.00). This is the base price before any booking fees are applied
- `booking_fee` (`integer`, optional): Additional fee charged per product, in cents (e.g., 200 = $2.00). This fee is paid to you and helps cover processing costs. Recommended to keep under 10% of product price
- `currency` (`string`, optional): The currency for this product's pricing. If not specified, defaults to your box office currency. Useful for international events with multiple currencies. One of: `gbp`, `usd`, `eur`, `aud`, `brl`, `cad`, `czk`, `dkk`, `hkd`, `huf`, `ils`, `myr`, `mxn`, `nok`, `nzd`, `php`, `pln`, `sgd`, `rub`, `sek`, `chf`, `thb`, `try`, `aed`, `all`, `amd`, `ang`, `awg`, `azn`, `bam`, `bbd`, `bdt`, `bgn`, `bmd`, `bnd`, `bsd`, `bwp`, `bzd`, `cdf`, `cny`, `dop`, `dzd`, `egp`, `etb`, `fjd`, `gel`, `gip`, `gmd`, `gyd`, `htg`, `idr`, `inr`, `jmd`, `kes`, `kgs`, `khr`, `kyd`, `kzt`, `lbp`, `lkr`, `lrd`, `lsl`, `mad`, `mdl`, `mkd`, `mmk`, `mnt`, `mop`, `mvr`, `mwk`, `mzn`, `nad`, `ngn`, `npr`, `pgk`, `pkr`, `qar`, `ron`, `rsd`, `sar`, `sbd`, `scr`, `sle`, `sos`, `szl`, `tjs`, `top`, `ttd`, `tzs`, `uah`, `uzs`, `wst`, `xcd`, `yer`, `zar`, `zmw`.
- `description` (`string`, optional): Detailed description of the product including features, specifications, or what's included. Helps customers understand what they're purchasing
- `event_series_ids` (`array`, optional): Array of event series IDs where this product will be available for purchase. If empty and linked_to_all_event_series is false, product won't be available anywhere unless you have set the product to be sold via a standalone store (not yet available through the API). Event series id must have the prefix 'es_'
- `instructions` (`string`, optional): Instructions for customers on how to collect or use the product (e.g., 'Collect at venue entrance', 'Email will be sent with download link', 'Present voucher at restaurant')
- `issue_ticket_voucher` (`boolean`, optional): When true, a QR code voucher will be generated for this product that customers can present for redemption. Useful for digital products or items requiring verification. Mutually exclusive with voucher_id and membership_type_id.
- `linked_to_all_event_series` (`boolean`, optional): When true, this product will be available for purchase at all event series. Overrides event_series_ids restrictions
- `membership_type_id` (`string`, optional): The ID of a membership type to associate with the product. Must start with 'mt_' prefix. Mutually exclusive with issue_ticket_voucher and voucher_id.
- `quantity` (`integer`, optional): Total quantity of this product available for sale across all events. Once sold out, no more can be purchased. Leave empty for unlimited inventory
- `quantity_per_event` (`integer`, optional): Maximum quantity of this product that can be purchased per individual event. Useful for limiting per-event availability
- `status` (`string`, optional): Current status of the product. 'ON_SALE' = available for purchase, 'SOLD_OUT' = no inventory, 'HIDDEN' = not visible to customers. One of: `ON_SALE`, `SOLD_OUT`, `HIDDEN`.
- `voucher_id` (`string`, optional): The ID of a voucher of type gift card to associate with the product. Must start with 'vo_' prefix. Mutually exclusive with issue_ticket_voucher and membership_type_id.

Example input: `{"name":"Event T-Shirt","price":1500}`

### `tickettailormcp_voucher_create`

Create voucher · Write

Creates a new voucher system with associated voucher codes. Vouchers are flexible promotional tools that can be used as either promotional codes (for marketing campaigns), or gift vouchers (for customer gifting), or as credit in lieu of a payment refund. Promotional vouchers have predefined codes, while gift vouchers and credit vouchers generate unique codes when issued. Vouchers can be restricted to specific event series and have configurable expiration dates and redemption rules.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `expiry` (`integer`, required): Unix timestamp (in seconds) when all vouchers in this system expire. After this date, no vouchers can be redeemed. Set far in the future for long-term campaigns
- `name` (`string`, required): A descriptive name for the voucher system (e.g., 'Summer Sale Vouchers', 'Gift Cards', 'Loyalty Rewards'). This appears in your admin dashboard for easy identification
- `value` (`integer`, required): The monetary value of each voucher in cents (e.g., 1000 = $10.00). This is the amount that will be deducted from the order total when the voucher is redeemed
- `codes` (`array`, optional): For PROMO type vouchers, provide an array of specific voucher codes (e.g., ['SUMMER20', 'WELCOME10']). These codes will be available for customers to use. Leave empty for gift vouchers and credit vouchers which generate unique codes automatically
- `event_series_ids` (`array`, optional): Array of event series IDs where these vouchers can be used. If empty, vouchers can be used on any event series. Useful for targeted promotions. Event series id must have the prefix 'es_'
- `interval` (`string`, optional): For GIFT_CARD type vouchers, the number of days from issue date when the gift card expires. 30 = 1 month, 90 = 3 months, 365 = 1 year. One of: `30`, `90`, `365`.
- `partial_redemption` (`boolean`, optional): When true, customers can use a voucher multiple times until its full value is consumed. When false, the voucher must be used in a single transaction and any unused balance will be lost
- `voucher_type` (`string`, optional): The type of voucher system: 'PROMO' for marketing campaigns with predefined codes, 'GIFT_CARD' for gift vouchers or credit vouchers with unique generated codes. Defaults to 'PROMO' if not specified. One of: `PROMO`, `GIFT_CARD`.

Example input: `{"expiry":1,"name":"Summer Sale Vouchers","value":1000}`

### `tickettailormcp_bundle_delete`

Delete bundle · Destructive

Delete a bundle. This action is irreversible. The bundle will be permanently removed.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `bundle_id` (`string`, required): The unique identifier for the bundle to delete. Must have the prefix 'bu_'
- `event_series_id` (`string`, required): The unique identifier for the event series. Must have the prefix 'es_'

Example input: `{"bundle_id":"<bundle_id>","event_series_id":"<event_series_id>"}`

### `tickettailormcp_bundle_update`

Update an existing event series bundle · Destructive

Updates an existing bundle in event series.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `bundle_id` (`string`, required): The unique identifier for the bundle to update. Must have the prefix 'bu_'
- `event_series_id` (`string`, required): The unique identifier for the event series. Must have the prefix 'es_'
- `access_code` (`string`, optional): Code to access a protected bundle
- `booking_fee` (`integer`, optional): Booking fee which is charged per bundle to the customer and the funds are paid to you. We would recommend charging no more than 10% of the bundle price.
- `description` (`string`, optional): Description of the bundle
- `name` (`string`, optional): Name of the bundle
- `price` (`integer`, optional): Price of the bundle in cents
- `product_ids` (`array`, optional): List of product IDs included in the bundle. Product id must have the prefix 'pr_'
- `status` (`string`, optional): Bundle status. One of: `ADMIN_ONLY`, `HIDDEN`, `LOCKED`, `SOLD_OUT`, `ON_SALE`, `UNAVAILABLE`.
- `ticket_types` (`array`, optional): List of ticket type IDs included in the bundle. Ticket type id must have the prefix 'tt_'

Example input: `{"bundle_id":"<bundle_id>","event_series_id":"<event_series_id>"}`

### `tickettailormcp_checkout_form_element_update`

Update checkout form element · Destructive

Updates an existing checkout form element.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `checkout_form_element_id` (`string`, required): The unique identifier for the checkout form element. Must have the prefix 'cfe_'
- `checkout_form_id` (`string`, required): The unique identifier for the checkout form. Must have the prefix 'cf_'
- `options` (`array`, optional): The list of answers for the checkout form element
- `per_ticket` (`boolean`, optional): Whether the checkout form element is asked globally or per ticket
- `question` (`string`, optional): The question for the checkout form element
- `required` (`boolean`, optional): Whether the checkout form element is required to answer
- `type` (`string`, optional): The type of the checkout form element. One of: `multiCheckbox`, `radio`, `select`.

Example input: `{"checkout_form_element_id":"<checkout_form_element_id>","checkout_form_id":"<checkout_form_id>"}`

### `tickettailormcp_discount_delete`

Delete discount · Destructive

Delete a discount. This action is irreversible. The discount will be permanently removed.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `discount_id` (`string`, required): The unique identifier for the existing discount to delete. Must have the prefix 'di_'

Example input: `{"discount_id":"<discount_id>"}`

### `tickettailormcp_discount_update`

Update discount · Destructive

Updates an existing discount.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `discount_id` (`string`, required): The unique identifier for the existing discount. Must have the prefix 'di_'
- `booking_fee` (`integer`, optional): Booking fee amount in cents
- `booking_fee_percent` (`integer`, optional): Percent of the booking fee
- `code` (`string`, optional): Discount code
- `expires` (`integer`, optional): Discount code's expiry date as Unix timestamp
- `max_redemptions` (`integer`, optional): The maximum number of times this discount can be used
- `name` (`string`, optional): A descriptive name given to the discount
- `price` (`integer`, optional): Price in cents
- `price_percent` (`integer`, optional): Percent of the price
- `products` (`array`, optional): An array of associated products with association values ('1' = add, '0' = remove, '' = do nothing)
- `ticket_types` (`array`, optional): An array of associated ticket types with association values ('1' = add, '0' = remove, '' = do nothing)
- `type` (`string`, optional): Type of discount. Either a fixed amount or a percentage. One of: `fixed_amount`, `percentage`.

Example input: `{"discount_id":"<discount_id>"}`

### `tickettailormcp_event_occurrence_delete`

Delete event occurrence · Destructive

Delete event occurrence, only if there are no associated orders. Otherwise, set it as hidden. This action is irreversible. The event occurrence will be permanently removed.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `event_occurrence_id` (`string`, required): The unique identifier for the existing event occurrence to delete. Must have the prefix 'ev_'
- `event_series_id` (`string`, required): The unique identifier for the existing event series. Must have the prefix 'es_'

Example input: `{"event_occurrence_id":"<event_occurrence_id>","event_series_id":"<event_series_id>"}`

### `tickettailormcp_event_occurrence_update`

Update event occurrence · Destructive

Updates an existing event occurrence.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `event_occurrence_id` (`string`, required): The unique identifier for the existing event occurrence. Must have the prefix 'ev_'
- `event_series_id` (`string`, required): The unique identifier for the existing event series. Must have the prefix 'es_'
- `end_date` (`string`, optional): Event end date in the YYYY-MM-dd format
- `end_time` (`string`, optional): Event end time in the HH:ii:ss format
- `hidden` (`boolean`, optional): True, if the event is set to hidden. False otherwise
- `online_link` (`string`, optional): URL of the online event
- `override_id` (`string`, optional): The ID of the override that needs to be applied against the event occurrence. Must have the prefix 'ov_'
- `start_date` (`string`, optional): Event start date in the YYYY-MM-dd format
- `start_time` (`string`, optional): Event start time in the HH:ii:ss format
- `unavailable` (`boolean`, optional): True, if the event is set to unavailable. False otherwise
- `unavailable_status` (`string`, optional): Optional custom status message when the event is set to unavailable

Example input: `{"event_occurrence_id":"<event_occurrence_id>","event_series_id":"<event_series_id>"}`

### `tickettailormcp_event_series_delete`

Delete event series · Destructive

Delete an event series and its associated events. This action is irreversible. The event series and its events will be permanently removed.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `event_series_id` (`string`, required): The unique identifier for the event series to delete. Must have the prefix 'es_'

Example input: `{"event_series_id":"<event_series_id>"}`

### `tickettailormcp_event_series_status_change`

Change event series status · Destructive

Changes the status of an event series (publish, draft, or close sales).

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `event_series_id` (`string`, required): The unique identifier for the event series. Must have the prefix 'es_'
- `status` (`string`, required): New event series status - DRAFT: unpublished, PUBLISHED: live and available, CLOSE_SALES: published but sales closed. One of: `DRAFT`, `PUBLISHED`, `CLOSE_SALES`.

Example input: `{"event_series_id":"<event_series_id>","status":"DRAFT"}`

### `tickettailormcp_event_series_update`

Update event series · Destructive

Updates an existing event series.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `event_series_id` (`string`, required): The unique identifier for the event series. Must have the prefix 'es_'
- `access_code` (`string`, optional): Code to access a protected event series
- `call_to_action` (`string`, optional): Call to action text used on the event series page
- `country` (`string`, optional): Country of the venue in ISO 3166 format
- `currency` (`string`, optional): Information about the currency the event series is configured to use. One of: `gbp`, `usd`, `eur`, `aud`, `brl`, `cad`, `czk`, `dkk`, `hkd`, `huf`, `ils`, `myr`, `mxn`, `nok`, `nzd`, `php`, `pln`, `sgd`, `rub`, `sek`, `chf`, `thb`, `try`, `aed`, `all`, `amd`, `ang`, `awg`, `azn`, `bam`, `bbd`, `bdt`, `bgn`, `bmd`, `bnd`, `bsd`, `bwp`, `bzd`, `cdf`, `cny`, `dop`, `dzd`, `egp`, `etb`, `fjd`, `gel`, `gip`, `gmd`, `gyd`, `htg`, `idr`, `inr`, `jmd`, `kes`, `kgs`, `khr`, `kyd`, `kzt`, `lbp`, `lkr`, `lrd`, `lsl`, `mad`, `mdl`, `mkd`, `mmk`, `mnt`, `mop`, `mvr`, `mwk`, `mzn`, `nad`, `ngn`, `npr`, `pgk`, `pkr`, `qar`, `ron`, `rsd`, `sar`, `sbd`, `scr`, `sle`, `sos`, `szl`, `tjs`, `top`, `ttd`, `tzs`, `uah`, `uzs`, `wst`, `xcd`, `yer`, `zar`, `zmw`.
- `description` (`string`, optional): Description of the event series
- `max_tickets_sold_per_occurrence` (`integer`, optional): Maximum quantity of tickets that can be sold across all ticket types
- `name` (`string`, optional): Name of the event series
- `online_platform` (`string`, optional): Specify the name of the online platform used when the event is held online-only. This enables each event occurrence to include a link to the online event.
- `postal_code` (`string`, optional): Postal code of the venue
- `tickets_available_at` (`integer`, optional): Timestamp in UTC in seconds when tickets become available for purchase
- `tickets_available_at_message` (`string`, optional): Message to show when tickets are not yet available to purchase. {countdown} is replaced with time remaining until tickets become available
- `tickets_unavailable_at` (`integer`, optional): Timestamp in UTC in seconds when tickets become unavailable for purchase
- `tickets_unavailable_at_message` (`string`, optional): Message to show when tickets are unavailable to purchase
- `venue` (`string`, optional): Name of the venue
- `voucher_ids` (`array`, optional): An array of associated voucher ids with association values ('1' = add, '0' = remove, '' = do nothing)
- `waitlist_active` (`string`, optional): Indicates whether waitlist is enabled for the event series. One of: `true`, `no_tickets_available`, `false`.
- `waitlist_call_to_action` (`string`, optional): The text displayed on event action buttons and as a title above the waitlist format
- `waitlist_confirmation_message` (`string`, optional): Text shown to the user after they have signed up to the waitlist
- `waitlist_event_page_text` (`string`, optional): Description above ticket waitlist form

Example input: `{"event_series_id":"<event_series_id>"}`

### `tickettailormcp_hold_delete`

Delete hold · Destructive

Delete a hold. This action is irreversible. The hold will be permanently removed.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `hold_id` (`string`, required): The unique identifier for the hold to delete. Must have the prefix 'ho_'

Example input: `{"hold_id":"<hold_id>"}`

### `tickettailormcp_hold_update`

Update hold · Destructive

Updates an existing hold.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `hold_id` (`string`, required): The unique identifier for the hold. Must have the prefix 'ho_'
- `note` (`string`, optional): A string that gives more information about the created hold
- `ticket_type_id` (`array`, optional): An array of associated ticket type IDs with association values (0 = remove, any other integer = keep or add)

Example input: `{"hold_id":"<hold_id>"}`

### `tickettailormcp_issued_membership_update`

Update issued membership · Destructive

Updates an existing issued membership. Only fixed date types are allowed when updating.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `issued_membership_id` (`string`, required): The unique identifier for the issued membership. Must have the prefix 'im_'
- `email` (`string`, optional): Email address of the member
- `first_name` (`string`, optional): First name of the member
- `last_name` (`string`, optional): Last name of the member
- `max_redemptions` (`string`, optional): Maximum number of times the issued membership can be redeemed. Provide empty string to set unlimited redemptions
- `valid_from_date` (`integer`, optional): Unix timestamp (UTC) for when the issued membership becomes valid
- `valid_to_date` (`integer`, optional): Unix timestamp (UTC) for when the issued membership expires

Example input: `{"issued_membership_id":"<issued_membership_id>"}`

### `tickettailormcp_issued_membership_void`

Void issued membership · Destructive

Voids an existing issued membership. A voided membership cannot be used for redemptions. This action is irreversible.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `issued_membership_id` (`string`, required): The unique identifier for the issued membership to void. Must have the prefix 'im_'

Example input: `{"issued_membership_id":"<issued_membership_id>"}`

### `tickettailormcp_issued_ticket_void`

Void issued ticket · Destructive

Voids an issued ticket. This action is irreversible. This will only mark the ticket as voided (no longer valid) and will not cancel an entire order or issue a refund. You can also void an issued ticket to a hold, which will create a hold from the issued ticket and not put the allocation back on sale.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `issued_ticket_id` (`string`, required): The unique identifier for the issued ticket. Must have the prefix 'it_'
- `void_to_hold` (`boolean`, optional): Indicate whether to turn the existing issued ticket into a hold

Example input: `{"issued_ticket_id":"<issued_ticket_id>"}`

### `tickettailormcp_membership_type_delete`

Delete membership type · Destructive

Deletes a membership type. A membership type can only be deleted if it has no issued memberships and no linked products. This action is irreversible.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `membership_type_id` (`string`, required): The unique identifier for the membership type to delete. Must have the prefix 'mt_'

Example input: `{"membership_type_id":"<membership_type_id>"}`

### `tickettailormcp_membership_type_update`

Update membership type · Destructive

Updates an existing membership type.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `membership_type_id` (`string`, required): The unique identifier for the membership type. Must have the prefix 'mt_'
- `conditions_and_benefits` (`array`, optional): Array of conditions and benefits for this membership type
- `max_redemptions` (`string`, optional): Maximum number of times memberships of this type can be redeemed. Provide empty string to set unlimited redemptions
- `name` (`string`, optional): Name of the membership type
- `photo_required` (`string`, optional): Whether a photo is required when issuing memberships of this type. One of: `true`, `false`.
- `valid_from_date` (`integer`, optional): Unix timestamp (UTC) for when memberships of this type become valid. Required if valid_from_type is 'fixed'
- `valid_from_type` (`string`, optional): Type of valid from date. 'fixed' uses valid_from_date for all issued memberships, 'relative' uses the date of issue. One of: `fixed`, `relative`.
- `valid_to_date` (`integer`, optional): Unix timestamp (UTC) for when memberships of this type expire. Required if valid_to_type is 'fixed'
- `valid_to_interval_days` (`integer`, optional): Number of days the membership is valid for from the issue date. Required if valid_to_type is 'relative'. Must be between 1 and 365
- `valid_to_type` (`string`, optional): Type of valid to date. 'fixed' uses valid_to_date, 'relative' uses valid_to_interval_days from issue date. One of: `fixed`, `relative`.

Example input: `{"membership_type_id":"<membership_type_id>"}`

### `tickettailormcp_order_confirm_payment`

Confirm offline payment · Destructive

Confirm an offline payment has been paid for an order.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `order_id` (`string`, required): The unique identifier for the order. Must have the prefix 'or_'
- `transaction_id` (`string`, optional): The transaction ID of the payment

Example input: `{"order_id":"<order_id>"}`

### `tickettailormcp_order_update`

Update order · Destructive

Updates an existing order.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `order_id` (`string`, required): The unique identifier for the order. Must have the prefix 'or_'
- `address_1` (`string`, optional): The first line of the address
- `address_2` (`string`, optional): The second line of the address
- `address_3` (`string`, optional): The third line of the address
- `email` (`string`, optional): Buyer email address
- `first_name` (`string`, optional): Buyer first name
- `last_name` (`string`, optional): Buyer last name
- `phone` (`string`, optional): Buyer phone number
- `postal_code` (`string`, optional): Postal code, zip code or postcode

Example input: `{"order_id":"<order_id>"}`

### `tickettailormcp_override_update`

Update override · Destructive

Update existing override.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `event_series_id` (`string`, required): The unique identifier for the event series. Must have the prefix 'es_'
- `override_id` (`string`, required): The unique identifier for the override. Must have the prefix 'ov_'
- `override_lines` (`array`, required): An array of associated ticket types (prefix id with 'tt_'), ticket groups (prefix id with 'tg_') or bundles (prefix id with 'bu_').
- `max_sellable_tickets` (`number`, optional): Maximum number of sellable tickets
- `name` (`string`, optional): Override name

Example input: `{"event_series_id":"<event_series_id>","override_id":"<override_id>","override_lines":[]}`

### `tickettailormcp_product_delete`

Delete product · Destructive

Delete a product. This action is irreversible. The product will be permanently removed.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `product_id` (`string`, required): The unique identifier for the product to delete. Must have the prefix 'pr_'

Example input: `{"product_id":"<product_id>"}`

### `tickettailormcp_product_update`

Update product · Destructive

Updates an existing product.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `product_id` (`string`, required): The unique identifier for the product. Must have the prefix 'pr_'
- `booking_fee` (`integer`, optional): Optional booking fee in cents which is charged per product to the customer and the funds are paid to you. We would recommend charging no more than 10% of the product price.
- `currency` (`string`, optional): Currency that the product can be purchased in. Defaults to the box office currency. One of: `gbp`, `usd`, `eur`, `aud`, `brl`, `cad`, `czk`, `dkk`, `hkd`, `huf`, `ils`, `myr`, `mxn`, `nok`, `nzd`, `php`, `pln`, `sgd`, `rub`, `sek`, `chf`, `thb`, `try`, `aed`, `all`, `amd`, `ang`, `awg`, `azn`, `bam`, `bbd`, `bdt`, `bgn`, `bmd`, `bnd`, `bsd`, `bwp`, `bzd`, `cdf`, `cny`, `dop`, `dzd`, `egp`, `etb`, `fjd`, `gel`, `gip`, `gmd`, `gyd`, `htg`, `idr`, `inr`, `jmd`, `kes`, `kgs`, `khr`, `kyd`, `kzt`, `lbp`, `lkr`, `lrd`, `lsl`, `mad`, `mdl`, `mkd`, `mmk`, `mnt`, `mop`, `mvr`, `mwk`, `mzn`, `nad`, `ngn`, `npr`, `pgk`, `pkr`, `qar`, `ron`, `rsd`, `sar`, `sbd`, `scr`, `sle`, `sos`, `szl`, `tjs`, `top`, `ttd`, `tzs`, `uah`, `uzs`, `wst`, `xcd`, `yer`, `zar`, `zmw`.
- `description` (`string`, optional): Description of the product
- `event_series_ids` (`array`, optional): List of event series IDs that have the product with association values ('1' = add, '0' = remove, '' = do nothing)
- `instructions` (`string`, optional): Instructions on how to purchase the product
- `issue_ticket_voucher` (`string`, optional): Indicate whether the QR code is to be issued for the product. Mutually exclusive with voucher_id and membership_type_id. One of: `true`, `false`.
- `linked_to_all_event_series` (`string`, optional): Indicate whether the product is linked to all event series. One of: `true`, `false`.
- `membership_type_id` (`string`, optional): The ID of a membership type to associate with the product. Must start with 'mt_' prefix. Mutually exclusive with issue_ticket_voucher and voucher_id.
- `modify_quantity` (`string`, optional): Number of products to add or remove. The number should be preceded by a + or - sign
- `name` (`string`, optional): Name of the product
- `price` (`integer`, optional): Cost of the product in cents
- `quantity` (`integer`, optional): Number of products available for purchase
- `quantity_per_event` (`integer`, optional): Number of products available for purchase per event
- `quantity_unlimited` (`string`, optional): If set to 'true', the quantity will be set to unlimited. Otherwise, it will be set to the quantity given. One of: `true`, `false`.
- `status` (`string`, optional): Product status. One of: `on_sale`, `hidden`, `sold_out`.
- `voucher_id` (`string`, optional): The ID of a voucher of type gift card to associate with the product. Must start with 'vo_' prefix. Mutually exclusive with issue_ticket_voucher and membership_type_id.

Example input: `{"product_id":"<product_id>"}`

### `tickettailormcp_store_update`

Update store information · Destructive

Updates the store configuration including currency, name, and associated products. This allows you to modify your Ticket Tailor store settings such as changing the currency, updating the store name, or managing which products are available in the store. The currency can be set to various supported currencies, and products can be added or removed by providing an array of product IDs. Empty products array will remove all products from the store.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `storeId` (`string`, required): The ID (prefixed with 'st_') of the store to update
- `currency` (`string`, optional): The currency code used by the store. One of: `gbp`, `usd`, `eur`, `sgd`, `aud`, `brl`, `cad`, `czk`, `dkk`, `hkd`, `huf`, `ils`, `jpy`, `myr`, `mxn`, `nok`, `nzd`, `php`, `pln`, `rub`, `sek`, `chf`, `twd`, `thb`, `try`.
- `name` (`string`, optional): Name of the store
- `products` (`array`, optional): Array of product IDs that are sold in the store. Empty array will remove all products from the store. Product IDs should be prefixed with 'pr_'

Example input: `{"storeId":"<storeId>"}`

### `tickettailormcp_ticket_group_delete`

Delete ticket group · Destructive

Delete a ticket group. This action is irreversible. The ticket group will be permanently removed and any associated ticket types and bundles will be removed from the group.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `event_series_id` (`string`, required): The unique identifier for the event series. Must have the prefix 'es_'
- `ticket_group_id` (`string`, required): The unique identifier for the ticket group to delete. Must have the prefix 'tg_'

Example input: `{"event_series_id":"<event_series_id>","ticket_group_id":"<ticket_group_id>"}`

### `tickettailormcp_ticket_group_update`

Update ticket group · Destructive

Updates an existing ticket group.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `event_series_id` (`string`, required): The unique identifier for the event series. Must have the prefix 'es_'
- `ticket_group_id` (`string`, required): The unique identifier for the ticket group. Must have the prefix 'tg_'
- `bundle_ids` (`array`, optional): Array of bundle IDs that belong to this group. Bundle id must have the prefix 'bu_'
- `max_per_order` (`integer`, optional): Maximum number of tickets of this group that can be purchased in a single order. Prevents bulk purchases and ensures fair distribution
- `max_quantity` (`integer`, optional): Maximum number of ticket types that this group can sell
- `min_per_order` (`integer`, optional): Minimum number of tickets of this group that must be purchased in a single order. Useful for group discounts or package deals
- `name` (`string`, optional): Name of the ticket group
- `ticket_type_ids` (`array`, optional): Array of ticket type IDs that belong to this group. Ticket type id must have the prefix 'tt_'

Example input: `{"event_series_id":"<event_series_id>","ticket_group_id":"<ticket_group_id>"}`

### `tickettailormcp_ticket_type_delete`

Delete ticket type · Destructive

Delete a ticket type. This action is irreversible. The ticket type will be permanently removed.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `event_series_id` (`string`, required): The unique identifier for the event series. Must have the prefix 'es_'
- `ticket_type_id` (`string`, required): The unique identifier for the ticket type to delete. Must have the prefix 'tt_'

Example input: `{"event_series_id":"<event_series_id>","ticket_type_id":"<ticket_type_id>"}`

### `tickettailormcp_ticket_type_update`

Update ticket type · Destructive

Updates an existing ticket type.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `event_series_id` (`string`, required): The unique identifier for the event series. Must have the prefix 'es_'
- `ticket_type_id` (`string`, required): The unique identifier for the ticket type. Must have the prefix 'tt_'
- `access_code` (`string`, optional): Code to access a hidden ticket
- `booking_fee` (`integer`, optional): Optional booking fee which is charged per ticket type to the customer and the funds are paid to you. We would recommend charging no more than 10% of the ticket price.
- `description` (`string`, optional): Description of the ticket type
- `discounts` (`array`, optional): An array of associated discount ids with association values ('1' = add, '0' = remove, '' = do nothing)
- `group_id` (`string`, optional): ID of the group this ticket type belongs to. Group id must have the prefix 'tg_'
- `hide_after` (`integer`, optional): Timestamp in seconds when the ticket type should be hidden until.
- `hide_until` (`integer`, optional): Timestamp in seconds when the ticket type should be hidden after.
- `hide_when_sold_out` (`boolean`, optional): Hide the ticket when it has sold out
- `max_per_order` (`integer`, optional): Maximum number of tickets allowed per order
- `min_per_order` (`integer`, optional): Minimum number of tickets allowed per order
- `modify_quantity` (`string`, optional): Number of ticket types to add or remove. The number should be preceded by a + or - sign
- `name` (`string`, optional): Name of the ticket type
- `price` (`integer`, optional): Cost of the ticket type
- `show_quantity_remaining` (`string`, optional): Specifies whether to show the number of tickets still available. One of: `true`, `false`.
- `show_quantity_remaining_less_than` (`integer`, optional): Only show number of tickets still available when the available quantity is equal to or lower than this threshold
- `status` (`string`, optional): Event series status. One of: `ON_SALE`, `SOLD_OUT`, `UNAVAILABLE`, `HIDDEN`, `ADMIN_ONLY`, `LOCKED`.
- `zero_tickets` (`string`, optional): Set the number of available tickets to zero. One of: `true`, `false`.

Example input: `{"event_series_id":"<event_series_id>","ticket_type_id":"<ticket_type_id>"}`

### `tickettailormcp_voucher_code_void`

Void voucher code · Destructive

Voids a voucher code. This action is irreversible. This will only mark one voucher code as voided, and will not impact the other related codes.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `voucher_code_id` (`string`, required): The unique identifier for the voucher code. Must have the prefix 'vc_'
- `voucher_id` (`string`, required): The unique identifier for the voucher. Must have the prefix 'vo_'

Example input: `{"voucher_code_id":"<voucher_code_id>","voucher_id":"<voucher_id>"}`

### `tickettailormcp_voucher_delete`

Delete voucher · Destructive

Delete voucher and its associated voucher codes. This action is irreversible. The voucher and its voucher codes will be permanently removed.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `voucher_id` (`string`, required): The unique identifier for the existing voucher to delete. Must have the prefix 'vo_'

Example input: `{"voucher_id":"<voucher_id>"}`

### `tickettailormcp_voucher_update`

Update voucher · Destructive

Updates an exist ing voucher's name and properties.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `voucher_id` (`string`, required): The unique identifier for the existing voucher. Must have the prefix 'vo_'
- `codes` (`array`, optional): An array of associated voucher codes
- `event_series_ids` (`array`, optional): An array of associated event series IDs with association values ('1' = add, '0' = remove, '' = do nothing)
- `expiry` (`integer`, optional): Voucher's expiry date as Unix timestamp
- `interval` (`string`, optional): Only available when voucher_type is gift_card. Voucher's expiry date is calculated from this number of days on day of issue. One of: `30`, `90`, `365`.
- `name` (`string`, optional): A descriptive name given to the voucher
- `value` (`integer`, optional): Voucher value in cents

Example input: `{"voucher_id":"<voucher_id>"}`

### `tickettailormcp_waitlist_signup_delete`

Delete waitlist signup · Destructive

Delete event series waitlist signup. This action is irreversible.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `event_series_id` (`string`, required): The unique identifier for the event series that the waitlist signup is part of. Must have the prefix 'es_'
- `waitlist_signup_id` (`string`, required): The unique identifier for the waitlist signup to delete. Must have the prefix 'ws_'

Example input: `{"event_series_id":"<event_series_id>","waitlist_signup_id":"<waitlist_signup_id>"}`

## Related

Other Marketing connectors ([all 98](/agentkit/connectors/?category=marketing)):

- [HubSpot](/agentkit/connectors/hubspot/): Scalekit connector, OAuth, 457 tools
- [Mailchimp](/agentkit/connectors/mailchimp/): Scalekit connector, OAuth, 73 tools
- [Twitter / X](/agentkit/connectors/twitteroauth/): Scalekit connector, OAuth, 92 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
