Download OpenAPI specification:Download
Welcome to the Let's Do This API reference!
Let's Do This spans a broad range of products that help you make incredible experiences for your participants.
These docs will help you interact with the REST API to manage your events, communicate with your particpants, export your start list data, and much more!
The Let's Do This API provides a REST interface for much of the data essential for the day-to-day operation of planning, promoting and running an event.
To use the API, you need an API Key. To generate one, go to the settings / credentials tab in your account.
The API uses signed JSON Web Tokens (JWTs). These tokens are not encrypted, and the contents can be read by anyone. Rather, a signed token can be used to verify the integrity of claims contained within the token. For example, your token may contain your Organiser ID. And even though anybody with access to your token can read the claims contained within it, they are unable to modify those claims without destroying the integrity of the token.
Because JWTs are not encrypted, your API Key should be treated like any other secret. Do not share it with others, and do not use it in any software shipped to the public — for example, a website or native app.
The REST API requires you to authenticate requests to fetch information about your events. If you are not authenticated, the API will not return any information.
You can authenticate your request by sending a token in the Authorization header of your request.
In the following example, replace YOUR-API-KEY
with a reference to your API Key:
curl --request GET \
--url "https://api.letsdothis.com/v0/applications" \
--header "Authorization: Bearer YOUR-API-KEY"
If you believe your API Key has been shared with a third party who should not have access to your data, you can invalidate the key in your account settings.
There are a number of error codes that can be returned by the API. These are detailed below.
HTTP Code | Description | Notes |
---|---|---|
200 |
OK | Your request completed successfully. |
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. |
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. |
Successful requests to the API will generate a response in JSON format.
When querying a list of entities, the response will be wrapped in a top-level object,
and the result of the query will be returned in the value of the data
property on that object.
In addition, responses will contain a page
property which contains data about the current page.
{
"data": [
{
"id": "6399c20015d60ae3ff28f24c",
...
}
],
"page": {
"totalResults": 1,
"first": "6399c20015d60ae3ff28f24c",
"last": "64577f3fa6449247e0322e8e",
"prev": "6399c20015d60ae3ff28f24c",
"next": "6399c20015d60ae3ff28f24c"
}
}
In this response the first
, last
, prev
and next
properties are cursors that can be used
to navigate to earlier or later pages in the set of results. For instance, using the next
cursor from fetches the next set of results. See more details on specific endpoints.
The easiest way to get started querying the API is to use a tool like RapidAPI or Postman.
You can either set up the requests yourself or use our generated OpenAPI schema and import it to both tools.
Can access it at the top of this documentation or by accessing it here.
Example guides:
Now you should have access to all our endpoints and can start using your tool to make requests. Remember to also set your API KEY in the Authorization Header!
First, set the URL to https://api.letsdothis.com/v0/participants
.
Set an Authorization Header in the Headers
tab:
And that's it! Now submit your request, and the API will return the first page of Participants in your account.
cURL is a command line utility available on most Linux and Unix like systems as well as Windows. It allows you to make network requests to a remote server (like the Let's Do This Public API) from your terminal.
You can send a GET
request to the API in the following manner:
curl --request GET \
--url "https://api.letsdothis.com/v0/applications" \
--header "Authorization: Bearer YOUR-TOKEN"
Query parameters must be URL Encoded manually when using cURL. For example, setting the page size should look like:
curl --request GET \
--url "https://api.letsdothis.com/v0/applications?page%3Fsize%5B=100" \
--header "Authorization: Bearer YOUR-TOKEN"
and not
curl --request GET \
--url "https://api.letsdothis.com/v0/applications?page[size]=100" \
--header "Authorization: Bearer YOUR-TOKEN"
There are many ways of fetching data over the network with Node and Typescript or Javascript. The snippet below shows one simple approach using Typescript.
const YOUR_TOKEN = 'xxxxxxxxxxxx';
const LDT_API_BASE_URL = 'https://api.letsdothis.com/v0';
enum Endpoint {
Applications = '/applications',
Participants = '/participants',
}
const getURLForEndpoint = (endpoint: Endpoint): URL => {
return new URL(LDT_API_BASE_URL + endpoint);
};
const applicationsURL = getURLForEndpoint(Endpoint.Applications);
const applicationsResponse = await fetch(applicationsURL, {
method: 'GET',
headers: new Headers({
Authorization: `Bearer ${YOUR_TOKEN}`,
}),
});
if (applicationsResponse.ok) {
const applications = await applicationsResponse.json();
console.log(applications);
}
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.
Returns all applications that you have access to
page[size] | number or null [ 1 .. 500 ] Example: page[size]=100 The number of entries to return per page. Range between 1 - 500, defaults to 100 |
page[after] | string or null Accepts an existing page cursor. For more details see the definition of PageCursor in the response. |
page[before] | string or null Accepts an existing page cursor. For more details see the definition of PageCursor in the response. |
sort[updatedAt] | string or null Enum: 1 -1 Example: sort[updatedAt]=1 Sort by update date. 1 for ascending, -1 for descending. |
sort[createdAt] | string or null Enum: 1 -1 Example: sort[createdAt]=1 Sort by creation date. 1 for ascending, -1 for descending. |
createdAt[after] | string or null <date-time> Example: createdAt[after]=2020-01-01T20:15:00.000Z Only return entries created after this date. |
createdAt[before] | string or null <date-time> Example: createdAt[before]=2020-01-01T20:15:00.000Z Only return entries created before this date. |
updatedAt[after] | string or null <date-time> Example: updatedAt[after]=2020-01-01T20:15:00.000Z Only return entries updated after this date. |
updatedAt[before] | string or null <date-time> Example: updatedAt[before]=2020-01-01T20:15:00.000Z Only return entries updated before this date. |
extendMetadata | boolean or null If set to true, all available metadata is returned. |
{- "data": [
- {
- "id": "6399c20015d60ae3ff28f24c",
- "participantIndex": 0,
- "bookingId": "6399c20015d60ae3ff28f24c",
- "transactionId": "6399c20015d60ae3ff28f24e",
- "eventOccurrenceId": "6399c11c58f29f001ca95935",
- "eventId": "2365756",
- "raceId": "3517846101",
- "ticketTitle": "10k Standard Entry",
- "ticketId": "6399c11c58f29f001ca95934",
- "createdAt": "2026-05-08T11:30:00.000Z",
- "updatedAt": "2026-05-08T11:30:00.000Z",
- "waves": [
- {
- "id": "string",
- "name": "string",
- "optionName": "string",
- "optionId": "string"
}
], - "fields": [
- {
- "id": "dateOfBirth",
- "name": "Date of Birth",
- "value": "1995-12-31"
}
], - "booker": {
- "firstName": "Jean-Luc",
- "lastName": "Picard",
- "email": "jean@earlgrey.com"
}, - "bookerType": "PARTNER",
- "originalTicketPrice": {
- "value": 5000,
- "currencyCode": "CAD"
}, - "incrementalStatus": "INCREMENTAL",
- "bibNumber": "string",
- "bookingCodesUsed": {
- "code": "SPRINT10"
}, - "reservedEntryUrl": "string",
- "partnerMarketingOptIns": [
- {
- "partnerId": "p_v7k8jsvoj2o",
- "contactMethods": [
- "EMAIL"
], - "partnerName": "Partner Name"
}
], - "tags": [
- "injured",
- "deferral"
], - "gdprRedacted": true,
- "statusDetails": [
- {
- "type": "DEFERRED",
- "reason": "Postpartum",
- "year": 2025
}
], - "tracking": {
- "utmParams": {
- "utmSource": "newsletter",
- "utmMedium": "email",
- "utmCampaign": "bank-holiday"
}
}, - "approvalStatus": "APPROVED",
- "applicationResolutionType": "BALLOT",
- "ballotDraw": "International Ballot Draw",
- "eventName": "City Sprint Challenge",
- "raceName": "string",
- "raceStartDate": "2026-05-08T11:30:00.000Z",
- "sportId": "string",
- "distanceId": "string",
- "distances": [
- {
- "length": 0,
- "discipline": "RUN",
- "unit": "KM"
}
], - "disciplineLabel": "Running",
- "course": {
- "lapCount": 0,
- "elevationGain": 0,
- "isElevationGainAccurate": true
}, - "eventLocation": {
- "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"
}
}, - "competitorSize": 12293,
- "reservedEntryGroupCode": "re_x-ga8ais3v4r",
- "reservedEntryGroupName": "Charity Entries",
- "reservedEntryPartnerExternalIds": {
- "national": "string",
- "enthuse": "string",
- "londonMarathon": "string",
- "justGiving": "string",
- "stripe": "string"
}, - "reservedEntryPartnerName": "string"
}
], - "page": {
- "totalResults": 506,
- "first": "eyJpZCI6IjYzOTljMjAwMTVkNjBhZTNmZjI4ZjI0YyIsInVwZGF0ZWRBdCI6IjIwMjItMTItMTRUMTI6MzA6NTkuMjE3WiJ9",
- "last": "eyJpZCI6IjY1NGNkZDIxZDlhMTU3ODdiNzFkMTM0YSIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNzI0WiJ9",
- "prev": "",
- "next": "eyJpZCI6IjY0NzBkNTkwM2RjOWE5OWJhMTA0Y2ZhYiIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNjE4WiJ9"
}
}
Returns an application by ID if you have access to it
id required | string Example: 67123 The ID of the resource to query by |
extendMetadata | boolean or null If set to true, all available metadata is returned. |
{- "id": "6399c20015d60ae3ff28f24c",
- "participantIndex": 0,
- "bookingId": "6399c20015d60ae3ff28f24c",
- "transactionId": "6399c20015d60ae3ff28f24e",
- "eventOccurrenceId": "6399c11c58f29f001ca95935",
- "eventId": "2365756",
- "raceId": "3517846101",
- "ticketTitle": "10k Standard Entry",
- "ticketId": "6399c11c58f29f001ca95934",
- "createdAt": "2026-05-08T11:30:00.000Z",
- "updatedAt": "2026-05-08T11:30:00.000Z",
- "waves": [
- {
- "id": "string",
- "name": "string",
- "optionName": "string",
- "optionId": "string"
}
], - "fields": [
- {
- "id": "dateOfBirth",
- "name": "Date of Birth",
- "value": "1995-12-31"
}
], - "booker": {
- "firstName": "Jean-Luc",
- "lastName": "Picard",
- "email": "jean@earlgrey.com"
}, - "bookerType": "PARTNER",
- "originalTicketPrice": {
- "value": 5000,
- "currencyCode": "CAD"
}, - "incrementalStatus": "INCREMENTAL",
- "bibNumber": "string",
- "bookingCodesUsed": {
- "code": "SPRINT10"
}, - "reservedEntryUrl": "string",
- "partnerMarketingOptIns": [
- {
- "partnerId": "p_v7k8jsvoj2o",
- "contactMethods": [
- "EMAIL"
], - "partnerName": "Partner Name"
}
], - "tags": [
- "injured",
- "deferral"
], - "gdprRedacted": true,
- "statusDetails": [
- {
- "type": "DEFERRED",
- "reason": "Postpartum",
- "year": 2025
}
], - "tracking": {
- "utmParams": {
- "utmSource": "newsletter",
- "utmMedium": "email",
- "utmCampaign": "bank-holiday"
}
}, - "approvalStatus": "APPROVED",
- "applicationResolutionType": "BALLOT",
- "ballotDraw": "International Ballot Draw",
- "eventName": "City Sprint Challenge",
- "raceName": "string",
- "raceStartDate": "2026-05-08T11:30:00.000Z",
- "sportId": "string",
- "distanceId": "string",
- "distances": [
- {
- "length": 0,
- "discipline": "RUN",
- "unit": "KM"
}
], - "disciplineLabel": "Running",
- "course": {
- "lapCount": 0,
- "elevationGain": 0,
- "isElevationGainAccurate": true
}, - "eventLocation": {
- "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"
}
}, - "competitorSize": 12293,
- "reservedEntryGroupCode": "re_x-ga8ais3v4r",
- "reservedEntryGroupName": "Charity Entries",
- "reservedEntryPartnerExternalIds": {
- "national": "string",
- "enthuse": "string",
- "londonMarathon": "string",
- "justGiving": "string",
- "stripe": "string"
}, - "reservedEntryPartnerName": "string"
}
Returns all applications associated with an event
id required | string Example: 67123 The ID of the resource to query by |
page[size] | number or null [ 1 .. 500 ] Example: page[size]=100 The number of entries to return per page. Range between 1 - 500, defaults to 100 |
page[after] | string or null Accepts an existing page cursor. For more details see the definition of PageCursor in the response. |
page[before] | string or null Accepts an existing page cursor. For more details see the definition of PageCursor in the response. |
sort[updatedAt] | string or null Enum: 1 -1 Example: sort[updatedAt]=1 Sort by update date. 1 for ascending, -1 for descending. |
sort[createdAt] | string or null Enum: 1 -1 Example: sort[createdAt]=1 Sort by creation date. 1 for ascending, -1 for descending. |
createdAt[after] | string or null <date-time> Example: createdAt[after]=2020-01-01T20:15:00.000Z Only return entries created after this date. |
createdAt[before] | string or null <date-time> Example: createdAt[before]=2020-01-01T20:15:00.000Z Only return entries created before this date. |
updatedAt[after] | string or null <date-time> Example: updatedAt[after]=2020-01-01T20:15:00.000Z Only return entries updated after this date. |
updatedAt[before] | string or null <date-time> Example: updatedAt[before]=2020-01-01T20:15:00.000Z Only return entries updated before this date. |
extendMetadata | boolean or null If set to true, all available metadata is returned. |
{- "data": [
- {
- "id": "6399c20015d60ae3ff28f24c",
- "participantIndex": 0,
- "bookingId": "6399c20015d60ae3ff28f24c",
- "transactionId": "6399c20015d60ae3ff28f24e",
- "eventOccurrenceId": "6399c11c58f29f001ca95935",
- "eventId": "2365756",
- "raceId": "3517846101",
- "ticketTitle": "10k Standard Entry",
- "ticketId": "6399c11c58f29f001ca95934",
- "createdAt": "2026-05-08T11:30:00.000Z",
- "updatedAt": "2026-05-08T11:30:00.000Z",
- "waves": [
- {
- "id": "string",
- "name": "string",
- "optionName": "string",
- "optionId": "string"
}
], - "fields": [
- {
- "id": "dateOfBirth",
- "name": "Date of Birth",
- "value": "1995-12-31"
}
], - "booker": {
- "firstName": "Jean-Luc",
- "lastName": "Picard",
- "email": "jean@earlgrey.com"
}, - "bookerType": "PARTNER",
- "originalTicketPrice": {
- "value": 5000,
- "currencyCode": "CAD"
}, - "incrementalStatus": "INCREMENTAL",
- "bibNumber": "string",
- "bookingCodesUsed": {
- "code": "SPRINT10"
}, - "reservedEntryUrl": "string",
- "partnerMarketingOptIns": [
- {
- "partnerId": "p_v7k8jsvoj2o",
- "contactMethods": [
- "EMAIL"
], - "partnerName": "Partner Name"
}
], - "tags": [
- "injured",
- "deferral"
], - "gdprRedacted": true,
- "statusDetails": [
- {
- "type": "DEFERRED",
- "reason": "Postpartum",
- "year": 2025
}
], - "tracking": {
- "utmParams": {
- "utmSource": "newsletter",
- "utmMedium": "email",
- "utmCampaign": "bank-holiday"
}
}, - "approvalStatus": "APPROVED",
- "applicationResolutionType": "BALLOT",
- "ballotDraw": "International Ballot Draw",
- "eventName": "City Sprint Challenge",
- "raceName": "string",
- "raceStartDate": "2026-05-08T11:30:00.000Z",
- "sportId": "string",
- "distanceId": "string",
- "distances": [
- {
- "length": 0,
- "discipline": "RUN",
- "unit": "KM"
}
], - "disciplineLabel": "Running",
- "course": {
- "lapCount": 0,
- "elevationGain": 0,
- "isElevationGainAccurate": true
}, - "eventLocation": {
- "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"
}
}, - "competitorSize": 12293,
- "reservedEntryGroupCode": "re_x-ga8ais3v4r",
- "reservedEntryGroupName": "Charity Entries",
- "reservedEntryPartnerExternalIds": {
- "national": "string",
- "enthuse": "string",
- "londonMarathon": "string",
- "justGiving": "string",
- "stripe": "string"
}, - "reservedEntryPartnerName": "string"
}
], - "page": {
- "totalResults": 506,
- "first": "eyJpZCI6IjYzOTljMjAwMTVkNjBhZTNmZjI4ZjI0YyIsInVwZGF0ZWRBdCI6IjIwMjItMTItMTRUMTI6MzA6NTkuMjE3WiJ9",
- "last": "eyJpZCI6IjY1NGNkZDIxZDlhMTU3ODdiNzFkMTM0YSIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNzI0WiJ9",
- "prev": "",
- "next": "eyJpZCI6IjY0NzBkNTkwM2RjOWE5OWJhMTA0Y2ZhYiIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNjE4WiJ9"
}
}
Returns all participants that you have access to
page[size] | number or null [ 1 .. 500 ] Example: page[size]=100 The number of entries to return per page. Range between 1 - 500, defaults to 100 |
page[after] | string or null Accepts an existing page cursor. For more details see the definition of PageCursor in the response. |
page[before] | string or null Accepts an existing page cursor. For more details see the definition of PageCursor in the response. |
sort[updatedAt] | string or null Enum: 1 -1 Example: sort[updatedAt]=1 Sort by update date. 1 for ascending, -1 for descending. |
sort[createdAt] | string or null Enum: 1 -1 Example: sort[createdAt]=1 Sort by creation date. 1 for ascending, -1 for descending. |
createdAt[after] | string or null <date-time> Example: createdAt[after]=2020-01-01T20:15:00.000Z Only return entries created after this date. |
createdAt[before] | string or null <date-time> Example: createdAt[before]=2020-01-01T20:15:00.000Z Only return entries created before this date. |
updatedAt[after] | string or null <date-time> Example: updatedAt[after]=2020-01-01T20:15:00.000Z Only return entries updated after this date. |
updatedAt[before] | string or null <date-time> Example: updatedAt[before]=2020-01-01T20:15:00.000Z Only return entries updated before this date. |
extendMetadata | boolean or null If set to true, all available metadata is returned. |
{- "data": [
- {
- "id": "6399c20015d60ae3ff28f24c",
- "participantIndex": 0,
- "bookingId": "6399c20015d60ae3ff28f24c",
- "transactionId": "6399c20015d60ae3ff28f24e",
- "eventOccurrenceId": "6399c11c58f29f001ca95935",
- "eventId": "2365756",
- "raceId": "3517846101",
- "ticketTitle": "10k Standard Entry",
- "ticketId": "6399c11c58f29f001ca95934",
- "createdAt": "2026-05-08T11:30:00.000Z",
- "updatedAt": "2026-05-08T11:30:00.000Z",
- "waves": [
- {
- "id": "string",
- "name": "string",
- "optionName": "string",
- "optionId": "string"
}
], - "fields": [
- {
- "id": "dateOfBirth",
- "name": "Date of Birth",
- "value": "1995-12-31"
}
], - "booker": {
- "firstName": "Jean-Luc",
- "lastName": "Picard",
- "email": "jean@earlgrey.com"
}, - "bookerType": "PARTNER",
- "originalTicketPrice": {
- "value": 5000,
- "currencyCode": "CAD"
}, - "incrementalStatus": "INCREMENTAL",
- "bibNumber": "string",
- "bookingCodesUsed": {
- "code": "SPRINT10"
}, - "reservedEntryUrl": "string",
- "partnerMarketingOptIns": [
- {
- "partnerId": "p_v7k8jsvoj2o",
- "contactMethods": [
- "EMAIL"
], - "partnerName": "Partner Name"
}
], - "tags": [
- "injured",
- "deferral"
], - "gdprRedacted": true,
- "statusDetails": [
- {
- "type": "DEFERRED",
- "reason": "Postpartum",
- "year": 2025
}
], - "tracking": {
- "utmParams": {
- "utmSource": "newsletter",
- "utmMedium": "email",
- "utmCampaign": "bank-holiday"
}
}, - "applicationId": "6399c20015d60ae3ff28f24d",
- "raceDayDetails": {
- "checkedInAt": "2026-05-08T11:30:00.000Z",
- "signedWaiverAt": "2026-05-08T11:30:00.000Z",
- "fields": [
- {
- "id": "dateOfBirth",
- "name": "Date of Birth",
- "value": "1995-12-31"
}
]
}, - "resultSubmission": {
- "submittedAt": "2026-05-08T11:30:00.000Z",
- "chipTime": 0,
- "verification": [
- {
- "value": "string",
- "type": "IMAGE"
}
]
}, - "team": {
- "id": "string",
- "title": "string",
- "isCaptain": true
}, - "eventName": "City Sprint Challenge",
- "raceName": "string",
- "raceStartDate": "2026-05-08T11:30:00.000Z",
- "sportId": "string",
- "distanceId": "string",
- "distances": [
- {
- "length": 0,
- "discipline": "RUN",
- "unit": "KM"
}
], - "disciplineLabel": "Running",
- "course": {
- "lapCount": 0,
- "elevationGain": 0,
- "isElevationGainAccurate": true
}, - "eventLocation": {
- "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"
}
}, - "competitorSize": 12293,
- "reservedEntryGroupCode": "re_x-ga8ais3v4r",
- "reservedEntryGroupName": "Charity Entries",
- "reservedEntryPartnerExternalIds": {
- "national": "string",
- "enthuse": "string",
- "londonMarathon": "string",
- "justGiving": "string",
- "stripe": "string"
}, - "reservedEntryPartnerName": "string"
}
], - "page": {
- "totalResults": 506,
- "first": "eyJpZCI6IjYzOTljMjAwMTVkNjBhZTNmZjI4ZjI0YyIsInVwZGF0ZWRBdCI6IjIwMjItMTItMTRUMTI6MzA6NTkuMjE3WiJ9",
- "last": "eyJpZCI6IjY1NGNkZDIxZDlhMTU3ODdiNzFkMTM0YSIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNzI0WiJ9",
- "prev": "",
- "next": "eyJpZCI6IjY0NzBkNTkwM2RjOWE5OWJhMTA0Y2ZhYiIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNjE4WiJ9"
}
}
Returns a participant by ID if you have access to it
id required | string Example: 67123 The ID of the resource to query by |
extendMetadata | boolean or null If set to true, all available metadata is returned. |
{- "id": "6399c20015d60ae3ff28f24c",
- "participantIndex": 0,
- "bookingId": "6399c20015d60ae3ff28f24c",
- "transactionId": "6399c20015d60ae3ff28f24e",
- "eventOccurrenceId": "6399c11c58f29f001ca95935",
- "eventId": "2365756",
- "raceId": "3517846101",
- "ticketTitle": "10k Standard Entry",
- "ticketId": "6399c11c58f29f001ca95934",
- "createdAt": "2026-05-08T11:30:00.000Z",
- "updatedAt": "2026-05-08T11:30:00.000Z",
- "waves": [
- {
- "id": "string",
- "name": "string",
- "optionName": "string",
- "optionId": "string"
}
], - "fields": [
- {
- "id": "dateOfBirth",
- "name": "Date of Birth",
- "value": "1995-12-31"
}
], - "booker": {
- "firstName": "Jean-Luc",
- "lastName": "Picard",
- "email": "jean@earlgrey.com"
}, - "bookerType": "PARTNER",
- "originalTicketPrice": {
- "value": 5000,
- "currencyCode": "CAD"
}, - "incrementalStatus": "INCREMENTAL",
- "bibNumber": "string",
- "bookingCodesUsed": {
- "code": "SPRINT10"
}, - "reservedEntryUrl": "string",
- "partnerMarketingOptIns": [
- {
- "partnerId": "p_v7k8jsvoj2o",
- "contactMethods": [
- "EMAIL"
], - "partnerName": "Partner Name"
}
], - "tags": [
- "injured",
- "deferral"
], - "gdprRedacted": true,
- "statusDetails": [
- {
- "type": "DEFERRED",
- "reason": "Postpartum",
- "year": 2025
}
], - "tracking": {
- "utmParams": {
- "utmSource": "newsletter",
- "utmMedium": "email",
- "utmCampaign": "bank-holiday"
}
}, - "applicationId": "6399c20015d60ae3ff28f24d",
- "raceDayDetails": {
- "checkedInAt": "2026-05-08T11:30:00.000Z",
- "signedWaiverAt": "2026-05-08T11:30:00.000Z",
- "fields": [
- {
- "id": "dateOfBirth",
- "name": "Date of Birth",
- "value": "1995-12-31"
}
]
}, - "resultSubmission": {
- "submittedAt": "2026-05-08T11:30:00.000Z",
- "chipTime": 0,
- "verification": [
- {
- "value": "string",
- "type": "IMAGE"
}
]
}, - "team": {
- "id": "string",
- "title": "string",
- "isCaptain": true
}, - "eventName": "City Sprint Challenge",
- "raceName": "string",
- "raceStartDate": "2026-05-08T11:30:00.000Z",
- "sportId": "string",
- "distanceId": "string",
- "distances": [
- {
- "length": 0,
- "discipline": "RUN",
- "unit": "KM"
}
], - "disciplineLabel": "Running",
- "course": {
- "lapCount": 0,
- "elevationGain": 0,
- "isElevationGainAccurate": true
}, - "eventLocation": {
- "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"
}
}, - "competitorSize": 12293,
- "reservedEntryGroupCode": "re_x-ga8ais3v4r",
- "reservedEntryGroupName": "Charity Entries",
- "reservedEntryPartnerExternalIds": {
- "national": "string",
- "enthuse": "string",
- "londonMarathon": "string",
- "justGiving": "string",
- "stripe": "string"
}, - "reservedEntryPartnerName": "string"
}
Returns all participants associated with a race
id required | string Example: 67123 The ID of the resource to query by |
eventOccurrenceId | string or null Example: eventOccurrenceId=1353673654 A search query to filter race participants by event occurrence id. |
page[size] | number or null [ 1 .. 500 ] Example: page[size]=100 The number of entries to return per page. Range between 1 - 500, defaults to 100 |
page[after] | string or null Accepts an existing page cursor. For more details see the definition of PageCursor in the response. |
page[before] | string or null Accepts an existing page cursor. For more details see the definition of PageCursor in the response. |
sort[updatedAt] | string or null Enum: 1 -1 Example: sort[updatedAt]=1 Sort by update date. 1 for ascending, -1 for descending. |
sort[createdAt] | string or null Enum: 1 -1 Example: sort[createdAt]=1 Sort by creation date. 1 for ascending, -1 for descending. |
createdAt[after] | string or null <date-time> Example: createdAt[after]=2020-01-01T20:15:00.000Z Only return entries created after this date. |
createdAt[before] | string or null <date-time> Example: createdAt[before]=2020-01-01T20:15:00.000Z Only return entries created before this date. |
updatedAt[after] | string or null <date-time> Example: updatedAt[after]=2020-01-01T20:15:00.000Z Only return entries updated after this date. |
updatedAt[before] | string or null <date-time> Example: updatedAt[before]=2020-01-01T20:15:00.000Z Only return entries updated before this date. |
extendMetadata | boolean or null If set to true, all available metadata is returned. |
{- "data": [
- {
- "id": "6399c20015d60ae3ff28f24c",
- "participantIndex": 0,
- "bookingId": "6399c20015d60ae3ff28f24c",
- "transactionId": "6399c20015d60ae3ff28f24e",
- "eventOccurrenceId": "6399c11c58f29f001ca95935",
- "eventId": "2365756",
- "raceId": "3517846101",
- "ticketTitle": "10k Standard Entry",
- "ticketId": "6399c11c58f29f001ca95934",
- "createdAt": "2026-05-08T11:30:00.000Z",
- "updatedAt": "2026-05-08T11:30:00.000Z",
- "waves": [
- {
- "id": "string",
- "name": "string",
- "optionName": "string",
- "optionId": "string"
}
], - "fields": [
- {
- "id": "dateOfBirth",
- "name": "Date of Birth",
- "value": "1995-12-31"
}
], - "booker": {
- "firstName": "Jean-Luc",
- "lastName": "Picard",
- "email": "jean@earlgrey.com"
}, - "bookerType": "PARTNER",
- "originalTicketPrice": {
- "value": 5000,
- "currencyCode": "CAD"
}, - "incrementalStatus": "INCREMENTAL",
- "bibNumber": "string",
- "bookingCodesUsed": {
- "code": "SPRINT10"
}, - "reservedEntryUrl": "string",
- "partnerMarketingOptIns": [
- {
- "partnerId": "p_v7k8jsvoj2o",
- "contactMethods": [
- "EMAIL"
], - "partnerName": "Partner Name"
}
], - "tags": [
- "injured",
- "deferral"
], - "gdprRedacted": true,
- "statusDetails": [
- {
- "type": "DEFERRED",
- "reason": "Postpartum",
- "year": 2025
}
], - "tracking": {
- "utmParams": {
- "utmSource": "newsletter",
- "utmMedium": "email",
- "utmCampaign": "bank-holiday"
}
}, - "applicationId": "6399c20015d60ae3ff28f24d",
- "raceDayDetails": {
- "checkedInAt": "2026-05-08T11:30:00.000Z",
- "signedWaiverAt": "2026-05-08T11:30:00.000Z",
- "fields": [
- {
- "id": "dateOfBirth",
- "name": "Date of Birth",
- "value": "1995-12-31"
}
]
}, - "resultSubmission": {
- "submittedAt": "2026-05-08T11:30:00.000Z",
- "chipTime": 0,
- "verification": [
- {
- "value": "string",
- "type": "IMAGE"
}
]
}, - "team": {
- "id": "string",
- "title": "string",
- "isCaptain": true
}, - "eventName": "City Sprint Challenge",
- "raceName": "string",
- "raceStartDate": "2026-05-08T11:30:00.000Z",
- "sportId": "string",
- "distanceId": "string",
- "distances": [
- {
- "length": 0,
- "discipline": "RUN",
- "unit": "KM"
}
], - "disciplineLabel": "Running",
- "course": {
- "lapCount": 0,
- "elevationGain": 0,
- "isElevationGainAccurate": true
}, - "eventLocation": {
- "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"
}
}, - "competitorSize": 12293,
- "reservedEntryGroupCode": "re_x-ga8ais3v4r",
- "reservedEntryGroupName": "Charity Entries",
- "reservedEntryPartnerExternalIds": {
- "national": "string",
- "enthuse": "string",
- "londonMarathon": "string",
- "justGiving": "string",
- "stripe": "string"
}, - "reservedEntryPartnerName": "string"
}
], - "page": {
- "totalResults": 506,
- "first": "eyJpZCI6IjYzOTljMjAwMTVkNjBhZTNmZjI4ZjI0YyIsInVwZGF0ZWRBdCI6IjIwMjItMTItMTRUMTI6MzA6NTkuMjE3WiJ9",
- "last": "eyJpZCI6IjY1NGNkZDIxZDlhMTU3ODdiNzFkMTM0YSIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNzI0WiJ9",
- "prev": "",
- "next": "eyJpZCI6IjY0NzBkNTkwM2RjOWE5OWJhMTA0Y2ZhYiIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNjE4WiJ9"
}
}
Partners that were created by the organization who can have Reserved Entries assigned to them.
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
id required | string Example: 67123 The ID of the resource to query by |
externalId | string Enum: "enthuse" "justGiving" "londonMarathon" The external ID type of the resource to query by |
{- "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",
}, - "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.",
}, - "eventId": "213131"
}
], - "canCreateSubPartners": false,
- "createdAt": "2023-10-14T11:30:00.000Z",
- "updatedAt": "2024-09-14T11:30:00.000Z"
}
Will update a partner either by ID or external ID
id required | string Example: 67123 The ID of the resource to query by |
externalId | string Enum: "enthuse" "justGiving" "londonMarathon" The external ID type of the resource to query by |
name | string non-empty ^(\S).+$ The name of the partner. |
description | string The description of the partner. |
object (PartnerExternalIds) External IDs assigned to the partner. | |
object (PartnerMarketing) The default marketing information associated with this partner. | |
Array of objects (SpecificPartnerMarketing) Event specific marketing informations associated with this partner. | |
canCreateSubPartners | boolean Whether this partner can create sub-partners. |
{- "name": "string",
- "description": "string",
- "externalIds": {
- "national": "string",
- "enthuse": "string",
- "londonMarathon": "string",
- "justGiving": "string",
- "stripe": "string"
}, - "defaultMarketing": {
- "whyOptIn": "string",
- "emailMessage": "string",
- "emailCtaUrl": "string",
- "contactEmailAddress": "string"
}, - "specificMarketings": [
- {
- "value": {
- "whyOptIn": "string",
- "emailMessage": "string",
- "emailCtaUrl": "string",
- "contactEmailAddress": "string"
}, - "eventId": "string"
}
], - "canCreateSubPartners": true
}
{- "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",
}, - "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.",
}, - "eventId": "213131"
}
], - "canCreateSubPartners": false,
- "createdAt": "2023-10-14T11:30:00.000Z",
- "updatedAt": "2024-09-14T11:30:00.000Z"
}
Returns all partners that you have access to
search | string or null Example: search=research A search query to filter partners by their name. The query is case insensitive. |
page[size] | number or null [ 1 .. 500 ] Example: page[size]=100 The number of entries to return per page. Range between 1 - 500, defaults to 100 |
page[after] | string or null Accepts an existing page cursor. For more details see the definition of PageCursor in the response. |
page[before] | string or null Accepts an existing page cursor. For more details see the definition of PageCursor in the response. |
sort[updatedAt] | string or null Enum: 1 -1 Example: sort[updatedAt]=1 Sort by update date. 1 for ascending, -1 for descending. |
sort[createdAt] | string or null Enum: 1 -1 Example: sort[createdAt]=1 Sort by creation date. 1 for ascending, -1 for descending. |
createdAt[after] | string or null <date-time> Example: createdAt[after]=2020-01-01T20:15:00.000Z Only return entries created after this date. |
createdAt[before] | string or null <date-time> Example: createdAt[before]=2020-01-01T20:15:00.000Z Only return entries created before this date. |
updatedAt[after] | string or null <date-time> Example: updatedAt[after]=2020-01-01T20:15:00.000Z Only return entries updated after this date. |
updatedAt[before] | string or null <date-time> Example: updatedAt[before]=2020-01-01T20:15:00.000Z Only return entries updated before this date. |
{- "data": [
- {
- "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",
}, - "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.",
}, - "eventId": "213131"
}
], - "canCreateSubPartners": false,
- "createdAt": "2023-10-14T11:30:00.000Z",
- "updatedAt": "2024-09-14T11:30:00.000Z"
}
], - "page": {
- "totalResults": 506,
- "first": "eyJpZCI6IjYzOTljMjAwMTVkNjBhZTNmZjI4ZjI0YyIsInVwZGF0ZWRBdCI6IjIwMjItMTItMTRUMTI6MzA6NTkuMjE3WiJ9",
- "last": "eyJpZCI6IjY1NGNkZDIxZDlhMTU3ODdiNzFkMTM0YSIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNzI0WiJ9",
- "prev": "",
- "next": "eyJpZCI6IjY0NzBkNTkwM2RjOWE5OWJhMTA0Y2ZhYiIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNjE4WiJ9"
}
}
Creates a new partner
name required | string non-empty ^(\S).+$ The name of the partner. |
description | string The description of the partner. |
object (PartnerExternalIds) External IDs assigned to the partner. | |
type | string (PartnerType) Enum: "CHARITY" "CORPORATE" "FRIENDS_AND_FAMILY" "MERCH_PARTNER" "SPONSOR" The type of partner. |
required | Array of objects (PartnerContact) non-empty The contacts associated with this partner. |
object (PartnerMarketing) The default marketing information associated with this partner. | |
Array of objects (SpecificPartnerMarketing) Event specific marketing informations associated with this partner. | |
canCreateSubPartners | boolean Whether this partner can create sub-partners. |
{- "name": "string",
- "description": "string",
- "externalIds": {
- "national": "string",
- "enthuse": "string",
- "londonMarathon": "string",
- "justGiving": "string",
- "stripe": "string"
}, - "type": "CHARITY",
- "contacts": [
- {
- "name": "John Doe",
- "emailAddress": "jd@charity.com"
}
], - "defaultMarketing": {
- "whyOptIn": "string",
- "emailMessage": "string",
- "emailCtaUrl": "string",
- "contactEmailAddress": "string"
}, - "specificMarketings": [
- {
- "value": {
- "whyOptIn": "string",
- "emailMessage": "string",
- "emailCtaUrl": "string",
- "contactEmailAddress": "string"
}, - "eventId": "string"
}
], - "canCreateSubPartners": true
}
{- "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",
}, - "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.",
}, - "eventId": "213131"
}
], - "canCreateSubPartners": false,
- "createdAt": "2023-10-14T11:30:00.000Z",
- "updatedAt": "2024-09-14T11:30:00.000Z"
}
Creates a claim link for a given partner or reserved entry group.
When providing a reservedEntryId
, the claim link will point to the dashboard where the partner can manage their entries and allocate them.
Otherwise the claim link will point to the general partner dashboard, where partners can manage their general settings.
id required | string Example: 67123 The ID of the resource to query by |
emailAddress | string <email> The email address where the generated link will be sent. |
reservedEntryId | string Reserved entry ID. |
{- "emailAddress": "partner@letsdothis.com"
}
Reserved Entries are entries that are reserved for a partner. After being assigned, the partner can then allocate these entries to participants.
Returns a specific reserved entry group
id required | string Example: 67123 The ID of the resource to query by |
{- "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"
}
}
Will update a specific reserved entry group
id required | string Example: 67123 The ID of the resource to query by |
object The settings of the Reserved Entry group. | |
name | string non-empty ^(\S).+$ The name of the Reserved Entry group. |
maxCapacity | number >= 0 The maximum number of entries that can be reserved in this group. |
Array of objects (ReservedEntryTicket) non-empty Reserved entry settings for particular tickets. | |
description | string The description of the Reserved Entry group. |
{- "settings": {
- "reallocateOnCancel": true,
- "canPartnerCancel": true,
- "domainRestriction": "@letsdothis.com"
}, - "name": "string",
- "maxCapacity": 0,
- "tickets": [
- {
- "ticketSlug": "1106607270",
- "maxCapacity": 3,
- "discount": {
- "type": "FLAT_RATE",
- "price": {
- "value": 0,
- "currencyCode": "GBP"
}
}, - "startDateTime": "2024-01-08T11:30:00.000Z"
}
], - "description": "string"
}
{- "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"
}
}
Returns all available reserved entry groups associated with an event
id required | string Example: 67123 The ID of the resource to query by |
{- "data": [
- {
- "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"
}
}
]
}
Create a new reserved entry group under an event
id required | string Example: 67123 The ID of the resource to query by |
name required | string non-empty ^(\S).+$ The name of the Reserved Entry group. |
partnerId | string 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 required | number >= 0 The maximum number of entries that can be reserved in this group. |
required | Array of objects (ReservedEntryTicket) non-empty Reserved entry settings for particular tickets. |
description | string The description of the Reserved Entry group. |
type required | string (ReservedEntryGroupType) Enum: "MULTI_USE" "SINGLE_USE" "UNKNOWN" The type of the Reserved Entry group.
|
object (ReservedEntryGroupSettings) The settings of the Reserved Entry group. |
{- "name": "string",
- "partnerId": "string",
- "maxCapacity": 0,
- "tickets": [
- {
- "ticketSlug": "1106607270",
- "maxCapacity": 3,
- "discount": {
- "type": "FLAT_RATE",
- "price": {
- "value": 0,
- "currencyCode": "GBP"
}
}, - "startDateTime": "2024-01-08T11:30:00.000Z"
}
], - "description": "string",
- "type": "MULTI_USE",
- "settings": {
- "reallocateOnCancel": true,
- "canPartnerCancel": true,
- "reserveCapacity": "WITHIN_CAPACITY",
- "domainRestriction": "@letsdothis.com"
}
}
{- "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"
}
}
Returns all available tickets associated with an event
id required | string Example: 67123 The ID of the resource to query by |
{- "data": [
- {
- "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"
}
}
]
}
Returns a LineItem by ID
id required | string Example: 67123 The ID of the resource to query by |
{- "amount": 5000,
- "attributedLineItemId": "string",
- "attributedLineItemType": "TICKET",
- "bookerEmailAddress": "user@example.com",
- "bookerName": "string",
- "bookingId": "string",
- "bookingType": "ENTRY",
- "currencyCode": "CAD",
- "eventId": "2365756",
- "eventOccurrenceId": "234676543146",
- "eventOccurrenceTitle": "string",
- "financialEntryId": "string",
- "id": "string",
- "incrementalStatus": "INCREMENTAL",
- "isRefund": true,
- "ldtAmount": 300,
- "lineItemName": "string",
- "itemId": "string",
- "itemSelectionId": "string",
- "lineItemType": "TICKET",
- "organizerAmount": 4700,
- "participantId": "string",
- "paymentCompletedAt": "2026-05-08T11:30:00.000Z",
- "paymentId": "string",
- "paymentReference": "string",
- "paymentRefundId": "string",
- "paymentStatus": "FUNDS_COMPLETE",
- "payoutId": "string",
- "quantity": 1,
- "raceTitle": "string",
- "raceId": "string",
- "startlistEntryId": "string",
- "thirdPartyAmount": 0,
- "ticketId": "string",
- "ticketTitle": "string",
- "transactionAt": "2026-05-08T11:30:00.000Z",
- "createdAt": "2026-05-08T11:30:00.000Z",
- "updatedAt": "2026-05-08T11:30:00.000Z"
}
Returns all LineItems that you have access to
page[size] | number or null [ 1 .. 500 ] Example: page[size]=100 The number of entries to return per page. Range between 1 - 500, defaults to 100 |
page[after] | string or null Accepts an existing page cursor. For more details see the definition of PageCursor in the response. |
page[before] | string or null Accepts an existing page cursor. For more details see the definition of PageCursor in the response. |
sort[updatedAt] | string or null Enum: 1 -1 Example: sort[updatedAt]=1 Sort by update date. 1 for ascending, -1 for descending. |
sort[createdAt] | string or null Enum: 1 -1 Example: sort[createdAt]=1 Sort by creation date. 1 for ascending, -1 for descending. |
createdAt[after] | string or null <date-time> Example: createdAt[after]=2020-01-01T20:15:00.000Z Only return entries created after this date. |
createdAt[before] | string or null <date-time> Example: createdAt[before]=2020-01-01T20:15:00.000Z Only return entries created before this date. |
updatedAt[after] | string or null <date-time> Example: updatedAt[after]=2020-01-01T20:15:00.000Z Only return entries updated after this date. |
updatedAt[before] | string or null <date-time> Example: updatedAt[before]=2020-01-01T20:15:00.000Z Only return entries updated before this date. |
{- "data": [
- {
- "amount": 5000,
- "attributedLineItemId": "string",
- "attributedLineItemType": "TICKET",
- "bookerEmailAddress": "user@example.com",
- "bookerName": "string",
- "bookingId": "string",
- "bookingType": "ENTRY",
- "currencyCode": "CAD",
- "eventId": "2365756",
- "eventOccurrenceId": "234676543146",
- "eventOccurrenceTitle": "string",
- "financialEntryId": "string",
- "id": "string",
- "incrementalStatus": "INCREMENTAL",
- "isRefund": true,
- "ldtAmount": 300,
- "lineItemName": "string",
- "itemId": "string",
- "itemSelectionId": "string",
- "lineItemType": "TICKET",
- "organizerAmount": 4700,
- "participantId": "string",
- "paymentCompletedAt": "2026-05-08T11:30:00.000Z",
- "paymentId": "string",
- "paymentReference": "string",
- "paymentRefundId": "string",
- "paymentStatus": "FUNDS_COMPLETE",
- "payoutId": "string",
- "quantity": 1,
- "raceTitle": "string",
- "raceId": "string",
- "startlistEntryId": "string",
- "thirdPartyAmount": 0,
- "ticketId": "string",
- "ticketTitle": "string",
- "transactionAt": "2026-05-08T11:30:00.000Z",
- "createdAt": "2026-05-08T11:30:00.000Z",
- "updatedAt": "2026-05-08T11:30:00.000Z"
}
], - "page": {
- "totalResults": 506,
- "first": "eyJpZCI6IjYzOTljMjAwMTVkNjBhZTNmZjI4ZjI0YyIsInVwZGF0ZWRBdCI6IjIwMjItMTItMTRUMTI6MzA6NTkuMjE3WiJ9",
- "last": "eyJpZCI6IjY1NGNkZDIxZDlhMTU3ODdiNzFkMTM0YSIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNzI0WiJ9",
- "prev": "",
- "next": "eyJpZCI6IjY0NzBkNTkwM2RjOWE5OWJhMTA0Y2ZhYiIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNjE4WiJ9"
}
}