> ## Documentation Index
> Fetch the complete documentation index at: https://partner-help.letsdothis.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List tickets for an event

> Returns a paginated list of the bookable tickets on an event, for the occurrence we resolve for you — the next upcoming one, or the most recent if none is upcoming.

Only tickets that can be booked right now are returned: sold out, closed and not-yet-on-sale tickets are omitted, so a ticket's absence here is not evidence that it does not exist. To see every ticket on a specific date, with an `availability` on each, use the list under an **event occurrence** instead.



## OpenAPI

````yaml /openapi.json get /v0/events/{id}/tickets
openapi: 3.1.0
info:
  title: Let's Do This API
  version: 0.1.0
  description: >
    The full reference — getting started, pagination, error responses, rate
    limits and the changelog — lives at

    [partner-help.letsdothis.com/api-reference](https://partner-help.letsdothis.com/api-reference/overview).

    This page is the interactive OpenAPI view of the same specification.


    # Authentication


    Create an API key from **Settings** → **Credentials** in your Let's Do This
    account and send it as a bearer token:


    ```bash

    curl --request GET \
     --url "https://api.letsdothis.com/v0/participants" \
     --header "Authorization: Bearer YOUR-API-KEY"
    ```


    Keep the key secret: it identifies your organization, so do not ship it in a
    website or native app. If a key is exposed,

    revoke it from the same section and create a replacement.


    # OpenAPI schema


    Download the [OpenAPI schema](https://api.letsdothis.com/documentation/json)
    to use with Postman or an OpenAPI client

    generator.
servers:
  - url: https://api.letsdothis.com
    description: Production
  - url: https://api.staging.letsdothis.com
    description: Staging
security:
  - bearerAuth: []
tags:
  - name: Events
    x-group: Events
    description: Events that participants can register for.
  - name: EventOccurrences
    x-group: Event occurrences
    description: >-
      Event occurrences scoped to the organizer associated with your Public API
      credentials. Unlike the public Events catalog, results are limited to your
      own events.
  - name: Races
    x-group: Races
    description: >-
      Races within an event occurrence. An event occurrence may have one or more
      races, for example a 5K and a 10K within the same race day.
  - name: Tickets
    x-group: Tickets
    description: Tickets that are available for events.
  - name: BookingForms
    x-group: Booking forms
    description: >-
      Booking forms define the questions a booker answers when registering for a
      ticket. A ticket usually references a single booking form, so expect zero
      or one, while a booking form may be shared across multiple tickets.
  - name: BookingFormFields
    x-group: Booking form fields
    description: >-
      Booking form fields are the individual questions on a booking form — their
      type, label, options, and whether an answer is required. A field can be
      reused across multiple forms.
  - name: Bookings
    x-group: Bookings
    description: >-
      Bookings are the transaction record for a registration. A booking may
      contain one or more participants (entries).
  - name: Participant
    x-group: Participants
    description: Participants are users who successfully booked an event.
  - name: LineItem
    x-group: Line items
    description: Financial details related to individual items within transactions.
  - name: AddOns
    x-group: Add-ons
    description: >-
      Organizer-owned products that can be purchased and allocated to
      participants. Imported products retain stable external identities.
  - name: DiscountCodes
    x-group: Discount codes
    description: >-
      Discount codes participants enter at checkout to reduce the price of a
      booking.
  - name: Credits
    x-group: Credits
    description: >-
      Credits are balances participants can spend at checkout, identified by
      their email address.
  - name: Referrals
    x-group: Referrals
    description: >-
      Referral programs, the referrers registered on them, and asynchronous
      imports of historical referrals.
  - name: Application
    x-group: Applications
    description: >-
      Applications are created when a user applies for tickets that are set up
      to require an application process, such as balloted or "Good For Age"
      entries.
  - name: Partner
    x-group: Partners
    description: >-
      Partners that were created by the organization who can have Reserved
      Entries assigned to them.
  - name: ReservedEntries
    x-group: Reserved entries
    description: >-
      Reserved Entries are entries that are reserved for a partner. After being
      assigned, the partner can then allocate these entries to participants.
  - name: Timing
    x-group: Timing
    description: >-
      Timing providers push bib numbers and bib-pack shipments back to Let's Do
      This for the startlist entries they received. Available to select timing
      partners only.
paths:
  /v0/events/{id}/tickets:
    get:
      tags:
        - Tickets
      summary: List tickets for an event
      description: >-
        Returns a paginated list of the bookable tickets on an event, for the
        occurrence we resolve for you — the next upcoming one, or the most
        recent if none is upcoming.


        Only tickets that can be booked right now are returned: sold out, closed
        and not-yet-on-sale tickets are omitted, so a ticket's absence here is
        not evidence that it does not exist. To see every ticket on a specific
        date, with an `availability` on each, use the list under an **event
        occurrence** instead.
      parameters:
        - schema:
            type:
              - number
              - 'null'
            minimum: 1
            maximum: 500
            example: 100
          in: query
          name: page[size]
          required: false
          description: >-
            The number of entries to return per page. Range between 1 - 500,
            defaults to 100
        - schema:
            type:
              - string
              - 'null'
          in: query
          name: page[after]
          required: false
          description: >-
            Accepts an existing page cursor. For more details see the definition
            of PageCursor in the response.
        - schema:
            type:
              - string
              - 'null'
          in: query
          name: page[before]
          required: false
          description: >-
            Accepts an existing page cursor. For more details see the definition
            of PageCursor in the response.
        - schema:
            type: string
          example: '67123'
          in: path
          name: id
          required: true
          description: The ID of the resource to query by
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedTickets'
components:
  schemas:
    PagedTickets:
      title: PagedTickets
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Ticket'
        page:
          $ref: '#/components/schemas/PageCursor'
      required:
        - data
        - page
      additionalProperties: false
      description: A paginated list of tickets.
    Ticket:
      title: Ticket
      type: object
      properties:
        id:
          type: string
          description: A unique identifier for the ticket.
        title:
          type: string
          description: The name of the ticket
        titleByLocale:
          type: object
          additionalProperties:
            type: string
          description: >-
            Ticket title translated to multiple locales.


            Will always include the default title, and may also specify
            translations in a number of other locales.
          example:
            en-GB: 10k Standard Entry
            fr-FR: Entrée Standard 10k
        description:
          type: string
          description: The description of the ticket
        ticketSlug:
          type: string
          description: The slug of the ticket — a stable public identifier
        raceId:
          type: string
          description: The unique identifier of the associated race
        raceTitle:
          type: string
          description: The name of the associated race
        price:
          $ref: '#/components/schemas/Price'
        availability:
          $ref: '#/components/schemas/TicketAvailabilityType'
        isDeleted:
          type: boolean
          description: >-
            Whether the organizer has deleted this ticket.


            A deleted ticket stops appearing in any ticket list, but stays
            readable by id, because bookings outlive it — every booking carries
            the `ticketId` it was made against, and that reference has to keep
            resolving. `availability` reports a deleted ticket as
            `NOT_AVAILABLE`, which does not distinguish it from one the
            organizer merely switched off; this does.
          example: false
      required:
        - id
        - title
        - titleByLocale
        - ticketSlug
        - raceId
        - raceTitle
        - price
        - availability
        - isDeleted
      additionalProperties: false
      description: A ticket that is associated to an event and race.
      example:
        id: '1300915742'
        title: 10k Standard Entry
        titleByLocale:
          en-GB: 10k Standard Entry
          fr-FR: Entrée Standard 10k
        description: Nulla sed mi egestas, condimentum orci quis, pulvinar odio.
        ticketSlug: '1106607777'
        raceId: '11120888'
        raceTitle: City Sprint Challenge
        price:
          value: 1000
          currencyCode: GBP
        availability: AVAILABLE
        isDeleted: false
    PageCursor:
      title: PageCursor
      type: object
      properties:
        totalResults:
          type: number
          description: The total number of results available.
        first:
          type: string
          description: The cursor for the first page of results.
        last:
          type: string
          description: The cursor for the last page of results.
        prev:
          type: string
          description: The cursor for the previous page of results.
        next:
          type: string
          description: The cursor for the next page of results.
      required:
        - totalResults
        - first
        - last
        - prev
        - next
      additionalProperties: false
      description: >-
        **Cursor details for pagination**.

        - In scenarios with large amounts of data, it's common to return only a
        subset of data in a single request, known as a "page".

        - Most API responses include two objects: a 'data' object with the query
        results, and a 'PageCursor' object detailing the current page.

        - Cursors can be used to navigate to earlier or later pages in the set
        of results. For instance, passing the 'next' cursor from 'PageCursor'
        fetches the next set of results.

        - Cursors are base64 encoded strings.
      example:
        totalResults: 506
        first: >-
          eyJpZCI6IjYzOTljMjAwMTVkNjBhZTNmZjI4ZjI0YyIsInVwZGF0ZWRBdCI6IjIwMjItMTItMTRUMTI6MzA6NTkuMjE3WiJ9
        last: >-
          eyJpZCI6IjY1NGNkZDIxZDlhMTU3ODdiNzFkMTM0YSIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNzI0WiJ9
        prev: ''
        next: >-
          eyJpZCI6IjY0NzBkNTkwM2RjOWE5OWJhMTA0Y2ZhYiIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNjE4WiJ9
    Price:
      title: Price
      type: object
      properties:
        value:
          $ref: '#/components/schemas/PriceValue'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
      required:
        - value
        - currencyCode
      additionalProperties: false
      description: >-
        A monetary value in 100x base unit format. For example, 1 GBP is
        represented as: _{ "value": 100, "currencyCode": "GBP" }_


        And 5 cents are represented as: _{ "value": 5, "currencyCode": "USD" }_
    TicketAvailabilityType:
      title: TicketAvailabilityType
      type: string
      enum:
        - AVAILABLE
        - SOLD_OUT
        - CLOSED
        - COMING_SOON
        - NOT_AVAILABLE
      description: >-
        Whether a ticket can be booked, and if not, why.


        Derived rather than configured: it folds the organizer's availability
        setting together with sold-out, expiry, on-sale date and deletion, so it
        answers what a buyer would actually experience rather than what was set
        up.
    PriceValue:
      title: PriceValue
      type: number
      description: >-
        A monetary value in 100x base unit format. For example, 1 GBP is
        represented as: 100, and 5 cents are represented as: 5
      example: 5000
    CurrencyCode:
      title: CurrencyCode
      type: string
      enum:
        - AUD
        - CAD
        - DKK
        - EUR
        - GBP
        - INR
        - MXN
        - PHP
        - USD
        - ZERO
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````