Create Race Registration
Submit a new race registration to the HIQOR ingestion platform. This endpoint handles structured validation, idempotent duplicate detection, and unified UUID tracking in real time.
Endpoint
https://tdpudkswxg.execute-api.us-west-2.amazonaws.com/registration/createRaceRegistrationHeaders
Authorization: Bearer <jwt_token>
Content-Type: application/jsonRequest Body
{
"assessmentType": "Race Registration",
"funnelID": "<authorized_funnel_slug>",
"clientId": "<partner_client_id>",
"firstName": "John",
"lastName": "Doe",
"email": "john@example.com",
"phone": "2105551234",
"eventName": "Terrain Race | Oklahoma City 2026",
"eventDate": "2026-07-31",
"registrationDate": "2026-02-24",
"ageRange": "25–34 Core Participants",
"birthdate": "1994-05-10",
"city": "Charlotte",
"state": "NC",
"zip": "28211",
"policyNumber": "TRO2026-WAIVER-45892",
"policyLink": "https://policies.terrainrace.com/okc-2026/waiver",
"consentURL": "https://example.com/marketing-consent",
"eventConsentOptIn": "yes",
"mutualLeadGenConsent": "yes",
"IPAddress": "192.168.1.1"
}Field Requirements
Required Fields
funnelIDemailAuthorization(request header)phone(required ifmutualLeadGenConsent="yes")consentURLfirstNamelastNamecitystatezipeventConsentOptInmutualLeadGenConsent
Optional Fields
assessmentType(defaults to "Race Registration")clientIdpolicyNumberpolicyLinkIPAddressageRangeeventDateregistrationDatebirthdate
Age Handling for Compliance
Partners may provide age in one of two ways:
birthdate(exact DOB), orageRange(privacy-preserving alternative)
If birthdate cannot be shared for compliance or privacy reasons, partners may optionally send ageRange instead. The platform will accept and store either field, or both, if provided.
Recommended ageRange values:
- "Under 18 Youth"
- "18–24 College / Entry"
- "25–34 Core Participants"
- "35–44 Family Builders"
- "45–54 Established"
- "55+ Active Seniors"
If neither birthdate nor ageRange is provided, the registration can still be created, but age segmentation for analytics may be unavailable.
Example cURL Request
curl -X POST https://tdpudkswxg.execute-api.us-west-2.amazonaws.com/registration/createRaceRegistration \
-H "Authorization: Bearer <jwt_token>" \
-H "Content-Type: application/json" \
-d '{
"assessmentType": "Race Registration",
"funnelID": "<authorized_funnel_slug>",
"clientId": "<client_id>",
"firstName": "John",
"lastName": "Doe",
"email": "john@example.com",
"phone": "2105551234",
"eventName": "Terrain Race | Oklahoma City 2026",
"eventDate": "2026-07-31",
"registrationDate": "2026-02-24",
"ageRange": "25–34 Core Participants",
"birthdate": "1994-05-10",
"city": "Charlotte",
"state": "NC",
"zip": "28211",
"policyNumber": "TRO2026-WAIVER-45892",
"policyLink": "https://policies.terrainrace.com/okc-2026/waiver",
"consentURL": "https://example.com/marketing-consent",
"eventConsentOptIn": "yes",
"mutualLeadGenConsent": "yes",
"IPAddress": "192.168.1.1"
}'Success Response
{
"message": "Race Registration created",
"uuid": "<generated_uuid>"
}Idempotent Duplicate Handling
If a registration already exists for the same identifier, the API returns the following response instead of creating a duplicate record:
{
"message": "Race Registration already exists (idempotent). Not re-sent."
}Validation Errors
Missing Required Fields
{
"message": "Missing required fields (email or funnelID)"
}Conditional Requirement
{
"message": "Missing required field (phone)"
}Invalid Funnel
{
"message": "Race Registration is not enabled for this funnel"
}Rate Limiting
The following limits apply per credential set:
- 100 requests per minute
- 1,000 requests per hour