---
title: Sessions API
url: https://docs.kaltura.com/docs/events-collaboration/events-platform-api/events-platform-sessions-api
---

## 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.

```json
{
  "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:**

```json
{
  "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):
```json
{
  "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"
  }
}
```

```bash
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
```

```json
{
  "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:**

```json
{
  "sessions": [
    {
      "id": 67890,
      "name": "Keynote Presentation",
      "type": "LiveWebcast",
      "startDate": "2024-12-15T14:00:00.000Z",
      "endDate": "2024-12-15T15:00:00.000Z",
      "visibility": "published"
    }
  ]
}
```

```bash
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
```

```json
{
  "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.
