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

> Returns a paginated list of available events on Let's Do This.

Note that this endpoint requires special marketplace API credentials.
If you wish to use this endpoint, please contact the Let's Do This team for more information.



## OpenAPI

````yaml /openapi.json get /marketplace/v1/events/
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:
  /marketplace/v1/events/:
    get:
      tags:
        - Events
      summary: List events
      description: >-
        Returns a paginated list of available events on Let's Do This.


        Note that this endpoint requires special marketplace API credentials.

        If you wish to use this endpoint, please contact the Let's Do This team
        for more information.
      parameters:
        - schema:
            type: string
            format: date
          in: query
          name: startDate[gte]
          required: false
          description: Minimum start date filter (inclusive) in YYYY-MM-DD format
        - schema:
            type: string
            format: date
          in: query
          name: startDate[lte]
          required: false
          description: Maximum start date filter (inclusive) in YYYY-MM-DD format
        - schema:
            type: string
            format: date-time
          in: query
          name: lastModified[gte]
          required: false
          description: >-
            Minimum last modified timestamp filter (inclusive) in ISO 8601
            format
        - schema:
            type: string
            format: date-time
          in: query
          name: lastModified[lte]
          required: false
          description: >-
            Maximum last modified timestamp filter (inclusive) in ISO 8601
            format
        - schema:
            type: integer
            minimum: 1
            maximum: 200
          in: query
          name: pageSize
          required: false
          description: Maximum number of results to return (1-200, default 10)
        - schema:
            type: string
          in: query
          name: cursor[before]
          required: false
          description: Cursor to paginate through results before a given value
        - schema:
            type: string
          in: query
          name: cursor[after]
          required: false
          description: Cursor to paginate through results after a given value
        - schema:
            type: string
          example: us
          in: query
          name: countryCode
          required: false
          description: >-
            (Optional) ISO-2 country code If supplied, it will be used to return
            a region specific checkout link. Defaults to "gb".
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventsResponse'
        '429':
          description: Rate limit exceeded
          headers:
            retry-after:
              schema:
                type: integer
              description: Seconds to wait before retrying the request.
            x-ratelimit-limit:
              schema:
                type: integer
              description: Requests permitted in the current window.
            x-ratelimit-remaining:
              schema:
                type: integer
              description: Requests still permitted in the current window.
            x-ratelimit-reset:
              schema:
                type: integer
              description: Seconds until the current window resets.
          content:
            application/json:
              schema:
                description: Rate limit exceeded
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 429
                  error:
                    type: string
                  message:
                    type: string
components:
  schemas:
    EventsResponse:
      title: EventsResponse
      type: object
      properties:
        events:
          type: array
          items:
            $ref: '#/components/schemas/EventOccurrence'
        page:
          type: object
          properties:
            totalResults:
              type: number
            first:
              type: string
            last:
              type: string
          required:
            - totalResults
          additionalProperties: false
      required:
        - events
        - page
      additionalProperties: false
      description: A page of marketplace event occurrences.
      example:
        events:
          - id: 66a2b3c4d5e6f708192a3b4c
            checkoutUrl: https://www.letsdothis.com/us/e/city-river-run/checkout
            title: City River Run
            titleByLocale:
              en-US: City River Run
            tags:
              - running
              - 10k
              - road
            content:
              excerpt: A fast, welcoming city run along the riverfront.
              courseDetails: A mostly flat, single-loop course on closed roads.
              racedayLogistics: Packet pickup opens at 6:30 AM near the start line.
            startDate: '2026-10-18'
            location:
              coordinates:
                latitude: 45.5152
                longitude: -122.6784
              address:
                city: Portland
                formatted: Riverfront Park, Portland, OR, USA
                countryCode: US
                countryName: United States
                countyLine: Multnomah County
                postCode: '97204'
            images:
              hero: https://images.letsdothis.com/events/city-river-run/hero.jpg
              logo: https://images.letsdothis.com/events/city-river-run/logo.png
              all:
                - https://images.letsdothis.com/events/city-river-run/course.jpg
            races:
              - id: 66a3b4c5d6e7f8092a3b4c5d
                title: 10K
                discipline: RUNNING
                distance:
                  value: 10
                  unit: KM
                startDate: '2026-10-18'
                startTime: '08:00:00'
                priceRange:
                  min:
                    value: 6500
                    currencyCode: USD
                  max:
                    value: 8500
                    currencyCode: USD
            organizer:
              id: 66a0b1c2d3e4f5061728394a
              title: Harbor Running Collective
              images:
                logoUrl: >-
                  https://images.letsdothis.com/organizers/harbor-running-collective/logo.png
            priceRange:
              min:
                value: 6500
                currencyCode: USD
              max:
                value: 8500
                currencyCode: USD
        page:
          totalResults: 1
          first: eyJpZCI6IjY2YTJiM2M0ZDVlNmY3MDgxOTJhM2I0YyJ9
          last: eyJpZCI6IjY2YTJiM2M0ZDVlNmY3MDgxOTJhM2I0YyJ9
    EventOccurrence:
      title: EventOccurrence
      type: object
      properties:
        id:
          type: string
          description: Unique event occurrence identifier.
          example: '12345678901'
        checkoutUrl:
          type: string
          description: Link to the checkout flow for the event on Let's Do This
          example: >-
            https://www.letsdothis.com/gb/checkout/ticket?eventId=987654&occurrenceId=12345678901
        title:
          type: string
          description: >-
            Default event title. Use `titleByLocale` for available translations
            in different locales.
          example: Example Half Marathon 2026
        titleByLocale:
          type: object
          additionalProperties:
            type: string
          description: >-
            Event 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: Example Half Marathon 2026
            fr-FR: Exemple Semi-Marathon 2026
        tags:
          type: array
          items:
            type: string
          description: Categorization tags for the event
          example:
            - flat
            - charity-run
            - closed-roads
        content:
          $ref: '#/components/schemas/EventContent'
        startDate:
          type: string
          description: A plain date string representing the event's start date
        location:
          $ref: '#/components/schemas/EventLocation'
        images:
          $ref: '#/components/schemas/EventImages'
        races:
          type: array
          items:
            $ref: '#/components/schemas/RaceSummary'
        organizer:
          $ref: '#/components/schemas/Organizer'
        priceRange:
          $ref: '#/components/schemas/PriceRange'
      required:
        - id
        - title
        - titleByLocale
        - tags
        - content
        - startDate
        - location
        - images
        - races
        - organizer
        - priceRange
      additionalProperties: false
    EventContent:
      title: EventContent
      type: object
      properties:
        excerpt:
          type: string
          description: (Optional) HTML-formatted event description
        courseDetails:
          type: string
          description: (Optional) HTML-formatted course description
        racedayLogistics:
          type: string
          description: (Optional) HTML-formatted race day information
        travel:
          type: string
          description: (Optional) HTML-formatted travel information
        spectators:
          type: string
          description: (Optional) HTML-formatted spectator information
      additionalProperties: false
    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
    EventImages:
      title: EventImages
      type: object
      properties:
        hero:
          type: string
          description: (Optional) Hero image URL for the event
        logo:
          type: string
          description: (Optional) Event logo URL
        all:
          type: array
          items:
            type: string
          description: >-
            All other image URLs associated with the event (excluding the hero
            image and event logo)
      required:
        - all
      additionalProperties: false
    RaceSummary:
      title: RaceSummary
      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'
      required:
        - id
        - title
        - titleByLocale
        - distance
        - priceRange
      additionalProperties: false
      description: >-
        A lean summary of a race, returned in list contexts where the full race
        payload is unnecessary.
    Organizer:
      title: Organizer
      type: object
      properties:
        id:
          type: string
          description: A unique identifier for this organizer
          example: '987654321'
        title:
          type: string
          description: The organizer's name
          example: Example Events Ltd
        images:
          $ref: '#/components/schemas/OrganizerImages'
        website:
          type: string
          description: (Optional) The organizer's website URL
      required:
        - id
        - title
        - images
      additionalProperties: false
    PriceRange:
      title: PriceRange
      type: object
      properties:
        min:
          $ref: '#/components/schemas/Price'
        max:
          $ref: '#/components/schemas/Price'
      additionalProperties: false
    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
    OrganizerImages:
      title: OrganizerImages
      type: object
      properties:
        logoUrl:
          type: string
          description: (Optional) Logo image URL
      additionalProperties: false
    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" }_
    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
    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

````