Register Users
Register a user in the Distinct system via the user registration endpoint.
Endpoint
POST https://api.distinct.so/v2/registration
Request Headers
| Key | Value |
|---|---|
Content-Type | application/json |
x-distinct-api-key | Your shared API key |
Request Body
| Key | Type | Required | Description |
|---|---|---|---|
firstName | String | Yes | First name of the user |
lastName | String | No | Last name of the user |
email | String | Yes | Email address of the user |
isTermsAndConditionsChecked | Boolean | Yes | Indicates if the user agreed to the TOS and Privacy Policy |
subscribeNewsletter | Boolean | Yes | Indicates if the user opted in to receive promotional emails |
phoneNumber | String | No | Unformatted phone number without country code |
phoneCountryCode | String | No | Phone number country code (e.g. "+1") |
phoneCountryName | String | No | Phone number country name (e.g. "us") |
birthYear | Number | Yes | Birth year of the user |
birthMonth | Number | Yes | Birth month of the user |
birthDate | Number | Yes | Birth day of the user |
dob | ISOTimestamp | Yes | Full date of birth in ISO date/time format |
experienceValue | String | Yes | Unique experience identifier mapping the user to an experience |
registrationPageValue | String | Yes | Unique registration page identifier mapping the user to a registration page |
language | String | Yes | Language preference (e.g. "en-IE") |
externalVendorId | String | Yes | External mapping ID (e.g. for Vendor campaignId: "mkod0a8imkod0a") |
info
- Optional fields should be omitted from the request body if there are no values — do not send them as empty strings or null.
- When a phone number is available, include all phone fields (
phoneNumber,phoneCountryCode,phoneCountryName). - If
externalVendorIdis sent,registrationPageValuemust be set to"external-vendor-registration".
Response
Success (200)
{
"statusCode": 200,
"message": "Registration successful.",
"data": {}
}
Example Request
cURL
curl -X POST 'https://api.distinct.so/v2/registration' \
-H 'Content-Type: application/json' \
-H 'x-distinct-api-key: <shared-api-key>' \
-d '{
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com",
"isTermsAndConditionsChecked": true,
"subscribeNewsletter": false,
"phoneNumber": "5555555555",
"phoneCountryCode": "+1",
"phoneCountryName": "us",
"dob": "1990-05-15T00:00:00Z",
"experienceValue": "wc-trophy-tour-2026",
"registrationPageValue": "external-vendor-registration",
"language": "en-IE",
"externalVendorId": "mkod0a8imkod0a"
}'
Replace the placeholders:
<shared-api-key>— your actual shared API key from Distinct
tip
The birthDate and birthMonth fields do not require leading zeros. If you do not have a newsletter/promotional email opt-in, set subscribeNewsletter to false.
Response Structure
| Status Code | Description | Example Response |
|---|---|---|
200 | User registered successfully | {"statusCode": 200, "message": "User created successfully", "data": true} |
400 | Phone number already exists | {"statusCode": 400, "message": "User phone number already registered", "data": {}} |
400 | Missing external vendor ID (only when registrationPageValue is "external-vendor-registration") | {"statusCode": 400, "message": "External vendor id is required", "data": {}} |
400 | Registration page not found (when externalVendorId is sent but no registration page matches) | {"statusCode": 400, "message": "Registration page not found", "data": {}} |
500 | Internal server error | {"statusCode": 500, "message": "Event is not active, Please report this issue to the support team.", "data": {}} |
Notes
- The
x-distinct-api-keywill be shared with you by the Distinct team and must be included in every API request. - The request body must be sent as
application/jsonwith all required fields. - Optional fields should be omitted from the payload if there are no values.
- When a phone number value is available, include all phone fields (
phoneNumber,phoneCountryCode,phoneCountryName). - If
externalVendorIdis to be sent, the value forregistrationPageValuemust be"external-vendor-registration".