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": []
  }
}