---
title: "Explicit SSAI Session Initialization Endpoint"
method: POST
path: "/v2/sites/{site_id}/media/{media_id}/ssai.{manifest_extension}"
tags: ["SSAI"]
---

# Explicit SSAI Session Initialization Endpoint

`POST /v2/sites/{site_id}/media/{media_id}/ssai.{manifest_extension}`

## Request

- Base URL: `https://cdn.jwplayer.com`
- URL: `https://cdn.jwplayer.com/v2/sites/{site_id}/media/{media_id}/ssai.{manifest_extension}`
- Auth: none declared

Initializes the SSAI session and returns a JSON with the URLs needed to stream content and track the session

If URL-signing is enabled, follow the [instructions](https://docs.jwplayer.com/platform/reference/protect-your-content-with-signed-urls#create-a-signed-jwt-url) for creating a properly formed request.

For DRM-protected content, use the [Single media, playback metadata endpoint](https://docs.jwplayer.com/platform/reference/get_v2-sites-site-id-media-media-id-playback-json) and include the `ad_config_id` query parameter to request the SSAI version with DRM support.

## Path parameters

- `site_id` string, required
- `media_id` string, required
- `manifest_extension` 'm3u8' | 'mpd', required

## Query parameters

- `ad_config_id` string, required
- `schema` '' | 'aws'

## Request body

- object
  - `reporting_mode` string: Determines whether tracking beacons are sent by the client or the server The selected value is appended as a query parameter to the session metadata URL returned in `session_info`, or in `trackingUrl` when `schema=aws`. **Possible values**: - `client`: (Default) The player or client sends tracking beacons - `server`: The server sends tracking beacons
  - `ads_params` object: Key-value pairs sent with the ad request These pairs provide session-specific targeting information that the ad server uses to determine which ads are eligible to serve. Supported keys and values depend on your ad server and ad tag configuration.

## Response `200`

SSAI session started successfully. JSON containing the manifest URL and session info URL.

May include an optional warning when playback URLs are still returned but something did not match the ideal path.

- union: Returned with HTTP 200 when the SSAI session is successfully started Field names depend on the `schema` query parameter: - Default/empty schema returns `snake_case` (`ssai_session_init_success_response_jw`) - `schema=aws` returns `camelCase` (`SSAISessionInitSuccessResponseAws`).
  - SSAISessionInitSuccessResponseJw: Default JW response shape when `schema` is omitted or empty. May also include an optional warning object when playback URLs are returned but the request did not follow the ideal execution path.
    - `manifest_url` string, required: Absolute URL of the SSAI-enabled streaming manifest (for example, HLS `jit.m3u8`) for this session.
    - `session_info` string, required: Absolute URL of the SSAI session metadata (`info.json`) for this session.
    - `warning` SSAISessionInitStatusMessage: JSON response object used for fatal errors when initialization cannot complete, and for the optional warning field on successful responses that used a fallback
      - `code` string, required: Machine-readable error or warning code.
      - `description` string, required: Human-readable explanation of the error or warning.
  - SSAISessionInitSuccessResponseAws: Response shape when `schema=aws`, returning the same URLs as the default shape but with different property names May also include an optional warning object when playback URLs are returned but the request did not follow the ideal execution path.
    - `manifestUrl` string, required: Absolute URL of the SSAI-enabled streaming manifest (for example, HLS `jit.m3u8`) for this session.
    - `trackingUrl` string, required: Absolute URL of the SSAI session metadata (`info.json`) for this session.
    - `warning` SSAISessionInitStatusMessage: JSON response object used for fatal errors when initialization cannot complete, and for the optional warning field on successful responses that used a fallback
      - `code` string, required: Machine-readable error or warning code.
      - `description` string, required: Human-readable explanation of the error or warning.

## Other responses

- `400`: Bad Request The request either lacks certain attributes or contains malformed/invalid attributes. When session initialization cannot proceed due to a client-side problem, the body may be JSON with code and description.
- `404`: Not Found The requested asset could not be found. The response body may include a JSON object with code and description explaining the issue.
- `422`: Unprocessable Content The requested extension could not be processed. When session initialization cannot complete, the response body may include a JSON object with code and description explaining the issue.

---

[API](https://skmtc.dev/jwplayer/apis/delivery-api.md) - [All operations](https://skmtc.dev/jwplayer/apis/delivery-api/llms.txt) - [OpenAPI document](https://skmtc.dev/jwplayer/apis/delivery-api/revisions/a37fd1dde168?raw)
