{"openapi":"3.0.0","info":{"title":"THEOlive API","version":"v2"},"servers":[{"url":"https://api.theo.live/v2","description":"V2 API"},{"url":"https://api.theo.live","description":"Base (for /v1 endpoints)"}],"security":[{"BasicAuth":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic"}},"schemas":{"PaginatedChannelResult":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Channel"},"description":"List of channels"},"pagination":{"type":"object","properties":{"hasMore":{"type":"boolean","description":"Whether more results are available"},"cursor":{"type":"string","description":"Cursor for the next page of results"}},"required":["hasMore","cursor"],"description":"Pagination info"}},"required":["data","pagination"]},"Channel":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the channel"},"createdAt":{"type":"string","description":"Creation timestamp"},"name":{"type":"string","description":"Name of the channel"},"status":{"type":"string","enum":["stopped","deploying","starting","waiting","ingesting","playing","stopping","error","deleting","deleted"],"description":"Current status of the channel"},"externalId":{"type":"string","description":"External identifier"},"timeout":{"type":"number","description":"Timeout in seconds"},"ads":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether ads are enabled"},"settings":{"type":"object","properties":{"assetKey":{"type":"string","description":"DAI asset key"},"layout":{"type":"string","enum":["SINGLE","DOUBLE","LSHAPE_AD","LSHAPE_CONTENT"],"description":"Ad layout type"},"enableBumperAds":{"type":"boolean","description":"Whether bumper ads are enabled"},"podDuration":{"type":"number","description":"Pod duration in seconds"},"customAdTagParameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom ad tag parameters"}},"required":["assetKey","layout"],"description":"Ad settings (required when enabled is true)"}},"required":["enabled"],"description":"Ads configuration"},"dvr":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether DVR is enabled"},"windowInSeconds":{"type":"number","minimum":60,"maximum":86400,"description":"DVR window in seconds (60-86400)"}},"required":["enabled"],"description":"DVR configuration"},"nielsen":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether Nielsen is enabled"}},"required":["enabled"],"description":"Nielsen configuration"},"perpetual":{"type":"boolean","description":"Whether this channel is 24/7 (never times out, excluded from transcoding analytics)"},"organizationId":{"type":"string","description":"Organization ID"}},"required":["id","createdAt","name","status","timeout","perpetual","organizationId"]},"ChannelCreatedObjectResult":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ChannelCreated"}},"required":["data"]},"ChannelCreated":{"allOf":[{"$ref":"#/components/schemas/Channel"},{"type":"object","properties":{"ingests":{"type":"array","items":{"$ref":"#/components/schemas/Ingest"},"description":"Connected ingests"},"engines":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the engine"},"name":{"type":"string","description":"Name of the engine"},"createdAt":{"type":"string","description":"Creation timestamp"},"updatedAt":{"type":"string","description":"Last update timestamp"},"quality":{"type":"object","properties":{"abrLadderId":{"type":"string","description":"ABR ladder ID"}},"required":["abrLadderId"],"description":"Quality configuration"},"overlays":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"URL of the overlay image"},"position":{"type":"object","properties":{"top":{"type":"integer","minimum":0,"description":"Pixels from top"},"bottom":{"type":"integer","minimum":0,"description":"Pixels from bottom (ignored if top is present)"},"left":{"type":"integer","minimum":0,"description":"Pixels from left"},"right":{"type":"integer","minimum":0,"description":"Pixels from right (ignored if left is present)"}},"description":"Overlay position"},"size":{"type":"object","properties":{"width":{"type":"integer","minimum":0,"description":"Width in pixels"},"height":{"type":"integer","minimum":0,"description":"Height in pixels"}},"description":"Overlay size"},"opacity":{"type":"number","minimum":0,"maximum":1,"description":"Overlay opacity (0=invisible, 1=fully visible)"}},"required":["url"]},"description":"Image overlay configuration"},"drm":{"type":"boolean","description":"Whether DRM is enabled"},"priority":{"type":"number","description":"Engine priority"},"status":{"type":"string","enum":["stopped","deploying","starting","waiting","ingesting","playing","stopping","error","deleting","deleted"],"description":"Current status of the engine"},"daiAssetKey":{"type":"string","nullable":true,"description":"DAI asset key"},"outputs":{"type":"object","properties":{"hesp":{"type":"boolean","default":true,"description":"Enable HESP output. Enabled by default."},"hls":{"type":"boolean","default":true,"description":"Enable HLS output. Enabled by default."},"hlsMpegTs":{"type":"boolean","default":false,"description":"Enable HLS MPEG-TS output. Only available when enabled on organization level."}},"description":"Output format configuration"}},"required":["id","name","createdAt","updatedAt","quality","overlays","drm","priority","status","outputs"]},"description":"Connected engines"},"distributions":{"type":"array","items":{"$ref":"#/components/schemas/Distribution"},"description":"Connected distributions"}},"required":["ingests","engines","distributions"]}],"description":"Created channel with connected resources"},"Ingest":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the ingest"},"name":{"type":"string","description":"Name of the ingest"},"createdAt":{"type":"string","description":"Creation timestamp"},"type":{"type":"string","enum":["rtmp-push","rtmp-pull","srt-pull","srt-push","sdi-pull"],"description":"Ingest type"},"url":{"type":"string","description":"Ingest URL"},"streamKey":{"type":"string","description":"Stream key for RTMP push ingests"},"tracks":{"type":"object","properties":{"audio":{"type":"array","items":{"type":"object","properties":{"pid":{"type":"number","description":"Audio track PID (mandatory for multi-audio)"},"language":{"type":"string","description":"Audio track language code"},"label":{"type":"string","description":"Audio track label"}},"required":["language","label"]},"description":"Audio track configuration"}},"description":"Audio track configuration"},"captions":{"type":"array","items":{"type":"object","properties":{"channel":{"type":"number","description":"Caption channel number"},"language":{"type":"string","description":"Caption language code"},"label":{"type":"string","description":"Caption label"}},"required":["channel","language"]},"description":"Caption configuration"}},"required":["id","name","createdAt","type","url","streamKey","tracks","captions"]},"Distribution":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the distribution"},"createdAt":{"type":"string","description":"Creation timestamp"},"updatedAt":{"type":"string","description":"Last update timestamp"},"name":{"type":"string","description":"Name of the distribution"},"enabled":{"type":"boolean","description":"Whether the distribution is enabled"},"targetLatency":{"type":"number","description":"Target latency in seconds"},"security":{"type":"object","properties":{"geoBlocking":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether geo-blocking is enabled"},"mode":{"type":"string","enum":["allow","deny"],"description":"Geo-blocking mode"},"countries":{"type":"array","items":{"type":"string"},"description":"List of country codes"}},"required":["enabled","mode","countries"],"description":"Geo-blocking configuration"},"ipBlocking":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether IP blocking is enabled"},"mode":{"type":"string","enum":["allow","deny"],"description":"IP blocking mode"},"cidrs":{"type":"array","items":{"type":"string"},"description":"List of CIDR ranges"}},"required":["enabled","mode","cidrs"],"description":"IP blocking configuration"},"refererBlocking":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether referer blocking is enabled"},"allowedDomains":{"type":"array","items":{"type":"string"},"description":"List of allowed domains"},"allowNativeApps":{"type":"boolean","description":"Whether native apps are allowed"}},"required":["enabled","allowedDomains","allowNativeApps"],"description":"Referer blocking configuration"},"keys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Security key ID"},"name":{"type":"string","description":"Security key name"}},"required":["id"]},"description":"Security keys"}},"required":["geoBlocking","ipBlocking","keys"],"description":"Security configuration"},"endpoints":{"type":"object","properties":{"engineIds":{"type":"array","items":{"type":"string"},"description":"Connected engine IDs"}},"required":["engineIds"],"description":"Endpoint configuration"},"webRtc":{"type":"object","properties":{"priority":{"type":"number","description":"WebRTC priority"},"src":{"type":"object","properties":{"name":{"type":"string","description":"WebRTC source name"},"accountId":{"type":"string","description":"WebRTC account ID"},"apiUrl":{"type":"string","description":"WebRTC API URL"}},"required":["name","accountId","apiUrl"],"description":"WebRTC source configuration"}},"required":["priority","src"],"description":"WebRTC configuration"},"maxBitrate":{"type":"number","description":"Maximum bitrate limit in bps"},"outputs":{"type":"object","properties":{"hesp":{"type":"boolean","default":true,"description":"Enable HESP output. Enabled by default."},"hls":{"type":"boolean","default":true,"description":"Enable HLS output. Enabled by default."},"hlsMpegTs":{"type":"boolean","default":false,"description":"Enable HLS MPEG-TS output. Disabled by default."}},"description":"Output format configuration"},"dvr":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether DVR is enabled on the distribution"}},"description":"DVR configuration"},"overrides":{"type":"array","items":{"type":"object","properties":{"deviceType":{"type":"string","nullable":true,"enum":["tv","mobile","desktop","other",null],"description":"Target device type"},"sdkType":{"type":"string","nullable":true,"enum":["native","web",null],"description":"Target SDK type"},"osName":{"type":"string","nullable":true,"enum":["apple","android","windows","roku","other",null],"description":"Target OS name"},"profileId":{"type":"string","nullable":true,"description":"Target profile ID"},"targets":{"type":"array","items":{"type":"object","properties":{"distributionId":{"type":"string","description":"Target distribution ID"},"weight":{"type":"number","minimum":0,"maximum":100,"description":"Weight (0-100)"}},"required":["distributionId","weight"]},"description":"Override target distributions with weights"}},"required":["targets"]},"description":"Distribution overrides"}},"required":["id","createdAt","updatedAt","name","enabled","security","endpoints","dvr"]},"CreateChannelBody":{"type":"object","properties":{"name":{"type":"string","description":"Name of the channel"},"externalId":{"type":"string","description":"External identifier for the channel"},"timeout":{"type":"number","minimum":0,"default":3600,"description":"Timeout in seconds. To never stop, pass 0"},"ads":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether ads are enabled"},"settings":{"type":"object","properties":{"assetKey":{"type":"string","description":"DAI asset key"},"layout":{"type":"string","enum":["SINGLE","DOUBLE","LSHAPE_AD","LSHAPE_CONTENT"],"description":"Ad layout type"},"enableBumperAds":{"type":"boolean","description":"Whether bumper ads are enabled"},"podDuration":{"type":"number","description":"Pod duration in seconds"},"customAdTagParameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom ad tag parameters"}},"required":["assetKey","layout"],"description":"Ad settings (required when enabled is true)"}},"required":["enabled"],"description":"Ads configuration"},"dvr":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether DVR is enabled"},"windowInSeconds":{"type":"number","minimum":60,"maximum":86400,"description":"DVR window in seconds (60-86400)"}},"required":["enabled"],"description":"DVR configuration"},"nielsen":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether Nielsen is enabled"}},"required":["enabled"],"description":"Nielsen configuration"},"ingests":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the ingest"},"type":{"type":"string","enum":["rtmp-push","rtmp-pull","srt-pull","srt-push","sdi-pull"],"description":"Ingest type. Note: srt-push requires SRT push to be enabled at organization level"},"url":{"type":"string","description":"Source URL (required for pull types)"},"region":{"type":"string","description":"Region ID (required for rtmp-push)"},"captions":{"type":"array","items":{"type":"object","properties":{"channel":{"type":"number","description":"Caption channel number"},"language":{"type":"string","description":"Caption language code"},"label":{"type":"string","description":"Caption label"}},"required":["channel","language"]},"description":"Caption configuration"},"tracks":{"type":"object","properties":{"audio":{"type":"array","items":{"type":"object","properties":{"pid":{"type":"number","description":"Audio track PID (mandatory for multi-audio)"},"language":{"type":"string","description":"Audio track language code"},"label":{"type":"string","description":"Audio track label"}},"required":["language","label"]},"description":"Audio track configuration"}},"description":"Audio track configuration"},"engines":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the engine"},"region":{"type":"string","description":"Region ID to deploy the engine in"},"priority":{"type":"number","minimum":-100,"maximum":100,"description":"Engine priority (-100 to 100). Lower numbers mean higher priority"},"drm":{"type":"boolean","description":"Enable DRM. Only possible when enabled on organization level."},"quality":{"type":"object","properties":{"abrLadderId":{"type":"string","description":"ABR ladder ID"}},"required":["abrLadderId"],"description":"Quality configuration"},"daiAssetKey":{"type":"string","nullable":true,"description":"DAI asset key"},"overlays":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"URL of the overlay image"},"position":{"type":"object","properties":{"top":{"type":"integer","minimum":0,"description":"Pixels from top"},"bottom":{"type":"integer","minimum":0,"description":"Pixels from bottom (ignored if top is present)"},"left":{"type":"integer","minimum":0,"description":"Pixels from left"},"right":{"type":"integer","minimum":0,"description":"Pixels from right (ignored if left is present)"}},"description":"Overlay position"},"size":{"type":"object","properties":{"width":{"type":"integer","minimum":0,"description":"Width in pixels"},"height":{"type":"integer","minimum":0,"description":"Height in pixels"}},"description":"Overlay size"},"opacity":{"type":"number","minimum":0,"maximum":1,"description":"Overlay opacity (0=invisible, 1=fully visible)"}},"required":["url"]},"description":"Image overlay configuration"},"outputs":{"type":"object","properties":{"hesp":{"type":"boolean","default":true,"description":"Enable HESP output. Enabled by default."},"hls":{"type":"boolean","default":true,"description":"Enable HLS output. Enabled by default."},"hlsMpegTs":{"type":"boolean","default":false,"description":"Enable HLS MPEG-TS output. Only available when enabled on organization level."}},"description":"Output format configuration"}},"required":["name","region","quality"],"additionalProperties":false},"description":"Engines to create for this ingest"}},"required":["name","type"],"additionalProperties":false},"description":"Ingests to create for the channel"},"distributions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the distribution"},"enabled":{"type":"boolean","description":"Whether the distribution is enabled"},"targetLatency":{"type":"number","description":"Target latency in seconds"},"security":{"type":"object","properties":{"geoBlocking":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether geo-blocking is enabled"},"mode":{"type":"string","enum":["allow","deny"],"description":"Geo-blocking mode"},"countries":{"type":"array","items":{"type":"string"},"description":"List of country codes"}},"description":"Geo-blocking configuration"},"ipBlocking":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether IP blocking is enabled"},"mode":{"type":"string","enum":["allow","deny"],"description":"IP blocking mode"},"cidrs":{"type":"array","items":{"type":"string"},"description":"List of CIDR ranges"}},"description":"IP blocking configuration"},"refererBlocking":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether referer blocking is enabled"},"allowedDomains":{"type":"array","items":{"type":"string"},"description":"List of allowed domains"},"allowNativeApps":{"type":"boolean","description":"Whether native apps are allowed"}},"description":"Referer blocking configuration"},"keys":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the security key"},"key":{"type":"string","description":"Security key value"}},"required":["key"]},"maxItems":2,"description":"Security keys (max 2, create only)"}},"description":"Security configuration"},"webRtc":{"type":"object","nullable":true,"properties":{"priority":{"type":"number","description":"WebRTC priority"},"src":{"type":"object","properties":{"name":{"type":"string","description":"WebRTC source name"},"accountId":{"type":"string","description":"WebRTC account ID"},"apiUrl":{"type":"string","description":"WebRTC API URL"}},"required":["name","accountId","apiUrl"],"description":"WebRTC source configuration"}},"required":["priority","src"],"description":"WebRTC configuration"},"outputs":{"type":"object","properties":{"hesp":{"type":"boolean","default":true,"description":"Enable HESP output. Enabled by default."},"hls":{"type":"boolean","default":true,"description":"Enable HLS output. Enabled by default."},"hlsMpegTs":{"type":"boolean","default":false,"description":"Enable HLS MPEG-TS output. Disabled by default."}},"description":"Output format configuration"},"maxBitrate":{"type":"number","nullable":true,"description":"Maximum bitrate limit in bps"},"dvr":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether DVR is enabled on the distribution"}},"description":"DVR configuration"},"overrides":{"type":"array","items":{"type":"object","properties":{"deviceType":{"type":"string","nullable":true,"enum":["tv","mobile","desktop","other",null],"description":"Target device type"},"sdkType":{"type":"string","nullable":true,"enum":["native","web",null],"description":"Target SDK type"},"osName":{"type":"string","nullable":true,"enum":["apple","android","windows","roku","other",null],"description":"Target OS name"},"profileId":{"type":"string","nullable":true,"description":"Target profile ID"},"targets":{"type":"array","items":{"type":"object","properties":{"distributionId":{"type":"string","description":"Target distribution ID"},"weight":{"type":"number","minimum":0,"maximum":100,"description":"Weight (0-100)"}},"required":["distributionId","weight"]},"description":"Override target distributions with weights"}},"required":["targets"]},"description":"Distribution overrides for device targeting"}},"required":["name"],"additionalProperties":false},"description":"Distributions to create for the channel (endpoints will be auto-configured)"}},"required":["name"],"additionalProperties":false},"ChannelObjectResultWithIncludes":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/Channel"},{"description":"Channel object"}]},"ingests":{"$ref":"#/components/schemas/IncludedIngests"},"engines":{"$ref":"#/components/schemas/IncludedEngines"},"distributions":{"$ref":"#/components/schemas/IncludedDistributions"}},"required":["data"]},"IncludedIngests":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Ingest"},"description":"First 10 ingests"},"hasMore":{"type":"boolean","description":"Whether there are more than 10 ingests"},"link":{"type":"string","description":"Link to the full ingests list"},"count":{"type":"number","description":"Total number of ingests"}},"required":["data","hasMore","link","count"],"description":"Included ingests preview"},"IncludedEngines":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the engine"},"name":{"type":"string","description":"Name of the engine"},"createdAt":{"type":"string","description":"Creation timestamp"},"updatedAt":{"type":"string","description":"Last update timestamp"},"quality":{"type":"object","properties":{"abrLadderId":{"type":"string","description":"ABR ladder ID"}},"required":["abrLadderId"],"description":"Quality configuration"},"overlays":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"URL of the overlay image"},"position":{"type":"object","properties":{"top":{"type":"integer","minimum":0,"description":"Pixels from top"},"bottom":{"type":"integer","minimum":0,"description":"Pixels from bottom (ignored if top is present)"},"left":{"type":"integer","minimum":0,"description":"Pixels from left"},"right":{"type":"integer","minimum":0,"description":"Pixels from right (ignored if left is present)"}},"description":"Overlay position"},"size":{"type":"object","properties":{"width":{"type":"integer","minimum":0,"description":"Width in pixels"},"height":{"type":"integer","minimum":0,"description":"Height in pixels"}},"description":"Overlay size"},"opacity":{"type":"number","minimum":0,"maximum":1,"description":"Overlay opacity (0=invisible, 1=fully visible)"}},"required":["url"]},"description":"Image overlay configuration"},"drm":{"type":"boolean","description":"Whether DRM is enabled"},"priority":{"type":"number","description":"Engine priority"},"status":{"type":"string","enum":["stopped","deploying","starting","waiting","ingesting","playing","stopping","error","deleting","deleted"],"description":"Current status of the engine"},"daiAssetKey":{"type":"string","nullable":true,"description":"DAI asset key"},"outputs":{"type":"object","properties":{"hesp":{"type":"boolean","default":true,"description":"Enable HESP output. Enabled by default."},"hls":{"type":"boolean","default":true,"description":"Enable HLS output. Enabled by default."},"hlsMpegTs":{"type":"boolean","default":false,"description":"Enable HLS MPEG-TS output. Only available when enabled on organization level."}},"description":"Output format configuration"}},"required":["id","name","createdAt","updatedAt","quality","overlays","drm","priority","status","outputs"]},"description":"First 10 engines"},"hasMore":{"type":"boolean","description":"Whether there are more than 10 engines"},"link":{"type":"string","description":"Link to the full engines list"},"count":{"type":"number","description":"Total number of engines"}},"required":["data","hasMore","link","count"],"description":"Included engines preview"},"IncludedDistributions":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Distribution"},"description":"First 10 distributions"},"hasMore":{"type":"boolean","description":"Whether there are more than 10 distributions"},"link":{"type":"string","description":"Link to the full distributions list"},"count":{"type":"number","description":"Total number of distributions"}},"required":["data","hasMore","link","count"],"description":"Included distributions preview"},"ChannelObjectResult":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/Channel"},{"description":"Channel object"}]}},"required":["data"]},"UpdateChannelBody":{"type":"object","properties":{"name":{"type":"string","description":"Name of the channel"},"externalId":{"type":"string","description":"External identifier for the channel"},"timeout":{"type":"number","minimum":0,"description":"Timeout in seconds (minimum 60). To never stop, pass 0"},"ads":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether ads are enabled"},"settings":{"type":"object","properties":{"assetKey":{"type":"string","description":"DAI asset key"},"layout":{"type":"string","enum":["SINGLE","DOUBLE","LSHAPE_AD","LSHAPE_CONTENT"],"description":"Ad layout type"},"enableBumperAds":{"type":"boolean","description":"Whether bumper ads are enabled"},"podDuration":{"type":"number","description":"Pod duration in seconds"},"customAdTagParameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom ad tag parameters"}},"required":["assetKey","layout"],"description":"Ad settings (required when enabled is true)"}},"required":["enabled"],"description":"Ads configuration. Only available when ads feature is enabled on organization level."},"dvr":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether DVR is enabled"},"windowInSeconds":{"type":"number","minimum":60,"maximum":86400,"description":"DVR window in seconds (60-86400)"}},"required":["enabled"],"description":"DVR configuration. Only available when DVR feature is enabled on organization level."},"nielsen":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether Nielsen is enabled"}},"required":["enabled"],"description":"Nielsen configuration. Only available when Nielsen feature is enabled on organization level."}},"additionalProperties":false},"PaginatedIngestResult":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Ingest"},"description":"List of ingests"},"pagination":{"type":"object","properties":{"hasMore":{"type":"boolean","description":"Whether more results are available"},"cursor":{"type":"string","description":"Cursor for the next page of results"}},"required":["hasMore","cursor"],"description":"Pagination info"}},"required":["data","pagination"]},"IngestObjectResult":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/Ingest"},{"description":"Ingest object"}]}},"required":["data"]},"PaginatedEngineResult":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the engine"},"name":{"type":"string","description":"Name of the engine"},"createdAt":{"type":"string","description":"Creation timestamp"},"updatedAt":{"type":"string","description":"Last update timestamp"},"quality":{"type":"object","properties":{"abrLadderId":{"type":"string","description":"ABR ladder ID"}},"required":["abrLadderId"],"description":"Quality configuration"},"overlays":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"URL of the overlay image"},"position":{"type":"object","properties":{"top":{"type":"integer","minimum":0,"description":"Pixels from top"},"bottom":{"type":"integer","minimum":0,"description":"Pixels from bottom (ignored if top is present)"},"left":{"type":"integer","minimum":0,"description":"Pixels from left"},"right":{"type":"integer","minimum":0,"description":"Pixels from right (ignored if left is present)"}},"description":"Overlay position"},"size":{"type":"object","properties":{"width":{"type":"integer","minimum":0,"description":"Width in pixels"},"height":{"type":"integer","minimum":0,"description":"Height in pixels"}},"description":"Overlay size"},"opacity":{"type":"number","minimum":0,"maximum":1,"description":"Overlay opacity (0=invisible, 1=fully visible)"}},"required":["url"]},"description":"Image overlay configuration"},"drm":{"type":"boolean","description":"Whether DRM is enabled"},"priority":{"type":"number","description":"Engine priority"},"status":{"type":"string","enum":["stopped","deploying","starting","waiting","ingesting","playing","stopping","error","deleting","deleted"],"description":"Current status of the engine"},"daiAssetKey":{"type":"string","nullable":true,"description":"DAI asset key"},"outputs":{"type":"object","properties":{"hesp":{"type":"boolean","default":true,"description":"Enable HESP output. Enabled by default."},"hls":{"type":"boolean","default":true,"description":"Enable HLS output. Enabled by default."},"hlsMpegTs":{"type":"boolean","default":false,"description":"Enable HLS MPEG-TS output. Only available when enabled on organization level."}},"description":"Output format configuration"}},"required":["id","name","createdAt","updatedAt","quality","overlays","drm","priority","status","outputs"]},"description":"List of engines"},"pagination":{"type":"object","properties":{"hasMore":{"type":"boolean","description":"Whether more results are available"},"cursor":{"type":"string","description":"Cursor for the next page of results"}},"required":["hasMore","cursor"],"description":"Pagination info"}},"required":["data","pagination"]},"EngineObjectResult":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the engine"},"name":{"type":"string","description":"Name of the engine"},"createdAt":{"type":"string","description":"Creation timestamp"},"updatedAt":{"type":"string","description":"Last update timestamp"},"quality":{"type":"object","properties":{"abrLadderId":{"type":"string","description":"ABR ladder ID"}},"required":["abrLadderId"],"description":"Quality configuration"},"overlays":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"URL of the overlay image"},"position":{"type":"object","properties":{"top":{"type":"integer","minimum":0,"description":"Pixels from top"},"bottom":{"type":"integer","minimum":0,"description":"Pixels from bottom (ignored if top is present)"},"left":{"type":"integer","minimum":0,"description":"Pixels from left"},"right":{"type":"integer","minimum":0,"description":"Pixels from right (ignored if left is present)"}},"description":"Overlay position"},"size":{"type":"object","properties":{"width":{"type":"integer","minimum":0,"description":"Width in pixels"},"height":{"type":"integer","minimum":0,"description":"Height in pixels"}},"description":"Overlay size"},"opacity":{"type":"number","minimum":0,"maximum":1,"description":"Overlay opacity (0=invisible, 1=fully visible)"}},"required":["url"]},"description":"Image overlay configuration"},"drm":{"type":"boolean","description":"Whether DRM is enabled"},"priority":{"type":"number","description":"Engine priority"},"status":{"type":"string","enum":["stopped","deploying","starting","waiting","ingesting","playing","stopping","error","deleting","deleted"],"description":"Current status of the engine"},"daiAssetKey":{"type":"string","nullable":true,"description":"DAI asset key"},"outputs":{"type":"object","properties":{"hesp":{"type":"boolean","default":true,"description":"Enable HESP output. Enabled by default."},"hls":{"type":"boolean","default":true,"description":"Enable HLS output. Enabled by default."},"hlsMpegTs":{"type":"boolean","default":false,"description":"Enable HLS MPEG-TS output. Only available when enabled on organization level."}},"description":"Output format configuration"}},"required":["id","name","createdAt","updatedAt","quality","overlays","drm","priority","status","outputs"],"description":"Engine object"}},"required":["data"]},"PaginatedDistributionResult":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Distribution"},"description":"List of distributions"},"pagination":{"type":"object","properties":{"hasMore":{"type":"boolean","description":"Whether more results are available"},"cursor":{"type":"string","description":"Cursor for the next page of results"}},"required":["hasMore","cursor"],"description":"Pagination info"}},"required":["data","pagination"]},"DistributionObjectResult":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/Distribution"},{"description":"Distribution object"}]}},"required":["data"]},"CreateDistributionBody":{"type":"object","properties":{"name":{"type":"string","description":"Name of the distribution"},"enabled":{"type":"boolean","description":"Whether the distribution is enabled"},"targetLatency":{"type":"number","description":"Target latency in seconds"},"security":{"type":"object","properties":{"geoBlocking":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether geo-blocking is enabled"},"mode":{"type":"string","enum":["allow","deny"],"description":"Geo-blocking mode"},"countries":{"type":"array","items":{"type":"string"},"description":"List of country codes"}},"description":"Geo-blocking configuration"},"ipBlocking":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether IP blocking is enabled"},"mode":{"type":"string","enum":["allow","deny"],"description":"IP blocking mode"},"cidrs":{"type":"array","items":{"type":"string"},"description":"List of CIDR ranges"}},"description":"IP blocking configuration"},"refererBlocking":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether referer blocking is enabled"},"allowedDomains":{"type":"array","items":{"type":"string"},"description":"List of allowed domains"},"allowNativeApps":{"type":"boolean","description":"Whether native apps are allowed"}},"description":"Referer blocking configuration"},"keys":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the security key"},"key":{"type":"string","description":"Security key value"}},"required":["key"]},"maxItems":2,"description":"Security keys (max 2, create only)"}},"description":"Security configuration"},"endpoints":{"type":"object","properties":{"engineIds":{"type":"array","items":{"type":"string"},"description":"Engine IDs to connect"}},"description":"Endpoint configuration"},"webRtc":{"type":"object","nullable":true,"properties":{"priority":{"type":"number","description":"WebRTC priority"},"src":{"type":"object","properties":{"name":{"type":"string","description":"WebRTC source name"},"accountId":{"type":"string","description":"WebRTC account ID"},"apiUrl":{"type":"string","description":"WebRTC API URL"}},"required":["name","accountId","apiUrl"],"description":"WebRTC source configuration"}},"required":["priority","src"],"description":"WebRTC configuration"},"outputs":{"type":"object","properties":{"hesp":{"type":"boolean","default":true,"description":"Enable HESP output. Enabled by default."},"hls":{"type":"boolean","default":true,"description":"Enable HLS output. Enabled by default."},"hlsMpegTs":{"type":"boolean","default":false,"description":"Enable HLS MPEG-TS output. Disabled by default."}},"description":"Output format configuration"},"maxBitrate":{"type":"number","nullable":true,"description":"Maximum bitrate limit in bps"},"dvr":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether DVR is enabled on the distribution"}},"description":"DVR configuration"},"overrides":{"type":"array","items":{"type":"object","properties":{"deviceType":{"type":"string","nullable":true,"enum":["tv","mobile","desktop","other",null],"description":"Target device type"},"sdkType":{"type":"string","nullable":true,"enum":["native","web",null],"description":"Target SDK type"},"osName":{"type":"string","nullable":true,"enum":["apple","android","windows","roku","other",null],"description":"Target OS name"},"profileId":{"type":"string","nullable":true,"description":"Target profile ID"},"targets":{"type":"array","items":{"type":"object","properties":{"distributionId":{"type":"string","description":"Target distribution ID"},"weight":{"type":"number","minimum":0,"maximum":100,"description":"Weight (0-100)"}},"required":["distributionId","weight"]},"description":"Override target distributions with weights"}},"required":["targets"]},"description":"Distribution overrides for device targeting"}},"required":["name"],"additionalProperties":false},"PaginatedEngineRunResult":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EngineRun"},"description":"List of engine runs"},"pagination":{"type":"object","properties":{"hasMore":{"type":"boolean","description":"Whether more results are available"},"cursor":{"type":"string","description":"Cursor for the next page of results"}},"required":["hasMore","cursor"],"description":"Pagination info"}},"required":["data","pagination"]},"EngineRun":{"type":"object","properties":{"engineId":{"type":"string","description":"Engine ID"},"start":{"type":"string","description":"Run start timestamp"},"end":{"type":"string","description":"Run end timestamp"},"config":{"type":"object","properties":{"ingest":{"type":"object","properties":{"type":{"type":"string","description":"Ingest type used"},"url":{"type":"string","description":"Ingest URL used"}},"required":["type"]},"abrLadderId":{"type":"string","description":"ABR ladder ID used"},"drm":{"type":"boolean","description":"Whether DRM was enabled"}},"required":["ingest","abrLadderId","drm"],"description":"Run configuration"},"startType":{"type":"string","description":"How the run was started"},"startId":{"type":"string","description":"ID of the entity who did the start action"},"stopType":{"type":"string","description":"How the run was stopped"},"stopId":{"type":"string","description":"ID of entity who did the stop action"}},"required":["engineId","start","config","startType","startId"]},"ActiveViewersResult":{"type":"object","properties":{"data":{"type":"object","properties":{"amount":{"type":"number","description":"Number of active viewers"}},"required":["amount"],"description":"Active viewers count"}},"required":["data"]},"AnalyticsListResult":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string","description":"Timestamp of the data point"},"records":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Identifier of the grouped entity"},"amount":{"type":"number","description":"Metric value"}},"required":["id","amount"]},"description":"Records for this time bucket"}},"required":["timestamp","records"]},"description":"List of analytics data points"}},"required":["data"]},"ViewingBrowserListResult":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"browserName":{"type":"string","description":"Browser name"},"hardwareType":{"type":"string","description":"Hardware type"},"amount":{"type":"number","description":"Metric value"}},"required":["browserName","hardwareType","amount"]},"description":"List of browser viewing data"}},"required":["data"]},"ViewingCountryListResult":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"countryCode":{"type":"string","description":"ISO country code"},"amount":{"type":"number","description":"Metric value"}},"required":["countryCode","amount"]},"description":"List of country viewing data"}},"required":["data"]},"CountryInsightsListResult":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"city":{"type":"string","description":"City name"},"countryCode":{"type":"string","description":"ISO country code"},"geoLocation":{"type":"string","description":"Rounded latitude,longitude"},"amount":{"type":"number","description":"Number of unique viewers"}},"required":["city","countryCode","geoLocation","amount"]},"description":"List of country insights"}},"required":["data"]},"BrowserOsInsightsListResult":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"browserName":{"type":"string","description":"Browser name"},"browserVersion":{"type":"string","description":"Browser version"},"osName":{"type":"string","description":"OS name"},"osVersion":{"type":"string","description":"OS version"},"amount":{"type":"number","description":"Number of unique viewers"}},"required":["browserName","browserVersion","osName","osVersion","amount"]},"description":"List of browser/OS insights"}},"required":["data"]},"ViewersInsightsListResult":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string","description":"Timestamp of the data point"},"amount":{"type":"number","description":"Number of unique viewers"}},"required":["timestamp","amount"]},"description":"List of viewer count data points"}},"required":["data"]},"UpdateIngestBody":{"type":"object","properties":{"name":{"type":"string","description":"Name of the ingest"},"type":{"type":"string","enum":["rtmp-push","rtmp-pull","srt-pull","srt-push","sdi-pull"],"description":"Ingest type. Note: srt-push requires SRT push to be enabled at organization level"},"url":{"type":"string","description":"Source URL"},"region":{"type":"string","description":"Region ID"},"captions":{"type":"array","items":{"type":"object","properties":{"channel":{"type":"number","description":"Caption channel number"},"language":{"type":"string","description":"Caption language code"},"label":{"type":"string","description":"Caption label"}},"required":["channel","language"]},"description":"Caption configuration"},"tracks":{"type":"object","properties":{"audio":{"type":"array","items":{"type":"object","properties":{"pid":{"type":"number","description":"Audio track PID (mandatory for multi-audio)"},"language":{"type":"string","description":"Audio track language code"},"label":{"type":"string","description":"Audio track label"}},"required":["language","label"]},"description":"Audio track configuration"}},"description":"Audio track configuration"},"sdi":{"type":"object","properties":{"persistentId":{"type":"number","description":"Persistent ID of the SDI device"},"deviceNumber":{"type":"number","description":"Device number"},"audioConnection":{"type":"string","enum":["auto","sdi","hdmi","optical-sdi","component","composite","svideo"],"description":"Audio connection type"},"videoConnection":{"type":"string","enum":["auto","sdi","hdmi","optical-sdi","component","composite","svideo"],"description":"Video connection type"},"videoMode":{"type":"string","enum":["auto","ntsc","ntsc2398","pal","ntsc-p","pal-p","1080p2398","1080p24","1080p25","1080p2997","1080p30","1080i50","1080i5994","1080i60","1080p50","1080p5994","1080p60","720p50","720p5994","720p60","1556p2398","1556p24","1556p25","2kdcip2398","2kdcip24","2kdcip25","2kdcip2997","2kdcip30","2kdcip50","2kdcip5994","2kdcip60","2160p2398","2160p24","2160p25","2160p2997","2160p30","2160p50","2160p5994","2160p60","ntsc-widescreen","ntsc2398-widescreen","pal-widescreen","ntsc-p-widescreen","pal-p-widescreen","4kdcip2398","4kdcip24","4kdcip25","4kdcip2997","4kdcip30","4kdcip50","4kdcip5994","4kdcip60","8kp2398","8kp24","8kp25","8kp2997","8kp30","8kp50","8kp5994","8kp60","8kdcip2398","8kdcip24","8kdcip25","8kdcip2997","8kdcip30","8kdcip50","8kdcip5994","8kdcip60"],"description":"Video mode"},"profile":{"type":"string","enum":["default","one-sub-device-full","one-sub-device-half","two-sub-devices-full","two-sub-devices-half","four-sub-devices-half"],"description":"SDI profile"},"videoFormat":{"type":"string","enum":["auto","8bit-yuv","10bit-yuv","8bit-argb","8bit-bgra","10bit-rgb"],"description":"Video format"}},"required":["persistentId","deviceNumber"],"description":"SDI configuration"}},"additionalProperties":false},"EngineRunObjectResult":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/EngineRun"},{"description":"Engine run object"}]}},"required":["data"]},"UpdateDistributionBody":{"type":"object","properties":{"name":{"type":"string","description":"Name of the distribution"},"enabled":{"type":"boolean","description":"Whether the distribution is enabled"},"targetLatency":{"type":"number","description":"Target latency in seconds"},"security":{"type":"object","properties":{"geoBlocking":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether geo-blocking is enabled"},"mode":{"type":"string","enum":["allow","deny"],"description":"Geo-blocking mode"},"countries":{"type":"array","items":{"type":"string"},"description":"List of country codes"}},"description":"Geo-blocking configuration"},"ipBlocking":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether IP blocking is enabled"},"mode":{"type":"string","enum":["allow","deny"],"description":"IP blocking mode"},"cidrs":{"type":"array","items":{"type":"string"},"description":"List of CIDR ranges"}},"description":"IP blocking configuration"},"refererBlocking":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether referer blocking is enabled"},"allowedDomains":{"type":"array","items":{"type":"string"},"description":"List of allowed domains"},"allowNativeApps":{"type":"boolean","description":"Whether native apps are allowed"}},"description":"Referer blocking configuration"},"keys":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the security key"},"key":{"type":"string","description":"Security key value"}},"required":["key"]},"maxItems":2,"description":"Security keys (max 2, create only)"}},"description":"Security configuration"},"endpoints":{"type":"object","properties":{"engineIds":{"type":"array","items":{"type":"string"},"description":"Engine IDs to connect"}},"description":"Endpoint configuration"},"webRtc":{"type":"object","nullable":true,"properties":{"priority":{"type":"number","description":"WebRTC priority"},"src":{"type":"object","properties":{"name":{"type":"string","description":"WebRTC source name"},"accountId":{"type":"string","description":"WebRTC account ID"},"apiUrl":{"type":"string","description":"WebRTC API URL"}},"required":["name","accountId","apiUrl"],"description":"WebRTC source configuration"}},"required":["priority","src"],"description":"WebRTC configuration"},"outputs":{"type":"object","properties":{"hesp":{"type":"boolean","default":true,"description":"Enable HESP output. Enabled by default."},"hls":{"type":"boolean","default":true,"description":"Enable HLS output. Enabled by default."},"hlsMpegTs":{"type":"boolean","default":false,"description":"Enable HLS MPEG-TS output. Disabled by default."}},"description":"Output format configuration"},"maxBitrate":{"type":"number","nullable":true,"description":"Maximum bitrate limit in bps"},"dvr":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether DVR is enabled on the distribution"}},"description":"DVR configuration"},"overrides":{"type":"array","nullable":true,"items":{"type":"object","properties":{"deviceType":{"type":"string","nullable":true,"enum":["tv","mobile","desktop","other",null],"description":"Target device type"},"sdkType":{"type":"string","nullable":true,"enum":["native","web",null],"description":"Target SDK type"},"osName":{"type":"string","nullable":true,"enum":["apple","android","windows","roku","other",null],"description":"Target OS name"},"profileId":{"type":"string","nullable":true,"description":"Target profile ID"},"targets":{"type":"array","items":{"type":"object","properties":{"distributionId":{"type":"string","description":"Target distribution ID"},"weight":{"type":"number","minimum":0,"maximum":100,"description":"Weight (0-100)"}},"required":["distributionId","weight"]},"description":"Override target distributions with weights"}},"required":["targets"]},"description":"Distribution overrides for device targeting"}},"additionalProperties":false},"DistributionSecurityKeyListResult":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Security key ID"},"name":{"type":"string","description":"Security key name"}},"required":["id"]},"description":"List of security keys"}},"required":["data"]},"DistributionSecurityKeyObjectResult":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"Security key ID"},"name":{"type":"string","description":"Security key name"}},"required":["id"],"description":"Security key object"}},"required":["data"]},"CreateDistributionSecurityKeyBody":{"type":"object","properties":{"name":{"type":"string","description":"Name of the security key"},"key":{"type":"string","description":"Security key value"}},"required":["key"],"additionalProperties":false},"RegionListResult":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the region"},"name":{"type":"string","description":"Display name of the region"}},"required":["id","name"]},"description":"List of regions"}},"required":["data"]},"AbrListResult":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the ABR ladder"},"name":{"type":"string","description":"Name of the ABR ladder"},"video":{"type":"array","items":{"type":"object","properties":{"bitrate":{"type":"number","description":"Bitrate in bps"},"id":{"type":"string","description":"Unique identifier for this video quality"},"label":{"type":"string","description":"Label for this video quality"},"width":{"type":"number","description":"Width in pixels"},"height":{"type":"number","description":"Height in pixels"},"frameRate":{"type":"object","properties":{"scale":{"type":"number","minimum":1,"description":"Frame rate scale"},"value":{"type":"number","minimum":1,"description":"Frame rate value"}},"required":["scale","value"],"description":"Frame rate configuration"}},"required":["bitrate","id","label","width","height"]},"description":"List of video quality entries"},"audio":{"type":"object","properties":{"bitrate":{"type":"number","minimum":1,"description":"Audio bitrate in kbps"}},"required":["bitrate"],"description":"Audio configuration"},"resources":{"type":"object","properties":{"cpuCores":{"type":"number","minimum":1,"description":"Number of CPU cores"},"memoryMiB":{"type":"number","minimum":1,"description":"Memory in MiB"}},"required":["cpuCores","memoryMiB"],"description":"Resource allocation configuration"}},"required":["id","name","video"]},"description":"List of ABR ladders"}},"required":["data"]},"PaginatedWebhookResult":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Webhook"},"description":"List of webhooks"},"pagination":{"type":"object","properties":{"hasMore":{"type":"boolean","description":"Whether more results are available"},"cursor":{"type":"string","description":"Cursor for the next page of results"}},"required":["hasMore","cursor"],"description":"Pagination info"}},"required":["data","pagination"]},"Webhook":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the webhook"},"createdAt":{"type":"string","description":"Creation timestamp"},"updatedAt":{"type":"string","description":"Last update timestamp"},"name":{"type":"string","description":"Name of the webhook"},"active":{"type":"boolean","description":"Whether the webhook is active"},"description":{"type":"string","description":"Description of the webhook"},"url":{"type":"string","description":"URL to send webhook events to"},"events":{"type":"array","items":{"type":"string","enum":["*","channel.created","channel.stopped","channel.deleted","channel.deploying","channel.updated","webhook.created","webhook.updated","webhook.deleted","scheduler.created","scheduler.updated","scheduler.deleted","scheduler.active","scheduler.terminated","engine.deploying","engine.waiting","engine.starting","engine.error","engine.playing","engine.ingesting","engine.created","engine.updated","engine.stopping","engine.stopped","engine.deleting","engine.deleted","engine.log.warn","engine.log.error","engine.log.info","ingest.created","ingest.updated","ingest.deleted","distribution.created","distribution.enabled","distribution.disabled","distribution.updated","distribution.deleted","distribution.security.key.added","distribution.security.key.deleted","distribution.security.keys.deleted"]},"description":"List of subscribed events. \"*\" means all events."}},"required":["id","createdAt","updatedAt","name","active","url","events"]},"WebhookObjectResult":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/Webhook"},{"description":"Webhook object"}]}},"required":["data"]},"CreateWebhookBody":{"type":"object","properties":{"name":{"type":"string","description":"Name of the webhook"},"description":{"type":"string","description":"Description of the webhook"},"url":{"type":"string","format":"uri","description":"URL to send webhook events to"},"events":{"type":"array","items":{"type":"string","enum":["*","channel.created","channel.stopped","channel.deleted","channel.deploying","channel.updated","webhook.created","webhook.updated","webhook.deleted","scheduler.created","scheduler.updated","scheduler.deleted","scheduler.active","scheduler.terminated","engine.deploying","engine.waiting","engine.starting","engine.error","engine.playing","engine.ingesting","engine.created","engine.updated","engine.stopping","engine.stopped","engine.deleting","engine.deleted","engine.log.warn","engine.log.error","engine.log.info","ingest.created","ingest.updated","ingest.deleted","distribution.created","distribution.enabled","distribution.disabled","distribution.updated","distribution.deleted","distribution.security.key.added","distribution.security.key.deleted","distribution.security.keys.deleted"]},"minItems":1,"description":"List of events to subscribe to"}},"required":["name","url","events"],"additionalProperties":false},"UpdateWebhookBody":{"type":"object","properties":{"name":{"type":"string","description":"Name of the webhook"},"description":{"type":"string","description":"Description of the webhook"},"url":{"type":"string","format":"uri","description":"URL to send webhook events to"},"events":{"type":"array","items":{"type":"string","enum":["*","channel.created","channel.stopped","channel.deleted","channel.deploying","channel.updated","webhook.created","webhook.updated","webhook.deleted","scheduler.created","scheduler.updated","scheduler.deleted","scheduler.active","scheduler.terminated","engine.deploying","engine.waiting","engine.starting","engine.error","engine.playing","engine.ingesting","engine.created","engine.updated","engine.stopping","engine.stopped","engine.deleting","engine.deleted","engine.log.warn","engine.log.error","engine.log.info","ingest.created","ingest.updated","ingest.deleted","distribution.created","distribution.enabled","distribution.disabled","distribution.updated","distribution.deleted","distribution.security.key.added","distribution.security.key.deleted","distribution.security.keys.deleted"]},"description":"List of events to subscribe to"},"active":{"type":"boolean","description":"Whether the webhook is active"}},"additionalProperties":false},"WebhookSecretResult":{"type":"object","properties":{"data":{"type":"object","properties":{"secret":{"type":"string","description":"The webhook signing secret"}},"required":["secret"],"description":"Secret object"}},"required":["data"]},"PaginatedWebhookLogResult":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookLog"},"description":"List of webhook logs"},"pagination":{"type":"object","properties":{"hasMore":{"type":"boolean","description":"Whether more results are available"},"cursor":{"type":"string","description":"Cursor for the next page of results"}},"required":["hasMore","cursor"],"description":"Pagination info"}},"required":["data","pagination"]},"WebhookLog":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the log entry"},"timestamp":{"type":"string","description":"Timestamp of the log entry"},"type":{"type":"string","enum":["*","channel.created","channel.stopped","channel.deleted","channel.deploying","channel.updated","webhook.created","webhook.updated","webhook.deleted","scheduler.created","scheduler.updated","scheduler.deleted","scheduler.active","scheduler.terminated","engine.deploying","engine.waiting","engine.starting","engine.error","engine.playing","engine.ingesting","engine.created","engine.updated","engine.stopping","engine.stopped","engine.deleting","engine.deleted","engine.log.warn","engine.log.error","engine.log.info","ingest.created","ingest.updated","ingest.deleted","distribution.created","distribution.enabled","distribution.disabled","distribution.updated","distribution.deleted","distribution.security.key.added","distribution.security.key.deleted","distribution.security.keys.deleted"],"description":"Event type that triggered the webhook"},"statusCode":{"type":"number","description":"HTTP status code of the webhook delivery"},"requestData":{"type":"object","properties":{"type":{"type":"string","enum":["*","channel.created","channel.stopped","channel.deleted","channel.deploying","channel.updated","webhook.created","webhook.updated","webhook.deleted","scheduler.created","scheduler.updated","scheduler.deleted","scheduler.active","scheduler.terminated","engine.deploying","engine.waiting","engine.starting","engine.error","engine.playing","engine.ingesting","engine.created","engine.updated","engine.stopping","engine.stopped","engine.deleting","engine.deleted","engine.log.warn","engine.log.error","engine.log.info","ingest.created","ingest.updated","ingest.deleted","distribution.created","distribution.enabled","distribution.disabled","distribution.updated","distribution.deleted","distribution.security.key.added","distribution.security.key.deleted","distribution.security.keys.deleted"],"description":"Event type"},"created":{"type":"number","description":"Unix timestamp of when the event was created"},"object":{"type":"object","properties":{"type":{"type":"string","enum":["channel","ingest","engine","distribution","alias","scheduler"],"description":"Type of the related object"},"id":{"type":"string","description":"ID of the related object"},"parent":{"type":"object","properties":{"type":{"type":"string","enum":["channel","ingest","engine","distribution","alias","scheduler"],"description":"Type of the parent object"},"id":{"type":"string","description":"ID of the parent object"}},"required":["type","id"],"description":"Parent object reference"},"organizationId":{"type":"string","description":"Organization ID"}},"required":["type","id","organizationId"],"description":"Object that triggered the event"},"data":{"nullable":true,"description":"Additional event data"}},"required":["type","created","object"],"description":"Request data sent in the webhook delivery"}},"required":["id","timestamp","type","statusCode","requestData"]},"SrtEndpointObjectResult":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SrtEndpoint"}},"required":["data"]},"SrtEndpoint":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the SRT endpoint"},"createdAt":{"type":"string","description":"Creation timestamp"},"updatedAt":{"type":"string","description":"Last update timestamp"},"organizationId":{"type":"string","description":"Organization ID"},"type":{"type":"string","enum":["port","streamId"],"description":"SRT endpoint type"},"sinkUrl":{"type":"string","description":"SRT sink URL"},"srcUrl":{"type":"string","description":"SRT source URL"},"passphrase":{"type":"string","nullable":true,"description":"SRT passphrase (decrypted)"},"capacity":{"type":"number","description":"Maximum number of ingests this endpoint can handle"}},"required":["id","createdAt","updatedAt","organizationId","type","sinkUrl","srcUrl","passphrase","capacity"],"description":"SRT endpoint object"},"CreateSrtEndpointBody":{"type":"object","properties":{"organizationId":{"type":"string","description":"Organization ID to associate the SRT endpoint with"},"type":{"type":"string","enum":["port","streamId"],"description":"SRT endpoint type"},"sinkUrl":{"type":"string","pattern":"^srt:\\/\\/.+:\\d+","description":"SRT sink URL (srt://<ip>:<port>)"},"srcUrl":{"type":"string","pattern":"^srt:\\/\\/.+:\\d+","description":"SRT source URL (srt://<ip>:<port>)"},"passphrase":{"type":"string","description":"SRT passphrase (will be stored encrypted)"},"capacity":{"type":"integer","minimum":1,"description":"Maximum number of ingests this endpoint can handle"}},"required":["organizationId","type","sinkUrl","srcUrl","capacity"],"additionalProperties":false},"PaginatedSrtEndpointResult":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SrtEndpointWithIngestCount"},"description":"List of SRT endpoints"},"pagination":{"type":"object","properties":{"hasMore":{"type":"boolean","description":"Whether more results are available"},"cursor":{"type":"string","description":"Cursor for the next page of results"}},"required":["hasMore","cursor"],"description":"Pagination info"}},"required":["data","pagination"]},"SrtEndpointWithIngestCount":{"allOf":[{"$ref":"#/components/schemas/SrtEndpoint"},{"type":"object","properties":{"ingestCount":{"type":"number","description":"Number of non-deleted ingests connected to this endpoint"}},"required":["ingestCount"]}]},"UpdateSrtEndpointBody":{"type":"object","properties":{"type":{"type":"string","enum":["port","streamId"],"description":"SRT endpoint type"},"sinkUrl":{"type":"string","pattern":"^srt:\\/\\/.+:\\d+","description":"SRT sink URL (srt://<ip>:<port>)"},"srcUrl":{"type":"string","pattern":"^srt:\\/\\/.+:\\d+","description":"SRT source URL (srt://<ip>:<port>)"},"passphrase":{"type":"string","nullable":true,"description":"SRT passphrase (will be stored encrypted)"},"capacity":{"type":"integer","minimum":1,"description":"Maximum number of ingests this endpoint can handle"}},"additionalProperties":false},"PaginatedSrtEndpointIngestResult":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Ingest"},"description":"List of ingests"},"pagination":{"type":"object","properties":{"hasMore":{"type":"boolean","description":"Whether more results are available"},"cursor":{"type":"string","description":"Cursor for the next page of results"}},"required":["hasMore","cursor"],"description":"Pagination info"}},"required":["data","pagination"]}},"parameters":{}},"paths":{"/channels":{"get":{"tags":["Channels"],"operationId":"get-channels","summary":"Get all channels","parameters":[{"schema":{"type":"string","description":"Filter by external ID"},"required":false,"description":"Filter by external ID","name":"externalId","in":"query"},{"schema":{"type":"string","description":"Pagination cursor"},"required":false,"description":"Pagination cursor","name":"cursor","in":"query"},{"schema":{"type":"number","nullable":true,"maximum":100,"description":"Maximum number of channels to return (max 100)"},"required":false,"description":"Maximum number of channels to return (max 100)","name":"limit","in":"query"},{"schema":{"type":"string","description":"Filter by channel name"},"required":false,"description":"Filter by channel name","name":"name","in":"query"},{"schema":{"type":"string","description":"Search channels based on ID or name"},"required":false,"description":"Search channels based on ID or name","name":"search","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of statuses to filter by"},"required":false,"description":"Comma-separated list of statuses to filter by","name":"status","in":"query"},{"schema":{"type":"string","description":"Filter by channel ID"},"required":false,"description":"Filter by channel ID","name":"id","in":"query"}],"responses":{"200":{"description":"List of channels","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedChannelResult"}}}}}},"post":{"tags":["Channels"],"operationId":"create-channel","summary":"Create a new channel","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateChannelBody"}}}},"responses":{"200":{"description":"Channel created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelCreatedObjectResult"}}}}}}},"/channels/{id}":{"get":{"tags":["Channels"],"operationId":"get-channel","summary":"Get a channel by ID","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Comma-separated list of related resources to include. Valid values: ingests, distributions, engines"},"required":false,"description":"Comma-separated list of related resources to include. Valid values: ingests, distributions, engines","name":"include","in":"query"}],"responses":{"200":{"description":"The requested channel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelObjectResultWithIncludes"}}}}}},"patch":{"tags":["Channels"],"operationId":"update-channel","summary":"Update a channel by ID","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateChannelBody"}}}},"responses":{"200":{"description":"Updated channel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelObjectResult"}}}}}},"delete":{"tags":["Channels"],"operationId":"delete-channel","summary":"Delete a channel by ID","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"}],"responses":{"204":{"description":"Empty response"}}}},"/channels/{id}/start":{"post":{"tags":["Channels"],"operationId":"start-channel","summary":"Start a channel (will start all connected engines)","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"}],"responses":{"204":{"description":"Channel started"}}}},"/channels/{id}/stop":{"post":{"tags":["Channels"],"operationId":"stop-channel","summary":"Stop a channel (will stop all connected engines)","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"}],"responses":{"204":{"description":"Channel stopped"}}}},"/channels/{id}/ingests":{"get":{"tags":["Channels","Ingests"],"operationId":"get-channel-ingests","summary":"Get ingests of a channel","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Pagination cursor"},"required":false,"description":"Pagination cursor","name":"cursor","in":"query"},{"schema":{"type":"number","nullable":true,"maximum":100,"description":"Maximum number of items to return (max 100)"},"required":false,"description":"Maximum number of items to return (max 100)","name":"limit","in":"query"}],"responses":{"200":{"description":"List of ingests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedIngestResult"}}}}}},"post":{"tags":["Channels","Ingests"],"operationId":"create-channel-ingest","summary":"Create an ingest for a channel","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the ingest"},"type":{"type":"string","enum":["rtmp-push","rtmp-pull","srt-pull","srt-push","sdi-pull"],"description":"Ingest type. Note: srt-push requires SRT push to be enabled at organization level"},"url":{"type":"string","description":"Source URL (required for pull types)"},"region":{"type":"string","description":"Region ID (required for rtmp-push)"},"captions":{"type":"array","items":{"type":"object","properties":{"channel":{"type":"number","description":"Caption channel number"},"language":{"type":"string","description":"Caption language code"},"label":{"type":"string","description":"Caption label"}},"required":["channel","language"]},"description":"Caption configuration"},"tracks":{"type":"object","properties":{"audio":{"type":"array","items":{"type":"object","properties":{"pid":{"type":"number","description":"Audio track PID (mandatory for multi-audio)"},"language":{"type":"string","description":"Audio track language code"},"label":{"type":"string","description":"Audio track label"}},"required":["language","label"]},"description":"Audio track configuration"}},"description":"Audio track configuration"}},"required":["name","type"],"additionalProperties":false}}}},"responses":{"200":{"description":"Ingest created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestObjectResult"}}}}}}},"/channels/{id}/engines":{"get":{"tags":["Channels","Engines"],"operationId":"get-channel-engines","summary":"Get engines of a channel","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Pagination cursor"},"required":false,"description":"Pagination cursor","name":"cursor","in":"query"},{"schema":{"type":"number","nullable":true,"maximum":100,"description":"Maximum number of items to return (max 100)"},"required":false,"description":"Maximum number of items to return (max 100)","name":"limit","in":"query"}],"responses":{"200":{"description":"List of engines","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEngineResult"}}}}}},"post":{"tags":["Channels","Engines"],"operationId":"create-channel-engine","summary":"Create an engine for a channel","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ingestId":{"type":"string","description":"Ingest ID to connect the engine to"},"name":{"type":"string","description":"Name of the engine"},"region":{"type":"string","description":"Region ID to deploy the engine in"},"priority":{"type":"number","minimum":-100,"maximum":100,"description":"Engine priority (-100 to 100). Lower numbers mean higher priority"},"drm":{"type":"boolean","description":"Enable DRM. Only possible when enabled on organization level."},"quality":{"type":"object","properties":{"abrLadderId":{"type":"string","description":"ABR ladder ID"}},"required":["abrLadderId"],"description":"Quality configuration"},"daiAssetKey":{"type":"string","nullable":true,"description":"DAI asset key"},"overlays":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"URL of the overlay image"},"position":{"type":"object","properties":{"top":{"type":"integer","minimum":0,"description":"Pixels from top"},"bottom":{"type":"integer","minimum":0,"description":"Pixels from bottom (ignored if top is present)"},"left":{"type":"integer","minimum":0,"description":"Pixels from left"},"right":{"type":"integer","minimum":0,"description":"Pixels from right (ignored if left is present)"}},"description":"Overlay position"},"size":{"type":"object","properties":{"width":{"type":"integer","minimum":0,"description":"Width in pixels"},"height":{"type":"integer","minimum":0,"description":"Height in pixels"}},"description":"Overlay size"},"opacity":{"type":"number","minimum":0,"maximum":1,"description":"Overlay opacity (0=invisible, 1=fully visible)"}},"required":["url"]},"description":"Image overlay configuration"},"outputs":{"type":"object","properties":{"hesp":{"type":"boolean","default":true,"description":"Enable HESP output. Enabled by default."},"hls":{"type":"boolean","default":true,"description":"Enable HLS output. Enabled by default."},"hlsMpegTs":{"type":"boolean","default":false,"description":"Enable HLS MPEG-TS output. Only available when enabled on organization level."}},"description":"Output format configuration"}},"required":["name","region","quality"],"additionalProperties":false}}}},"responses":{"200":{"description":"Engine created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngineObjectResult"}}}}}}},"/channels/{id}/distributions":{"get":{"tags":["Channels","Distributions"],"operationId":"get-channel-distributions","summary":"Get distributions of a channel","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Pagination cursor"},"required":false,"description":"Pagination cursor","name":"cursor","in":"query"},{"schema":{"type":"number","nullable":true,"maximum":100,"description":"Maximum number of items to return (max 100)"},"required":false,"description":"Maximum number of items to return (max 100)","name":"limit","in":"query"}],"responses":{"200":{"description":"List of distributions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedDistributionResult"}}}}}},"post":{"tags":["Channels","Distributions"],"operationId":"create-channel-distribution","summary":"Create a distribution for a channel","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDistributionBody"}}}},"responses":{"200":{"description":"Distribution created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributionObjectResult"}}}}}}},"/channels/{id}/runs":{"get":{"tags":["Channels"],"operationId":"get-channel-runs","summary":"Get engine runs of a channel","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Pagination cursor"},"required":false,"description":"Pagination cursor","name":"cursor","in":"query"},{"schema":{"type":"number","nullable":true,"description":"Maximum number of runs to return"},"required":false,"description":"Maximum number of runs to return","name":"limit","in":"query"},{"schema":{"type":"string","description":"Filter runs starting after this timestamp"},"required":false,"description":"Filter runs starting after this timestamp","name":"start","in":"query"},{"schema":{"type":"string","description":"Filter runs ending before this timestamp"},"required":false,"description":"Filter runs ending before this timestamp","name":"end","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of engine IDs to filter by"},"required":false,"description":"Comma-separated list of engine IDs to filter by","name":"engineIds","in":"query"}],"responses":{"200":{"description":"List of engine runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEngineRunResult"}}}}}}},"/channels/{id}/analytics/transcoding-minutes":{"get":{"tags":["Channels"],"operationId":"get-channel-transcoding-minutes","summary":"Get transcoding minutes analytics for a channel","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Start date for the analytics period"},"required":true,"description":"Start date for the analytics period","name":"start","in":"query"},{"schema":{"type":"string","description":"End date for the analytics period"},"required":true,"description":"End date for the analytics period","name":"end","in":"query"},{"schema":{"type":"string","enum":["engine","channel"],"description":"Group results by engine or channel"},"required":false,"description":"Group results by engine or channel","name":"groupBy","in":"query"},{"schema":{"type":"string","enum":["15min","hour","day","month"],"description":"Time resolution for the analytics data"},"required":true,"description":"Time resolution for the analytics data","name":"resolution","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of engine IDs to filter by"},"required":false,"description":"Comma-separated list of engine IDs to filter by","name":"engineIds","in":"query"},{"schema":{"type":"string","description":"UTC offset in minutes"},"required":false,"description":"UTC offset in minutes","name":"utcOffset","in":"query"}],"responses":{"200":{"description":"Transcoding minutes analytics data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsListResult"}}}}}}},"/channels/{id}/analytics/viewing-minutes":{"get":{"tags":["Channels"],"operationId":"get-channel-viewing-minutes","summary":"Get viewing minutes analytics for a channel","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Start date for the analytics period"},"required":true,"description":"Start date for the analytics period","name":"start","in":"query"},{"schema":{"type":"string","description":"End date for the analytics period"},"required":true,"description":"End date for the analytics period","name":"end","in":"query"},{"schema":{"type":"string","enum":["channel","distribution","streaming-format"],"description":"Group results by channel, distribution, or streaming format"},"required":false,"description":"Group results by channel, distribution, or streaming format","name":"groupBy","in":"query"},{"schema":{"type":"string","enum":["15min","hour","day","month"],"description":"Time resolution for the analytics data"},"required":true,"description":"Time resolution for the analytics data","name":"resolution","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"UTC offset in minutes"},"required":false,"description":"UTC offset in minutes","name":"utcOffset","in":"query"}],"responses":{"200":{"description":"Viewing minutes analytics data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsListResult"}}}}}}},"/channels/{id}/analytics/bytes-transferred":{"get":{"tags":["Channels"],"operationId":"get-channel-bytes-transferred","summary":"Get bytes transferred analytics for a channel","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Start date for the analytics period"},"required":true,"description":"Start date for the analytics period","name":"start","in":"query"},{"schema":{"type":"string","description":"End date for the analytics period"},"required":true,"description":"End date for the analytics period","name":"end","in":"query"},{"schema":{"type":"string","enum":["channel","distribution","streaming-format"],"description":"Group results by channel, distribution, or streaming format"},"required":false,"description":"Group results by channel, distribution, or streaming format","name":"groupBy","in":"query"},{"schema":{"type":"string","enum":["15min","hour","day","month"],"description":"Time resolution for the analytics data"},"required":true,"description":"Time resolution for the analytics data","name":"resolution","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"},{"schema":{"type":"string","description":"UTC offset in minutes"},"required":false,"description":"UTC offset in minutes","name":"utcOffset","in":"query"}],"responses":{"200":{"description":"Bytes transferred analytics data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsListResult"}}}}}}},"/channels/{id}/analytics/viewing-minutes/browsers":{"get":{"tags":["Channels"],"operationId":"get-channel-viewing-minutes-browsers","summary":"Get viewing minutes grouped by browser for a channel","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Start date for the analytics period"},"required":true,"description":"Start date for the analytics period","name":"start","in":"query"},{"schema":{"type":"string","description":"End date for the analytics period"},"required":true,"description":"End date for the analytics period","name":"end","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"UTC offset in minutes"},"required":false,"description":"UTC offset in minutes","name":"utcOffset","in":"query"}],"responses":{"200":{"description":"Viewing minutes by browser","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewingBrowserListResult"}}}}}}},"/channels/{id}/analytics/viewing-minutes/countries":{"get":{"tags":["Channels"],"operationId":"get-channel-viewing-minutes-countries","summary":"Get viewing minutes grouped by country for a channel","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Start date for the analytics period"},"required":true,"description":"Start date for the analytics period","name":"start","in":"query"},{"schema":{"type":"string","description":"End date for the analytics period"},"required":true,"description":"End date for the analytics period","name":"end","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"UTC offset in minutes"},"required":false,"description":"UTC offset in minutes","name":"utcOffset","in":"query"}],"responses":{"200":{"description":"Viewing minutes by country","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewingCountryListResult"}}}}}}},"/channels/{id}/analytics/bytes-transferred/browsers":{"get":{"tags":["Channels"],"operationId":"get-channel-bytes-transferred-browsers","summary":"Get bytes transferred grouped by browser for a channel","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Start date for the analytics period"},"required":true,"description":"Start date for the analytics period","name":"start","in":"query"},{"schema":{"type":"string","description":"End date for the analytics period"},"required":true,"description":"End date for the analytics period","name":"end","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"UTC offset in minutes"},"required":false,"description":"UTC offset in minutes","name":"utcOffset","in":"query"}],"responses":{"200":{"description":"Bytes transferred by browser","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewingBrowserListResult"}}}}}}},"/channels/{id}/analytics/bytes-transferred/countries":{"get":{"tags":["Channels"],"operationId":"get-channel-bytes-transferred-countries","summary":"Get bytes transferred grouped by country for a channel","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Start date for the analytics period"},"required":true,"description":"Start date for the analytics period","name":"start","in":"query"},{"schema":{"type":"string","description":"End date for the analytics period"},"required":true,"description":"End date for the analytics period","name":"end","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"UTC offset in minutes"},"required":false,"description":"UTC offset in minutes","name":"utcOffset","in":"query"}],"responses":{"200":{"description":"Bytes transferred by country","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewingCountryListResult"}}}}}}},"/channels/{id}/analytics/insights/countries":{"get":{"tags":["Channels"],"operationId":"get-channel-insights-countries","summary":"Get country insights for a channel","description":"Data is only available for the last 30 days.","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"},{"schema":{"type":"string","enum":["hour","day","week","month"],"description":"Time period for the insights"},"required":true,"description":"Time period for the insights","name":"period","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of channel IDs to filter by"},"required":false,"description":"Comma-separated list of channel IDs to filter by","name":"channelIds","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"}],"responses":{"200":{"description":"Country insights data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountryInsightsListResult"}}}}}}},"/channels/{id}/analytics/insights/browsers-os":{"get":{"tags":["Channels"],"operationId":"get-channel-insights-browsers-os","summary":"Get browser and OS insights for a channel","description":"Data is only available for the last 30 days.","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"},{"schema":{"type":"string","enum":["hour","day","week","month"],"description":"Time period for the insights"},"required":true,"description":"Time period for the insights","name":"period","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of channel IDs to filter by"},"required":false,"description":"Comma-separated list of channel IDs to filter by","name":"channelIds","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"}],"responses":{"200":{"description":"Browser/OS insights data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrowserOsInsightsListResult"}}}}}}},"/channels/{id}/analytics/insights/viewers":{"get":{"tags":["Channels"],"operationId":"get-channel-insights-viewers","summary":"Get viewer count insights for a channel","description":"Data is only available for the last 30 days.","parameters":[{"schema":{"type":"string","description":"Channel ID"},"required":true,"description":"Channel ID","name":"id","in":"path"},{"schema":{"type":"string","enum":["hour","day","week","month"],"description":"Time period for the insights"},"required":true,"description":"Time period for the insights","name":"period","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of channel IDs to filter by"},"required":false,"description":"Comma-separated list of channel IDs to filter by","name":"channelIds","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"}],"responses":{"200":{"description":"Viewer count insights data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewersInsightsListResult"}}}}}}},"/ingests/{id}":{"get":{"tags":["Ingests"],"operationId":"get-ingest","summary":"Get an ingest by ID","parameters":[{"schema":{"type":"string","description":"Ingest ID"},"required":true,"description":"Ingest ID","name":"id","in":"path"}],"responses":{"200":{"description":"The requested ingest","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestObjectResult"}}}}}},"patch":{"tags":["Ingests"],"operationId":"update-ingest","summary":"Update an ingest by ID","parameters":[{"schema":{"type":"string","description":"Ingest ID"},"required":true,"description":"Ingest ID","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateIngestBody"}}}},"responses":{"200":{"description":"Updated ingest","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestObjectResult"}}}}}},"delete":{"tags":["Ingests"],"operationId":"delete-ingest","summary":"Delete an ingest by ID","parameters":[{"schema":{"type":"string","description":"Ingest ID"},"required":true,"description":"Ingest ID","name":"id","in":"path"}],"responses":{"204":{"description":"Empty response"}}}},"/ingests/{id}/engines":{"get":{"tags":["Ingests"],"operationId":"get-ingest-engines","summary":"Get engines of an ingest","parameters":[{"schema":{"type":"string","description":"Ingest ID"},"required":true,"description":"Ingest ID","name":"id","in":"path"}],"responses":{"200":{"description":"List of engines","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEngineResult"}}}}}},"post":{"tags":["Ingests"],"operationId":"create-ingest-engine","summary":"Create an engine for an ingest","parameters":[{"schema":{"type":"string","description":"Ingest ID"},"required":true,"description":"Ingest ID","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ingestId":{"type":"string","description":"Ingest ID to connect the engine to"},"name":{"type":"string","description":"Name of the engine"},"region":{"type":"string","description":"Region ID to deploy the engine in"},"priority":{"type":"number","minimum":-100,"maximum":100,"description":"Engine priority (-100 to 100). Lower numbers mean higher priority"},"drm":{"type":"boolean","description":"Enable DRM. Only possible when enabled on organization level."},"quality":{"type":"object","properties":{"abrLadderId":{"type":"string","description":"ABR ladder ID"}},"required":["abrLadderId"],"description":"Quality configuration"},"daiAssetKey":{"type":"string","nullable":true,"description":"DAI asset key"},"overlays":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"URL of the overlay image"},"position":{"type":"object","properties":{"top":{"type":"integer","minimum":0,"description":"Pixels from top"},"bottom":{"type":"integer","minimum":0,"description":"Pixels from bottom (ignored if top is present)"},"left":{"type":"integer","minimum":0,"description":"Pixels from left"},"right":{"type":"integer","minimum":0,"description":"Pixels from right (ignored if left is present)"}},"description":"Overlay position"},"size":{"type":"object","properties":{"width":{"type":"integer","minimum":0,"description":"Width in pixels"},"height":{"type":"integer","minimum":0,"description":"Height in pixels"}},"description":"Overlay size"},"opacity":{"type":"number","minimum":0,"maximum":1,"description":"Overlay opacity (0=invisible, 1=fully visible)"}},"required":["url"]},"description":"Image overlay configuration"},"outputs":{"type":"object","properties":{"hesp":{"type":"boolean","default":true,"description":"Enable HESP output. Enabled by default."},"hls":{"type":"boolean","default":true,"description":"Enable HLS output. Enabled by default."},"hlsMpegTs":{"type":"boolean","default":false,"description":"Enable HLS MPEG-TS output. Only available when enabled on organization level."}},"description":"Output format configuration"}},"required":["name","region","quality"],"additionalProperties":false}}}},"responses":{"200":{"description":"Engine created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngineObjectResult"}}}}}}},"/engines/{id}":{"get":{"tags":["Engines"],"operationId":"get-engine","summary":"Get an engine by ID","parameters":[{"schema":{"type":"string","description":"Engine ID"},"required":true,"description":"Engine ID","name":"id","in":"path"}],"responses":{"200":{"description":"The requested engine","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngineObjectResult"}}}}}},"patch":{"tags":["Engines"],"operationId":"update-engine","summary":"Update an engine by ID","parameters":[{"schema":{"type":"string","description":"Engine ID"},"required":true,"description":"Engine ID","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ingestId":{"type":"string","description":"Ingest ID to connect the engine to"},"name":{"type":"string","description":"Name of the engine"},"region":{"type":"string","description":"Region ID"},"priority":{"type":"number","minimum":-100,"maximum":100,"description":"Engine priority (-100 to 100)"},"drm":{"type":"boolean","description":"Enable DRM. Only possible when enabled on organization level."},"quality":{"type":"object","properties":{"abrLadderId":{"type":"string","description":"ABR ladder ID"}},"required":["abrLadderId"],"description":"Quality configuration"},"daiAssetKey":{"type":"string","nullable":true,"description":"DAI asset key"},"overlays":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"URL of the overlay image"},"position":{"type":"object","properties":{"top":{"type":"integer","minimum":0,"description":"Pixels from top"},"bottom":{"type":"integer","minimum":0,"description":"Pixels from bottom (ignored if top is present)"},"left":{"type":"integer","minimum":0,"description":"Pixels from left"},"right":{"type":"integer","minimum":0,"description":"Pixels from right (ignored if left is present)"}},"description":"Overlay position"},"size":{"type":"object","properties":{"width":{"type":"integer","minimum":0,"description":"Width in pixels"},"height":{"type":"integer","minimum":0,"description":"Height in pixels"}},"description":"Overlay size"},"opacity":{"type":"number","minimum":0,"maximum":1,"description":"Overlay opacity (0=invisible, 1=fully visible)"}},"required":["url"]},"description":"Image overlay configuration"},"outputs":{"type":"object","properties":{"hesp":{"type":"boolean","default":true,"description":"Enable HESP output. Enabled by default."},"hls":{"type":"boolean","default":true,"description":"Enable HLS output. Enabled by default."},"hlsMpegTs":{"type":"boolean","default":false,"description":"Enable HLS MPEG-TS output. Only available when enabled on organization level."}},"description":"Output format configuration"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Updated engine","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngineObjectResult"}}}}}},"delete":{"tags":["Engines"],"operationId":"delete-engine","summary":"Delete an engine by ID","parameters":[{"schema":{"type":"string","description":"Engine ID"},"required":true,"description":"Engine ID","name":"id","in":"path"}],"responses":{"204":{"description":"Empty response"}}}},"/engines/{id}/start":{"post":{"tags":["Engines"],"operationId":"start-engine","summary":"Start an engine","parameters":[{"schema":{"type":"string","description":"Engine ID"},"required":true,"description":"Engine ID","name":"id","in":"path"}],"responses":{"204":{"description":"Engine started"}}}},"/engines/{id}/stop":{"post":{"tags":["Engines"],"operationId":"stop-engine","summary":"Stop an engine","parameters":[{"schema":{"type":"string","description":"Engine ID"},"required":true,"description":"Engine ID","name":"id","in":"path"}],"responses":{"204":{"description":"Engine stopped"}}}},"/engines/{id}/last-run":{"get":{"tags":["Engines"],"operationId":"get-engine-last-run","summary":"Get the last run of an engine","parameters":[{"schema":{"type":"string","description":"Engine ID"},"required":true,"description":"Engine ID","name":"id","in":"path"}],"responses":{"200":{"description":"Last engine run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngineRunObjectResult"}}}}}}},"/engines/{id}/runs":{"get":{"tags":["Engines"],"operationId":"get-engine-runs","summary":"Get runs of an engine","parameters":[{"schema":{"type":"string","description":"Engine ID"},"required":true,"description":"Engine ID","name":"id","in":"path"}],"responses":{"200":{"description":"List of engine runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEngineRunResult"}}}}}}},"/distributions/{id}":{"get":{"tags":["Distributions"],"operationId":"get-distribution","summary":"Get a distribution by ID","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"}],"responses":{"200":{"description":"The requested distribution","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributionObjectResult"}}}}}},"patch":{"tags":["Distributions"],"operationId":"update-distribution","summary":"Update a distribution by ID","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDistributionBody"}}}},"responses":{"200":{"description":"Updated distribution","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributionObjectResult"}}}}}},"delete":{"tags":["Distributions"],"operationId":"delete-distribution","summary":"Delete a distribution by ID","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"}],"responses":{"204":{"description":"Empty response"}}}},"/distributions/{id}/security/keys":{"get":{"tags":["Distributions"],"operationId":"get-distribution-security-keys","summary":"Get security keys of a distribution","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"}],"responses":{"200":{"description":"List of security keys","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributionSecurityKeyListResult"}}}}}},"post":{"tags":["Distributions"],"operationId":"create-distribution-security-key","summary":"Add a security key to a distribution","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDistributionSecurityKeyBody"}}}},"responses":{"200":{"description":"Security key created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributionSecurityKeyObjectResult"}}}}}},"delete":{"tags":["Distributions"],"operationId":"delete-all-distribution-security-keys","summary":"Delete all security keys of a distribution","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"}],"responses":{"204":{"description":"Empty response"}}}},"/distributions/{id}/security/keys/{keyId}":{"get":{"tags":["Distributions"],"operationId":"get-distribution-security-key","summary":"Get a specific security key","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Security key ID"},"required":true,"description":"Security key ID","name":"keyId","in":"path"}],"responses":{"200":{"description":"The requested security key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributionSecurityKeyObjectResult"}}}}}},"delete":{"tags":["Distributions"],"operationId":"delete-distribution-security-key","summary":"Delete a specific security key","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Security key ID"},"required":true,"description":"Security key ID","name":"keyId","in":"path"}],"responses":{"204":{"description":"Empty response"}}}},"/distributions/{id}/analytics/viewing-minutes":{"get":{"tags":["Distributions"],"operationId":"get-distribution-viewing-minutes","summary":"Get viewing minutes analytics for a distribution","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Start date for the analytics period"},"required":true,"description":"Start date for the analytics period","name":"start","in":"query"},{"schema":{"type":"string","description":"End date for the analytics period"},"required":true,"description":"End date for the analytics period","name":"end","in":"query"},{"schema":{"type":"string","enum":["channel","distribution","streaming-format"],"description":"Group results by channel, distribution, or streaming format"},"required":false,"description":"Group results by channel, distribution, or streaming format","name":"groupBy","in":"query"},{"schema":{"type":"string","enum":["15min","hour","day","month"],"description":"Time resolution for the analytics data"},"required":true,"description":"Time resolution for the analytics data","name":"resolution","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"UTC offset in minutes"},"required":false,"description":"UTC offset in minutes","name":"utcOffset","in":"query"}],"responses":{"200":{"description":"Viewing minutes analytics data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsListResult"}}}}}}},"/distributions/{id}/analytics/bytes-transferred":{"get":{"tags":["Distributions"],"operationId":"get-distribution-bytes-transferred","summary":"Get bytes transferred analytics for a distribution","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Start date for the analytics period"},"required":true,"description":"Start date for the analytics period","name":"start","in":"query"},{"schema":{"type":"string","description":"End date for the analytics period"},"required":true,"description":"End date for the analytics period","name":"end","in":"query"},{"schema":{"type":"string","enum":["channel","distribution","streaming-format"],"description":"Group results by channel, distribution, or streaming format"},"required":false,"description":"Group results by channel, distribution, or streaming format","name":"groupBy","in":"query"},{"schema":{"type":"string","enum":["15min","hour","day","month"],"description":"Time resolution for the analytics data"},"required":true,"description":"Time resolution for the analytics data","name":"resolution","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"},{"schema":{"type":"string","description":"UTC offset in minutes"},"required":false,"description":"UTC offset in minutes","name":"utcOffset","in":"query"}],"responses":{"200":{"description":"Bytes transferred analytics data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsListResult"}}}}}}},"/distributions/{id}/analytics/viewing-minutes/browsers":{"get":{"tags":["Distributions"],"operationId":"get-distribution-viewing-minutes-browsers","summary":"Get viewing minutes grouped by browser for a distribution","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Start date for the analytics period"},"required":true,"description":"Start date for the analytics period","name":"start","in":"query"},{"schema":{"type":"string","description":"End date for the analytics period"},"required":true,"description":"End date for the analytics period","name":"end","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"UTC offset in minutes"},"required":false,"description":"UTC offset in minutes","name":"utcOffset","in":"query"}],"responses":{"200":{"description":"Viewing minutes by browser","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewingBrowserListResult"}}}}}}},"/distributions/{id}/analytics/viewing-minutes/countries":{"get":{"tags":["Distributions"],"operationId":"get-distribution-viewing-minutes-countries","summary":"Get viewing minutes grouped by country for a distribution","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Start date for the analytics period"},"required":true,"description":"Start date for the analytics period","name":"start","in":"query"},{"schema":{"type":"string","description":"End date for the analytics period"},"required":true,"description":"End date for the analytics period","name":"end","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"UTC offset in minutes"},"required":false,"description":"UTC offset in minutes","name":"utcOffset","in":"query"}],"responses":{"200":{"description":"Viewing minutes by country","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewingCountryListResult"}}}}}}},"/distributions/{id}/analytics/bytes-transferred/browsers":{"get":{"tags":["Distributions"],"operationId":"get-distribution-bytes-transferred-browsers","summary":"Get bytes transferred grouped by browser for a distribution","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Start date for the analytics period"},"required":true,"description":"Start date for the analytics period","name":"start","in":"query"},{"schema":{"type":"string","description":"End date for the analytics period"},"required":true,"description":"End date for the analytics period","name":"end","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"UTC offset in minutes"},"required":false,"description":"UTC offset in minutes","name":"utcOffset","in":"query"}],"responses":{"200":{"description":"Bytes transferred by browser","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewingBrowserListResult"}}}}}}},"/distributions/{id}/analytics/bytes-transferred/countries":{"get":{"tags":["Distributions"],"operationId":"get-distribution-bytes-transferred-countries","summary":"Get bytes transferred grouped by country for a distribution","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"},{"schema":{"type":"string","description":"Start date for the analytics period"},"required":true,"description":"Start date for the analytics period","name":"start","in":"query"},{"schema":{"type":"string","description":"End date for the analytics period"},"required":true,"description":"End date for the analytics period","name":"end","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"UTC offset in minutes"},"required":false,"description":"UTC offset in minutes","name":"utcOffset","in":"query"}],"responses":{"200":{"description":"Bytes transferred by country","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewingCountryListResult"}}}}}}},"/distributions/{id}/analytics/insights/countries":{"get":{"tags":["Distributions"],"operationId":"get-distribution-insights-countries","summary":"Get country insights for a distribution","description":"Data is only available for the last 30 days.","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"},{"schema":{"type":"string","enum":["hour","day","week","month"],"description":"Time period for the insights"},"required":true,"description":"Time period for the insights","name":"period","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of channel IDs to filter by"},"required":false,"description":"Comma-separated list of channel IDs to filter by","name":"channelIds","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"}],"responses":{"200":{"description":"Country insights data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountryInsightsListResult"}}}}}}},"/distributions/{id}/analytics/insights/browsers-os":{"get":{"tags":["Distributions"],"operationId":"get-distribution-insights-browsers-os","summary":"Get browser and OS insights for a distribution","description":"Data is only available for the last 30 days.","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"},{"schema":{"type":"string","enum":["hour","day","week","month"],"description":"Time period for the insights"},"required":true,"description":"Time period for the insights","name":"period","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of channel IDs to filter by"},"required":false,"description":"Comma-separated list of channel IDs to filter by","name":"channelIds","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"}],"responses":{"200":{"description":"Browser/OS insights data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrowserOsInsightsListResult"}}}}}}},"/distributions/{id}/analytics/insights/viewers":{"get":{"tags":["Distributions"],"operationId":"get-distribution-insights-viewers","summary":"Get viewer count insights for a distribution","description":"Data is only available for the last 30 days.","parameters":[{"schema":{"type":"string","description":"Distribution ID"},"required":true,"description":"Distribution ID","name":"id","in":"path"},{"schema":{"type":"string","enum":["hour","day","week","month"],"description":"Time period for the insights"},"required":true,"description":"Time period for the insights","name":"period","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of channel IDs to filter by"},"required":false,"description":"Comma-separated list of channel IDs to filter by","name":"channelIds","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of distribution IDs to filter by"},"required":false,"description":"Comma-separated list of distribution IDs to filter by","name":"distributionIds","in":"query"},{"schema":{"type":"string","description":"Comma-separated list of streaming formats to filter by"},"required":false,"description":"Comma-separated list of streaming formats to filter by","name":"streamingFormats","in":"query"}],"responses":{"200":{"description":"Viewer count insights data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewersInsightsListResult"}}}}}}},"/regions":{"get":{"tags":["Regions"],"operationId":"get-regions","summary":"Get all regions available for your organization","responses":{"200":{"description":"List of regions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionListResult"}}}}}}},"/abr":{"get":{"tags":["ABR Ladders"],"operationId":"get-abr-ladders","summary":"Get all ABR ladders for your organization","responses":{"200":{"description":"List of ABR ladders","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AbrListResult"}}}}}}},"/webhooks":{"get":{"tags":["Webhooks"],"operationId":"get-webhooks","summary":"Get all webhooks","responses":{"200":{"description":"List of webhooks","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedWebhookResult"}}}}}},"post":{"tags":["Webhooks"],"operationId":"create-webhook","summary":"Create a new webhook","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookBody"}}}},"responses":{"200":{"description":"Webhook created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookObjectResult"}}}}}}},"/webhooks/{id}":{"get":{"tags":["Webhooks"],"operationId":"get-webhook","summary":"Get a webhook by ID","parameters":[{"schema":{"type":"string","description":"Webhook ID"},"required":true,"description":"Webhook ID","name":"id","in":"path"}],"responses":{"200":{"description":"The requested webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookObjectResult"}}}}}},"patch":{"tags":["Webhooks"],"operationId":"update-webhook","summary":"Update a webhook by ID","parameters":[{"schema":{"type":"string","description":"Webhook ID"},"required":true,"description":"Webhook ID","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookBody"}}}},"responses":{"200":{"description":"Updated webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookObjectResult"}}}}}},"delete":{"tags":["Webhooks"],"operationId":"delete-webhook","summary":"Delete a webhook by ID","parameters":[{"schema":{"type":"string","description":"Webhook ID"},"required":true,"description":"Webhook ID","name":"id","in":"path"}],"responses":{"204":{"description":"Empty response"}}}},"/webhooks/{id}/secret":{"get":{"tags":["Webhooks"],"operationId":"get-webhook-secret","summary":"Get a webhook secret","parameters":[{"schema":{"type":"string","description":"Webhook ID"},"required":true,"description":"Webhook ID","name":"id","in":"path"}],"responses":{"200":{"description":"The webhook secret","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSecretResult"}}}}}}},"/webhooks/{id}/logs":{"get":{"tags":["Webhooks"],"operationId":"get-webhook-logs","summary":"Get webhook logs","parameters":[{"schema":{"type":"string","description":"Webhook ID"},"required":true,"description":"Webhook ID","name":"id","in":"path"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$","description":"Start date in 'YYYY-MM-DDTHH:mm:ss.sssZ' format"},"required":false,"description":"Start date in 'YYYY-MM-DDTHH:mm:ss.sssZ' format","name":"startDate","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$","description":"End date in 'YYYY-MM-DDTHH:mm:ss.sssZ' format"},"required":false,"description":"End date in 'YYYY-MM-DDTHH:mm:ss.sssZ' format","name":"endDate","in":"query"},{"schema":{"type":"number","nullable":true,"maximum":100,"description":"Maximum number of logs to return (max 100)"},"required":false,"description":"Maximum number of logs to return (max 100)","name":"limit","in":"query"}],"responses":{"200":{"description":"Webhook logs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedWebhookLogResult"}}}}}}}}}