> ## 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 applications for an event

> Returns all applications associated with an event.



## OpenAPI

````yaml /openapi.json get /v0/events/{id}/applications
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}/applications:
    get:
      tags:
        - Application
      summary: List applications for an event
      description: Returns all applications associated with an event.
      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
              - 'null'
            enum:
              - '1'
              - '-1'
              - null
            example: '1'
          in: query
          name: sort[updatedAt]
          required: false
          description: Sort by update date. 1 for ascending, -1 for descending.
        - schema:
            type:
              - string
              - 'null'
            enum:
              - '1'
              - '-1'
              - null
            example: '1'
          in: query
          name: sort[createdAt]
          required: false
          description: Sort by creation date. 1 for ascending, -1 for descending.
        - schema:
            type:
              - string
              - 'null'
            format: date-time
            example: '2020-01-01T20:15:00.000Z'
          in: query
          name: createdAt[after]
          required: false
          description: Only return entries created after this date.
        - schema:
            type:
              - string
              - 'null'
            format: date-time
            example: '2020-01-01T20:15:00.000Z'
          in: query
          name: createdAt[before]
          required: false
          description: Only return entries created before this date.
        - schema:
            type:
              - string
              - 'null'
            format: date-time
            example: '2020-01-01T20:15:00.000Z'
          in: query
          name: updatedAt[after]
          required: false
          description: Only return entries updated after this date.
        - schema:
            type:
              - string
              - 'null'
            format: date-time
            example: '2020-01-01T20:15:00.000Z'
          in: query
          name: updatedAt[before]
          required: false
          description: Only return entries updated before this date.
        - schema:
            type:
              - boolean
              - 'null'
          in: query
          name: extendMetadata
          required: false
          description: If set to true, all available metadata is returned.
        - schema:
            type:
              - string
              - 'null'
            example: tags,gdpr_redacted
          in: query
          name: features
          required: false
          description: >-
            A comma-separated list of optional features to enable for the
            request. Each feature extends the response with additional fields or
            behaviors.


            - `tags` — Exposes operational tags (e.g. `"injured"`, `"deferral"`)
            on each entry, enabling filtering and segmentation in consuming
            systems.

            - `gdpr_redacted` — Indicates whether an entry has been redacted
            following a GDPR request, so consuming systems can suppress it
            accordingly.

            - `boolean_value` — Provides a parsed boolean representation of
            agreement, confirmation, and yes/no answers on `Field` entries,
            removing the need for client-side string normalization.
        - 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/PagedApplications'
components:
  schemas:
    PagedApplications:
      title: PagedApplications
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Application'
        page:
          $ref: '#/components/schemas/PageCursor'
      required:
        - data
        - page
      additionalProperties: false
      description: >-
        When requesting a list of applications, the response will be paginated.
        The data field will contain an array of **Application** objects, and the
        page field will contain a **PageCursor** object detailing the current
        page and cursors to navigate to earlier or later pages.
    Application:
      title: Application
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          description: >-
            A unique identifier. IDs should be treated as opaque string values
            but are guaranteed to represent a single, unique entity within Let's
            Do This.
          example: 6399c20015d60ae3ff28f24c
        participantIndex:
          type: number
          description: >-
            The index of this participant in the booking record. For example, if
            this participant is the first participant in the booking, this field
            will be 0.
          example: 0
        bookingId:
          type: string
          description: >-
            The unique identifier for the booking this participant was booked
            via.
          example: 6399c20015d60ae3ff28f24c
        transactionId:
          type:
            - string
            - 'null'
          description: >-
            The unique identifier for the transaction this booking was made via,
            if present.
          example: 6399c20015d60ae3ff28f24e
        eventOccurrenceId:
          type: string
          description: >-
            The unique identifier for the occurrence of the Event for which this
            participant is attending.
          example: 6399c11c58f29f001ca95935
        eventId:
          type: string
          description: The unique identifier of the Event.
          example: '2365756'
        raceId:
          type: string
          description: The unique identifier for the race this booking was made for.
          example: '3517846101'
        ticketTitle:
          type: string
          description: The title of the ticket booked by this participant.
          example: 10k Standard Entry
        ticketId:
          type: string
          description: The unique identifier for the ticket this booking was made for.
          example: 6399c11c58f29f001ca95934
        createdAt:
          $ref: '#/components/schemas/ISODate'
        updatedAt:
          $ref: '#/components/schemas/ISODate'
        waves:
          type: array
          items:
            $ref: '#/components/schemas/Wave'
          description: >-
            **Optional — opt in with `?features=waves`.** Available when the
            `waves` feature is enabled. See the "Optional features" section of
            the introduction.


            The waves this participant is booked into, if applicable.
        fields:
          type: array
          items:
            $ref: '#/components/schemas/Field'
          description: >-
            An array of Field objects containing participant data collected
            during booking. Includes standard fields (e.g., `firstName`,
            `lastName`, `email`, `dateOfBirth`, `phone`, `status`, address
            fields, emergency contact) and any custom fields defined by the
            organizer.
        booker:
          anyOf:
            - $ref: '#/components/schemas/Booker'
            - type: 'null'
          description: >-
            Contact information for the person who made the booking, if the
            booking form was set up to allow a separate booker and participant.
            See Booker for more details.
        bookerType:
          anyOf:
            - $ref: '#/components/schemas/BookerType'
            - type: 'null'
        originalTicketPrice:
          anyOf:
            - $ref: '#/components/schemas/Price'
            - type: 'null'
          description: >-
            The original price for the ticket this participant booked. See Price
            for more details.
        incrementalStatus:
          $ref: '#/components/schemas/IncrementalStatus'
        bibNumber:
          type:
            - string
            - 'null'
        bookingCodesUsed:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
            required:
              - code
            additionalProperties: false
          description: Any discount codes applied at booking.
          example:
            code: SPRINT10
        reservedEntryUrl:
          type:
            - string
            - 'null'
          description: 'Reserved entry booking URL: included if granted to the application.'
        partnerMarketingOptIns:
          type: array
          items:
            $ref: '#/components/schemas/PartnerMarketingOptIn'
          description: Marketing opt-ins given by booker.
        tags:
          type: array
          items:
            type: string
          description: >-
            **Optional — opt in with `?features=tags`.** Available when the
            `tags` feature is enabled. See the "Optional features" section of
            the introduction.


            Tags attached to the application or participant.
          example:
            - injured
            - deferral
        gdprRedacted:
          type: boolean
          description: >-
            **Optional — opt in with `?features=gdpr_redacted`.** Available when
            the `gdpr_redacted` feature is enabled. See the "Optional features"
            section of the introduction.


            Indicated whether the participant data has been redacted due to a
            GDPR request.
        statusDetails:
          type: array
          items:
            $ref: '#/components/schemas/StatusDetails'
          description: >-
            **Optional on participants — opt in with
            `?features=status_details`.** Applications include this field
            unconditionally; on participants it's available when the
            `status_details` feature is enabled. See the "Optional features"
            section of the introduction.


            Status details of the booking.
        tracking:
          type: object
          properties:
            utmParams:
              $ref: '#/components/schemas/UtmParams'
          additionalProperties: false
          description: Digital marketing tracking parameters.
        approvalStatus:
          $ref: '#/components/schemas/ApprovalStatus'
        applicationResolutionType:
          $ref: '#/components/schemas/ApplicationResolutionType'
        ballotDraw:
          type: string
          description: >-
            The name of the draw that the application was successfully selected
            in.
          example: International Ballot Draw
        notes:
          type: array
          items:
            $ref: '#/components/schemas/Note'
          description: >-
            Stand-alone notes left on this application by the organizer (for
            example, via the "Add note" action in the dashboard). Approval and
            rejection reasons are returned separately under `statusDetails` and
            are not duplicated here.
        eventName:
          type: string
          description: Event name.
          example: City Sprint Challenge
        raceName:
          type: string
          description: Race name.
        raceStartDate:
          $ref: '#/components/schemas/ISODate'
        sportId:
          type: string
          description: Sport ID.
        distanceId:
          type: string
          description: Distance ID.
        distances:
          type: array
          items:
            type: object
            properties:
              length:
                type: number
              discipline:
                $ref: '#/components/schemas/DistanceDisciplineValue'
              unit:
                $ref: '#/components/schemas/DistanceUnitValue'
            required:
              - length
            additionalProperties: false
          description: Distances.
        disciplineLabel:
          type: string
          description: Discipline label.
          example: Running
        course:
          type: object
          properties:
            lapCount:
              type: number
            elevationGain:
              type: number
            isElevationGainAccurate:
              type: boolean
          additionalProperties: false
          description: Course details.
        eventLocation:
          $ref: '#/components/schemas/EventLocation'
        competitorSize:
          type: number
          description: Estimated event size.
          example: 12293
        reservedEntryGroupCode:
          type: string
          description: Reserved entry group code.
          example: re_x-ga8ais3v4r
        reservedEntryGroupName:
          type: string
          description: Reserved entry group name.
          example: Charity Entries
        reservedEntryPartnerExternalIds:
          $ref: '#/components/schemas/PartnerExternalIds'
        reservedEntryPartnerName:
          type: string
          description: Name of the partner who owns the reserved entry.
      required:
        - bibNumber
        - booker
        - bookingCodesUsed
        - bookingId
        - createdAt
        - eventId
        - eventOccurrenceId
        - fields
        - id
        - incrementalStatus
        - notes
        - originalTicketPrice
        - participantIndex
        - raceId
        - ticketId
        - ticketTitle
        - transactionId
        - updatedAt
      description: >-
        An application with optionally extended metadata. See
        **ExtendedMetadata** for more details.
      example:
        id: 66e1f203142536475869a7b8
        participantIndex: 0
        bookingId: 66b1c2d3e4f5061728394a5b
        transactionId: null
        eventOccurrenceId: 66a2b3c4d5e6f708192a3b4c
        eventId: 66a1b2c3d4e5f60718293a4b
        raceId: 66a3b4c5d6e7f8092a3b4c5d
        ticketTitle: 10K General Entry
        ticketId: 66a4b5c6d7e8f9012a3b4c5d
        createdAt: '2026-05-10T11:20:00.000Z'
        updatedAt: '2026-05-12T09:15:00.000Z'
        fields:
          - id: firstName
            name: First name
            value: John
          - id: lastName
            name: Last name
            value: Runner
          - id: email
            name: Email
            value: john@invalid.test
        booker: null
        originalTicketPrice:
          value: 6500
          currencyCode: USD
        incrementalStatus: NON_INCREMENTAL
        bibNumber: null
        bookingCodesUsed: []
        approvalStatus: PENDING
        notes: []
    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
    ISODate:
      title: ISODate
      type: string
      description: >-
        Represents a date and time in ISO 8601 format as a string.


        The string should follow the format `YYYY-MM-DDTHH:mm:ss.sssZ`, where:

        - `YYYY`: Four-digit year

        - `MM`: Two-digit month (01-12)

        - `DD`: Two-digit day of the month (01-31)

        - `T`: Delimiter indicating the start of the time component

        - `HH`: Two-digit hour in 24-hour format (00-23)

        - `mm`: Two-digit minutes (00-59)

        - `ss.sss`: Seconds with milliseconds (00.000-59.999)

        - `Z`: UTC timezone designator


        **Example:** To represent 11:30 AM on May 8th, 2026, the value would be:
        `"2026-05-08T11:30:00.000Z"`.
      example: '2026-05-08T11:30:00.000Z'
    Wave:
      title: Wave
      type: object
      properties:
        id:
          type: string
          description: >-
            The unique identifier for the Limited Booking Item that this wave is
            associated with.
        name:
          type: string
          description: The wave question that was presented to the booker.
        optionName:
          type: string
          description: The wave option that was selected by the booker.
        optionId:
          type: string
          description: >-
            The unique identifier for the wave option that was selected by the
            booker. LEGACY (Non field options): This is also just the option
            name as older waves do not support field options
      required:
        - id
        - name
        - optionName
        - optionId
      additionalProperties: false
      description: >-
        If waves were enabled for the event, this field will contain the wave
        information selected by the booker.
    Field:
      title: Field
      type: object
      properties:
        id:
          type: string
          description: >-
            The unique ID for each booking field. Standard fields have
            predefined IDs (e.g., `firstName`, `lastName`, `email`,
            `dateOfBirth`, `phone`, `addressLine1`, `addressCity`,
            `addressPostcode`, `addressCountry`, `emergencyContactName`,
            `emergencyContactPhone`). Custom fields created by the organizer
            will have either organizer-defined IDs (publicId) or auto-generated
            IDs (e.g., `62bc55c4c94e90001eb4a96c`).
          example: dateOfBirth
        name:
          type: string
          description: The name of the booking field.
          example: Date of Birth
        value:
          anyOf:
            - type: string
            - type: number
            - type: array
              items:
                type: string
            - type: 'null'
          description: The value provided by the booker for this booking field.
          example: '1995-12-31'
        values:
          type: array
          items:
            $ref: '#/components/schemas/KeyValue'
          description: The values provided by the booker for this booking field.
          example:
            - key: dateOfBirth
              value: '1995-12-31'
        booleanValue:
          type: boolean
          description: >-
            **Optional — opt in with `?features=boolean_value`.** Available when
            the `boolean_value` feature is enabled. See the "Optional features"
            section of the introduction.


            For fields that capture agreement, confirmation, or yes/no answers,
            we attempt to parse the booker's value as a boolean for convenience.
          example: true
      required:
        - id
        - name
        - value
      additionalProperties: false
      description: >-
        A form field in the booking, most often containing answers to questions
        asked during booking. A field contains detailed information about the
        data provided by the booker.
      example:
        id: email
        name: Email
        value: john@invalid.test
    Booker:
      title: Booker
      type: object
      properties:
        firstName:
          type: string
          description: The first name of the booker.
          example: Jean-Luc
        lastName:
          type: string
          description: The last name of the booker.
          example: Picard
        email:
          type: string
          description: The email address of the booker.
          example: jean@earlgrey.com
        phone:
          type: string
          description: The phone number of the booker.
          example: +44 7700 900000
        companyName:
          type: string
          description: The company name of the booker.
          example: Starfleet
        address:
          $ref: '#/components/schemas/BookerAddress'
        miscFields:
          type: array
          items:
            $ref: '#/components/schemas/BookerMiscField'
          description: Additional custom fields for the booker.
      required:
        - firstName
        - lastName
        - email
        - phone
        - companyName
        - address
        - miscFields
      additionalProperties: false
      description: Contact information for the person who made a booking.
      example:
        firstName: Jean-Luc
        lastName: Picard
        email: jean@earlgrey.com
        companyName: Starfleet
        address:
          line1: 1701 Enterprise Ave
          line2: ''
          city: San Francisco
          county: San Francisco
          country: US
          postcode: '94101'
        miscFields: []
    BookerType:
      title: BookerType
      type: string
      enum:
        - PARTNER
        - INDIVIDUAL
      description: >-
        The type of booker. This field will contain one of the following values:

        - INDIVIDUAL - the application is made on behalf on an individual, and
        should yield registrations 1:1

        - PARTNER - the application is made on behalf of a partner, or group,
        and could yield any number of registrations
    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" }_
    IncrementalStatus:
      title: IncrementalStatus
      type: string
      enum:
        - INCREMENTAL
        - NON_INCREMENTAL
        - PENDING
        - UNSPECIFIED
        - UNRECOGNIZED
    PartnerMarketingOptIn:
      title: PartnerMarketingOptIn
      type: object
      properties:
        partnerId:
          type: string
        partnerName:
          type: string
        contactMethods:
          type: array
          items:
            $ref: '#/components/schemas/ContactMethod'
      required:
        - partnerId
        - partnerName
        - contactMethods
      additionalProperties: false
      description: Partner marketing opt-in.
      example:
        partnerId: p_v7k8jsvoj2o
        contactMethods:
          - EMAIL
        partnerName: Partner Name
    StatusDetails:
      title: StatusDetails
      anyOf:
        - $ref: '#/components/schemas/DeferredStatusDetails'
        - $ref: '#/components/schemas/WithdrawnStatusDetails'
        - $ref: '#/components/schemas/ApprovalStatusDetails'
        - $ref: '#/components/schemas/CancelledStatusDetails'
      description: |-
        This field will contain one of the following values:
        - DEFERRED — The booking has been deferred.
        - WITHDRAWN — The booking has been withdrawn.
        - APPROVAL — The application approval/rejection details.
        - CANCELLED — The booking has been cancelled.
    UtmParams:
      title: UtmParams
      type: object
      properties:
        utmSource:
          type: string
          description: The source that referred the user.
          example: newsletter
        utmMedium:
          type: string
          description: The medium that referred the user.
          example: email
        utmCampaign:
          type: string
          description: The campaign that referred the user.
          example: bank-holiday
      additionalProperties: false
      description: Specifies the UTM parameters associated with a booking or application.
    ApprovalStatus:
      title: ApprovalStatus
      type: string
      enum:
        - APPROVED
        - CANCELLED
        - FAILED
        - PENDING
        - ELIGIBLE
        - NOT_ELIGIBLE
      description: >-
        The approval status of this participant. This field will contain one of
        the following values:

        - PENDING — The participant is pending approval or payment.

        - APPROVED — The participant's application has been approved.

        - FAILED — The participant's application was rejected (either manually
        or through ballot failure).

        - CANCELLED — The participant's application has been cancelled, for
        example if they were marked as a duplicate entry.

        - ELIGIBLE — The participant's application entry is eligible for
        approval, if for example they entered a "Good For Age" event.

        - NOT_ELIGIBLE — The participant's application entry is not eligible for
        approval, if for example they entered a "Good For Age" event but did not
        meet the criteria.
    ApplicationResolutionType:
      title: ApplicationResolutionType
      type: string
      enum:
        - BALLOT
        - MANUAL
        - AUTOMATIC
        - WAITLIST
      description: >-
        The type of application, and the way that approval or rejection is
        achieved. This field will contain one of the following values:


        - BALLOT — The participant's application is approved or rejected via a
        ballot process, wherein N participants are randomly selected from a
        pool.

        - AUTOMATIC — Deprecated. The participant's application is automatically
        approved or rejected, given some criteria.

        - MANUAL — The participant's application is manually approved or
        rejected, by a human.

        - WAITLIST — The participant's application is placed on a waitlist, and
        will be processed based on the event's waitlist configuration.
    Note:
      title: Note
      type: object
      properties:
        message:
          type: string
          description: The note message content.
          example: Awaiting proof of charity status.
        createdAt:
          $ref: '#/components/schemas/ISODate'
        id:
          type: string
          description: Unique identifier for the note, when available.
          example: note_123
        noteType:
          type: string
          enum:
            - DEFAULT
            - ORGANISER_NOTE
            - CHARITY_NOTE
          description: |-
            The type of note, when available.
            - DEFAULT - General notes
            - ORGANISER_NOTE - Notes specific to organizers
            - CHARITY_NOTE - Notes specific to charity partners
        updatedAt:
          $ref: '#/components/schemas/ISODate'
      required:
        - message
        - createdAt
      additionalProperties: false
      description: >-
        A note attached to a record returned by the API. `message` and
        `createdAt` are always populated. The remaining fields are returned when
        available.
      example:
        message: Customer requested bib number change
        createdAt: '2025-01-15T10:30:00.000Z'
        id: note_123
        noteType: ORGANISER_NOTE
        updatedAt: '2025-01-15T10:30:00.000Z'
    DistanceDisciplineValue:
      title: DistanceDisciplineValue
      type: string
      enum:
        - ''
        - RUN
        - BIKE
        - SWIM
        - HIKE
      description: Specifies the discipline configured for the race.
      example: RUN
    DistanceUnitValue:
      title: DistanceUnitValue
      anyOf:
        - type: string
          enum:
            - ''
        - $ref: '#/components/schemas/DistanceUnit'
      description: >-
        Specifies the unit of distance configured for the race. Extends
        DistanceUnit to allow an empty string for unspecified values.
      example: KM
    EventLocation:
      title: EventLocation
      type: object
      properties:
        coordinates:
          type: object
          properties:
            latitude:
              type: number
              description: The latitude in degrees. In the range [-90.0, +90.0].
            longitude:
              type: number
              description: The longitude in degrees. In the range [-180.0, +180.0].
          additionalProperties: false
        address:
          type: object
          properties:
            city:
              type: string
            formatted:
              type: string
            countryCode:
              type: string
            countryName:
              type: string
            addressLine1:
              type: string
            addressLine2:
              type: string
            countyLine:
              type: string
            postCode:
              type: string
          additionalProperties: false
      required:
        - address
      additionalProperties: false
      description: Event location
      example:
        coordinates:
          latitude: 50.8398169
          longitude: -0.1460002
        address:
          city: Brighton
          formatted: Preston Park, Preston Rd, Brighton BN1 6SD, UK
          countryCode: GB
          countryName: United Kingdom
          countyLine: Brighton and Hove
          postCode: BN1 6SD
    PartnerExternalIds:
      title: PartnerExternalIds
      type: object
      properties:
        national:
          type: string
        enthuse:
          type: string
        londonMarathon:
          type: string
        justGiving:
          type: string
        stripe:
          type: string
        givestar:
          type: string
        runForCharity:
          type: string
        goFundraise:
          type: string
      additionalProperties: false
      description: >-
        External IDs of the partner. These can be configured in the event's
        settings if needed.
    KeyValue:
      title: KeyValue
      type: object
      properties:
        key:
          type: string
        value:
          type: string
      required:
        - key
        - value
      additionalProperties: false
    BookerAddress:
      title: BookerAddress
      type: object
      properties:
        line1:
          type: string
        line2:
          type: string
        city:
          type: string
        county:
          type: string
        country:
          type: string
        postcode:
          type: string
      required:
        - line1
        - line2
        - city
        - county
        - country
        - postcode
      additionalProperties: false
    BookerMiscField:
      title: BookerMiscField
      type: object
      properties:
        fieldId:
          type: string
        fieldName:
          type: string
        value:
          type: string
      required:
        - fieldId
        - fieldName
        - value
      additionalProperties: false
    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
    ContactMethod:
      title: ContactMethod
      type: string
      enum:
        - EMAIL
        - MAIL
        - SMS
        - PHONE
      description: >-
        The type of contact method the participant has opted in to receive. This
        field will contain one of the following values:

        - EMAIL — The participant has opted in to receive emails.

        - MAIL — The participant has opted in to receive physical mail.

        - SMS — The participant has opted in to receive SMS messages.

        - PHONE — The participant has opted in to receive phone calls.
    DeferredStatusDetails:
      title: DeferredStatusDetails
      type: object
      properties:
        type:
          type: string
          enum:
            - DEFERRED
        reason:
          type: string
        year:
          type: number
      required:
        - type
      additionalProperties: false
      description: A status detail indicating that the booking has been deferred.
      example:
        type: DEFERRED
        reason: Postpartum
        year: 2025
    WithdrawnStatusDetails:
      title: WithdrawnStatusDetails
      type: object
      properties:
        type:
          type: string
          enum:
            - WITHDRAWN
        reason:
          type: string
      required:
        - type
        - reason
      additionalProperties: false
      description: A status detail indicating that the booking has been withdrawn.
      example:
        type: WITHDRAWN
        reason: Injured
    ApprovalStatusDetails:
      title: ApprovalStatusDetails
      type: object
      properties:
        type:
          type: string
          enum:
            - APPROVAL
        reason:
          type: string
        timestamp:
          $ref: '#/components/schemas/ISODate'
      required:
        - type
        - reason
      additionalProperties: false
      description: >-
        A status detail providing information about the application's approval
        status.
      example:
        type: APPROVAL
        reason: Application approved based on meeting all eligibility criteria.
        timestamp: '2025-07-29T10:30:40.842Z'
    CancelledStatusDetails:
      title: CancelledStatusDetails
      type: object
      properties:
        type:
          type: string
          enum:
            - CANCELLED
        reason:
          type: string
        timestamp:
          $ref: '#/components/schemas/ISODate'
      required:
        - type
        - reason
      additionalProperties: false
      description: A status detail indicating that the booking has been cancelled.
      example:
        type: CANCELLED
        reason: Refunded by RefundProtect
        timestamp: '2025-07-29T10:30:40.842Z'
    DistanceUnit:
      title: DistanceUnit
      type: string
      enum:
        - KM
        - MI
        - M
        - YD
        - MIN
      description: |-
        Distance unit for race measurements.

        Possible values:
        - `KM` - Kilometers
        - `MI` - Miles
        - `M` - Meters
        - `YD` - Yards
        - `MIN` - Minutes (for time-based events)
      example: MI
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````