Skip to main content
View as Markdown

Sessions API - Events Platform

Sessions API​

Sessions are the individual rooms/streams within an event. Each event can have multiple sessions of different types.

6.1 Session Types​

TypeDescription
MeetingEntryInteractive room — bidirectional audio/video for all participants
LiveWebcastLive webcast — presenter streams to viewers, chat/Q&A for interaction
SimuLiveSimulive — pre-recorded VOD played as a live stream on schedule
LiveKMEDIY live — bring your own encoder (RTMP/SRT ingest)
VirtualLearningRoomVirtual classroom with interactive learning tools

6.2 Create a Session​

POST /api/v1/sessions/create

Important: Session fields must be nested inside a session object. The eventId is at the top level.

{
"eventId": 12345,
"session": {
"name": "Keynote Presentation",
"type": "LiveWebcast",
"startDate": "2024-12-15T14:00:00.000Z",
"endDate": "2024-12-15T15:00:00.000Z",
"description": "Opening keynote by CEO",
"visibility": "published"
}
}
FieldTypeRequiredDescription
eventIdintegerYesParent event ID (top level)
session.namestringYesSession name
session.typestringYesSession type (see table above)
session.startDatestringYesISO 8601 start date
session.endDatestringYesISO 8601 end date
session.descriptionstringNoSession description
session.visibilitystringNopublished (default), unlisted, or private
session.sourceEntryIdstringNoVOD entry ID for SimuLive sessions

Response example:

{
"session": {
"id": 67890,
"name": "Keynote Presentation",
"type": "LiveWebcast",
"startDate": "2024-12-15T14:00:00.000Z",
"endDate": "2024-12-15T15:00:00.000Z",
"description": "Opening keynote by CEO",
"visibility": "published"
},
"status": "ok"
}

The session object is nested inside the session key. Save session.id for subsequent calls.

SimuLive example (pre-recorded content played as live):

{
"eventId": 12345,
"session": {
"name": "Pre-recorded Demo",
"type": "SimuLive",
"startDate": "2024-12-15T15:00:00.000Z",
"endDate": "2024-12-15T15:30:00.000Z",
"sourceEntryId": "0_prerecorded123"
}
}
curl -X POST "$KALTURA_EVENTS_API_URL/sessions/create" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d '{
"eventId": 12345,
"session": {
"name": "Main Webcast",
"type": "LiveWebcast",
"startDate": "2024-12-20T15:00:00.000Z",
"endDate": "2024-12-20T16:00:00.000Z",
"description": "Main presentation",
"visibility": "published"
}
}'

The response contains a session object with id, name, type, and other fields.

6.3 List Sessions for an Event​

POST /api/v1/sessions/list
{
"eventId": 12345
}
FieldTypeRequiredDescription
eventIdintegerYesParent event ID

Returns all sessions belonging to the event. Response uses the sessions key.

Response example:

{
"sessions": [
{
"id": 67890,
"name": "Keynote Presentation",
"type": "LiveWebcast",
"startDate": "2024-12-15T14:00:00.000Z",
"endDate": "2024-12-15T15:00:00.000Z",
"visibility": "published"
}
]
}
curl -X POST "$KALTURA_EVENTS_API_URL/sessions/list" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d '{"eventId": 12345}'

The response contains a sessions array with each session's id, name, type, and visibility.

6.4 List Speakers for a Session​

POST /api/v1/sessions/speakerList
{
"eventId": 12345,
"sessionId": 67890
}
FieldTypeRequiredDescription
eventIdintegerYesParent event ID
sessionIdintegerYesSession ID to list speakers for

Returns the list of speakers assigned to the session.