---
title: "List tickets with cursor-based pagination"
method: GET
path: "/tickets"
tags: ["Tickets"]
---

# List tickets with cursor-based pagination

`GET /tickets`

Returns ticket data with cursor-based pagination, optional full-text search via `query`, and a fixed attendee-name ascending order for non-search list paths.

## Query parameters

- `promoterId` string — Filter tickets by promoter/organizer unique identifier (optional)
- `eventId` string — Filter tickets by event unique identifier (optional)
- `customerId` string — Filter tickets by customer unique identifier (optional)
- `orderId` string — Filter tickets by order unique identifier (optional)
- `status` 'ACTIVE' | 'REDEEMED' | 'CANCELLED' — Filter tickets by status: ACTIVE (can be used), REDEEMED (already used), CANCELLED (invalidated or refunded)
- `orderSignature` string — Order signature used to access tickets for a specific order without permissions (16 characters, base64url encoded)
- `query` string — Optional search query to filter tickets by customer details. When provided, search-backed pagination is used.
- `limit` integer — Maximum number of tickets to return per request (1-100, default: 20)
- `cursor` string — Pagination cursor for continuing to fetch subsequent results (optional)

## Response `200`

OK

- object
  - `tickets` Ticket[], required — Array of tickets for the current result set
    - `id` string, required — Unique identifier for the ticket
    - `createdAt` string, date-time, required — Timestamp when the ticket was created in ISO 8601 format
    - `updatedAt` string, date-time, required — Timestamp when the ticket was last updated in ISO 8601 format
    - `scans` object[], required — Array of all scan records for this ticket (check-ins and check-outs)
      - `id` string, required — Unique identifier of the ticket scan record
      - `scannedAt` string, date-time, required — Timestamp when the ticket was scanned in ISO 8601 format
      - `scannedById` string, required — Unique identifier of the user who performed the scan
      - `scannedBy` object, required — Detailed information about the user who performed the scan
        - `id` string, required — Unique identifier of the user who performed the ticket scan
        - `firstName` string, required — First name of the user who performed the scan
        - `lastName` string, required — Last name of the user who performed the scan
        - `email` string, email, required — Email address of the user who performed the scan
      - `deviceId` string, required — Unique identifier of the device used for scanning
      - `kind` 'CHECK_IN' | 'CHECK_OUT', required — Type of scan operation: CHECK_IN for entry, CHECK_OUT for exit
    - `status` 'ACTIVE' | 'REDEEMED' | 'CANCELLED', required — Current status of the ticket: ACTIVE (can be used), REDEEMED (already used), CANCELLED (invalidated or refunded)
    - `attendee` object, required — Attendee information for this ticket - editable by tenant admins
      - `firstName` string, required — First name of the ticket attendee
      - `lastName` string, required — Last name of the ticket attendee
      - `email` string, email, required — Email address of the ticket attendee
      - `phone` string — Phone number of the ticket attendee (optional)
    - `customerId` string, required — Unique identifier of the customer who purchased this ticket (read-only)
    - `eventId` string, required — Unique identifier of the event this ticket grants access to
    - `event` object, required — Event details for this ticket
      - `id` string, required — Event ID reference
      - `name` string, required — The title of the event shown to attendees
      - `slug` string, required — URL-friendly identifier for the event
      - `location` object, required — Structured location details for the event
        - `id` string, required — Location identifier
        - `googlePlaceId` string — Google Place ID for this location
        - `createdAt` string, date-time, required — Timestamp in ISO 8601 format when the location was created
        - `updatedAt` string, date-time, required — Timestamp in ISO 8601 format when the location was last updated
        - `name` string, required — Location name
        - `address` string, required — Formatted address
        - `city` string — City name
        - `state` string — State or region
        - `postcode` string — Postal code
        - `country` string, required — Country name
        - `latitude` number, required — Latitude coordinate
        - `longitude` number, required — Longitude coordinate
        - `timeZone` string, required — IANA timezone identifier (e.g., 'America/New_York', 'Europe/London', 'Australia/Sydney', 'UTC'). Must be validated against the IANA timezone database where used.
        - `types` string[] — Google Place types indicating the category and nature of this location
        - `description` string — AI-generated description of the place, when available
        - `image` object — Primary location photo
          - `src` string, uri, required
          - `alt` string, required
          - `width` number, required
          - `height` number, required
        - `venueId` string — Venue identifier if this location is a managed venue on the platform
      - `entryStartsAt` string, required — Wall clock time when event entry begins (no timezone, displays same everywhere)
      - `entryEndsAt` string, required — Wall clock time when event entry ends (no timezone, displays same everywhere)
      - `images` object, required
        - `mobile` object, required — Mobile-optimized image for the event
          - `src` string, uri, required
          - `alt` string, required
          - `width` number, required
          - `height` number, required
        - `desktop` object, required — Desktop-optimized image for the event
          - `src` string, uri, required
          - `alt` string, required
          - `width` number, required
          - `height` number, required
    - `admissionId` string, required — Unique identifier of the admission type/tier this ticket represents
    - `admission` object, required — Admission details for this ticket
      - `id` string, required — Admission ID reference
      - `name` string, required — Admission type name at time of purchase
      - `price` object, required — Price snapshot at time of purchase
        - `base` number, required — Base price in smallest currency unit (cents)
        - `booking` number, required — Booking fee in smallest currency unit (cents)
        - `currency` string, required — ISO 4217 currency code
      - `entryStartsAt` string, required — Wall clock time when ticket holder can enter (no timezone, displays same everywhere)
      - `entryEndsAt` string, required — Wall clock time when entry period ends (no timezone, displays same everywhere)
    - `section` object — Section details for this ticket (if assigned to a section)
      - `id` string, required — Section ID reference
      - `name` string, required — Section name at time of purchase
      - `location` object, required — Physical location details
        - `name` string, required — Venue or location name
        - `address` string — Street address
        - `city` string — City name
        - `state` string — State or province
        - `postcode` string — Postal/ZIP code
        - `country` string — ISO country code
        - `latitude` number — Geographic latitude coordinate
        - `longitude` number — Geographic longitude coordinate
        - `timeZone` string — IANA timezone identifier
    - `orderId` string, required — Unique identifier of the order this ticket was purchased in
    - `orderItemId` string — Unique identifier of the specific order item this ticket represents
    - `teamId` string, required — Identifier of the team that owns this ticket
    - `promoterId` string, required — Unique identifier of the promoter/organizer who created this event
  - `before` string, nullable — Cursor for navigating backward in the result set. Omitted when there are no prior results.
  - `after` string, nullable — Cursor for navigating forward in the result set. Omitted when there are no subsequent results.
  - `limit` number, required — Maximum number of items to return in each result set

## Other responses

- `400` — 400
- `401` — 401
- `403` — 403
- `404` — 404
- `409` — 409
- `412` — 412
- `422` — 422
- `429` — 429
- `500` — 500
- `501` — 501
- `503` — 503

---

[API](https://skmtc.net/session/apis/session-services-api.md) · [All operations](https://skmtc.net/session/apis/session-services-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/session/session-services-api/versions/a1bb6f6c8a2e/schema)
