> ## 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.

# Create a reserved entry group for an event

> Creates a reserved entry group under an event's current occurrence. Deprecated in favor of `POST /v0/event-occurrences/{id}/reserved-entries`: an event can have several occurrences, and this route cannot say which one the group is for, so a group meant for a past or future occurrence lands on the wrong one and its tickets will not match.



## OpenAPI

````yaml /openapi.json post /v0/events/{id}/reserved-entries
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}/reserved-entries:
    post:
      tags:
        - ReservedEntries
      summary: Create a reserved entry group for an event
      description: >-
        Creates a reserved entry group under an event's current occurrence.
        Deprecated in favor of `POST
        /v0/event-occurrences/{id}/reserved-entries`: an event can have several
        occurrences, and this route cannot say which one the group is for, so a
        group meant for a past or future occurrence lands on the wrong one and
        its tickets will not match.
      parameters:
        - schema:
            type: string
          example: '67123'
          in: path
          name: id
          required: true
          description: The ID of the resource to query by
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateReservedEntryGroupRequest'
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReservedEntryGroup'
      deprecated: true
components:
  schemas:
    CreateReservedEntryGroupRequest:
      title: CreateReservedEntryGroupRequest
      type: object
      additionalProperties: false
      properties:
        tickets:
          type: array
          items:
            $ref: '#/components/schemas/ReservedEntryTicketInput'
          description: Reserved entry settings for particular tickets.
          minItems: 1
        name:
          type: string
          description: The name of the Reserved Entry group.
          minLength: 1
          pattern: ^(\S).+$
        partnerId:
          type: string
          description: >-
            The LDT ID of the partner this Reserved Entry group should be
            assigned. If omitted, the entries can be managed by the organizer
            only.
        maxCapacity:
          type: number
          description: The maximum number of entries that can be reserved in this group.
          minimum: 0
        description:
          type: string
          description: The description of the Reserved Entry group.
        type:
          $ref: '#/components/schemas/ReservedEntryGroupType'
        settings:
          $ref: '#/components/schemas/ReservedEntryGroupSettings'
      required:
        - maxCapacity
        - name
        - tickets
        - type
    ReservedEntryGroup:
      title: ReservedEntryGroup
      type: object
      properties:
        id:
          type: string
          description: The unique ID of the Reserved Entry group.
        name:
          type: string
          description: The name of the Reserved Entry group.
          minLength: 1
          pattern: ^(\S).+$
        eventId:
          type: string
          description: The unique ID of the event this Reserved Entry group is for.
        eventOccurrenceId:
          type: string
          description: >-
            The unique identifier for the occurrence of the Event, for which
            this participant is attending.
          example: 6399c11c58f29f001ca95935
        partnerId:
          type: string
          description: >-
            The LDT ID of the partner this Reserved Entry group should be
            assigned. If omitted, the entries can be managed by the organizer
            only.
        partnerName:
          type: string
          description: Name of the partner.
        maxCapacity:
          type: number
          description: The maximum number of entries that can be reserved in this group.
          minimum: 0
        usedCapacity:
          type: number
          description: The number of entries that have been used in this group.
          minimum: 0
        tickets:
          type: array
          items:
            $ref: '#/components/schemas/ReservedEntryTicket'
          description: Reserved entry settings for particular tickets.
          minItems: 1
        description:
          type: string
          description: The description of the Reserved Entry group.
        type:
          $ref: '#/components/schemas/ReservedEntryGroupType'
        settings:
          $ref: '#/components/schemas/ReservedEntryGroupSettings'
        createdAt:
          $ref: '#/components/schemas/ISODate'
        updatedAt:
          $ref: '#/components/schemas/ISODate'
      required:
        - id
        - name
        - eventId
        - eventOccurrenceId
        - maxCapacity
        - usedCapacity
        - tickets
        - type
      additionalProperties: false
      description: Configuration for a Reserved Entry group.
      example:
        id: re_abcd6ss01x8
        name: Lorem ipsum
        description: Nulla sed mi egestas, condimentum orci quis, pulvinar odio.
        eventId: '11120888'
        partnerId: p_abcdiqh2oa4
        maxCapacity: 35
        usedCapacity: 15
        tickets:
          - ticketSlug: '1106607777'
            maxCapacity: 10
            discount:
              type: FLAT_RATE
              price:
                value: 10
                currencyCode: GBP
            startDateTime: '2024-01-08T11:30:00.000Z'
          - ticketSlug: '2206607777'
            discount:
              type: PERCENTAGE
              amount: 10
              isAppliedToBookingFee: true
        type: MULTI_USE
        settings:
          canPartnerCancel: true
          reserveCapacity: IGNORE_CAPACITY
          reallocateOnCancel: true
          domainRestriction: '@letsdothis.com'
    ReservedEntryTicketInput:
      title: ReservedEntryTicketInput
      type: object
      properties:
        ticketSlug:
          type: string
          description: The unique identifier for the ticket
        maxCapacity:
          type: number
          description: Capacity per the individual ticket
        discount:
          anyOf:
            - $ref: '#/components/schemas/FlatRateDiscount'
            - $ref: '#/components/schemas/PercentageDiscount'
          description: >-
            Whether participants should get any discount from the original
            ticket price
        startDateTime:
          $ref: '#/components/schemas/ISODate'
        endDateTime:
          $ref: '#/components/schemas/ISODate'
      required:
        - ticketSlug
      additionalProperties: false
    ReservedEntryGroupType:
      title: ReservedEntryGroupType
      type: string
      enum:
        - MULTI_USE
        - SINGLE_USE
        - UNKNOWN
      description: >-
        The type of the Reserved Entry group.

        - MULTI_USE — Links are generic, so you can send one link to all of your
        participants.

        - SINGLE_USE — Links are tied to a specific person’s email address and
        can only be used once, meaning only the intended person can enter.
    ReservedEntryGroupSettings:
      title: ReservedEntryGroupSettings
      type: object
      properties:
        reallocateOnCancel:
          type: boolean
          description: >-
            If an entry is cancelled, should a replacement entry be created
            automatically.
        canPartnerCancel:
          type: boolean
          description: Whether the partner can cancel an entry.
        reserveCapacity:
          $ref: '#/components/schemas/CapacityReservationType'
        domainRestriction:
          type: string
          description: Can be used to restrict from which domain users can register.
          example: '@letsdothis.com'
      additionalProperties: false
      description: The settings of the Reserved Entry group.
    ReservedEntryTicket:
      title: ReservedEntryTicket
      type: object
      properties:
        ticketSlug:
          type: string
          description: The unique identifier for the ticket
        ticketTitle:
          type: string
          description: The title of the ticket
        raceId:
          type: string
          description: The unique identifier of the race this ticket belongs to
        raceTitle:
          type: string
          description: The title of the race
        maxCapacity:
          type: number
          description: Capacity per the individual ticket
        discount:
          anyOf:
            - $ref: '#/components/schemas/FlatRateDiscount'
            - $ref: '#/components/schemas/PercentageDiscount'
          description: >-
            Whether participants should get any discount from the original
            ticket price
        startDateTime:
          $ref: '#/components/schemas/ISODate'
        endDateTime:
          $ref: '#/components/schemas/ISODate'
      required:
        - ticketSlug
        - ticketTitle
        - raceId
        - raceTitle
      additionalProperties: false
      description: Reserved entry settings for a particular ticket.
      example:
        ticketSlug: '1106607270'
        maxCapacity: 3
        discount:
          type: FLAT_RATE
          price:
            value: 0
            currencyCode: GBP
        startDateTime: '2024-01-08T11:30:00.000Z'
    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'
    FlatRateDiscount:
      title: FlatRateDiscount
      type: object
      properties:
        type:
          type: string
          enum:
            - FLAT_RATE
        price:
          $ref: '#/components/schemas/Price'
      required:
        - type
        - price
      additionalProperties: false
    PercentageDiscount:
      title: PercentageDiscount
      type: object
      properties:
        type:
          type: string
          enum:
            - PERCENTAGE
        amount:
          type: number
          description: >-
            The percentage of the original price that should be subtracted. Eg.
            applying a 10% discount on a ticket with original price 30GBP will
            make the entries cost 27GBP.
        isAppliedToBookingFee:
          type: boolean
          description: Whether the discount should be applied to the booking fee.
      required:
        - type
        - amount
        - isAppliedToBookingFee
      additionalProperties: false
    CapacityReservationType:
      title: CapacityReservationType
      type: string
      enum:
        - WITHIN_CAPACITY
        - IGNORE_CAPACITY
        - DO_NOT_RESERVE
        - UNKNOWN
    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" }_
    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

````