How to create a new participant

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_id of 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/exists endpoint first to avoid unintentional duplicates.


Request

Bash
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

JSON
{
  "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:

Bash
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.

Bash
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=true by default. If you add send_email=true to 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 include send_email=true when you explicitly intend to trigger a registration email.