How to create a participant with an External ID
Use this guide when your system has its own unique identifier for participants and you want to store it in ExpoPlatform for future lookups and updates — without relying on the internal account ID or email address.
Prerequisites
-
Your API key
-
The
event_idof the target event -
Your system's unique identifier for this participant (the External ID)
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" \
-F "external_id=EXT-00123"
Response
{
"code": 200,
"errors": null,
"data": {
"id": 12348,
"email": "john.doe@example.com",
"status": "created",
"external_id": "EXT-00123",
"errors": []
},
"response_id": "1700000000.12348"
}
The external_id field in the response confirms the value was stored. The internal id is also returned — store both if needed.
Using the External ID for future updates
Once set, you can use external_id as a lookup key in subsequent requests instead of passing the internal id:
curl -X POST "https://your-event-domain.com/api/v2/account/set" \
-H "Authorization: Bearer your_api_key_here" \
-F "event_id=7" \
-F "external_id=EXT-00123" \
-F "job_title=Senior Manager"
The endpoint will match the account by External ID and apply the update.
Notes
-
External IDs are matched before email in the lookup order:
id→external_id→email -
If the External ID doesn't match any existing account, the endpoint falls back to email matching
-
External IDs are stored as strings — ensure consistency in formatting across your system to avoid mismatches