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
| Type | Description |
|---|---|
MeetingEntry | Interactive room — bidirectional audio/video for all participants |
LiveWebcast | Live webcast — presenter streams to viewers, chat/Q&A for interaction |
SimuLive | Simulive — pre-recorded VOD played as a live stream on schedule |
LiveKME | DIY live — bring your own encoder (RTMP/SRT ingest) |
VirtualLearningRoom | Virtual 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"
}
}
| Field | Type | Required | Description |
|---|---|---|---|
eventId | integer | Yes | Parent event ID (top level) |
session.name | string | Yes | Session name |
session.type | string | Yes | Session type (see table above) |
session.startDate | string | Yes | ISO 8601 start date |
session.endDate | string | Yes | ISO 8601 end date |
session.description | string | No | Session description |
session.visibility | string | No | published (default), unlisted, or private |
session.sourceEntryId | string | No | VOD 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
}
| Field | Type | Required | Description |
|---|---|---|---|
eventId | integer | Yes | Parent 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
}
| Field | Type | Required | Description |
|---|---|---|---|
eventId | integer | Yes | Parent event ID |
sessionId | integer | Yes | Session ID to list speakers for |
Returns the list of speakers assigned to the session.