POST exhibitor/set

POST /api/v2/exhibitor/set

Creates a new exhibitor or updates an existing one. The endpoint uses upsert logic — it resolves an existing exhibitor by exhibitor_id, external_id, or username (in that order), and falls back to creating a new exhibitor if no match is found.


Authentication

Authorization: Bearer <your_api_key>

Endpoint

POST /api/v2/exhibitor/set

Content-Type: multipart/form-data


Upsert lookup order

Priority

Parameter

Behaviour

1

exhibitor_id

Matches by internal exhibitor ID

2

external_id

Matches by External ID

3

username

Matches by owner account username

No match

Creates a new exhibitor


Required fields on create

Parameter

Type

Description

event_id

integer

The event this exhibitor belongs to

name

string

Exhibitor display name (max 500 chars)

email

string

Primary email address (unless email_auto=true)


Field scope — global vs local

Exhibitor records are shared across all events within the same data environment.

Global fields are stored at the exhibitor 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 exhibitor is attached to within the same data environment. This includes: name, short_name, fascia_name, about, email, phone, website, address, postcode, country, region, city, logo, all header images, all social media fields, all contact person (cp_*) fields, external_id, and default_lang.

Local fields are scoped to the event identified by event_id:

Local parameter

What it controls

exhibitor_category

Exhibitor category within this event

product_categories / interest_categories

Product category tags for this event

hall / stand / hall_name / stand_name

Floor plan assignment for this event

is_sponsor / sponsor_popup

Sponsor status for this event

is_new

"New" label for this event

members_limit / news_limit / pr_limit

Limits for this event

tags

Tags for this event


Key optional parameters

Profile

Parameter

Description

short_name

Short display name

fascia_name

Fascia name

about

Description / about text

external_id

External ID for system sync

Contact

Parameter

Description

phone

Primary phone number

website

Website URL

address

Street address

country

Country — ISO 2-letter, ISO 3-letter, or full name

region

Region / state. Requires country

city

City. Requires country

Social media

facebook_page, linkedin_page, twitter_page, instagram_page, youtube_page

Contact person

cp_name, cp_surname, cp_position, cp_email, cp_phone, cp_title

Media

Parameter

Description

logo

Logo — URL string or file upload (image/png, image/jpeg)

header_image

Desktop header image URL

header_image_tablet

Tablet header image URL

header_image_mobile

Mobile header image URL

Floor plan

Parameter

Description

hall

Semicolon-separated hall name(s). Auto-created if not found

stand

Semicolon-separated stand name(s). Auto-created if not found

hall_name

Hall display label (free text)

stand_name

Stand display label (free text)

Use GET /api/v2/floorplan/getHalls and GET /api/v2/floorplan/getStands to look up existing names. Stands auto-created via this endpoint default to is_conference=false.

Categories

Parameter

Description

exhibitor_category

Exhibitor category — ID or category title

product_categories

Comma-separated product/activity category IDs

interest_categories

Comma-separated interest category IDs

tags

Comma-separated tag names. New tags created automatically. Existing tags not in list are removed

Limits & settings

Parameter

Description

members_limit

Maximum team members. 0 = unlimited

news_limit

News item limit

pr_limit

Active products limit. 0 = unlimited

Sponsorship

Parameter

Description

is_sponsor

true / false — sets sponsor status

sponsor_popup

true to enable sponsor popup (only when is_sponsor=true)

Hierarchy

Parameter

Description

is_parent_exhibitor

true to mark as a parent (head office / pavilion)

is_pavilion

true when is_parent_exhibitor=true to mark as pavilion type

children_exhibitors

Comma-separated IDs of child exhibitors

parent_exhibitor_id

ID of the parent exhibitor this exhibitor belongs to

Other

Parameter

Description

is_new

true to apply a "New" label

send_email

true to send a credentials email. ⚠️ Fires on every request it is included in — do not hardcode


Response

JSON
{
  "code": 200,
  "data": {
    "id": 1200,
    "owner_id": 6001,
    "username": "acme_corp_1200",
    "status": "created",
    "external_id": null
  }
}

Field

Type

Description

id

integer

Exhibitor ID

owner_id

integer

Account ID of the exhibitor owner

username

string

Owner account username

status

string

"created" or "updated"

external_id

string or null

External ID

info

string[]

Which lookup strategy matched (update only)

errors

string[]

Non-fatal errors


Error Responses

HTTP Code

Condition

Error Message

400

event_id missing or invalid

Invalid Exhibition ID

400

email missing on create

Param is required: email

400

name missing on create

Missing required parameter for CREATE: name

400

hall and stand have identical names

Hall or stand can't have identical names

403

Missing or invalid API key

Forbidden