⌁
Swagger SUPPORTED BY STREAMFORGE
Select a definition

Streamforge Video API 2.4.0OAS3

/api/openapi.json

REST API for on-demand video, live channel control, adaptive playback and delivery analytics. All endpoints require a service access token issued to an approved integration.

Servershttps://[domain]
Catalog Content discovery and video metadata⌄
GET/api/v1/catalog/videosSearch the video catalog

Search the video catalog BearerAuth

Returns published video assets available to the current integration. Results can be filtered by collection, language, duration and availability window.

Parameters

NameDescription
page_size integer(query)Maximum number of results. Default: 20, maximum: 100.
cursor string(query)Cursor from a previous response.
query string(query)Full-text search across title, series and tags.
availability string(query)Filter by published, scheduled or expired.
Responses

200 — Catalog page

{
  "items": [{
    "id": "vid_01J9A4K8M3",
    "title": "The Long Way North",
    "type": "vod",
    "duration_seconds": 3114,
    "language": "en",
    "availability": "published",
    "published_at": "2026-09-18T09:30:00Z"
  }],
  "next_cursor": "eyJvZmZzZXQiOjIwfQ"
}
GET/api/v1/catalog/videos/{video_id}Get video metadata

Get video metadata

Returns the metadata, artwork references, subtitle tracks and entitlement rules for one video asset.

NameDescription
video_id string(path) requiredUnique video asset identifier.
include string(query)Optional expansions: artwork, tracks, chapters.
GET/api/v1/catalog/collectionsList collections

List collections

Lists editorial collections and rails available in the configured market.

Playback Sessions, manifests and subtitle tracks⌄
POST/api/v1/playback/sessionsCreate a playback session

Create a playback session

Creates a time-limited session for a video asset and resolves the supported streaming protocols.

Request body required

{
  "video_id": "vid_01J9A4K8M3",
  "protocol": "hls",
  "device_type": "web",
  "drm": "widevine"
}

201 — Session created

{
  "id": "pbs_01J9AK9SDW",
  "status": "ready",
  "protocol": "hls",
  "manifest_url": "/api/v1/playback/sessions/pbs_01J9AK9SDW/manifest",
  "expires_at": "2026-09-27T20:40:00Z"
}
GET/api/v1/playback/sessions/{session_id}Get session status

Get playback session status

Returns the current entitlement and readiness state of a playback session.

GET/api/v1/playback/sessions/{session_id}/manifestResolve adaptive manifest

Resolve adaptive manifest

Returns a signed HLS or DASH manifest descriptor for a ready playback session.

GET/api/v1/playback/sessions/{session_id}/tracksList audio and subtitle tracks

List rendition tracks

Returns alternate audio languages, subtitles and closed-caption tracks enabled for the session.

Live Streams Channel lifecycle and current programme data⌄
GET/api/v1/live/streamsList live streams

List live streams

Returns live channels visible to the caller, including their current state and programme window.

POST/api/v1/live/streams/{stream_id}/sessionsCreate a live viewing session

Create a live viewing session

Creates a short-lived session for a live channel and returns its protocol-specific playback descriptor.

Analytics Delivery and audience summaries⌄
GET/api/v1/analytics/delivery/overviewGet delivery overview

Get delivery overview

Provides aggregated starts, watch time, bitrate and error-rate metrics for a selected reporting interval.

NameDescription
from datetime(query) requiredInclusive UTC interval start.
to datetime(query) requiredExclusive UTC interval end.
group_by string(query)video, country or device_type.