POST account/set

POST /api/v2/account/set

Creates a new participant account or updates an existing one within a given event. When a match is found by id, external_id, or email, the existing record is updated. When no match is found, a new account is created.


Authentication

This endpoint requires authentication via an API key passed in the Authorization header using the Bearer scheme:

Authorization: Bearer <your_api_key>

If the API key is missing or invalid, the request will be rejected with a 403 Forbidden response.


Endpoint

POST /api/v2/account/set

Create vs Update — How Matching Works

The endpoint attempts to find an existing account in the following order:

  1. By id — if provided, the account with that internal ID is updated

  2. By external_id — if no id is given, the account with the matching external ID is updated

  3. By email — if neither id nor external_id is given, the account with the matching email is updated

If none of the above produce a match, a new account is created.

The info field in the response indicates which matching strategy was used (e.g. "Account match: email").

Note: Exhibitor owner accounts and accounts with admin-only roles cannot be updated via this endpoint.


Field scope — global vs local

Participant accounts are shared across all events within the same data environment. Parameters in this endpoint fall into two categories:

Global fields are stored at the account level and shared across all events. Updating any of these fields in a specific event will trigger a cascade update in every other event this account is attached to within the same data environment.

This includes: first_name, last_name, email, title, job_title, company_name, photo, password, default_lang, external_id, external_qr, and all profile, contact, location, and social media fields.

Local fields are scoped to the event identified by event_id. They only affect the participant's record within that event and do not cascade to other events.

Local parameter

What it controls

status

Participant status within this event

category_id

Participant category within this event

speaker

Speaker role for this event

moderator

Moderator role for this event

exhibitor_id / exhibitor_external_id / member_role

Exhibitor team assignment for this event

activity_categories[]

Business matching activity categories for this event

interest_categories[]

Business matching interest categories for this event

networking

Networking opt-in for this event

allow_receive_requests, allow_receive_messages, allow_meetings, allow_chats

Connection settings for this event

receiveAppointmentConfirm, receiveAppointmentCancel, receiveAppointmentIncoming, receiveAppointmentRescheduled, receiveMessageNotification

Notification preferences for this event


Body Parameters

Content-Type: multipart/form-data

Identity & Lookup

Parameter

Type

Required

Default

Accepted Values / Format

Description

event_id

integer

Yes

Valid event ID

The ID of the event this participant belongs to

id

integer

No

Valid account ID

Internal account ID. When provided, used as the primary lookup key for updates

email

string

Required on create

Valid email address

Participant email address and login. Used as a fallback lookup key

external_id

string

No

Any string

External system identifier. Used as a secondary lookup key for updates

Personal Information

Parameter

Type

Required

Default

Accepted Values / Format

Description

first_name

string

Required on create

Any string

First name

last_name

string

Required on create

Any string

Last name

title

string

No

Must match a configured salutation value (e.g. Mr, Mrs, Dr)

Honorific title / salutation

job_title

string

No

Any string

Job title / position

company_name

string

No

Any string

Company name

description

string

No

Any string

Participant biography or description

matchmaking_message

string

No

Any string

Matchmaking introduction message

birthdate

string

No

Any string

Date of birth

organisation_name

string

No

Any string

Organisation name

organisation_id

string

No

Any string

Organisation ID

Location

Parameter

Type

Required

Default

Accepted Values / Format

Description

country

string

No

2-letter ISO 3166-1 alpha-2 code (e.g. GB) or full country name (e.g. United Kingdom)

Country. Resolved against the platform's country list; non-matching values are recorded as non-fatal errors

nationality

string

No

2-letter ISO 3166-1 alpha-2 code or full country name

Nationality

region

string

No

Region name; requires country to be set in the same request

Region / state

city

string

No

City name (max 80 characters); requires country to be set

City

postcode

string

No

Any string

Postal / ZIP code

address

string

No

Any string

Street address

Contact

Parameter

Type

Required

Default

Accepted Values / Format

Description

tel

string

No

Any string

Phone number

website

string

No

Any string

Website URL

Profile Photo

Parameter

Type

Required

Default

Accepted Values / Format

Description

photo

string or file

No

URL pointing to an image, or a multipart file upload. Accepted MIME types: image/png, image/jpeg

Profile photo. Non-supported formats are recorded as non-fatal errors and the photo is not saved

Social Media

Parameter

Type

Required

Default

Accepted Values / Format

Description

linkedin_page

string

No

URL

LinkedIn profile URL

twitter_page

string

No

URL

Twitter / X profile URL

facebook_page

string

No

URL

Facebook page URL

instagram_page

string

No

URL

Instagram profile URL

youtube_page

string

No

URL

YouTube channel URL

Account Settings

Parameter

Type

Required

Default

Accepted Values / Format

Description

status

string

No

ACTIVE

REGISTERED, ACTIVE, INVITED, UPLOADED

Participant status within the event

category_id

integer

No

Valid participant category ID for the event. Use GET /api/v2/account/getCategories to retrieve available IDs

Assigns the participant to a category

default_lang

string

No

ISO 639-1 language code (e.g. en, fr, de)

Default language for platform notifications

password

string

No

Auto-generated on create

Min 8 characters; must include at least one uppercase letter, one lowercase letter, one digit, and one special character; no whitespace

Account password. Password complexity failures are recorded as non-fatal errors and the password is not changed

⚠️ send_email warning: When set to true, a registration confirmation email is sent to the participant. This applies to every request — not just the initial creation. Do not hardcode send_email=true in your integration, as it will trigger an email on every update call. Only pass send_email=true when you explicitly intend to send a registration email.

Parameter

Type

Required

Default

Accepted Values / Format

Description

send_email

boolean

No

false

true / false

Sends a registration confirmation email to the participant when true. See warning above

Event Roles

Parameter

Type

Required

Default

Accepted Values / Format

Description

speaker

boolean

No

true to assign, false to remove

Assigns or removes the speaker role for this event

moderator

boolean

No

true to assign, false to remove

Assigns or removes the moderator role for this event

Exhibitor Assignment

Parameter

Type

Required

Default

Accepted Values / Format

Description

exhibitor_id

integer

No

Valid exhibitor ID for the event

Associates the participant with an exhibitor team

exhibitor_external_id

string

No

Exhibitor's external ID

Alternative to exhibitor_id — looks up the exhibitor by external ID

member_role

string

No

admin or member

Role of the participant within the exhibitor team. admin allows editing the exhibitor profile and managing the team via the platform UI

agent_id

integer

No

Valid agent account ID

Agent ID for hosted buyer flows

Business Matching

Parameter

Type

Required

Default

Accepted Values / Format

Description

activity_categories[]

array

No

Array of valid product category IDs, or a comma-separated string

Business matching activity categories

interest_categories[]

array

No

Array of valid product category IDs

Business matching interest categories

rebuild_categories

boolean

No

false

true / false

When true, triggers a recalculation of business matching categories from custom field data

Connection & Communication Settings

Parameter

Type

Required

Default

Accepted Values / Format

Description

networking

boolean

No

Exactly true or false as a string

Networking opt-in flag. Any value other than "true" or "false" is ignored and recorded as a non-fatal error

allow_receive_requests

integer

No

1 on create

0 (disabled) or 1 (enabled)

Controls whether other participants can send meeting requests to this account

allow_receive_messages

integer

No

1 on create

0 (disabled) or 1 (enabled)

Controls whether other participants can send messages to this account

allow_meetings

integer

No

1 on create

0 (disabled) or 1 (enabled)

Meetings feature flag

allow_chats

integer

No

1 on create

0 (disabled) or 1 (enabled)

Chat feature flag

Notification Preferences

Parameter

Type

Required

Default

Accepted Values / Format

Description

receiveAppointmentConfirm

boolean

No

true on create

true / false

Receive notification when an appointment is confirmed

receiveAppointmentCancel

boolean

No

true on create

true / false

Receive notification when an appointment is cancelled

receiveAppointmentIncoming

boolean

No

true on create

true / false

Receive notification when a new appointment request is received

receiveAppointmentRescheduled

boolean

No

true on create

true / false

Receive notification when an appointment is rescheduled

receiveMessageNotification

boolean

No

true on create

true / false

Receive notification when a new message is received

External Identifiers

Parameter

Type

Required

Default

Accepted Values / Format

Description

external_barcode

string

No

Any string

External barcode value

external_qr

string

No

Any string

External QR code value

Custom Fields

Parameter

Type

Required

Default

Accepted Values / Format

Description

{field_name}

string

No

Field name must not exceed 64 characters. For multi-value fields, separate values with \|\| (double pipe)

Any custom registration form field configured for the event. Pass the field's system name as the parameter key

Performance

Parameter

Type

Required

Default

Accepted Values / Format

Description

fast_mode

boolean

No

true / false

When true, skips profile completeness recalculation. Useful for high-volume batch imports where performance matters


Response

Success Response (HTTP 200)

JSON
{
  "code": 200,
  "errors": null,
  "data": {
    "id": 12345,
    "email": "john.doe@example.com",
    "status": "created",
    "external_id": null,
    "info": ["Account match: email"],
    "errors": [],
    "speaker": true,
    "moderator": false
  },
  "response_id": "1700000000.12345"
}

Field

Type

Description

id

integer

Internal account ID of the created or updated participant

email

string

Email address of the account

status

string

"created" if a new account was created; "updated" if an existing account was updated

external_id

string or null

The external ID stored on the account, if set

info

array or null

Describes which matching strategy was used (e.g. "Account match: email"). Present only on updates

errors

array

Non-fatal field-level errors encountered during the request. The account is still saved when these occur

speaker

boolean

Present when the speaker role was assigned or removed

moderator

boolean

Present when the moderator role was assigned or removed

About non-fatal errors: Some field-level issues do not prevent the account from being saved. They are returned in the errors array in the response. Always check this field to confirm all parameters were processed correctly.


Error Responses

HTTP Code

Condition

Error Message

400

event_id is not a valid integer

Param must be a integer: event_id

400

event_id references a non-existent event

Could not find an event with id = {id}

400

id provided but does not match any account

Invalid Account ID

400

Matched account has admin-only roles

This account can't be updated

400

Matched account is an exhibitor owner

Exhibitors account can't be edited

400

Required field missing on create (first_name, last_name, or email)

Missing required parameter: {field}

400

Account creation failed

Account create error

400

Account save failed

Account update error

403

Missing or invalid API key

Forbidden


Example Request — Create

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=ACTIVE" \
  -F "company_name=Acme Corp" \
  -F "job_title=Product Manager"

Example Response — Create

JSON
{
  "code": 200,
  "errors": null,
  "data": {
    "id": 12345,
    "email": "john.doe@example.com",
    "status": "created",
    "external_id": null,
    "errors": []
  },
  "response_id": "1700000000.12345"
}

Example Request — Update

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 "id=12345" \
  -F "job_title=Senior Product Manager" \
  -F "company_name=Acme Corp Ltd"

Example Response — Update

JSON
{
  "code": 200,
  "errors": null,
  "data": {
    "id": 12345,
    "email": "john.doe@example.com",
    "status": "updated",
    "external_id": null,
    "info": ["Account match: id"],
    "errors": []
  },
  "response_id": "1700000000.12346"
}