POST sessions/set

POST /api/v2/sessions/set

Creates or updates a session. When id or external_id matches an existing session the record is updated; otherwise a new session is created.


Authentication

Authorization: Bearer <your_api_key>

Endpoint

POST /api/v2/sessions/set

Body Parameters

Submitted as multipart/form-data.

Parameter

Type

Required

Default

Description

event_id

integer

Required on create

The ID of the event. Must reference an existing event

id

integer

No

Session ID. If provided and matches an existing session, that session is updated

external_id

string

No

External system identifier. Used as a secondary lookup when id is absent

exhibitor_id

integer

No

Exhibitor ID. Can only be set on new sessions or sessions already owned by an exhibitor

title

string

No

Session title

track

integer

Required on create

Track (event category) ID

language

integer

Required on create

Session language ID. Use GET /api/v2/sessions/getLanguages to retrieve available options

date

string

Required on create

Session date in yyyy-MM-dd format (e.g. 2030-06-15)

startTime

string

Required on create

Session start time in HH:MM format (24-hour)

endTime

string

Required on create

Session end time in HH:MM format (24-hour). Must not be before startTime

type

string or integer

Required on create

Session type. Accepts a numeric type ID or a type title string

online

boolean

No

false

Whether the session is an online session

online_type

integer

No

1 if online=true

Online session type: 1 = Breakout, 2 = Livestream, 3 = On-demand, 4 = External

green_room

boolean

No

false

Whether the session has a green room

embed_code

string

No

Embed code for online sessions

hall_id

integer

No

Hall ID (location)

stand_id

integer

No

Stand ID (location). Takes precedence over hall_id

other_location

string

No

Free-text location. Applied when stand_id and hall_id are absent

address

string

No

Session address. Applied alongside other_location when enabled

logo

string or file

No

Session logo. May be a URL or a multipart file upload

description

string

No

Session description

speakers[]

array[string]

No

List of speaker account IDs or email addresses. Pass [""] to clear all speakers

moderators[]

array[string]

No

List of moderator account IDs or email addresses. Pass [""] to clear all moderators

sponsors[]

array[string]

No

List of sponsor IDs. Pass [""] to clear all sponsors

productCategories[]

array[string]

No

List of product category IDs

tags[]

array[string]

No

List of tag IDs or tag name strings. Pass [""] to clear all tags

visibleToCategories[]

array[string]

No

Participant category IDs this session is visible to. Pass [""] to make visible to everyone

price

integer

No

0

Session price. 0 means free

capacity

integer

No

0

Maximum number of attendees. 0 means unlimited

isActive

boolean

No

true

Whether the session is active

isFeatured

boolean

No

false

Whether the session is featured

settings[disable_raise_hand]

boolean

No

Disable the raise hand feature for this session

settings[disable_num_users]

boolean

No

Disable displaying the participant count

settings[disable_q_and_a]

boolean

No

Disable Q&A for this session

settings[disable_pools]

boolean

No

Disable polls for this session

settings[disable_chat]

boolean

No

Disable chat for this session


Response Format

Success Response (HTTP 200)

JSON
{
  "code": 200,
  "response_id": "...",
  "data": {
    "id": 42,
    "status": "created",
    "external_id": null,
    "errors": []
  }
}

Field

Type

Description

id

integer

ID of the created or updated session

status

string

"created" for new sessions, "updated" for existing sessions

external_id

string

The external ID stored on the session, if set

errors

array

Non-fatal errors encountered during processing (e.g. invalid speaker, bad logo URL). Empty when all sub-operations succeeded


Error Responses

HTTP Code

Condition

Error Message

400

id is not a valid integer

Param must be a integer: id

400

id provided but no matching session found

Invalid Session ID

400

Event not found

Could not find an event with id = <event_id>

400

Required field missing on create

Missing required parameter: <field>

400

date does not match yyyy-MM-dd

Param <field> must be a date formatted yyyy-MM-dd (e.g. 2020-02-16)

400

startTime or endTime does not match HH:MM

Param <field> must be a time formatted HH:MM (e.g. 21:30)

400

startTime is after endTime

Start time cannot be bigger than end time

500

Session could not be saved

The session could not be saved

403

Missing or invalid API key

Forbidden


Example Request — Create

Bash
curl -X POST "https://your-event-domain.com/api/v2/sessions/set" \
  -H "Authorization: Bearer your_api_key_here" \
  -F "event_id=7" \
  -F "type=1" \
  -F "language=1" \
  -F "track=2" \
  -F "date=2030-06-15" \
  -F "startTime=10:00" \
  -F "endTime=11:00" \
  -F "title=My Session" \
  -F "isActive=true"

Example Response — Create

JSON
{
  "code": 200,
  "response_id": "1678392903.632666",
  "data": {
    "id": 42,
    "status": "created",
    "external_id": null,
    "errors": []
  }
}

Example Request — Update

Bash
curl -X POST "https://your-event-domain.com/api/v2/sessions/set" \
  -H "Authorization: Bearer your_api_key_here" \
  -F "id=42" \
  -F "title=Updated Session Title" \
  -F "isFeatured=true"

Example Response — Update

JSON
{
  "code": 200,
  "response_id": "1678454885.954703",
  "data": {
    "id": 42,
    "status": "updated",
    "external_id": null,
    "errors": []
  }
}