# menta tech API Documentation (v.1.0)

> Agent-friendly Markdown rendering of the menta tech REST API reference. Served as `text/markdown` — no JavaScript needed.

## How to use this reference (AI agents)

- **Base URL:** `https://api.mentatech.io` — every path below is relative to it.
- **Authentication:** all endpoints require your menta tech private API key in the `Authorization` header (provided by your account manager).
- **Complete OpenAPI 3.1 spec (JSON):** [https://docs.mentatech.io/api/openapi](https://docs.mentatech.io/api/openapi) — fetch it when you need full request/response schemas, field-level descriptions and examples. This document only lists top-level fields.
- **Endpoints** are grouped by resource below, in the recommended integration order. Each entry shows parameters, top-level request-body fields and response codes.
- **Integration guides** (concepts, flows, environments, webhooks): index at [https://docs.mentatech.io/llms.txt](https://docs.mentatech.io/llms.txt), full corpus at [https://docs.mentatech.io/llms-full.txt](https://docs.mentatech.io/llms-full.txt).
- **Interactive version for humans:** https://docs.mentatech.io/es/api (or /en/api).

## Overview

API for managing events, tickets, and marketplace operations. This documentation covers integrating with the menta platform for event creation, ticket management, secondary market operations, and user authentication.

Base URL: https://api.mentatech.io - Authentication requires a valid API Key in the Authorization header.

The menta platform uses a relational data model where endpoints build upon previously created data. For example, ticket creation requires an existing event with defined price types and zones.

We recommend following this documentation sequentially as it follows the logical integration flow.

While our API has minimal required fields, providing optional fields unlocks more powerful features - from enhanced marketplace capabilities to advanced ticket management. For example, detailed seat information enables precise seat selection, while comprehensive event metadata improves the user experience.

## Endpoint index

- **Events**
  - `POST /v1/events` — Create an Event
  - `PUT /v1/events` — Update an Event
  - `POST /v1/events/:externalReferenceId/cancellation` — Cancel an Event
  - `POST /v1/events/rules` — Define And Update Event Rules
- **Tickets**
  - `POST /v1/tickets` — Create a Ticket
  - `POST /v1/sync/tickets` — Create a Ticket (Sync)
  - `PUT /v1/tickets/:ticketId` — Update a Ticket
  - `DELETE /v1/tickets/:ticketId` — Delete a Ticket
  - `POST /v1/tickets/:ticketId/eventAdmission` — Register Event Admission
  - `POST /v1/tickets/batch/eventAdmission` — Register Batch Event Admissions
  - `GET /v1/events/tickets/salePublicUrl` — Get Ticket Sale Public URL
- **Marketplace**
  - `GET /v1/marketplace/buyingflow/url/entrypoint` — Get Secondary Market Buying Flow URL
  - `GET /v1/marketplace/sellingflow/url/entrypoint` — Get Start Sell Ticket URL
  - `GET /v1/marketplace/sellingflow/url/order/entrypoint` — Get Start Sell Order URL
  - `GET /v1/marketplace/sellingflow/details/url` — Get Sell Ticket Details URL
  - `POST /v1/marketplace/checkout/url` — Create Marketplace Checkout URL
  - `DELETE /v1/marketplace/items/ticket/:ticketId` — Terminate Listing
  - `GET /v1/marketplace/listings/ticket/:ticketId` — Get Listing by Ticket ID
- **Build Your Own Buyingflow**
  - `GET /v1/marketplace/items/events/:eventId/listedTickets` — Get Listed Tickets for Event
  - `POST /v1/marketplace/buyingflow/buyIntention` — Create Buy Intention
- **Auth**
  - `GET /v1/auth/oneTimeToken` — Generate One-Time Token
- **Smart Access Layer**
  - `GET /v1/wrapper/accesslayer` — Get Smart Access Layer
  - `POST /v1/wrapper/accesslayer` — Generate Sell Access Layer for TicketIds
  - `POST /v1/wrapper/accesslayer` — Generate Sell Access Layer for OrderIds
  - `POST /v1/wrapper/accesslayer/bulk` — Get Smart Access Layer (Bulk)
- **Market Data**
  - `PUT /v1/marketdata/events/:externalReferenceId/inventory` — Update Event Inventory
  - `PUT /v1/marketdata/events/:externalReferenceId/inventory/details` — Update Event Inventory Details
  - `POST /v1/marketdata/users` — Create Ticket Holder Lead
  - `POST /v1/marketdata/users` — Create Abandoned Cart Lead
  - `POST /v1/marketdata/users` — Create Virtual Queue Lead
  - `POST /v1/marketdata/users` — Create Wishlist Lead
  - `POST /v1/marketdata/users/bulk` — Create Ticket Leads (Bulk)

## Events

Operations related to creating, updating, and managing events and their associated shows. This is the first step of the integration.

### POST /v1/events — Create an Event

Creates a new event in the system with all associated metadata. Events can include multiple shows, ticket options, and configuration settings. This endpoint provides a standardized way to integrate your ticketing system with menta and serves as the foundation for all ticket operations.

**Parameters:**

- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, object) — top-level fields:

- `title` (string, required)
- `description` (string, required)
- `externalReferenceId` (string, required)
- `shows` (object, required)
- `location` (object, required)
- `producers` (array of object)
- `configuration` (object, required)
- `seating` (object)

**Responses:** `200` — Event successfully created with all provided details

### PUT /v1/events — Update an Event

Updates an existing event with new information. This endpoint requires sending the complete updated event object rather than partial updates. All fields will be replaced with the new values provided. Always include the externalReferenceId to identify which event to update. We strongly recommend to send the entire event object rather than partial properties updates.

**Parameters:**

- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, object) — top-level fields:

- `title` (string)
- `description` (string)
- `externalReferenceId` (string, required)
- `shows` (object)
- `location` (object)
- `producers` (array of object)
- `configuration` (object)
- `seating` (object)

**Responses:** `200` — Event successfully updated with the provided information

### POST /v1/events/:externalReferenceId/cancellation — Cancel an Event

Cancels an entire event and all associated shows. This action affects all tickets linked to this event and should be used with caution. Once an event is cancelled, all tickets become invalid. Payouts for tickets sold will be cancelled and refunds will be processed for those tickets sold in the secondary market.

**Parameters:**

- `externalReferenceEventId` (path, required)
- `showId` (query)
- `showId` (query) — The ID of the show in your system.
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Responses:** `200` — Event successfully cancelled with all associated shows

### POST /v1/events/rules — Define And Update Event Rules

Creates or updates rules for events, specifying behavior for ticket transfers, resales, and other operations. These rules can control various aspects of ticket lifecycle management.

**Parameters:**

- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, array of object) — top-level fields:

- `externalReferenceEventId` (string, required)
- `showId` (string)
- `ticketOptionId` (string)
- `priceTypeId` (string)
- `price` (anyOf)
- `ruleType` (string, required)
- `rules` (object)

**Responses:** `200` — Rules successfully defined and applied to the events

## Tickets

Operations for ticket creation, management, validation, and admission control.

### POST /v1/tickets — Create a Ticket

Creates new tickets in the menta system. This operation registers your ticket information in the platform for management and distribution. Each ticket receives a unique identifier that links back to your original ticketId. The request body requires an array of ticket objects with all necessary details. This endpoint is asynchronous and will return a response immediately, while the /v1/sync/tickets endpoint is synchronous. Using this endpoint will put your request in the queue to be processed asynchronously. For high volume of tickets, its recommended to use this endpoint as data will be processed as capacity allows.

**Parameters:**

- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, array of object) — top-level fields:

- `externalReferenceEventId` (string, required)
- `showId` (string | null)
- `buyer` (anyOf, required)
- `ticketId` (string, required)
- `ticketAccess` (object, required)
- `ticketOptionId` (string, required)
- `priceTypeId` (string)
- `price` (anyOf)
- `buyerEmailExternal` (string)
- `primarySaleBuyerData` (object)
- `nominalTicket` (object)
- `props` (object)
- `primarySalesFee` (object)

**Responses:** `200` — Tickets successfully created with unique identifiers

### POST /v1/sync/tickets — Create a Ticket (Sync)

Creates tickets synchronously, returning an immediate response unlike the asynchronous /v1/tickets endpoint. Not suitable for high volume requests. Errors must be handled by your end. <b>Restricted Capacity of 60 requests per minute.</b>

**Parameters:**

- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, array of object) — top-level fields:

- `externalReferenceEventId` (string, required)
- `showId` (string | null)
- `buyer` (anyOf, required)
- `ticketId` (string, required)
- `ticketAccess` (object, required)
- `ticketOptionId` (string, required)
- `priceTypeId` (string)
- `price` (anyOf)
- `buyerEmailExternal` (string)
- `primarySaleBuyerData` (object)
- `nominalTicket` (object)
- `props` (object)
- `primarySalesFee` (object)

**Responses:** `200` — Tickets successfully synchronized with the system

### PUT /v1/tickets/:ticketId — Update a Ticket

Updates an existing ticket's properties. This can be used to modify ticket access information, update buyer details, or change other ticket properties after initial creation. The ticket is identified by its ID provided in the path parameter.

**Parameters:**

- `ticketId` (path, required)
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, object) — top-level fields:

- `externalReferenceEventId` (string)
- `showId` (string | null)
- `buyer` (anyOf)
- `ticketAccess` (object)
- `ticketOptionId` (string)
- `priceTypeId` (string)
- `price` (anyOf)
- `buyerEmailExternal` (string)
- `primarySaleBuyerData` (object)
- `nominalTicket` (object)
- `props` (object)
- `primarySalesFee` (object)

**Responses:** `200` — Ticket successfully updated with new information

### DELETE /v1/tickets/:ticketId — Delete a Ticket

Removes a ticket from the system, invalidating it for all purposes. This operation is typically used for tickets that were issued in error or need to be cancelled for specific reasons. If any listing is active, it will be terminated. Use with caution as this operation cannot be undone.

**Parameters:**

- `ticketId` (path, required)
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Responses:** `200` — Ticket successfully deleted from the system

### POST /v1/tickets/:ticketId/eventAdmission — Register Event Admission

Records a ticket admission at an event, marking the ticket as used. This is typically called by access control systems at venue entrances. The ticketId is provided in the URL path parameter.

**Parameters:**

- `ticketId` (path, required)
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Responses:** `200` — Admission successfully registered for the ticket

### POST /v1/tickets/batch/eventAdmission — Register Batch Event Admissions

Records multiple ticket admissions at an event in a single request. This is more efficient than making individual calls for each ticket when processing groups of attendees. The response indicates whether all admissions were successfully recorded.

**Parameters:**

- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, array of object) — top-level fields:

- `ticketId` (string, required)
- `entryDate` (string, required)

**Responses:** `200` — Batch admission successfully executed for all provided tickets

### GET /v1/events/tickets/salePublicUrl — Get Ticket Sale Public URL

Retrieves a public URL that directs users directly to the secondary marketplace for the event, filtered to show only the specific ticket. This URL is commonly used for direct ticket sales, especially to enable ticket sellers to share the URL through social media platforms to amplify the distribution and visibility of their ticket listing. When a potential buyer clicks the link, they are taken directly to the marketplace page showing only that specific ticket, making it easy to complete the purchase.

**Parameters:**

- `ticketId` (query, required)
- `lang` (query, required)
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Responses:** `200` — Successfully generated public sales URL

## Marketplace

Operations for the secondary market, including listing tickets for sale and purchasing tickets.

### GET /v1/marketplace/buyingflow/url/entrypoint — Get Secondary Market Buying Flow URL

Retrieves the entry URL to access the secondary marketplace for purchasing tickets for the event and show specified in the query parameters. This URL directs users to the marketplace interface where they can browse and purchase available tickets from the secondary market. The marketplace provides a secure environment for secondary ticket sales with buyer and seller protections. You can optionally filter the listings by a specific ticket option ID to show only offers for that ticket type.

**Parameters:**

- `externalReferenceEventId` (query, required) — The ID of the event in your platform. This identifies which event the user will browse in the secondary marketplace.
- `showId` (query, required) — The ID of the show in your platform. This identifies the specific show within the event that the user will browse.
- `lang` (query) — Language code for the navigation interface (e.g., "es", "en"). If not specified, it defaults to the primary language of the country of operation.
- `returnTo` (query, required) — The URL to redirect users to when they press the back button or complete the purchase flow. This allows you to return users to your platform after they interact with the marketplace.
- `ticketOptionId` (query) — Optional filter to show only secondary market purchase offers for the specified ticket type ID. When provided, the marketplace will display listings filtered to this specific ticket option.
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Responses:** `200` — Successfully generated buying flow entry URL

### GET /v1/marketplace/sellingflow/url/entrypoint — Get Start Sell Ticket URL

Retrieves the URL to begin the process of selling tickets in the marketplace. This URL directs users to an interface where they can set pricing, listing conditions, and other parameters for their ticket listings. The process includes verification steps to ensure ticket validity.

**Parameters:**

- `ticketId` (query, required)
- `lang` (query)
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Responses:** `200` — Successfully generated URL for the selling flow

### GET /v1/marketplace/sellingflow/url/order/entrypoint — Get Start Sell Order URL

Retrieves the URL to start the sales order process for multiple tickets in a single transaction. This is particularly useful for selling groups of tickets or complete orders from the primary market. The generated URL leads to a specialized interface for creating these bulk listings.

**Parameters:**

- `orderId` (query, required)
- `lang` (query)
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Responses:** `200` — Successfully generated URL for starting the sales order process

### GET /v1/marketplace/sellingflow/details/url — Get Sell Ticket Details URL

Retrieves the URL for viewing and managing details of a ticket listing. This allows ticket owners to check the status of their listings, modify pricing, or remove listings from the marketplace. The URL can include authentication parameters for direct access.

**Parameters:**

- `ticketId` (query, required)
- `sellerEmail` (query)
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Responses:** `200` — Successfully generated URL for selling details

### POST /v1/marketplace/checkout/url — Create Marketplace Checkout URL

Creates and retrieves a checkout URL for marketplace purchases. This URL directs users to complete their purchase of selected tickets from the secondary market. The checkout process handles payment processing, buyer verification, and ticket transfer in a secure environment. The request requires a list of ticket listing IDs to purchase that you can get from the Get Listed Tickets for Event endpoint.

**Parameters:**

- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, object) — top-level fields:

- `listingIds` (array of string, required)

**Responses:** `200` — Successfully generated checkout URL for the marketplace purchase

### DELETE /v1/marketplace/items/ticket/:ticketId — Terminate Listing

Removes a ticket from the marketplace listings, making it unavailable for purchase. This is typically used when a seller wants to cancel their listing without completing a sale. The ticket reverts to its unlisted state and can be used by the owner or listed again later.

**Parameters:**

- `ticketId` (path, required)
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Responses:** `200` — Ticket successfully removed from marketplace listings

### GET /v1/marketplace/listings/ticket/:ticketId — Get Listing by Ticket ID

Retrieves a listing by its external ticket ID. This allows you to access information about a specific ticket listing in the marketplace. You can also filter by seller email if you want to get the listing for a specific seller.

**Parameters:**

- `ticketId` (path, required)
- `sellerEmail` (query)
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Responses:** `200` — Successfully retrieved listing by ticket ID

## Build Your Own Buyingflow

Streamlined checkout experience for marketplace purchases

### GET /v1/marketplace/items/events/:eventId/listedTickets — Get Listed Tickets for Event

Retrieves all tickets currently listed for sale for a specific event. This allows integration with your platform to display available secondary market tickets. The response includes pricing, seat information, and other details necessary for presenting the listings to potential buyers.

**Parameters:**

- `eventId` (path, required)
- `showId` (query)
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Responses:** `200` — Successfully retrieved all listed tickets for the event

### POST /v1/marketplace/buyingflow/buyIntention — Create Buy Intention

A Buy Intention is a representation of a user's intention to purchase specific tickets. This creates a temporary reservation to prevent conflicts during the checkout process. Buy intentions have a limited lifetime and will expire if the purchase is not completed within a certain timeframe. You can use this endpoint to create a buy intention for specific tickets and retrieve the payment URL to complete the purchase.

**Parameters:**

- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, object) — top-level fields:

- `items` (array of string, required)
- `user` (string, required)

**Responses:** `200` — Purchase intention successfully registered

## Auth

Authentication operations for secure user access and verification.

### GET /v1/auth/oneTimeToken — Generate One-Time Token

Creates a one-time authentication token for a specific user. This token can be appended to any menta URL to provide temporary authenticated access. It's useful for redirecting users from your platform to specific menta functions while maintaining their authenticated state. The token is designed for single use and will expire after being used or after a predetermined time period.

**Parameters:**

- `user` (query, required)
- `method` (query)
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Responses:** `200` — One-time token successfully generated

## Smart Access Layer

Operations for retrieving smart access layer components that provide dynamic UI elements (buttons, banners, modals, lists, maps) for buy/sell functionality.

### GET /v1/wrapper/accesslayer — Get Smart Access Layer

Retrieves smart access layer components for a specific event and show. These components provide dynamic UI elements (buttons, banners, modals, lists, maps) that can be rendered in your application to enable buy/sell access points. The components are configured based on event rules and marketplace conditions. When type="buy", both eventId and showId are required.

**Parameters:**

- `type` (query, required)
- `eventId` (query)
- `showId` (query)
- `lang` (query)
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Responses:** `200` — Successfully retrieved smart access layer components

### POST /v1/wrapper/accesslayer — Generate Sell Access Layer for TicketIds

Evaluates the sellability of a user's tickets and returns the corresponding status and call-to-actions to render in your application (e.g. SELL, EDIT, DETAILS, P2P, PENDING_PAYOUT_INFO). The request body must contain a `tickets` array with at least one ticket. For each ticket, the response includes the sellability status (SELLABLE, NOT_SELLABLE, FOR_SALE, SOLD) and the URLs to redirect the user to complete the relevant flow.

**Parameters:**

- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, object) — top-level fields:

- `user` (string, required)
- `tickets` (array of object, required)

**Responses:** `200` — Successfully evaluated the sell access layer and returned per-ticket results with CTAs

### POST /v1/wrapper/accesslayer — Generate Sell Access Layer for OrderIds

Evaluates the sellability of a user's orders and returns an aggregated status and call-to-actions per order (e.g. SELL, EDIT, DETAILS, MANAGE, PENDING_PAYOUT_INFO). The request body must contain an `orders` array with at least one order. Both endpoints use the same URL (`POST /v1/wrapper/accesslayer`) — the mode is determined by whether the body contains `tickets` or `orders`.

**Parameters:**

- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, object) — top-level fields:

- `user` (string, required)
- `orders` (array of object, required)

**Responses:** `200` — Successfully evaluated the sell access layer and returned per-order results with CTAs

_Spec key in /api/openapi: `paths["/v1/wrapper/accesslayer (orders)"]`_

### POST /v1/wrapper/accesslayer/bulk — Get Smart Access Layer (Bulk)

Retrieves smart access layer components for multiple events and shows in a single request. This endpoint is optimized for batch operations when you need to fetch components for multiple shows at once, reducing the number of API calls required. Each item in the request body must include an eventId and at least one showId. This endpoint only returns components of type button, modal, and banner.

**Parameters:**

- `type` (query, required)
- `lang` (query)
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, array of object) — top-level fields:

- `eventId` (string, required)
- `showIds` (array of string, required)

**Responses:** `200` — Successfully retrieved smart access layer components for all requested event and show combinations

## Market Data

Operations for managing event market data including inventory levels and ticket leads for identifying potential buyers and sellers in the secondary market.

### PUT /v1/marketdata/events/:externalReferenceId/inventory — Update Event Inventory

Updates inventory data for a complete event show. Use this endpoint to update capacity, released tickets, reserved space, sold out status, and sales percentage for an entire show. This provides market-level visibility into physical and real-time inventory capacity. If the event has multiple shows, you must specify showId as a query parameter; otherwise it is optional.

**Parameters:**

- `externalReferenceId` (path, required)
- `showId` (query)
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, object) — top-level fields:

- `capacity` (number)
- `releasedTickets` (number)
- `reservedSpace` (number)
- `soldOut` (boolean)
- `soldPercentage` (number)

**Responses:** `200` — Successfully updated event inventory

### PUT /v1/marketdata/events/:externalReferenceId/inventory/details — Update Event Inventory Details

Updates inventory details for a complete event show. Use this endpoint to update capacity, released tickets, reserved space, sold out status, and sales percentage for an entire show. This provides market-level visibility into physical and real-time inventory capacity.

**Parameters:**

- `externalReferenceId` (path, required)
- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, object) — top-level fields:

- `items` (array of object, required)

**Responses:** `200` — Successfully updated event inventory details

### POST /v1/marketdata/users — Create Ticket Holder Lead

Creates a Ticket Holder lead for a specific event show. A Ticket Holder is a user who has completed a purchase in primary sales and owns a valid ticket. These leads help menta identify potential resellers in the secondary market. The buyer object must include at least one identifier (email, phone, or id). Fields ticketId and price are required for this lead type. The system uses upsert logic: if a lead with the same buyer identifier, externalReferenceEventId, and showId already exists, it will be updated instead of duplicated.

**Parameters:**

- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, object) — top-level fields:

- `type` (string, required)
- `externalReferenceEventId` (string, required)
- `showId` (string, required)
- `ticketId` (string, required)
- `buyer` (object, required)
- `price` (number, required)
- `currency` (string)
- `ticketOptionId` (string)
- `priceTypeId` (string)
- `date` (string)
- `seating` (object)
- `metadata` (object)
- `tags` (array of string)
- `attributes` (array of string)

**Responses:** `200` — Ticket Holder lead successfully created or updated

_Spec key in /api/openapi: `paths["/v1/marketdata/users (Ticket Holder)"]`_

### POST /v1/marketdata/users — Create Abandoned Cart Lead

Creates an Abandoned Cart lead for a specific event show. An Abandoned Cart lead represents a user who initiated the purchase process in primary sales but did not complete the transaction. These users are potential buyers in the secondary market when price or availability changes. The buyer object must include at least one identifier (email, phone, or id). The system uses upsert logic: if a lead with the same buyer identifier, externalReferenceEventId, and showId already exists, it will be updated instead of duplicated.

**Parameters:**

- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, object) — top-level fields:

- `type` (string, required)
- `externalReferenceEventId` (string, required)
- `showId` (string, required)
- `ticketId` (string)
- `buyer` (object, required)
- `ticketOptionId` (string)
- `priceTypeId` (string)
- `date` (string)
- `price` (number)
- `currency` (string)
- `seating` (object)
- `metadata` (object)
- `tags` (array of string)

**Responses:** `200` — Abandoned Cart lead successfully created or updated

_Spec key in /api/openapi: `paths["/v1/marketdata/users (Abandoned Cart)"]`_

### POST /v1/marketdata/users — Create Virtual Queue Lead

Creates a Virtual Queue lead for a specific event show. A Virtual Queue lead represents a user who was in the virtual queue to purchase tickets but abandoned the process without completing a purchase. These users demonstrated real-time interest in the event and are potential buyers in the secondary market. The buyer object must include at least one identifier (email, phone, or id). The system uses upsert logic: if a lead with the same buyer identifier, externalReferenceEventId, and showId already exists, it will be updated instead of duplicated.

**Parameters:**

- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, object) — top-level fields:

- `type` (string, required)
- `externalReferenceEventId` (string, required)
- `showId` (string, required)
- `buyer` (object, required)
- `ticketOptionId` (string)
- `priceTypeId` (string)
- `date` (string)
- `price` (number)
- `currency` (string)
- `metadata` (object)
- `tags` (array of string)

**Responses:** `200` — Virtual Queue lead successfully created or updated

_Spec key in /api/openapi: `paths["/v1/marketdata/users (Virtual Queue)"]`_

### POST /v1/marketdata/users — Create Wishlist Lead

Creates a Wishlist lead for a specific event show. A Wishlist lead represents a user who explicitly subscribed to receive availability notifications for tickets. This is the highest quality lead type due to the direct opt-in, showing high probability of conversion. The buyer object must include at least one identifier (email, phone, or id). The system uses upsert logic: if a lead with the same buyer identifier, externalReferenceEventId, and showId already exists, it will be updated instead of duplicated.

**Parameters:**

- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, object) — top-level fields:

- `type` (string, required)
- `externalReferenceEventId` (string, required)
- `showId` (string, required)
- `ticketId` (string)
- `buyer` (object, required)
- `ticketOptionId` (string)
- `priceTypeId` (string)
- `date` (string)
- `price` (number)
- `currency` (string)
- `metadata` (object)

**Responses:** `200` — Wishlist lead successfully created or updated

_Spec key in /api/openapi: `paths["/v1/marketdata/users (Wishlist)"]`_

### POST /v1/marketdata/users/bulk — Create Ticket Leads (Bulk)

Creates multiple ticket leads in a single request. You can mix different lead types (TICKET_HOLDER, ABANDONED_CART, VIRTUAL_QUEUE, WISHLIST) in the same request. Maximum of 1000 leads per request. Each lead is validated individually. The system uses upsert logic based on the buyer identifier (email, phone, or id) combined with externalReferenceEventId and showId, so sending the same lead multiple times will not create duplicates.

**Parameters:**

- `Authorization` (header, required) — Your menta tech private API Key provided by your account manager.

**Request body** (`application/json`, array of object) — top-level fields:

- `type` (string, required)
- `externalReferenceEventId` (string, required)
- `showId` (string, required)
- `ticketId` (string)
- `buyer` (object, required)
- `price` (number)
- `currency` (string)
- `ticketOptionId` (string)
- `priceTypeId` (string)
- `purchaseDate` (string)
- `seating` (object)
- `metadata` (object)
- `tags` (array of string)

**Responses:** `200` — Ticket leads successfully created or updated

---

_Generated from the OpenAPI spec. Canonical machine-readable source: https://docs.mentatech.io/api/openapi_
