Get an API key
Create an API key from the Settings → Credentials section of your Let’s Do This account. Contact your Let’s Do This representative if you cannot access this section. If an API key is exposed, revoke it from the same section and create a replacement.Send your first request
Include your API key as a bearer token in theAuthorization header:
The code samples on endpoint pages are copyable but do not send requests from
this documentation site. This prevents API keys from passing through a
documentation proxy.
Paginated responses
List endpoints return results indata and pagination information in page:
page[after] or page[before] from a response into your next request. Use page[size] to control the number of results where the endpoint supports it.
Optional features
Some endpoints accept a comma-separatedfeatures query parameter. Features add fields or behavior for one request without changing the default response contract.
For example:
Error responses
Rate limiting
Every import endpoint, the registration-status check and the timing ingest endpoint are rate limited, so a request to one can be rejected with a429:
POSTandPUT /v0/bookings/line-items/importPOSTandPUT /v0/add-ons/importPOST /v0/bookings/importPOST /v0/credits/importPOST /v0/discount-codes/importPOST /v0/referrals/importPOST /v0/reserved-entries/participants/importPOST /v0/event-occurrences/{id}/registration-statusPOST /timing-inbound/v1
x-ratelimit-* headers on a response are what tell you a limit applies, so treat 429 as a response any endpoint can return.
Sequential requests are unlikely to be affected. Sending requests in parallel, which is the natural way to drive a bulk import, is what exhausts an allowance.
Every response from these endpoints reports the current state of your allowance:
A rejected request also returns a
retry-after header with the number of seconds to wait:
Treat these headers as the authoritative source rather than hard coding a
figure. Which endpoints are limited, and how generous each allowance is, can
change.
429 by waiting for the period given in retry-after and retrying. A rejected request is never processed, so retrying it is safe — no import is partially applied because of a rate limit.

