How to create a new participant
Use this guide when you need to register a new participant into an event via the API. This covers the minimum required fields to create an account successfully.
Prerequisites
Before making this request, make sure you have:
-
Your API key
-
The
event_idof the event you want to register the participant into -
The participant's first name, last name, and email address
If you're unsure whether the participant already exists in the event, use the
POST /api/v2/account/existsendpoint first to avoid unintentional duplicates.
Request
curl -X POST "https://your-event-domain.com/api/v2/account/set" \
-H "Authorization: Bearer your_api_key_here" \
-F "event_id=7" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "email=john.doe@example.com"
Response
{
"code": 200,
"errors": null,
"data": {
"id": 12345,
"email": "john.doe@example.com",
"status": "created",
"external_id": null,
"errors": []
},
"response_id": "1700000000.12345"
}
A "status": "created" in the response confirms a new account was created. The id field contains the internal account ID — store this if you need to update the participant later.
What happens if the email already exists?
If an account with the same email is already registered for the event, the endpoint will update the existing account instead of creating a new one, and the response will return "status": "updated".
Optional: set a status on creation
By default, new participants are created with a status of ACTIVE. You can set a different status by adding the status parameter:
curl -X POST "https://your-event-domain.com/api/v2/account/set" \
-H "Authorization: Bearer your_api_key_here" \
-F "event_id=7" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "email=john.doe@example.com" \
-F "status=REGISTERED"
Accepted values: REGISTERED, ACTIVE, INVITED, UPLOADED
Optional: assign to a category on creation
If your event uses participant categories, you can assign the participant at creation time by passing the category_id. To find the available category IDs for your event, use the GET /api/v2/account/getCategories endpoint.
curl -X POST "https://your-event-domain.com/api/v2/account/set" \
-H "Authorization: Bearer your_api_key_here" \
-F "event_id=7" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "email=john.doe@example.com" \
-F "category_id=5"
⚠️ Do not use
send_email=trueby default. If you addsend_email=trueto this request, a registration confirmation email will be sent to the participant. This parameter fires on every request it is included in — not just on creation — so hardcoding it will result in repeated emails being sent on every update. Only includesend_email=truewhen you explicitly intend to trigger a registration email.