03 Save Multiple Participants

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.