Insert or update multiple participants #
Insert or update multiple participants. Requires a valid session token and the permissions.participants.store-multiple permission. This endpoint will queue the participants for import. The import process will run asynchronously in the background and may take some time to complete, depending on the number of participants being imported. Once the import process is completed, the participants will be available in the system and can be retrieved using the appropriate endpoints.
You can check the import status of the participants by logging into the Admin Dashboard.
Endpoint #
POST https://api.tracx.events/v1/connect/events/{event_id}/participants
Headers #
{
"Accept": "application/json",
"Authorization": "<connect-token>"
}
Example cURL Request #
curl -X POST https://api.tracx.events/v1/connect/events/1/participants \
-H "Accept: application/json" \
-H "Authorization: <connect-token>" \
-d '[
{
"unique_id": "1",
"first_name": "John",
"last_name": "Doe",
"country_code": "nl",
"team_name": null,
"date_of_birth": "2001-01-01",
"start_number": "1",
"chip_code": "0000001",
"gender": "male",
"state": "before",
"race_id": 1
},
{
"unique_id": "2",
"first_name": "William",
"last_name": "Smith",
"country_code": "nl",
"team_name": null,
"date_of_birth": "2002-02-02",
"start_number": "2",
"chip_code": "0000002",
"gender": "female",
"state": "before",
"race_id": 1
}
]'
Fields #
| Field Name | Required | Type | Constraints / Rules |
|---|---|---|---|
| unique_id | Yes | String | - Must be an alpha-numeric string with dashes/underscores allowed (alpha_dash) - Maximum length: 100 characters |
| first_name | Yes | String | - Maximum length: 100 characters |
| last_name | Yes | String | - Maximum length: 100 characters |
| date_of_birth | Yes | Date | - Format: YYYY-MM-DD - Must be a valid date matching the format |
| race_id | Yes | Integer | - Must be an integer |
| country_code | Optional | String | - Must be a valid ISO country code (i.e. NL) |
| team_name | Optional | String | - Maximum length: 100 characters |
| start_number | Optional | String | - Must be alpha-numeric with dashes/underscores allowed (alpha_dash) - Maximum length: 100 characters |
| chip_code | Optional | String | - Must be exactly 7 characters long (this may be prefixed with leading zero’s) |
| gender | Optional | String | - Allowed values: male, female, neutral |
| state | Optional | String | - Must be one of the following: before, during, paused, resumed, after, finished, did_not_finish, disqualified, did_not_start |
Sample Response #
{
"data":
{
"error": false,
"success": true,
"message": "Successfully queued participants for import",
"errors": []
}
}
Error Handling #
| Status Code | Meaning |
|---|---|
| 200 OK | Request was successful |
| 401 Unauthorized | Missing or invalid authentication token |
| 403 Forbidden | Session Token does not have the required permission |
| 422 Unprocessable Entity | Validation failed for one or more fields |
Notes #
- The request must include a valid session token.
- The session token must have the permissions.participants.store-multiple permission.
- The endpoint will insert or update each participant based on their unique_id.
- The participant is linked to a specific race and its associated event, inferred via race_id.
- Each request is limited to 100.000 participants. If you need to import more participants, please split them into multiple requests.