Get Ticket Categories & Pricing

Fetch available ticket categories with pricing information for a specific experience (event or cinema movie).

GET /api/v1/merpi/experience/tickets/{experience_id}

This endpoint returns all available ticket types and their pricing for a specific experience. Use this endpoint to:

  • Display ticket prices to customers before booking

  • Show available ticket categories (Regular, VIP, Premium, etc.)

  • Check seat availability via slots_remaining

  • Understand pricing breakdown including ticket price, convenience fees, and merchant commissions

  • Validate ticket availability before initiating checkout

circle-exclamation

Retrieve Ticket Categories and Pricing

get

Fetch a list of ticket categories available for a specific experience with complete pricing information.

This endpoint returns:

  • All ticket types (Regular, VIP, Premium, etc.)

  • Total price customers pay

  • Detailed price breakdown (base price, convenience fee, merchant commission)

  • Available ticket slots

  • Free ticket indicators

CRITICAL: Always validate slots_remaining before allowing ticket purchases.

Path parameters
experience_idstring · uuidRequired

Unique identifier for the experience (UUID format). Works for both regular experiences and cinema experiences.

Example: 9b0c2340-8274-4e9b-b7b8-a652dbb652eb
Responses
chevron-right
200

Successfully retrieved ticket categories and pricing

application/json
successbooleanOptional

Indicates whether the request was successful.

statusintegerOptional

HTTP status code (200 for success).

messagestringOptional

Human-readable description of the response.

get
/api/v1/merpi/experience/tickets/{experience_id}

Path Parameters

Parameter
Type
Required
Description

experience_id

string (UUID)

Yes

Unique identifier for the experience. Works for both regular experiences and cinema experiences.

Response Format

Root Response Object

Field
Type
Description

success

boolean

Indicates whether the request was successful.

status

integer

HTTP status code (200 for successful requests).

message

string

Human-readable description of the response.

data

object

Container object holding ticket data.

Data Object

Field
Type
Description

tickets

array

Array of ticket category objects. Each represents a different ticket type available for purchase.

Ticket Object

Field
Type
Description

id

string (UUID)

Unique identifier for this ticket category. Use this ID when creating bookings.

title

string

Display name of the ticket category (e.g., "Regular", "VIP", "Premium", "Student").

price

integer

Total price in local currency (NGN for Nigeria). This is what the customer pays. Includes ticket price, convenience fee, and merchant commission.

free

boolean

Indicates if this ticket type is free. When true, price will be 0.

slots_remaining

integer

Number of tickets still available for this category. Check this before allowing purchases.

price_breakdown

object

Detailed breakdown of the total price showing individual components.

experience

object

Reference to the experience this ticket belongs to.

Price Breakdown Object

circle-exclamation
Field
Type
Description

ticket_price

integer

Base ticket price set by the business/organizer.

convenience_fee

integer

Platform convenience fee charged.

merchant_commission

integer

Commission fee charged for the merchant (informational - already included in total).

circle-exclamation

The total price is what customers pay. The price_breakdown shows how this total is calculated.

Experience Reference Object

Field
Type
Description

id

string (UUID)

Unique identifier for the experience.

title

string

Title/name of the experience.

Validating Ticket Availability

circle-exclamation

Check slots_remaining before allowing ticket purchases:

  • If slots_remaining is 0, the ticket category is sold out

  • If slots_remaining is less than requested quantity, show error

  • Refresh ticket data before finalizing purchases (availability can change)

JavaScript Validation

Python Validation

Working with Free Tickets

When free: true:

Integration Workflow

Complete Ticket Selection Flow

Response Caching Considerations

circle-exclamation

Recommendations:

  • Cache ticket data for maximum 1-2 minutes

  • Always fetch fresh data before checkout

  • Implement optimistic UI with server validation

  • Handle "sold out" errors gracefully during booking {% endhint %}

Next Steps

After fetching ticket information:

  1. Display ticket options - Show all categories with prices and availability

  2. Validate selection - Check slots_remaining before allowing checkout

  3. Create booking - Use the ticket id when calling the booking endpoint

  4. Handle sold out - Gracefully handle cases where slots_remaining is 0

Last updated