{"openapi":"3.1.0","info":{"title":"Let's Do This API","version":"0.1.0","description":"**Welcome to the Let's Do This API reference!**\n\nLet's Do This spans a broad range of products that help you make incredible experiences for your participants.\n\nThese docs will help you interact with the REST API to manage your events, communicate with your particpants,\nexport your start list data, and much more!\n\n# Getting started\n\nThe Let's Do This API provides a REST interface for much of the data essential for the day-to-day operation of planning,\npromoting and running an event.\n\nTo use the API, you need an **API Key**. To generate one, go to the settings / credentials tab in your account.\n\n# Authentication\n\nThe API uses signed [JSON Web Tokens (JWTs)](https://jwt.io/introduction). These tokens are _not_ encrypted,\nand the contents can be read by anyone. Rather, a signed token can be used to verify the _integrity_ of _claims_\ncontained within the token. For example, your token may contain your **Organiser ID**.\nAnd even though anybody with access to your token can read the claims contained within it,\nthey are unable to modify those claims without destroying the integrity of the token.\n\nBecause JWTs **are not encrypted**, your API Key should be treated like any other secret.\nDo not share it with others, and do not use it in any software shipped to the public — for example, a website or native app.\n\n## Authenticating Requests\n\nThe REST API requires you to authenticate requests to fetch information about your events.\nIf you are not authenticated, the API will not return any information.\n\nYou can authenticate your request by sending a token in the _Authorization header_ of your request.\nIn the following example, replace `YOUR-API-KEY` with a reference to your API Key:\n\n```bash\ncurl --request GET \\\n --url \"https://api.letsdothis.com/v0/applications\" \\\n --header \"Authorization: Bearer YOUR-API-KEY\"\n```\n\n## Revoking Keys\n\nIf you believe your API Key has been shared with a third party who should not have access to your data,\nyou can invalidate the key in your account settings.\n\n# Error Codes\n\nThere are a number of error codes that can be returned by the API. These are detailed below.\n\n| HTTP Code |      Description      | Notes                                                                                                                                                                                   |\n| :-------: | :-------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n|   `200`   |          OK           | Your request completed successfully.                                                                                                                                                    |\n|   `401`   |     Unauthorized      | A `401 Unauthorized` response means you have not authenticated correctly. Check you have added your API Key. Instructions on how to do so can be found [here](#section/Authentication). |\n|   `500`   | Internal Server Error | The API encountered an internal error and was unable to response to your request. If the problem persists, please contact your Partner Success Manager.                                 |\n\n# Response Data\n\nSuccessful requests to the API will generate a response in [JSON](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON) format.\n\n## Paginated responses\n\nWhen querying a list of entities, the response will be wrapped in a top-level object,\nand the result of the query will be returned in the value of the `data` property on that object.\n\nIn addition, responses will contain a `page` property which contains data about the current **page**.\n\n```js\n{\n  \"data\": [\n    {\n      \"id\": \"6399c20015d60ae3ff28f24c\",\n      ...\n    }\n  ],\n  \"page\": {\n    \"totalResults\": 1,\n    \"first\": \"6399c20015d60ae3ff28f24c\",\n    \"last\": \"64577f3fa6449247e0322e8e\",\n    \"prev\": \"6399c20015d60ae3ff28f24c\",\n    \"next\": \"6399c20015d60ae3ff28f24c\"\n  }\n}\n```\n\nIn this response the `first`, `last`, `prev` and `next` properties are cursors that can be used\nto navigate to earlier or later pages in the set of results. For instance, using the `next`\ncursor from fetches the next set of results. See more details on specific endpoints.\n\n# Quickstarts\n\n## No Code\n\nThe easiest way to get started querying the API is to use a tool like [RapidAPI](https://paw.cloud/)\nor [Postman](https://www.postman.com/).\n\nYou can either set up the requests yourself or use our generated OpenAPI schema and import it to both tools.\n\n### Import OpenAPI schema\n\n#### Step 1: Download our OpenAPI schema\n\nCan access it at the top of this documentation or by accessing it [here](https://api.letsdothis.com/documentation/json).\n\n#### Step 2: Import it to your preferred tool\n\nExample guides:\n\n- [RapidApi](https://paw.cloud/docs/import/swagger)\n- [Postman](https://learning.postman.com/docs/designing-and-developing-your-api/importing-an-api/)\n\n#### Step 4: Submit\n\nNow you should have access to all our endpoints and can start using your tool to make requests.\nRemember to also set your API KEY in the [Authorization Header](#section/Authentication/Authenticating-Requests)!\n\n### Manual set up\n\n#### Step 1: Set URL\n\nFirst, set the URL to `https://api.letsdothis.com/v0/participants`.\n\n#### Step 2: Include Credentials\n\nSet an [Authorization Header](#section/Authentication/Authenticating-Requests) in the `Headers` tab:\n\n![Including Credentials](https://res.cloudinary.com/letsdothiscom/image/upload/v1683490933/api-docs/headers.png)\n\n#### Step 3: Submit\n\nAnd that's it! Now submit your request, and the API will return the first page of Participants in your account.\n\n## cURL\n\ncURL is a command line utility available on most Linux and Unix like systems as well as Windows.\nIt allows you to make network requests to a remote server (like the Let's Do This Public API) from your terminal.\n\nYou can send a `GET` request to the API in the following manner:\n\n```bash\ncurl --request GET \\\n --url \"https://api.letsdothis.com/v0/applications\" \\\n --header \"Authorization: Bearer YOUR-TOKEN\"\n```\n\nQuery parameters must be [URL Encoded](https://en.wikipedia.org/wiki/URL_encoding) manually when using cURL. For example, setting the page size should look like:\n\n```bash\ncurl --request GET \\\n --url \"https://api.letsdothis.com/v0/applications?page%3Fsize%5B=100\" \\\n --header \"Authorization: Bearer YOUR-TOKEN\"\n```\n\nand not\n\n```bash\ncurl --request GET \\\n --url \"https://api.letsdothis.com/v0/applications?page[size]=100\" \\\n --header \"Authorization: Bearer YOUR-TOKEN\"\n```\n\n## Node\n\nThere are many ways of fetching data over the network with Node and Typescript or Javascript. The snippet below shows one simple approach using Typescript.\n\n```js\nconst YOUR_TOKEN = 'xxxxxxxxxxxx';\nconst LDT_API_BASE_URL = 'https://api.letsdothis.com/v0';\n\nenum Endpoint {\n  Applications = '/applications',\n  Participants = '/participants',\n}\n\nconst getURLForEndpoint = (endpoint: Endpoint): URL => {\n  return new URL(LDT_API_BASE_URL + endpoint);\n};\n\nconst applicationsURL = getURLForEndpoint(Endpoint.Applications);\nconst applicationsResponse = await fetch(applicationsURL, {\n  method: 'GET',\n  headers: new Headers({\n    Authorization: `Bearer ${YOUR_TOKEN}`,\n  }),\n});\n\nif (applicationsResponse.ok) {\n  const applications = await applicationsResponse.json();\n  console.log(applications);\n}\n```\n","x-logo":{"url":"https://res.cloudinary.com/letsdothiscom/image/upload/v1702572515/api-docs/saxno3kfrtknigflez1e.png","backgroundColor":"#fafafa","altText":"Let's Do This API"}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"PartnerExternalIdType":{"title":"PartnerExternalIdType","type":"string","enum":["enthuse","justGiving","londonMarathon","runForCharity","givestar","goFundraise"]},"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\" }_\n\nAnd 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","EUR","GBP","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:\n- EMAIL — The participant has opted in to receive emails.\n- MAIL — The participant has opted in to receive physical mail.\n- SMS — The participant has opted in to receive SMS messages.\n- PHONE — The participant has opted in to receive phone calls."},"BookerType":{"title":"BookerType","type":"string","enum":["PARTNER","INDIVIDUAL"],"description":"The type of booker. This field will contain one of the following values:\n- INDIVIDUAL - the application is made on behalf on an individual, and should yield registrations 1:1\n- PARTNER - the application is made on behalf of a partner, or group, and could yield any number of registrations"},"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:\n- PENDING — The participant is pending approval or payment.\n- APPROVED — The participant's application has been approved.\n- FAILED — The participant's application was rejected (either manually or through ballot failure).\n- CANCELLED — The participant's application has been cancelled, for example if they were marked as a duplicate entry.\n- ELIGIBLE — The participant's application entry is eligible for approval, if for example they entered a \"Good For Age\" event.\n- 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."},"BookingStatus":{"title":"BookingStatus","type":"string","enum":["CONFIRMED","CANCELLED","WITHDRAWN","DEFERRED","PENDING","REFUNDED","REFUNDING","TO_BE_TRANSFERRED","TRANSFERRED_EVENTS","TRANSFERRED_TO_CREDIT","FAILED"],"description":"The booking status. This field will contain one of the following values:\n- CONFIRMED — The user has the application or registration fully confirmed.\n\nFor an application, this means the user is allowed to register for the event.\n\nFor a registration, this means the user has paid and is fully registered for the event.\n- CANCELLED — The booking has been cancelled.\n\nFor an application, this means the user is not allowed to register for the event.\n\nFor a registration, this indicates that the user's entry has been cancelled, and they should not be allowed to participate in the event.\n- WITHDRAWN — The user has withdrawn their application or registration.\n\nFor an application, this means the user is not allowed to register for the event.\n\nFor a registration, this indicates that the user has withdrawn their registration and should not be allowed to participate in the event.\n- DEFERRED — The user has deferred their application or registration.\n\nThis is semantically equivalent to CANCELLED and WITHDRAWN, with the distinction that the user is allowed to register for the event in the future.\n- PENDING — The application or registration is not yet confirmed.\n\nFor an application, this means that manual approval or a ballot draw is pending to conclude the application's final status.\n\nFor a registration, this indicates that the registration process is not yet finalized. The user has been refunded for their registration.\n- REFUNDED — The user has been refunded for their registration.\n- REFUNDING — The user is in the process of being refunded for their registration.\n- TO_BE_TRANSFERRED — The user has requested a transfer of their registration, but the transfer has not yet been confirmed.\n- TRANSFERRED_EVENTS — The user has transferred their registration to another event.\n- TRANSFERRED_TO_CREDIT — The user has transferred their registration to credit on their account.\n- FAILED — The application was rejected (either manually or through ballot failure), as opposed to being cancelled by either the participant or the organizer, or withdrawn by the participant."},"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:\n\n- BALLOT — The participant's application is approved or rejected via a ballot process, wherein N participants are randomly selected from a pool.\n- AUTOMATIC — Deprecated. The participant's application is automatically approved or rejected, given some criteria.\n- MANUAL — The participant's application is manually approved or rejected, by a human.\n- WAITLIST — The participant's application is placed on a waitlist, and will be processed based on the event's waitlist configuration."},"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"}},"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":"EXPERIMENTAL: For some fields (eg. consent fields), we attempt to parse the value provided by the booker 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":"firstName","name":"First Name","value":"john"},{"id":"lastName","name":"Last Name","value":"smith"},{"id":"email","name":"Email","value":"john.smith@example.com"},{"id":"dateOfBirth","name":"Date of Birth","value":"1995-12-31"},{"id":"phone","name":"Phone Number","value":"+447977123456"},{"id":"gender","name":"Gender","value":"Male"},{"id":"status","name":"Status","value":"CONFIRMED"},{"id":"addressLine1","name":"Address (Line 1)","value":"123 High Street"},{"id":"addressLine2","name":"Address (Line 2)","value":"Flat 4"},{"id":"addressCity","name":"Address (City)","value":"London"},{"id":"addressPostcode","name":"Address (Postcode)","value":"SW1A 1AA"},{"id":"addressCounty","name":"Address (County)","value":"Greater London"},{"id":"addressCountry","name":"Address (Country)","value":"United Kingdom"},{"id":"emergencyContactName","name":"Emergency Contact","value":"jane smith"},{"id":"emergencyContactPhone","name":"Emergency Phone","value":"+447977654321"},{"id":"62bc55c4c94e90001eb4a96c","name":"Do you belong to a running club?","value":"Yes"}]},"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},"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","description":"The address of the booker."},"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":[]}},"ISODate":{"title":"ISODate","type":"string","description":"Represents a date and time in ISO 8601 format as a string.\n\nThe string should follow the format `YYYY-MM-DDTHH:mm:ss.sssZ`, where:\n- `YYYY`: Four-digit year\n- `MM`: Two-digit month (01-12)\n- `DD`: Two-digit day of the month (01-31)\n- `T`: Delimiter indicating the start of the time component\n- `HH`: Two-digit hour in 24-hour format (00-23)\n- `mm`: Two-digit minutes (00-59)\n- `ss.sss`: Seconds with milliseconds (00.000-59.999)\n- `Z`: UTC timezone designator\n\n**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."},"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"}},"StatusDetails":{"title":"StatusDetails","anyOf":[{"$ref":"#/components/schemas/DeferredStatusDetails"},{"$ref":"#/components/schemas/WithdrawnStatusDetails"},{"$ref":"#/components/schemas/ApprovalStatusDetails"}],"description":"This field will contain one of the following values:\n- DEFERRED — The booking has been deferred.\n- WITHDRAWN — The booking has been withdrawn.\n- APPROVAL — The application approval/rejection details."},"PagedParticipants":{"title":"PagedParticipants","type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Participant"}},"page":{"$ref":"#/components/schemas/PageCursor"}},"required":["data","page"],"additionalProperties":false,"description":"When requesting a list of participants, the response will be paginated. The data field will contain an array of **Participant** objects, and the page field will contain a **PageCursor** object detailing the current page and cursors to navigate to earlier or later pages."},"Participant":{"title":"Participant","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","description":"The time and date this booking was created, in UTC. Formatted using ISO 8601."},"updatedAt":{"$ref":"#/components/schemas/ISODate","description":"The time and date this booking was last updated, in UTC. Formatted using ISO 8601."},"waves":{"type":"array","items":{"$ref":"#/components/schemas/Wave"},"description":"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","description":"Whether or not this participant is considered to have been sourced by Let's Do This or not. This field will contain one of the following values:\n- INCREMENTAL\n- NON_INCREMENTAL\n- PENDING\n- UNSPECIFIED\n- UNRECOGNIZED","example":"INCREMENTAL"},"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":"Tags attached to the application or participant.","example":["injured","deferral"]},"gdprRedacted":{"type":"boolean","description":"Indicated whether the participant data has been redacted due to a GDPR request."},"statusDetails":{"type":"array","items":{"$ref":"#/components/schemas/StatusDetails"},"description":"Status details of the booking."},"tracking":{"type":"object","properties":{"utmParams":{"$ref":"#/components/schemas/UtmParams"}},"additionalProperties":false,"description":"Digital marketing tracking parameters."},"applicationId":{"type":["string","null"],"description":"If the booking was generated via an application, the unique identifier for that application.","example":"6399c20015d60ae3ff28f24d"},"raceDayDetails":{"anyOf":[{"$ref":"#/components/schemas/RaceDayDetails"},{"type":"null"}],"description":"Race day additional details."},"resultSubmission":{"anyOf":[{"$ref":"#/components/schemas/ResultSubmission"},{"type":"null"}],"description":"Result submission details."},"team":{"anyOf":[{"$ref":"#/components/schemas/ParticipantTeam"},{"type":"null"}],"description":"Team details."},"participantId":{"type":"string","description":"Participant ID.","example":"abed704b-76d0-4190-a0e7-95b1ec1e48fd"},"notes":{"type":"array","items":{"$ref":"#/components/schemas/RegistrationNote"},"description":"Notes associated with this registration."},"eventName":{"type":"string","description":"Event name.","example":"City Sprint Challenge"},"raceName":{"type":"string","description":"Race name."},"raceStartDate":{"$ref":"#/components/schemas/ISODate","description":"Race start date."},"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","description":"Event location."},"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","description":"External IDs of the partner who owns the reserved entry group."},"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","participantId","participantIndex","raceId","ticketId","ticketTitle","transactionId","updatedAt"],"description":"A participant with optionally extended metadata. See **ExtendedMetadata** for more details."},"ExtendedMetadata":{"title":"ExtendedMetadata","type":"object","properties":{"eventName":{"type":"string","description":"Event name.","example":"City Sprint Challenge"},"raceName":{"type":"string","description":"Race name."},"raceStartDate":{"$ref":"#/components/schemas/ISODate","description":"Race start date."},"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","description":"Event location."},"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","description":"External IDs of the partner who owns the reserved entry group."},"reservedEntryPartnerName":{"type":"string","description":"Name of the partner who owns the reserved entry."}},"additionalProperties":false,"description":"If participants or applications are requested by setting the query parameter `extendMetadata=1`, the following fields will be included in the response."},"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"},"DistanceUnit":{"title":"DistanceUnit","type":"string","enum":["KM","MI","M","YD","MIN"],"description":"Distance unit for race measurements.\n\nPossible values:\n- `KM` - Kilometers\n- `MI` - Miles\n- `M` - Meters\n- `YD` - Yards\n- `MIN` - Minutes (for time-based events)","example":"MI"},"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."},"RaceDayDetails":{"title":"RaceDayDetails","type":"object","properties":{"checkedInAt":{"anyOf":[{"$ref":"#/components/schemas/ISODate"},{"type":"null"}]},"signedWaiverAt":{"anyOf":[{"$ref":"#/components/schemas/ISODate"},{"type":"null"}]},"fields":{"type":"array","items":{"$ref":"#/components/schemas/Field"}}},"required":["checkedInAt","signedWaiverAt","fields"],"additionalProperties":false,"description":"Race day details."},"ResultSubmission":{"title":"ResultSubmission","type":"object","properties":{"submittedAt":{"$ref":"#/components/schemas/ISODate"},"chipTime":{"type":["number","null"]},"verification":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ResultVerification"}},{"type":"null"}]}},"required":["submittedAt","chipTime","verification"],"additionalProperties":false,"description":"Result submission"},"ResultVerification":{"title":"ResultVerification","type":"object","properties":{"value":{"type":"string"},"type":{"$ref":"#/components/schemas/ResultVerificationType"}},"required":["value","type"],"additionalProperties":false},"ResultVerificationType":{"title":"ResultVerificationType","type":"string","enum":["IMAGE","URL"]},"ParticipantTeam":{"title":"ParticipantTeam","type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the team."},"title":{"type":"string","description":"The title of the team."},"isCaptain":{"type":"boolean","description":"Indicates if the participant is the team captain."},"teamNumber":{"type":"number","description":"The number of the team."}},"required":["id","title","isCaptain"],"additionalProperties":false,"description":"Represents the team to which the participant belongs."},"RegistrationNote":{"title":"RegistrationNote","type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the note.","example":"note_123"},"noteType":{"type":"string","enum":["DEFAULT","ORGANISER_NOTE","CHARITY_NOTE"],"description":"The type of note.\n- DEFAULT - General notes\n- ORGANISER_NOTE - Notes specific to organizers\n- CHARITY_NOTE - Notes specific to charity partners"},"message":{"type":"string","description":"The note message content.","example":"Customer requested bib number change"},"createdAt":{"$ref":"#/components/schemas/ISODate","description":"When the note was created."},"updatedAt":{"$ref":"#/components/schemas/ISODate","description":"When the note was last updated."}},"required":["id","noteType","message","createdAt","updatedAt"],"additionalProperties":false,"description":"A note associated with a registration.","example":{"id":"note_123","noteType":"ORGANISER_NOTE","message":"Customer requested bib number change","createdAt":"2025-01-15T10:30:00.000Z","updatedAt":"2025-01-15T10:30:00.000Z"}},"IncrementalStatus":{"title":"IncrementalStatus","type":"string","enum":["INCREMENTAL","NON_INCREMENTAL","PENDING","UNSPECIFIED","UNRECOGNIZED"]},"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."},"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**.\n- 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\".\n- Most API responses include two objects: a 'data' object with the query results, and a 'PageCursor' object detailing the current page.\n- 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.\n- Cursors are base64 encoded strings.","example":{"totalResults":506,"first":"eyJpZCI6IjYzOTljMjAwMTVkNjBhZTNmZjI4ZjI0YyIsInVwZGF0ZWRBdCI6IjIwMjItMTItMTRUMTI6MzA6NTkuMjE3WiJ9","last":"eyJpZCI6IjY1NGNkZDIxZDlhMTU3ODdiNzFkMTM0YSIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNzI0WiJ9","prev":"","next":"eyJpZCI6IjY0NzBkNTkwM2RjOWE5OWJhMTA0Y2ZhYiIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNjE4WiJ9"}},"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","description":"The time and date this booking was created, in UTC. Formatted using ISO 8601."},"updatedAt":{"$ref":"#/components/schemas/ISODate","description":"The time and date this booking was last updated, in UTC. Formatted using ISO 8601."},"waves":{"type":"array","items":{"$ref":"#/components/schemas/Wave"},"description":"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","description":"Whether or not this participant is considered to have been sourced by Let's Do This or not. This field will contain one of the following values:\n- INCREMENTAL\n- NON_INCREMENTAL\n- PENDING\n- UNSPECIFIED\n- UNRECOGNIZED","example":"INCREMENTAL"},"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":"Tags attached to the application or participant.","example":["injured","deferral"]},"gdprRedacted":{"type":"boolean","description":"Indicated whether the participant data has been redacted due to a GDPR request."},"statusDetails":{"type":"array","items":{"$ref":"#/components/schemas/StatusDetails"},"description":"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","description":"The approval status of this application.","example":"PENDING"},"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"},"eventName":{"type":"string","description":"Event name.","example":"City Sprint Challenge"},"raceName":{"type":"string","description":"Race name."},"raceStartDate":{"$ref":"#/components/schemas/ISODate","description":"Race start date."},"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","description":"Event location."},"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","description":"External IDs of the partner who owns the reserved entry group."},"reservedEntryPartnerName":{"type":"string","description":"Name of the partner who owns the reserved entry."}},"required":["bibNumber","booker","bookingCodesUsed","bookingId","createdAt","eventId","eventOccurrenceId","fields","id","incrementalStatus","originalTicketPrice","participantIndex","raceId","ticketId","ticketTitle","transactionId","updatedAt"],"description":"An application with optionally extended metadata. See **ExtendedMetadata** for more details."},"PartnerMarketing":{"title":"PartnerMarketing","type":"object","properties":{"whyOptIn":{"type":"string","description":"The tagline that will be shown to users. We recommend no more than 50 characters to ensure it displays on smaller devices."},"emailMessage":{"type":"string","description":"This appears in the confirmation email sent to participants."},"emailCtaUrl":{"type":"string","description":"This link will be visible in the confirmation email."},"contactEmailAddress":{"type":"string","description":"The email address that participants can use to contact the Partner."}},"additionalProperties":false,"description":"Customize what participants see on the “Charity Opt-In” step on the registration form and on the charity marketing email."},"SpecificPartnerMarketing":{"title":"SpecificPartnerMarketing","type":"object","properties":{"value":{"$ref":"#/components/schemas/PartnerMarketing"},"eventId":{"type":"string","description":"The event ID this marketing configuration should apply to."}},"required":["eventId"],"additionalProperties":false,"description":"In case you want to use different marketing configuration for specific events. Will override the default configuration."},"PartnerContact":{"title":"PartnerContact","type":"object","properties":{"name":{"type":"string","description":"Full name of the contact.","minLength":1,"pattern":"^(\\S).+$"},"emailAddress":{"type":"string","description":"Email address of the contact.","format":"email"}},"required":["name","emailAddress"],"additionalProperties":false,"description":"A contact from the Partner organization.","example":{"name":"John Doe","emailAddress":"jd@charity.com"}},"Partner":{"title":"Partner","type":"object","properties":{"id":{"type":"string","description":"The unique ID of the partner."},"name":{"type":"string","description":"The name of the partner.","minLength":1,"pattern":"^(\\S).+$"},"description":{"type":"string","description":"The description of the partner."},"externalIds":{"$ref":"#/components/schemas/PartnerExternalIds","description":"External IDs assigned to the partner."},"type":{"$ref":"#/components/schemas/PartnerType","description":"The type of partner."},"contacts":{"type":"array","items":{"$ref":"#/components/schemas/PartnerContact"},"description":"The contacts associated with this partner.","minItems":1},"defaultMarketing":{"$ref":"#/components/schemas/PartnerMarketing","description":"The default marketing information associated with this partner."},"specificMarketings":{"type":"array","items":{"$ref":"#/components/schemas/SpecificPartnerMarketing"},"description":"Event specific marketing informations associated with this partner."},"canCreateSubPartners":{"type":"boolean","description":"Whether this partner can create sub-partners."},"createdAt":{"$ref":"#/components/schemas/ISODate","description":"The time and date this partner was created, in UTC. Formatted using ISO 8601."},"updatedAt":{"$ref":"#/components/schemas/ISODate","description":"The time and date this partner was last updated, in UTC. Formatted using ISO 8601."}},"required":["id","name","contacts"],"additionalProperties":false,"description":"A partner that was created under your organization, eg. a charity or a sponsor.","example":{"id":"p_v7k8jsvoj2o","name":"National Charity","description":"Donec faucibus augue non pretium pellentesque.","type":"CHARITY","externalIds":{"national":"natId123","enthuse":"enth456"},"contacts":[{"name":"John Doe","emailAddress":"jd@charity.com"}],"defaultMarketing":{"whyOptIn":"Lorem ipsum dolor","contactEmailAddress":"info@charity.com","emailMessage":"Nulla sed mi egestas, condimentum orci quis, pulvinar odio","emailCtaUrl":"http://charity.com/general/info"},"specificMarketings":[{"value":{"whyOptIn":"Lorem ipsum dolor","contactEmailAddress":"info@charity.com","emailMessage":"Phasellus laoreet, arcu scelerisque fringilla laoreet, eros ante consequat neque, eu vestibulum odio neque a magna.","emailCtaUrl":"http://charity.com/event/info"},"eventId":"213131"}],"canCreateSubPartners":false,"createdAt":"2023-10-14T11:30:00.000Z","updatedAt":"2024-09-14T11:30:00.000Z"}},"PartnerType":{"title":"PartnerType","type":"string","enum":["CHARITY","CORPORATE","FRIENDS_AND_FAMILY","MERCH_PARTNER","SPONSOR"]},"CreatePartnerRequest":{"title":"CreatePartnerRequest","type":"object","properties":{"name":{"type":"string","description":"The name of the partner.","minLength":1,"pattern":"^(\\S).+$"},"description":{"type":"string","description":"The description of the partner."},"externalIds":{"$ref":"#/components/schemas/PartnerExternalIds","description":"External IDs assigned to the partner."},"type":{"$ref":"#/components/schemas/PartnerType","description":"The type of partner."},"contacts":{"type":"array","items":{"$ref":"#/components/schemas/PartnerContact"},"description":"The contacts associated with this partner.","minItems":1},"defaultMarketing":{"$ref":"#/components/schemas/PartnerMarketing","description":"The default marketing information associated with this partner."},"specificMarketings":{"type":"array","items":{"$ref":"#/components/schemas/SpecificPartnerMarketing"},"description":"Event specific marketing informations associated with this partner."},"canCreateSubPartners":{"type":"boolean","description":"Whether this partner can create sub-partners."}},"required":["name","contacts"],"additionalProperties":false},"UpdatePartnerRequest":{"title":"UpdatePartnerRequest","type":"object","properties":{"name":{"type":"string","description":"The name of the partner.","minLength":1,"pattern":"^(\\S).+$"},"description":{"type":"string","description":"The description of the partner."},"externalIds":{"$ref":"#/components/schemas/PartnerExternalIds","description":"External IDs assigned to the partner."},"defaultMarketing":{"$ref":"#/components/schemas/PartnerMarketing","description":"The default marketing information associated with this partner."},"specificMarketings":{"type":"array","items":{"$ref":"#/components/schemas/SpecificPartnerMarketing"},"description":"Event specific marketing informations associated with this partner."},"canCreateSubPartners":{"type":"boolean","description":"Whether this partner can create sub-partners."}},"additionalProperties":false},"PagedPartners":{"title":"PagedPartners","type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Partner"}},"page":{"$ref":"#/components/schemas/PageCursor"}},"required":["data","page"],"additionalProperties":false,"description":"A list of partners with pagination information."},"ReservedEntryGroupType":{"title":"ReservedEntryGroupType","type":"string","enum":["MULTI_USE","SINGLE_USE","UNKNOWN"],"description":"The type of the Reserved Entry group.\n- MULTI_USE — Links are generic, so you can send one link to all of your participants.\n- 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."},"FlatRateDiscount":{"title":"FlatRateDiscount","type":"object","properties":{"type":{"type":"string","enum":["FLAT_RATE"]},"price":{"$ref":"#/components/schemas/Price","description":"The amount of money that should be subtracted from the original 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},"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","description":"If set, entries for this ticket open at this date"},"endDateTime":{"$ref":"#/components/schemas/ISODate","description":"If set, entries for this ticket close at this date"}},"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"}},"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","description":"If set, entries for this ticket open at this date"},"endDateTime":{"$ref":"#/components/schemas/ISODate","description":"If set, entries for this ticket close at this date"}},"required":["ticketSlug"],"additionalProperties":false},"CapacityReservationType":{"title":"CapacityReservationType","type":"string","enum":["WITHIN_CAPACITY","IGNORE_CAPACITY","DO_NOT_RESERVE","UNKNOWN"]},"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","description":"The way the reserved entries should impact event capacity."},"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."},"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","description":"The type of the Reserved Entry group.\n- MULTI_USE — Links are generic, so you can send one link to all of your participants.\n- 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."},"settings":{"$ref":"#/components/schemas/ReservedEntryGroupSettings","description":"The settings of the Reserved Entry group."},"createdAt":{"$ref":"#/components/schemas/ISODate","description":"The time and date this group was created, in UTC. Formatted using ISO 8601."},"updatedAt":{"$ref":"#/components/schemas/ISODate","description":"The time and date this group was last updated, in UTC. Formatted using ISO 8601."}},"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"}}},"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","description":"The type of the Reserved Entry group.\n- MULTI_USE — Links are generic, so you can send one link to all of your participants.\n- 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."},"settings":{"$ref":"#/components/schemas/ReservedEntryGroupSettings","description":"The settings of the Reserved Entry group."}},"required":["maxCapacity","name","tickets","type"]},"UpdateReservedEntryGroupRequest":{"title":"UpdateReservedEntryGroupRequest","type":"object","additionalProperties":false,"properties":{"settings":{"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."},"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."},"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).+$"},"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."}}},"ReservedEntryGroups":{"title":"ReservedEntryGroups","type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReservedEntryGroup"}}},"required":["data"],"additionalProperties":false},"Ticket":{"title":"Ticket","type":"object","properties":{"title":{"type":"string","description":"The name of the ticket"},"description":{"type":"string","description":"The description of the ticket"},"ticketSlug":{"type":"string","description":"The unique identifier of the ticket"},"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"}},"required":["title","ticketSlug","raceId","raceTitle","price"],"additionalProperties":false,"description":"A ticket that is associated to an event and race.","example":{"title":"10k Standard Entry","description":"Nulla sed mi egestas, condimentum orci quis, pulvinar odio.","ticketSlug":"1106607777","raceId":"11120888","raceTitle":"City Sprint Challenge","price":{"value":1000,"currencyCode":"GBP"}}},"Tickets":{"title":"Tickets","type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Ticket"}}},"required":["data"],"additionalProperties":false,"description":"A list of tickets."},"ClaimLink":{"title":"ClaimLink","type":"object","properties":{"id":{"type":"string","description":"The ID of a claim link."},"link":{"type":"string","description":"Claim link URL."}},"required":["id"],"additionalProperties":false,"description":"A Claim link","example":{"link":"https://letsdothis.com/partner-claim-by-token?claimToken=9af2218cea7dbfdce4b"}},"ClaimLinkInput":{"title":"ClaimLinkInput","type":"object","properties":{"emailAddress":{"type":"string","description":"The email address where the generated link will be sent.","format":"email"},"reservedEntryId":{"type":"string","description":"Reserved entry ID."}},"additionalProperties":false,"description":"A Claim link input","example":{"emailAddress":"partner@letsdothis.com"}},"ByIdParam":{"title":"ByIdParam","type":"object","properties":{"id":{"type":"string","description":"The ID of the resource to query by","example":"67123"}},"required":["id"],"additionalProperties":false},"ExternalIdFilter":{"title":"ExternalIdFilter","type":"object","properties":{"externalId":{"$ref":"#/components/schemas/PartnerExternalIdType","description":"The external ID type of the resource to query by"}},"additionalProperties":false},"BookingType":{"title":"BookingType","type":"string","enum":["ENTRY","APPLICATION"]},"AttributedLineItemType":{"title":"AttributedLineItemType","type":"string","enum":["TICKET","ADD_ON","BOOKING_FEE","DISCOUNT","MEMBERSHIP"]},"LineItemType":{"title":"LineItemType","type":"string","enum":["TICKET","ADD_ON","BOOKING_FEE","DISCOUNT","CREDIT","GIFT_CARD","REFUNDABLE_PURCHASE","MISC","PROXY_ADJUSTMENT","UNUSED_DISCOUNT_AMOUNT","DONATION","MEMBERSHIP"]},"PaymentStatus":{"title":"PaymentStatus","type":"string","enum":["FUNDS_COMPLETE","READY","CANCELLED","REFUNDED"]},"LineItem":{"title":"LineItem","type":"object","properties":{"addonCategory":{"type":["string","null"],"description":"The category of the add-on. This only applies to add-ons sold in the add-ons page in the checkout flow, not price-adjusting fields in the participant details page.","example":"Clothing"},"addonName":{"type":["string","null"],"description":"The name of the add-on. This only applies to add-ons sold in the add-ons page in the checkout flow, not price-adjusting fields in the participant details page.","example":"Sweatshirt"},"addonVariantName":{"type":["string","null"],"description":"Name of the add-on variant. A variant is a specific option of an add-on. For example, 'XL' may be a variant of a t-shirt. This only applies to add-ons sold in the add-ons page in the checkout flow, not price-adjusting fields in the participant details page.","example":"Women's X Large"},"amount":{"anyOf":[{"$ref":"#/components/schemas/PriceValue"},{"type":"null"}],"description":"Total value of the LineItem.","example":5000},"attributedLineItemId":{"type":["string","null"],"description":"The ID of the LineItem that this LineItem applies to. E.g., a discount may apply to a ticket or an add-on.","example":"dfe27034-85f5-4aac-8cf5-6d7024829679"},"attributedLineItemType":{"anyOf":[{"$ref":"#/components/schemas/AttributedLineItemType"},{"type":"null"}],"description":"The type of the LineItem that this LineItem applies to. E.g., a discount may apply to a ticket or an add-on. Discount codes can be applied to tickets, add-ons, booking fees and memberships."},"bookerEmailAddress":{"type":["string","null"],"description":"Email address of booker making the purchase. This will be empty if the LineItem is not created from a booking, e.g., for a standalone membership purchase.","format":"email"},"bookerName":{"type":["string","null"],"description":"Name of booker making the purchase.","example":"John Smith"},"bookingId":{"type":["string","null"],"description":"The unique identifier of the booking resulting in the registration. If the LineItem is not created from a booking, e.g., a standalone membership purchase, this will not be set."},"bookingType":{"anyOf":[{"$ref":"#/components/schemas/BookingType"},{"type":"null"}]},"currencyCode":{"anyOf":[{"$ref":"#/components/schemas/CurrencyCode"},{"type":"null"}]},"eventId":{"type":["string","null"],"description":"The unique identifier of the Event.","example":"2365756"},"eventOccurrenceId":{"type":["string","null"],"description":"The unique identifier of the event occurrence.","example":"234676543146"},"eventOccurrenceTitle":{"type":["string","null"],"description":"The name of the event occurrence."},"financialEntryId":{"type":["string","null"],"description":"Unique identifier for the financial entry. One financial entry is the equivalent of either:\n- basket purchase containing multiple line items,\n- a refund\n- an amendment to another financial data entry.\n\nTherefore, the booker name and incrementality will be consistent across all LineItems with the same unique identifier for the financial entry."},"id":{"type":"string"},"incrementalStatus":{"anyOf":[{"$ref":"#/components/schemas/IncrementalStatus"},{"type":"null"}],"description":"Identifies whether the booking was incremental (i.e., LDT driven) or non-incremental (i.e., EO driven). An incremental transaction comes through Let's Do This channels."},"isRefund":{"type":["boolean","null"],"description":"Returns true if the LineItem is a refund."},"ldtAmount":{"anyOf":[{"$ref":"#/components/schemas/PriceValue"},{"type":"null"}],"description":"Total amount paid to LDT (before tax), including commission and payment processing.","example":300},"lineItemName":{"type":["string","null"],"description":"The name of the LineItem providing detailed description of what was purchased.","example":"X Large T-shirt"},"itemId":{"type":["string","null"],"description":"The ID of associated booking item.","example":"1e2601e0-1f86-4276-9448-9c9810526ee1"},"itemSelectionId":{"type":["string","null"],"description":"The ID of associated booking item variant.","example":"37134b3f-29dc-49e6-9185-f0d4f2cbbc5a"},"lineItemType":{"anyOf":[{"$ref":"#/components/schemas/LineItemType"},{"type":"null"}]},"organizerAmount":{"anyOf":[{"$ref":"#/components/schemas/PriceValue"},{"type":"null"}],"description":"Total amount paid to organizer (before tax).","example":4700},"participantId":{"type":["string","null"]},"paymentCompletedAt":{"anyOf":[{"$ref":"#/components/schemas/ISODate"},{"type":"null"}],"description":"Date and time when the funds were transferred between LDT and the account receiving the payment. The account receiving the payment often belongs to the EO, but in some instances may belong to another third party (e.g., a charity)."},"paymentId":{"type":["string","null"],"description":"The Stripe payment ID for transactions that are paid into the receiving account from the LDT account."},"paymentReference":{"type":["string","null"],"description":"Unique identifier used by LDT which allows for tracking all LineItems back to a singular payment made. It is different from the Stripe payment reference but serves a similar purpose in practice."},"paymentRefundId":{"type":["string","null"],"description":"The Stripe ID when a payment is reversed (if applicable). A reversed payment includes refunds, failed payments (e.g., due to insufficient funds) or a payment dispute reversal."},"paymentStatus":{"anyOf":[{"$ref":"#/components/schemas/PaymentStatus"},{"type":"null"}],"description":"Payment status of the financial transaction. If the status is 'FUNDS_COMPLETE', it indicates that the funds have been successfully transferred to the respective parties involved."},"payoutId":{"type":["string","null"],"description":"Unique identifier for the payouts made from Stripe into the recipient bank account."},"quantity":{"type":["number","null"],"description":"Represents the number of LineItems sold.\n\n- For refunds, this value will be -1.\n- For financial data amendments, the value will be 0 to prevent double-counting.\n- For the 2nd+ installments of payment plan transactions, this will be 0,   to avoid counting the same LineItem multiple times.\n- For all other cases, the value will be +1.","example":1},"raceTitle":{"type":["string","null"],"description":"The name of the race this LineItem belongs to."},"raceId":{"type":["string","null"],"description":"Unique identifier of the race this LineItem belongs to."},"startlistEntryId":{"type":["string","null"],"description":"Startlist entry ID for the LineItem. Not all LineItems have an associated startlist entry ID."},"thirdPartyAmount":{"anyOf":[{"$ref":"#/components/schemas/PriceValue"},{"type":"null"}],"description":"Total amount paid to third parties (before tax).","example":0},"ticketId":{"type":["string","null"],"description":"The unique identifier for a ticket this LineItem belongs to."},"ticketSlug":{"type":["string","null"],"description":"The slug for a ticket this LineItem belongs to."},"ticketTitle":{"type":["string","null"],"description":"The name of the ticket this LineItem belongs to."},"transactionAt":{"anyOf":[{"$ref":"#/components/schemas/ISODate"},{"type":"null"}],"description":"Date and time at which the transaction occurred."},"createdAt":{"anyOf":[{"$ref":"#/components/schemas/ISODate"},{"type":"null"}],"description":"The time and date this LineItem was created."},"updatedAt":{"anyOf":[{"$ref":"#/components/schemas/ISODate"},{"type":"null"}],"description":"The time and date this LineItem was updated."}},"required":["addonCategory","addonName","addonVariantName","amount","attributedLineItemId","attributedLineItemType","bookerEmailAddress","bookerName","bookingId","bookingType","currencyCode","eventId","eventOccurrenceId","eventOccurrenceTitle","financialEntryId","id","incrementalStatus","isRefund","ldtAmount","lineItemName","itemId","itemSelectionId","lineItemType","organizerAmount","participantId","paymentCompletedAt","paymentId","paymentReference","paymentRefundId","paymentStatus","payoutId","quantity","raceTitle","raceId","startlistEntryId","thirdPartyAmount","ticketId","ticketSlug","ticketTitle","transactionAt","createdAt","updatedAt"],"additionalProperties":false},"PagedLineItems":{"title":"PagedLineItems","type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/LineItem"}},"page":{"$ref":"#/components/schemas/PageCursor"}},"required":["data","page"],"additionalProperties":false,"description":"When requesting a list of LineItems, the response will be paginated. The data field will contain an array of **LineItem** objects, and the page field will contain a **PageCursor** object detailing the current page and cursors to navigate to earlier or later pages."},"PagedEventOccurrences":{"title":"PagedEventOccurrences","type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EventOccurrencesSearchResult"}},"page":{"$ref":"#/components/schemas/PageCursor"}},"required":["data","page"],"additionalProperties":false},"EventOccurrencesSearchResult":{"title":"EventOccurrencesSearchResult","type":"object","properties":{"title":{"type":"string"},"location":{"type":"string"},"distances":{"type":"array","items":{"type":"string"}},"startDate":{"type":["string","null"]}},"required":["title","distances","startDate"],"additionalProperties":false},"UpdateParticipantRacedayRequest":{"title":"UpdateParticipantRacedayRequest","type":"object","properties":{"bibNumber":{"type":["string","null"],"description":"The bib number to assign to the participant. Set to null to unset the bib number. Optional to allow custom-fields-only updates.","example":"A1234"},"customFields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Internal field ID"},"value":{"type":["string","null"],"description":"Field value. Set to null to unset the field."}},"required":["id"],"additionalProperties":false},"description":"Custom race day fields to update. Each field must specify an id to identify the field.","example":[{"id":"field_123","text":{"value":"New value"}},{"id":"field_456","text":{"value":null}}]}},"additionalProperties":false,"description":"Request to update a participant's raceday fields.","example":{"bibNumber":"A1234","customFields":[{"id":"field_123","value":"New value"}]}},"UpdateParticipantRacedayResponse":{"title":"UpdateParticipantRacedayResponse","type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the update was successful"},"message":{"type":"string","description":"A message describing the result of the operation"}},"required":["success","message"],"additionalProperties":false,"description":"Response for updating a participant's raceday fields.","example":{"success":true,"message":"Participant raceday fields updated successfully"}},"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},"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},"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","description":"Distance unit For poorly categorized races, this field may be undefined.","example":"MI"}},"additionalProperties":false},"Race":{"title":"Race","type":"object","properties":{"id":{"type":"string","description":"A unique identifier for this race","example":"21111355709"},"title":{"type":"string","description":"The title for this race","example":"Half Marathon"},"discipline":{"$ref":"#/components/schemas/SportDiscipline","description":"The sport discipline for this race For poorly categorized races, this field may be undefined.","example":"RUNNING"},"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","distance","priceRange"],"additionalProperties":false,"description":"A race in an event.\n\nExamples:\n- A typical running event may specify two races: a 5K and a 10K.\n- 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."},"PriceRange":{"title":"PriceRange","type":"object","properties":{"min":{"$ref":"#/components/schemas/Price","description":"(Optional) The minimum price of entry for an event. This may not be specified for certain events with no listed tickets."},"max":{"$ref":"#/components/schemas/Price","description":"(Optional) The maximum price of entry for an event. This may not be specified for certain events with no listed tickets."}},"additionalProperties":false},"OrganizerImages":{"title":"OrganizerImages","type":"object","properties":{"logoUrl":{"type":"string","description":"(Optional) Logo image URL"}},"additionalProperties":false},"Organizer":{"title":"Organizer","type":"object","properties":{"id":{"type":"string","description":"A unique identifier for this organizer","example":"154485"},"title":{"type":"string","description":"The organizer's name","example":"Run 4 Wales"},"images":{"$ref":"#/components/schemas/OrganizerImages"},"website":{"type":"string","description":"(Optional) The organizer's website URL"}},"required":["id","title","images"],"additionalProperties":false},"EventOccurrence":{"title":"EventOccurrence","type":"object","properties":{"id":{"type":"string","description":"Unique event occurrence identifier.","example":"21111162444"},"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=254830&occurrenceId=21111162444"},"title":{"type":"string","description":"Default event title. Use `titleByLocale` for available translations in different locales.","example":"2026 Cardiff Half Marathon"},"titleByLocale":{"type":"object","additionalProperties":{"type":"string"},"description":"Event title translated to multiple locales.\n\nWill always include the default title, and may also specify translations in a number of other locales.","example":{"en-GB":"2026 Cardiff Half Marathon","fr-FR":"2026 Marathon de Cardiff"}},"tags":{"type":"array","items":{"type":"string"},"description":"Categorization tags for the event","example":["flat","charity-run","closed-roads"]},"content":{"$ref":"#/components/schemas/EventContent","description":"Course, logistics, and other related event information"},"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/Race"}},"organizer":{"$ref":"#/components/schemas/Organizer"},"priceRange":{"$ref":"#/components/schemas/PriceRange"}},"required":["id","title","titleByLocale","tags","content","startDate","location","images","races","organizer","priceRange"],"additionalProperties":false},"EventsQueryParams":{"title":"EventsQueryParams","type":"object","properties":{"startDate[gte]":{"type":"string","description":"Minimum start date filter (inclusive) in YYYY-MM-DD format"},"startDate[lte]":{"type":"string","description":"Maximum start date filter (inclusive) in YYYY-MM-DD format"},"lastModified[gte]":{"type":"string","description":"Minimum last modified timestamp filter (inclusive) in ISO 8601 format"},"lastModified[lte]":{"type":"string","description":"Maximum last modified timestamp filter (inclusive) in ISO 8601 format"},"pageSize":{"type":"number","description":"Maximum number of results to return (1-200, default 10)"},"cursor[before]":{"type":"string","description":"Cursor to paginate through results before a given value"},"cursor[after]":{"type":"string","description":"Cursor to paginate through results after a given value"},"countryCode":{"type":"string","description":"(Optional) ISO-2 country code If supplied, it will be used to return a region specific checkout link. Defaults to \"gb\".","example":"us"}},"additionalProperties":false,"description":"Query parameters for filtering events."},"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}}},"paths":{"/v0/participants":{"get":{"summary":"Get participants","tags":["Participant"],"description":"Returns all participants that you have access to","parameters":[{"schema":{"type":"number","minimum":1,"maximum":500,"nullable":true,"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","nullable":true},"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","nullable":true},"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","enum":[1,-1],"nullable":true,"example":1},"in":"query","name":"sort[updatedAt]","required":false,"description":"Sort by update date. 1 for ascending, -1 for descending."},{"schema":{"type":"string","enum":[1,-1],"nullable":true,"example":1},"in":"query","name":"sort[createdAt]","required":false,"description":"Sort by creation date. 1 for ascending, -1 for descending."},{"schema":{"type":"string","nullable":true,"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","nullable":true,"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","nullable":true,"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","nullable":true,"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","nullable":true},"in":"query","name":"extendMetadata","required":false,"description":"If set to true, all available metadata is returned."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedParticipants"}}}}}}},"/v0/participants/{id}":{"get":{"summary":"Get a participant by ID","tags":["Participant"],"description":"Returns a participant by ID if you have access to it","parameters":[{"schema":{"type":"boolean","nullable":true},"in":"query","name":"extendMetadata","required":false,"description":"If set to true, all available metadata is returned."},{"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/Participant"}}}},"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"}}}}}}}}},"/v0/participants/{id}/raceday":{"patch":{"summary":"Update participant raceday fields","tags":["Participant"],"description":"Updates a participant's bib number and race day custom fields. Note: Updates are processed asynchronously and may take a few moments to reflect in participant data.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateParticipantRacedayRequest"}}}},"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/UpdateParticipantRacedayResponse"}}}},"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"}}}}}}}}},"/v0/races/{id}/participants":{"get":{"summary":"Get participants by a race","tags":["Participant"],"description":"Returns all participants associated with a race","parameters":[{"schema":{"type":"string","nullable":true,"example":"1353673654"},"in":"query","name":"eventOccurrenceId","required":false,"description":"A search query to filter race participants by event occurrence id."},{"schema":{"type":"number","minimum":1,"maximum":500,"nullable":true,"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","nullable":true},"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","nullable":true},"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","enum":[1,-1],"nullable":true,"example":1},"in":"query","name":"sort[updatedAt]","required":false,"description":"Sort by update date. 1 for ascending, -1 for descending."},{"schema":{"type":"string","enum":[1,-1],"nullable":true,"example":1},"in":"query","name":"sort[createdAt]","required":false,"description":"Sort by creation date. 1 for ascending, -1 for descending."},{"schema":{"type":"string","nullable":true,"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","nullable":true,"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","nullable":true,"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","nullable":true,"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","nullable":true},"in":"query","name":"extendMetadata","required":false,"description":"If set to true, all available metadata is returned."},{"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/PagedParticipants"}}}}}}},"/v0/applications":{"get":{"summary":"Get applications","tags":["Application"],"description":"Returns all applications that you have access to","parameters":[{"schema":{"type":"number","minimum":1,"maximum":500,"nullable":true,"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","nullable":true},"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","nullable":true},"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","enum":[1,-1],"nullable":true,"example":1},"in":"query","name":"sort[updatedAt]","required":false,"description":"Sort by update date. 1 for ascending, -1 for descending."},{"schema":{"type":"string","enum":[1,-1],"nullable":true,"example":1},"in":"query","name":"sort[createdAt]","required":false,"description":"Sort by creation date. 1 for ascending, -1 for descending."},{"schema":{"type":"string","nullable":true,"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","nullable":true,"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","nullable":true,"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","nullable":true,"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","nullable":true},"in":"query","name":"extendMetadata","required":false,"description":"If set to true, all available metadata is returned."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedApplications"}}}}}}},"/v0/applications/{id}":{"get":{"summary":"Get an application by ID","tags":["Application"],"description":"Returns an application by ID if you have access to it","parameters":[{"schema":{"type":"boolean","nullable":true},"in":"query","name":"extendMetadata","required":false,"description":"If set to true, all available metadata is returned."},{"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/Application"}}}},"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"}}}}}}}}},"/v0/events/{id}/applications":{"get":{"summary":"Get applications by an event","tags":["Application"],"description":"Returns all applications associated with an event","parameters":[{"schema":{"type":"number","minimum":1,"maximum":500,"nullable":true,"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","nullable":true},"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","nullable":true},"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","enum":[1,-1],"nullable":true,"example":1},"in":"query","name":"sort[updatedAt]","required":false,"description":"Sort by update date. 1 for ascending, -1 for descending."},{"schema":{"type":"string","enum":[1,-1],"nullable":true,"example":1},"in":"query","name":"sort[createdAt]","required":false,"description":"Sort by creation date. 1 for ascending, -1 for descending."},{"schema":{"type":"string","nullable":true,"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","nullable":true,"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","nullable":true,"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","nullable":true,"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","nullable":true},"in":"query","name":"extendMetadata","required":false,"description":"If set to true, all available metadata is returned."},{"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"}}}}}}},"/v0/partners/{id}":{"get":{"summary":"Get a partner by ID","tags":["Partner"],"description":"Returns a partner by ID if you have access to it. In case the partner's ID is unknown, querying by an external ID (Enthuse or JustGiving) is also possible by using eg. `/v0/partners/:id?externalId=enthuse`","parameters":[{"schema":{"$ref":"#/components/schemas/PartnerExternalIdType"},"in":"query","name":"externalId","required":false,"description":"The external ID type of the resource to query by"},{"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/Partner"}}}},"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"}}}}}}}},"patch":{"summary":"Update a partner by ID","tags":["Partner"],"description":"Will update a partner either by ID or external ID","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePartnerRequest"}}}},"parameters":[{"schema":{"$ref":"#/components/schemas/PartnerExternalIdType"},"in":"query","name":"externalId","required":false,"description":"The external ID type of the resource to query by"},{"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/Partner"}}}},"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"}}}}}}}}},"/v0/partners":{"get":{"summary":"Get partners","tags":["Partner"],"description":"Returns all partners that you have access to","parameters":[{"schema":{"type":"string","nullable":true,"example":"research"},"in":"query","name":"search","required":false,"description":"A search query to filter partners by their name. The query is case insensitive."},{"schema":{"type":"number","minimum":1,"maximum":500,"nullable":true,"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","nullable":true},"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","nullable":true},"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","enum":[1,-1],"nullable":true,"example":1},"in":"query","name":"sort[updatedAt]","required":false,"description":"Sort by update date. 1 for ascending, -1 for descending."},{"schema":{"type":"string","enum":[1,-1],"nullable":true,"example":1},"in":"query","name":"sort[createdAt]","required":false,"description":"Sort by creation date. 1 for ascending, -1 for descending."},{"schema":{"type":"string","nullable":true,"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","nullable":true,"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","nullable":true,"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","nullable":true,"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."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedPartners"}}}}}},"post":{"summary":"Create a partner","tags":["Partner"],"description":"Creates a new partner","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePartnerRequest"}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Partner"}}}}}}},"/v0/partners/{id}/claim-links":{"post":{"summary":"Create a claim link","tags":["Partner"],"description":"Creates a claim link for a given partner or reserved entry group.\n\nWhen providing a `reservedEntryId`, the claim link will point to the dashboard where the partner can manage their entries and allocate them.\n\nOtherwise the claim link will point to the general partner dashboard, where partners can manage their general settings.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimLinkInput"}}}},"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/ClaimLink"}}}},"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"}}}}}}}}},"/v0/reserved-entries/{id}":{"get":{"summary":"Get reserved entry group by ID","tags":["ReservedEntries"],"description":"Returns a specific reserved entry group","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/ReservedEntryGroup"}}}}}},"patch":{"summary":"Update a reserved entry group","tags":["ReservedEntries"],"description":"Will update a specific reserved entry group","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateReservedEntryGroupRequest"}}}},"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/ReservedEntryGroup"}}}}}},"delete":{"summary":"Delete a reserved entry group","tags":["ReservedEntries"],"description":"Will remove a specific reserved entry group","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":{}}}}}}},"/v0/events/{id}/reserved-entries":{"get":{"summary":"Get all reserved entry groups by event","tags":["ReservedEntries"],"description":"Returns all available reserved entry groups associated with an event","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/ReservedEntryGroups"}}}}}},"post":{"summary":"Create a new reserved entry group","tags":["ReservedEntries"],"description":"Create a new reserved entry group under an event","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReservedEntryGroupRequest"}}}},"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/ReservedEntryGroup"}}}}}}},"/v0/events/{id}/tickets":{"get":{"summary":"Get tickets by an Event","tags":["Tickets"],"description":"Returns all available tickets associated with an event","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/Tickets"}}}}}}},"/v0/line-items/{id}":{"get":{"summary":"LineItem by ID","tags":["LineItem"],"description":"Returns a LineItem by ID","parameters":[{"schema":{"type":"string","enum":["mongodb"],"nullable":true},"in":"query","name":"source","description":"Data source. When set to \"mongodb\", reads from the MongoDB collection."},{"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/LineItem"}}}},"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"}}}}}}}}},"/v0/line-items":{"get":{"summary":"All LineItems","tags":["LineItem"],"description":"Returns all LineItems that you have access to","parameters":[{"schema":{"type":"number","minimum":1,"maximum":500,"nullable":true,"example":100},"in":"query","name":"page[size]","description":"The number of entries to return per page. Range between 1 - 500, defaults to 100"},{"schema":{"type":"string","nullable":true},"in":"query","name":"page[after]","description":"Accepts an existing page cursor. For more details see the definition of PageCursor in the response."},{"schema":{"type":"string","nullable":true},"in":"query","name":"page[before]","description":"Accepts an existing page cursor. For more details see the definition of PageCursor in the response."},{"schema":{"type":"string","enum":[1,-1],"nullable":true,"example":1},"in":"query","name":"sort[updatedAt]","description":"Sort by update date. 1 for ascending, -1 for descending."},{"schema":{"type":"string","enum":[1,-1],"nullable":true,"example":1},"in":"query","name":"sort[createdAt]","description":"Sort by creation date. 1 for ascending, -1 for descending."},{"schema":{"type":"string","nullable":true,"format":"date-time","example":"2020-01-01T20:15:00.000Z"},"in":"query","name":"createdAt[after]","description":"Only return entries created after this date."},{"schema":{"type":"string","nullable":true,"format":"date-time","example":"2020-01-01T20:15:00.000Z"},"in":"query","name":"createdAt[before]","description":"Only return entries created before this date."},{"schema":{"type":"string","nullable":true,"format":"date-time","example":"2020-01-01T20:15:00.000Z"},"in":"query","name":"updatedAt[after]","description":"Only return entries updated after this date."},{"schema":{"type":"string","nullable":true,"format":"date-time","example":"2020-01-01T20:15:00.000Z"},"in":"query","name":"updatedAt[before]","description":"Only return entries updated before this date."},{"schema":{"type":"string","enum":["mongodb"],"nullable":true},"in":"query","name":"source","description":"Data source. When set to \"mongodb\", reads from the MongoDB collection."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedLineItems"}}}}}}},"/marketplace/v1/events/":{"get":{"summary":"List events","tags":["Events"],"description":"Returns a paginated list of available events on Let's Do This.\n\nNote that this endpoint requires special marketplace API credentials.\nIf you wish to use this endpoint, please contact the Let's Do This team for more information.","parameters":[{"schema":{"type":"string"},"in":"query","name":"startDate[gte]","required":false,"description":"Minimum start date filter (inclusive) in YYYY-MM-DD format"},{"schema":{"type":"string"},"in":"query","name":"startDate[lte]","required":false,"description":"Maximum start date filter (inclusive) in YYYY-MM-DD format"},{"schema":{"type":"string"},"in":"query","name":"lastModified[gte]","required":false,"description":"Minimum last modified timestamp filter (inclusive) in ISO 8601 format"},{"schema":{"type":"string"},"in":"query","name":"lastModified[lte]","required":false,"description":"Maximum last modified timestamp filter (inclusive) in ISO 8601 format"},{"schema":{"type":"number"},"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"}}}}}}}},"servers":[{"url":"https://api.letsdothis.com","description":"Production"},{"url":"https://api.staging.letsdothis.com","description":"Staging"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Application","x-displayName":"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":"Participant","x-displayName":"Participants","description":"Participants are users who successfully booked an event."},{"name":"Partner","x-displayName":"Partners","description":"Partners that were created by the organization who can have Reserved Entries assigned to them."},{"name":"ReservedEntries","x-displayName":"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":"Tickets","x-displayName":"Tickets","description":"Tickets that are available for events."},{"name":"LineItem","x-displayName":"LineItems","description":"Financial details related to individual items within transactions."},{"name":"Events","x-displayName":"Events","description":"Events that participants can register for."}],"x-tagGroups":[{"name":"Endpoints","tags":["Application","Participant","Partner","ReservedEntries","Tickets","LineItem","Events"]}]}