Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Sumitbose5/tktplz/llms.txt

Use this file to discover all available pages before exploring further.

Events are the core resource in TktPlz. There are four event types — Seating (assigned seats in a hall/screen), Online (virtual events with an access link), Open (ground or festival events with zones), and Registration (hackathons and competitions with form-based registration). Each type is created through its own endpoint with type-specific fields.

Read endpoints

GET /api/event/get-all-events

Returns all events with verificationStatus = "approved" and isCompleted = false. Seating events are enriched with hall city and state. Each event includes the organiser’s name via a left join.
curl https://api.tktplz.me/api/event/get-all-events
Response
{
  "success": true,
  "message": "All approved events fetched successfully",
  "data": [
    {
      "id": "uuid",
      "name": "Battle of Bands",
      "type": "Open",
      "sub_type": "concert",
      "scheduleStart": "2026-06-15T18:00:00.000Z",
      "scheduleEnd": "2026-06-15T22:00:00.000Z",
      "city": "Mumbai",
      "state": "Maharashtra",
      "posterUrl": "https://res.cloudinary.com/...",
      "organiserName": "Rhythm Events",
      "verificationStatus": "approved",
      "isCompleted": false
    }
  ]
}

GET /api/event/get-event/:eventId

Fetches a single event by its UUID. For Seating events, the associated hall and screen objects are included. Pass an optional userId query parameter to receive an isLiked boolean.
eventId
string
required
UUID of the event.
userId
string
UUID of the authenticated user. When provided, the response includes isLiked.
curl "https://api.tktplz.me/api/event/get-event/abc-123?userId=user-uuid"
Response
{
  "success": true,
  "message": "Event details fetched successfully",
  "data": {
    "id": "abc-123",
    "name": "Interstellar Rerun",
    "type": "Seating",
    "sub_type": "movie",
    "organiserID": "org-uuid",
    "organiserName": "PVR Cinemas",
    "scheduleStart": "2026-07-01T14:00:00.000Z",
    "scheduleEnd": "2026-07-01T16:49:00.000Z",
    "hallID": "hall-uuid",
    "screenID": "screen-uuid",
    "posterUrl": "https://res.cloudinary.com/...",
    "isPaid": true,
    "isLiked": false,
    "hall": { "id": "hall-uuid", "name": "PVR Juhu", "city": "Mumbai" },
    "screen": { "id": "screen-uuid", "screenNumber": 3, "totalSeats": 200 }
  }
}

GET /api/event/get-events/:organiserId

Returns all events for a specific organiser. Seating events are enriched with hall city, state, and areaName.
organiserId
string
required
UUID of the organiser.
curl https://api.tktplz.me/api/event/get-events/org-uuid

GET /api/event/get-events-type/:subtype

Returns all approved, incomplete events filtered by sub_type (e.g. movie, concert, hackathon).
subtype
string
required
The sub_type value to filter by.
curl https://api.tktplz.me/api/event/get-events-type/concert

GET /api/event/ticket-details/:eventId

Returns the ticket pricing configuration for an event. If a flat price is set, price is a single object from ticket_prices. If categorized pricing is used, categories is an array.
eventId
string
required
UUID of the event.
curl https://api.tktplz.me/api/event/ticket-details/event-uuid
Response
{
  "success": true,
  "data": {
    "price": {
      "id": "uuid",
      "eventId": "event-uuid",
      "flatPrice": "350.00",
      "numberOfTickets": 200,
      "pricingOption": "flat"
    },
    "categories": []
  }
}

GET /api/event/get-price-details/:eventId

Returns full pricing details alongside the event record. Tries ticket_prices first; falls back to ticket_categories.
eventId
string
required
UUID of the event.
curl https://api.tktplz.me/api/event/get-price-details/event-uuid
Response
{
  "success": true,
  "result": {
    "price": {
      "id": "uuid",
      "eventId": "event-uuid",
      "flatPrice": "499.00",
      "numberOfTickets": 500,
      "pricingOption": "flat"
    },
    "event": { "id": "event-uuid", "name": "Tech Summit 2026", "type": "Open" }
  }
}

GET /api/event/get-booked-seats/:eventId

Returns seat IDs that have CONFIRMED tickets for a Seating event.
eventId
string
required
UUID of the Seating event.
curl https://api.tktplz.me/api/event/get-booked-seats/event-uuid
Response
{
  "success": true,
  "message": "Booked seats fetched successfully",
  "bookedSeatIds": ["seat-uuid-1", "seat-uuid-2"]
}

Create endpoints

Create endpoints are restricted to organiser accounts. Include the tktplz_cookie cookie from an organiser session.

POST /api/event/create/Seating

Creates a seating event tied to a specific hall and screen. The system checks for time-slot conflicts on the selected screen (with a 1-hour buffer between events).
eventName
string
required
Name of the event.
organiserID
string
required
UUID of the organiser creating the event.
type
string
required
Must be "Seating".
subtype
string
required
Sub-category, e.g. "movie", "concert".
hallID
string
required
UUID of the hall.
screenID
string
required
UUID of the screen within the hall.
start
string
required
ISO 8601 datetime string for the event start.
end
string
required
ISO 8601 datetime string for the event end.
isPaid
boolean
required
Whether the event requires payment.
pricingOption
string
"flat" or "categorized". Required when isPaid is true.
flatPrice
number
Price per seat when pricingOption is "flat".
categorizedPrices
array
Array of { type, numberOfTickets, price } objects when pricingOption is "categorized".
bookingCutoffType
string
required
One of "until_sold", "before_start", or "custom_time".
bookingCutoffMinutesBeforeStart
number
Minutes before event start to close booking. Required when bookingCutoffType is "before_start".
bookingCutoffTimestamp
string
ISO 8601 datetime string. Required when bookingCutoffType is "custom_time".
description
string
Event description.
genre
string
Genre, e.g. "action", "drama".
language
string
Language of the event. Defaults to "Hindi".
ratingCode
string
Rating code: "U", "UA", or "A".
eligibility_age
number
Minimum age required.
ticketsCancellable
boolean
Whether tickets can be cancelled for a refund.
curl -X POST https://api.tktplz.me/api/event/create/Seating \
  -H "Content-Type: application/json" \
  --cookie "tktplz_cookie=<token>" \
  -d '{
    "eventName": "Inception (2010)",
    "organiserID": "org-uuid",
    "type": "Seating",
    "subtype": "movie",
    "hallID": "hall-uuid",
    "screenID": "screen-uuid",
    "start": "2026-08-01T18:00:00.000Z",
    "end": "2026-08-01T20:28:00.000Z",
    "isPaid": true,
    "pricingOption": "flat",
    "flatPrice": 250,
    "bookingCutoffType": "until_sold",
    "language": "English",
    "ratingCode": "UA"
  }'
Response
{
  "success": true,
  "message": "Inception (2010) created successfully, starts at 2026-08-01T18:00:00.000Z",
  "eventID": "new-event-uuid",
  "screenID": "screen-uuid"
}

POST /api/event/create/Online

Creates an online event with a platform link.
eventName
string
required
Name of the event.
organiserID
string
required
UUID of the organiser.
type
string
required
Must be "Online".
subtype
string
required
Sub-category, e.g. "webinar", "workshop".
start
string
required
ISO 8601 datetime for event start.
end
string
required
ISO 8601 datetime for event end.
maxParticipantAllowed
number
required
Maximum number of attendees.
platformForOnlineEvent
string
Platform name, e.g. "Zoom", "Google Meet".
onlineDetails
object
required
isPaid
string
"true" or "false" (string, not boolean for this endpoint).
pricingOption
string
"flat" or "categorized".
flatPrice
number
Flat ticket price.
categorizedPrices
array
Array of { type, numberOfTickets, price }.
bookingCutoffType
string
required
"until_sold", "before_start", or "custom_time".
curl -X POST https://api.tktplz.me/api/event/create/Online \
  -H "Content-Type: application/json" \
  --cookie "tktplz_cookie=<token>" \
  -d '{
    "eventName": "Web3 Masterclass",
    "organiserID": "org-uuid",
    "type": "Online",
    "subtype": "workshop",
    "start": "2026-09-10T10:00:00.000Z",
    "end": "2026-09-10T13:00:00.000Z",
    "maxParticipantAllowed": 300,
    "platformForOnlineEvent": "Zoom",
    "onlineDetails": { "link": "https://zoom.us/j/123456" },
    "isPaid": "true",
    "pricingOption": "flat",
    "flatPrice": 99,
    "bookingCutoffType": "until_sold"
  }'

POST /api/event/create/Open

Creates an open-ground event (concerts, festivals) with optional zones.
eventName
string
required
Name of the event.
organiserID
string
required
UUID of the organiser.
type
string
required
Must be "Open".
subtype
string
required
Sub-category, e.g. "concert", "festival".
location
string
Venue name or address.
city
string
City name.
state
string
State name.
area_name
string
Area or neighbourhood.
start
string
required
ISO 8601 datetime.
end
string
required
ISO 8601 datetime.
maxParticipantAllowed
number
required
Capacity.
isPaid
boolean
required
Whether tickets are paid.
pricingOption
string
"flat" or "categorized".
categorizedPrices
array
Array of { type, numberOfTickets, price }.
bookingCutoffType
string
required
"until_sold", "before_start", or "custom_time".

POST /api/event/create/Registration

Creates a registration-based event (hackathons, college fests) with a dynamic form schema stored in MongoDB.
eventName
string
required
Name of the event.
organiserID
string
required
UUID of the organiser.
type
string
required
Must be "Registration".
subtype
string
required
Sub-category, e.g. "hackathon", "fest".
participationType
string
"solo" or "team".
minTeamMembers
number
Minimum team size (for team events).
maxTeamMembers
number
Maximum team size (for team events).
registrationFields
array
required
Array of form field definitions. Each object has name, type, required, and optional options.
eligibility_criteria
string
Text describing eligibility requirements.
start
string
required
ISO 8601 datetime.
end
string
required
ISO 8601 datetime.
maxParticipantAllowed
number
required
Capacity.
isPaid
boolean
Whether registration is paid.
pricingOption
string
"flat" or "categorized".
flatPrice
number
Flat registration fee.
bookingCutoffType
string
required
"until_sold", "before_start", or "custom_time".

Update endpoints

POST /api/event/upload-poster

Uploads a poster image to Cloudinary. Send as multipart/form-data with a field named poster. Returns the full Cloudinary result object.
curl -X POST https://api.tktplz.me/api/event/upload-poster \
  --cookie "tktplz_cookie=<token>" \
  -F "poster=@/path/to/image.jpg"
Response
{
  "success": true,
  "message": "Uploaded!",
  "data": {
    "secure_url": "https://res.cloudinary.com/dgxc8nspo/image/upload/v.../posters/abc.jpg",
    "public_id": "posters/abc",
    "width": 1200,
    "height": 628
  }
}

POST /api/event/update-details

Updates editable fields on an event. Fields such as id, hallID, screenID, verificationStatus, isPaid, and posterUrl are excluded from updates.
eventId
string
required
UUID of the event to update.
details
object
required
Object containing the fields to update. Date fields (scheduleStart, scheduleEnd, bookingCutoffTimestamp, bookingCloseTime) must be ISO 8601 strings.
curl -X POST https://api.tktplz.me/api/event/update-details \
  -H "Content-Type: application/json" \
  --cookie "tktplz_cookie=<token>" \
  -d '{
    "eventId": "event-uuid",
    "details": {
      "description": "Updated description for this event.",
      "scheduleStart": "2026-08-01T19:00:00.000Z"
    }
  }'

Delete endpoint

POST /api/event/delete-event

Deletes an event. For Seating events, the associated screen is freed (booked timestamps cleared, status set to "available"). For Registration events, the MongoDB form schema is also deleted.
eventId
string
required
UUID of the event to delete.
curl -X POST https://api.tktplz.me/api/event/delete-event \
  -H "Content-Type: application/json" \
  --cookie "tktplz_cookie=<token>" \
  -d '{"eventId": "event-uuid"}'
Response
{
  "success": true,
  "message": "Event deleted successfully"
}

Build docs developers (and LLMs) love