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

# Get a race by ID

> Returns a single race by ID if it belongs to the organizer associated with your Public API credentials.



## OpenAPI

````yaml /openapi.json get /v0/races/{id}
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/races/{id}:
    get:
      tags:
        - Races
      summary: Get a race by ID
      description: >-
        Returns a single race by ID if it belongs to the organizer associated
        with your Public API credentials.
      parameters:
        - 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/Race'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                description: Not found
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                  message:
                    type: string
components:
  schemas:
    Race:
      title: Race
      type: object
      properties:
        id:
          type: string
          description: A unique identifier for this race
          example: '12345678902'
        title:
          type: string
          description: The title for this race
          example: Half Marathon
        titleByLocale:
          type: object
          additionalProperties:
            type: string
          description: >-
            Race 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: Half Marathon
            fr-FR: Semi-Marathon
        discipline:
          $ref: '#/components/schemas/SportDiscipline'
        distance:
          $ref: '#/components/schemas/RaceDistance'
        startDate:
          type: string
          description: >-
            (Optional) A plain date string representing the race's start date
            For races that do not have a confirmed start date, this field may be
            undefined.
          example: '2026-10-04'
        startTime:
          type: string
          description: >-
            (Optional) A plain time string representing the race's start time
            For races that do not have a confirmed start time, this field may be
            undefined.
          example: '09:00:00'
        priceRange:
          $ref: '#/components/schemas/PriceRange'
        eventOccurrenceId:
          type: string
          description: The unique identifier of the event occurrence this race belongs to.
          example: '12345678901'
        eventId:
          type: string
          description: The unique identifier of the event this race belongs to.
          example: '2365756'
      required:
        - id
        - title
        - titleByLocale
        - distance
        - priceRange
        - eventOccurrenceId
        - eventId
      additionalProperties: false
      description: >-
        A race in an event.


        Examples:

        - A typical running event may specify two races: a 5K and a 10K.

        - Some events may specify races as groups of tickets that map to the
        same physical race, such as "international" and "domestic" races to
        group tickets for different types of participants.
    SportDiscipline:
      title: SportDiscipline
      type: string
      enum:
        - RUNNING
        - ROAD_CYCLING
        - TRIATHLON
        - OBSTACLE
        - SWIMMING
        - MOUNTAIN_BIKING
        - DUATHLON
        - SWIMRUN
        - OTHER
        - ADVENTURE_RACE
        - AQUABIKE
        - AQUATHLON
        - BIATHLON
        - QUADRATHLON
        - ALPINE_SKIING
        - CLIMBING
        - CYCLOCROSS
        - CROSS_COUNTRY_SKIING
        - HIKING
        - HORSE_RIDING
        - KAYAKING
        - ORIENTEERING
        - ROWING
        - SUP
        - RUNCYCLE
        - BIKE_TOUR
        - OFFROAD_BIKING
    RaceDistance:
      title: RaceDistance
      type: object
      properties:
        value:
          type: number
          description: >-
            Distance value For poorly categorized races, this field may be
            undefined.
          example: 13.1
        unit:
          $ref: '#/components/schemas/DistanceUnit'
      additionalProperties: false
    PriceRange:
      title: PriceRange
      type: object
      properties:
        min:
          $ref: '#/components/schemas/Price'
        max:
          $ref: '#/components/schemas/Price'
      additionalProperties: false
    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
    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

````