Download OpenAPI specification:Download
The Freecaster API gives users total control over the Freecaster video platform and allows them to seamlessly integrate it into their workflows.
Based on the JSON:API specifications, the API provides access to all features and functionality of the platform, including the ability to manage video content and metadata, control player settings, and receive real-time notifications about platform events.
With the Freecaster API, users can automate tasks and easily integrate the platform with other tools and services. Whether you need to make small adjustments or large-scale changes, the Freecaster API puts the power in your hands to customize and optimize the platform for your specific needs.
/token
endpoint/s3upload
/s3upload/complete
transcoding.completed
, transcoding.failed
upload.invalid_file
events and handle transcoding failures/videos
Authentication endpoints for obtaining JWT tokens to access the API. Required for all authenticated requests.
Generate a JWT token used to access the API calls
client_id required | string <uuid> |
client_secret required | string |
scope | string |
token_type | string Value: "Bearer" |
expires_in | integer Token expiration (in seconds) |
access_token | string |
{- "client_id": "95c9558d-ca6f-45bc-8de6-37c5349282e0",
- "client_secret": "xMeKLww9pX7ZsYqeEIXr9LljybpMEpDX6QPsAh4S",
- "scope": "roles"
}
{- "token_type": "Bearer",
- "expires_in": 1296000,
- "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiI5NWUxYTgzZC0wYjU3LTQ4NjktYmQ2ZS03YzZjNzMzYTg2MjEiLCJqdGkiOiJkYzc0NWFhZGEzNTdlZmNmMmZkYzJhZTFjY2FiMjcyOGYwMmMzMWJjMTViMzA5YTYwMjZlODkyYWUyMDQ0YmUzMGVlZTZiMmU3OGM3OTNmMCIsImlhdCI6MTY0OTIzOTQ2NS4xODg0OSwibmJmIjoxNjQ5MjM5NDY1LjE4ODQ5NSwiZXhwIjoxNjUwNTM1NDY1LjE0OTEzOCwic3ViIjoiIiwic2NvcGVzIjpbIioiXSwibmFtZSI6Ik5ldyBhZG1pbiIsImVtYWlsIjoiZGV2K3RlbmFudEBmcmVlY2FzdGVyLmNvbSIsInRlbmFudCI6ImNsaWVudC1uYW1lIn0.amAsTy8Cjwr_Fu_gqLeHhgRsTtBS4FZDDIPp_zzkF-3Ofv92YBUr02svXvZpyYQ_rfe4IsKEGhsJr7gQvrR0AUz7QQUORUG_J45LTCIsab0nh_Gz_8KBrYrsn0RZGcVqOf8A_TGFAlVQt26Pz5FQmFFBPvwPinx6qjqXnSx5xzS8YtAp5ksME7cUErdngALrLdWvbdZTcEHaFFKoqZt0vc-_S6vXh7A5OfZ1sY1vqDKxGalvFxQ1hm66_SDzDNAYNEq6RQrDes0cRReIbR8W7wEy7kEOzryiOoO0Yfl7UJCPFgKlTquY9afvfUTRlned78n8h_jaohC1K59TNgo8GRoDS_Ad_ouZDGfEsOhvlTIe0Vhw88IN6EULceKsm2HWE7DgSjw2C9MA7TLckQMTN2QDjxqrLuGu6eekHB_VqIrvgAh9Kg3bRCNeK7yRzQlG8h-qJ88BdRTMno9I8z9Pw_YkxwdC0ih6NAUGcmRI4nRlC1nYXr0bntTOwX2IfKhZWw7Hmrck-6j5uF5yYb0pQF7V11AbdrZ4Iw6TIELCvWLmIbQ81Wpc3B6XTt8L74mxDSurOmv87Sc-pdzLwtNcSKfQlfIfsfJhb6IQRwB8HsjDQM47Jy-mvTcGqxq6vu6OKwNjR5UFqrxEQAt56TaxM3iZ5UcMUW_qNu6QhO1rLBU"
}
Video upload and ingestion endpoints including S3 upload URLs, multipart uploads, and file processing initiation.
Generate a signed URL to upload a video file to the ingest S3 bucket for transcoding.
expires_in
parameter)The upload must be done as a PUT request with the video file as body (see the AWS documentation for more information).
# Step 1: Get signed URL (see request body schema for payload structure)
curl -X POST "https://api.freecaster.com/api/s3upload" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/vnd.api+json" \
-d @request-payload.json
# Step 2: Upload file using the returned signed URL
curl -X PUT -T "path/to/your/local/video-file.mp4" "$SIGNED_URL"
/s3upload/complete
to finalize the multipart upload# Step 1: Initiate multipart upload (see request body schema for payload structure)
curl -X POST "https://api.freecaster.com/api/s3upload?multipart=true" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/vnd.api+json" \
-d @multipart-request.json
# Step 2: Upload each part (example for part 1)
curl -X PUT --data-binary @part1.bin "$PART_1_SIGNED_URL"
# Step 3: Complete multipart upload (see /s3upload/complete endpoint)
required | object | ||||||||||||||||||
| |||||||||||||||||||
object (request-meta) | |||||||||||||||||||
|
s3upload-jsonapi (object) or s3upload-multipart-jsonapi (object) | |||||||||||
Any of
|
{- "data": {
- "type": "s3upload",
- "attributes": {
- "filename": "my-video.mp4"
}
}
}
{- "data": {
- "data": {
- "type": "s3upload",
- "id": "8d3e8f70-6d9f-11ed-8f1d-0a58ac1430d2",
- "attributes": {
- "video": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}
}
}
}
Complete the multipart upload by reassembling all uploaded parts into the final video file.
This endpoint finalizes a multipart upload by instructing S3 to combine all uploaded parts into a single file. This must be called after all parts have been successfully uploaded using the URLs from the multipart initiation endpoint.
/s3upload?multipart=true
upload_id
and key
from the multipart initiation responseThe request must include:
upload_id
: The AWS multipart upload identifierkey
: The S3 object key for the fileparts
: Array of part information including ETag and part number (optional but recommended for validation)# Complete multipart upload (see request body schema for payload structure)
curl -X POST "https://api.freecaster.com/api/s3upload/complete" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/vnd.api+json" \
-d @complete-request.json
After successful completion:
transcoding.started
followed by transcoding.completed
or transcoding.failed
object | |||||||||||
|
{- "data": {
- "type": "s3uploadComplete",
- "attributes": {
- "upload_id": "string",
- "key": "string"
}
}
}
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Core video management operations including CRUD operations, metadata management, and video publishing controls.
List all videos
filter[published] | boolean Default: true Example: filter[published]=false Show only published ( |
filter[live] | boolean Example: filter[live]=true Show only live ( |
sort | string Default: "-published_at" Enum: "title" "-title" "created_at" "-created_at" "updated_at" "-updated_at" "published_at" "-published_at" Example: sort=title Sort results by the given attribute.
Prefix with '-' for descending order.
Available fields: |
page[number] | integer Default: 0 Example: page[number]=1 Page number |
page[size] | integer Default: 15 Example: page[size]=50 Page size |
include | string^[a-zA-Z_,]+$ Example: include=parents,poster Comma-separated list of relationships to include in the response. Available relationships: parents, posters, poster, subtitles, transcripts |
Array of objects (video-jsonapi) | |||||||
Array
|
{- "data": [
- {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}
]
}
Create a new video
object | |||||||||||||||||||||||||||
|
object (video-jsonapi) | |||||||||||||||||||||||||||||
|
{- "data": {
- "type": "video",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "published": true
}
}
}
{- "data": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}
}
Get a video
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
include | string^[a-zA-Z_,]+$ Example: include=parents,poster Comma-separated list of relationships to include in the response. Available relationships: parents, posters, poster, subtitles, transcripts |
object (video-jsonapi) | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
object (video-meta) | |||||||||||||||||||||||||||||
|
{- "data": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}, - "meta": {
- "duration": 10.5,
- "delivery_urls": {
- "progressive": [
- {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 256,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 512,
- "height": 288
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 854,
- "height": 480
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
],
}, - "ingest_urls": {
- "rtmp": [
- {
- "url": "rtmp://example.com/live/bff30c1f-4320-4891-a8d2-3ac4cbc22fba"
}
]
}
}
}
Edit a video
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
object (video-jsonapi) | |||||||||||||||||||||||||||||
|
object (video-jsonapi) | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
object (video-meta) | |||||||||||||||||||||||||||||
|
{- "data": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}
}
{- "data": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}, - "meta": {
- "duration": 10.5,
- "delivery_urls": {
- "progressive": [
- {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 256,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 512,
- "height": 288
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 854,
- "height": 480
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
],
}, - "ingest_urls": {
- "rtmp": [
- {
- "url": "rtmp://example.com/live/bff30c1f-4320-4891-a8d2-3ac4cbc22fba"
}
]
}
}
}
Delete a video
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Get the active poster of a video
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
object (poster-jsonapi) | |||||||||||||||||
| |||||||||||||||||
object (poster-meta) | |||||||||||||||||
|
{- "data": {
- "type": "poster",
- "id": "94b93ff9-a30e-4ed7-8679-5526d0e1b8db",
- "attributes": {
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "locale": "eng-gb",
- "is_active": true
}
},
}
Create and associate a poster to a video. There are two ways to attach a poster, either through an image upload or through extraction from the video given a timestamp.
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
poster required | string <binary> Picture file |
object (poster-jsonapi) | |||||||||||||||||
| |||||||||||||||||
object (poster-meta) | |||||||||||||||||
|
{- "data": {
- "type": "poster",
- "id": "94b93ff9-a30e-4ed7-8679-5526d0e1b8db",
- "attributes": {
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "locale": "eng-gb",
- "is_active": true
}
},
}
Get all posters from a video
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
Array of objects (poster-jsonapi) | |||||||
Array
|
{- "data": [
- {
- "type": "poster",
- "id": "94b93ff9-a30e-4ed7-8679-5526d0e1b8db",
- "attributes": {
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "locale": "eng-gb",
- "is_active": true
}
}
]
}
Create and transcode a video
object | |||||||||||||||||||||||||||||
|
object (video-jsonapi) | |||||||||||||||||||||||||||||
|
{- "data": {
- "type": "video",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "input_files": [
- "path/to/video_file.mp4"
]
}
}
}
{- "data": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}
}
List all versions
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
filter[locale] | string Example: filter[locale]=eng-gb Show only versions matching the given locale |
page[number] | integer Default: 0 Example: page[number]=1 Page number |
page[size] | integer Default: 15 Example: page[size]=50 Page size |
Array of objects | |||||||||||||||||||
Array
| |||||||||||||||||||
object (version-meta) | |||||||||||||||||||
|
{- "data": [
- {
- "type": "version",
- "id": "3243cb0a-9ede-4839-9a2c-4ec3bc1cc506",
- "attributes": {
- "name": "default",
- "type": "vod",
- "is_active": true,
- "duration": 300.5,
- "start_offset": [
- 307373100000,
- 1668782233000
], - "end_offset": [
- 307373100000,
- 1668782233000
], - "meta": { }
}, - "meta": {
- "ingest_urls": {
- "rtmp": [
- {
- "url": "rtmp://example.com/live/bff30c1f-4320-4891-a8d2-3ac4cbc22fba"
}
]
}, - "delivery_urls": {
- "progressive": [
- {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 256,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 512,
- "height": 288
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 854,
- "height": 480
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
],
}
}
}
], - "meta": {
- "ingest_urls": {
- "rtmp": [
- {
- "url": "rtmp://example.com/live/bff30c1f-4320-4891-a8d2-3ac4cbc22fba"
}
]
}, - "delivery_urls": {
- "progressive": [
- {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 256,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 512,
- "height": 288
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 854,
- "height": 480
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
],
}
}
}
Get version
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
versionUuid required | string <uuid> Example: 3243cb0a-9ede-4839-9a2c-4ec3bc1cc506 UUID of the version |
object (version-jsonapi) | |||||||||||||||||||||||
| |||||||||||||||||||||||
object (version-meta) | |||||||||||||||||||||||
|
{- "data": {
- "type": "version",
- "id": "3243cb0a-9ede-4839-9a2c-4ec3bc1cc506",
- "attributes": {
- "name": "default",
- "type": "vod",
- "is_active": true,
- "duration": 300.5,
- "start_offset": [
- 307373100000,
- 1668782233000
], - "end_offset": [
- 307373100000,
- 1668782233000
], - "meta": { }
}
}, - "meta": {
- "ingest_urls": {
- "rtmp": [
- {
- "url": "rtmp://example.com/live/bff30c1f-4320-4891-a8d2-3ac4cbc22fba"
}
]
}, - "delivery_urls": {
- "progressive": [
- {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 256,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 512,
- "height": 288
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 854,
- "height": 480
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
],
}
}
}
Edit a version
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
versionUuid required | string <uuid> Example: 3243cb0a-9ede-4839-9a2c-4ec3bc1cc506 UUID of the version |
object (version-jsonapi) | |||||||||||||||||||||||
|
object (version-jsonapi) | |||||||||||||||||||||||
| |||||||||||||||||||||||
object (version-meta) | |||||||||||||||||||||||
|
{- "data": {
- "type": "version",
- "id": "3243cb0a-9ede-4839-9a2c-4ec3bc1cc506",
- "attributes": {
- "name": "default",
- "type": "vod",
- "is_active": true,
- "duration": 300.5,
- "start_offset": [
- 307373100000,
- 1668782233000
], - "end_offset": [
- 307373100000,
- 1668782233000
], - "meta": { }
}
}
}
{- "data": {
- "type": "version",
- "id": "3243cb0a-9ede-4839-9a2c-4ec3bc1cc506",
- "attributes": {
- "name": "default",
- "type": "vod",
- "is_active": true,
- "duration": 300.5,
- "start_offset": [
- 307373100000,
- 1668782233000
], - "end_offset": [
- 307373100000,
- 1668782233000
], - "meta": { }
}
}, - "meta": {
- "ingest_urls": {
- "rtmp": [
- {
- "url": "rtmp://example.com/live/bff30c1f-4320-4891-a8d2-3ac4cbc22fba"
}
]
}, - "delivery_urls": {
- "progressive": [
- {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 256,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 512,
- "height": 288
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 854,
- "height": 480
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
],
}
}
}
Delete version
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
versionUuid required | string <uuid> Example: 3243cb0a-9ede-4839-9a2c-4ec3bc1cc506 UUID of the version |
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Activate a version
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
versionUuid required | string <uuid> Example: 3243cb0a-9ede-4839-9a2c-4ec3bc1cc506 UUID of the version |
object (version-jsonapi) | |||||||||||||||||||||||
| |||||||||||||||||||||||
object (version-meta) | |||||||||||||||||||||||
|
{- "data": {
- "type": "version",
- "id": "3243cb0a-9ede-4839-9a2c-4ec3bc1cc506",
- "attributes": {
- "name": "default",
- "type": "vod",
- "is_active": true,
- "duration": 300.5,
- "start_offset": [
- 307373100000,
- 1668782233000
], - "end_offset": [
- 307373100000,
- 1668782233000
], - "meta": { }
}
}, - "meta": {
- "ingest_urls": {
- "rtmp": [
- {
- "url": "rtmp://example.com/live/bff30c1f-4320-4891-a8d2-3ac4cbc22fba"
}
]
}, - "delivery_urls": {
- "progressive": [
- {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 256,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 512,
- "height": 288
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 854,
- "height": 480
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
],
}
}
}
Live streaming video management including live stream creation, configuration, and real-time controls.
Create a live event
object | |||||||||||||||||||||||||||||||||||||
|
object (video-jsonapi) | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
object (video-meta) | |||||||||||||||||||||||||||||
|
{- "data": {
- "type": "live",
- "attributes": {
- "title": "string",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z",
- "archive_size": 3600,
- "dvr_window": 60,
- "archiving": true,
- "delivery_filters": {
- "max_width": 1280
}, - "rtmp_ingest": false
}
}
}
{- "data": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}, - "meta": {
- "duration": 10.5,
- "delivery_urls": {
- "progressive": [
- {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 256,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 512,
- "height": 288
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 854,
- "height": 480
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
],
}, - "ingest_urls": {
- "rtmp": [
- {
- "url": "rtmp://example.com/live/bff30c1f-4320-4891-a8d2-3ac4cbc22fba"
}
]
}
}
}
Update a live event
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
object | |||||||||||||||||||||||||||||||||||
|
object (video-jsonapi) | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
object (video-meta) | |||||||||||||||||||||||||||||
|
{- "data": {
- "type": "live",
- "attributes": {
- "title": "string",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z",
- "archive_size": 3600,
- "dvr_window": 60,
- "archiving": true,
- "delivery_filters": {
- "max_width": 1280
}
}
}
}
{- "data": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}, - "meta": {
- "duration": 10.5,
- "delivery_urls": {
- "progressive": [
- {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 256,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 512,
- "height": 288
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 854,
- "height": 480
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
],
}, - "ingest_urls": {
- "rtmp": [
- {
- "url": "rtmp://example.com/live/bff30c1f-4320-4891-a8d2-3ac4cbc22fba"
}
]
}
}
}
Deactivate the waiting screen in the player and start playing the live stream
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
object (video-jsonapi) | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
object (video-meta) | |||||||||||||||||||||||||||||
|
{- "data": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}, - "meta": {
- "duration": 10.5,
- "delivery_urls": {
- "progressive": [
- {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 256,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 512,
- "height": 288
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 854,
- "height": 480
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
],
}, - "ingest_urls": {
- "rtmp": [
- {
- "url": "rtmp://example.com/live/bff30c1f-4320-4891-a8d2-3ac4cbc22fba"
}
]
}
}
}
Stop playing the live stream in the player and show the end screen
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
object (video-jsonapi) | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
object (video-meta) | |||||||||||||||||||||||||||||
|
{- "data": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}, - "meta": {
- "duration": 10.5,
- "delivery_urls": {
- "progressive": [
- {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 256,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 512,
- "height": 288
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 854,
- "height": 480
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
],
}, - "ingest_urls": {
- "rtmp": [
- {
- "url": "rtmp://example.com/live/bff30c1f-4320-4891-a8d2-3ac4cbc22fba"
}
]
}
}
}
Video clipping functionality for creating shorter segments from existing videos with custom start/end times.
Create a clip from a video
If you specify a slug that is already used by an existing video, it will create a new version of that video (and update its title if specified in the attributes).
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
object | |||||||||||||||||||
| |||||||||||||||||||
object (request-meta) | |||||||||||||||||||
|
object (video-jsonapi) | |||||||||||||||||||||||||||||
|
{- "data": {
- "type": "clip",
- "attributes": {
- "start": 1654086896,
- "end": 1654088194
}
}, - "meta": {
- "custom_ref": "my-reference"
}
}
{- "data": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}
}
Create a clip from a video as a new version of an existing clip.
The clip title can be updated if specified in the attributes.
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
clipUuid required | string <uuid> Example: 453fc82b-3508-4efa-8267-a159035dc20b UUID of the existing clip |
object | |||||||||||||||||||
| |||||||||||||||||||
object (request-meta) | |||||||||||||||||||
|
object (video-jsonapi) | |||||||||||||||||||||||||||||
|
{- "data": {
- "type": "clip",
- "attributes": {
- "start": 1654086896,
- "end": 1654088194
}
}, - "meta": {
- "custom_ref": "my-reference"
}
}
{- "data": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}
}
Video chapter management for creating navigable sections within videos with timestamps and metadata.
List all chapters
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
sort | string Default: "-published_at" Enum: "title" "-title" "created_at" "-created_at" "updated_at" "-updated_at" "published_at" "-published_at" Example: sort=title Sort results by the given attribute.
Prefix with '-' for descending order.
Available fields: |
page[number] | integer Default: 0 Example: page[number]=1 Page number |
page[size] | integer Default: 15 Example: page[size]=50 Page size |
Array of objects (chapter-jsonapi) | |||||||
Array
|
{- "data": [
- {
- "type": "chapter",
- "id": "94b93ff9-a30e-4ed7-8679-5526d0e1b8db",
- "attributes": {
- "title": "My Chapter Title",
- "description": "This is a chapter with relative timestamps",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-chapter",
- "start": 10000,
- "end": 20000,
- "is_clip": true
}
}
]
}
Create a new chapter
object | |||||||||||||||||||||||||||||
|
object (chapter-jsonapi) | |||||||||||||||||||||||||||||||
|
{- "data": {
- "type": "chapter",
- "attributes": {
- "title": "My Chapter Title",
- "description": "This is a chapter with relative timestamps",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-chapter",
- "start": 10000,
- "end": 20000,
- "is_clip": true
}
}
}
{- "data": {
- "type": "chapter",
- "id": "94b93ff9-a30e-4ed7-8679-5526d0e1b8db",
- "attributes": {
- "title": "My Chapter Title",
- "description": "This is a chapter with relative timestamps",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-chapter",
- "start": 10000,
- "end": 20000,
- "is_clip": true
}
}
}
Get a chapter
chapterUuid required | string <uuid> Example: 94b93ff9-a30e-4ed7-8679-5526d0e1b8db UUID of the chapter |
include | string^[a-zA-Z_,]+$ Example: include=parents,poster Comma-separated list of relationships to include in the response. Available relationships: parents, posters, poster, subtitles, transcripts |
object (chapter-jsonapi) | |||||||||||||||||||||||||||||||
|
{- "data": {
- "type": "chapter",
- "id": "94b93ff9-a30e-4ed7-8679-5526d0e1b8db",
- "attributes": {
- "title": "My Chapter Title",
- "description": "This is a chapter with relative timestamps",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-chapter",
- "start": 10000,
- "end": 20000,
- "is_clip": true
}
}
}
Edit a chapter
chapterUuid required | string <uuid> Example: 94b93ff9-a30e-4ed7-8679-5526d0e1b8db UUID of the chapter |
object (chapter-jsonapi) | |||||||||||||||||||||||||||||||
|
object (chapter-jsonapi) | |||||||||||||||||||||||||||||||
|
{- "data": {
- "type": "chapter",
- "id": "94b93ff9-a30e-4ed7-8679-5526d0e1b8db",
- "attributes": {
- "title": "My Chapter Title",
- "description": "This is a chapter with relative timestamps",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-chapter",
- "start": 10000,
- "end": 20000,
- "is_clip": true
}
}
}
{- "data": {
- "type": "chapter",
- "id": "94b93ff9-a30e-4ed7-8679-5526d0e1b8db",
- "attributes": {
- "title": "My Chapter Title",
- "description": "This is a chapter with relative timestamps",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-chapter",
- "start": 10000,
- "end": 20000,
- "is_clip": true
}
}
}
Delete a chapter
chapterUuid required | string <uuid> Example: 94b93ff9-a30e-4ed7-8679-5526d0e1b8db UUID of the chapter |
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Subtitle and caption management including upload, synchronization, and multi-language support.
List all subtitles
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
filter[locale] | string Example: filter[locale]=eng-gb Show only subtitles matching the given locale |
page[number] | integer Default: 0 Example: page[number]=1 Page number |
page[size] | integer Default: 15 Example: page[size]=50 Page size |
Array of objects | |||||||||||||
Array
| |||||||||||||
object (subtitle-meta) | |||||||||||||
|
{- "data": [
- {
- "type": "subtitle",
- "id": "6462bcb1-ce61-4061-8f43-176694a1e9c5",
- "attributes": {
- "name": "English",
- "locale": "eng-gb"
}, - "meta": {
}
}
], - "meta": {
}
}
Create new subtitles
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
subtitles required | string <binary> Subtitles file |
locale required | string or null (locale) ^[a-z]{3}(-[a-z]{2})?$ Language and optional region identifier for the content |
name | string Name of the subtitles |
object (subtitle-jsonapi) | |||||||||||||
| |||||||||||||
object (subtitle-meta) | |||||||||||||
|
{- "data": {
- "type": "subtitle",
- "id": "6462bcb1-ce61-4061-8f43-176694a1e9c5",
- "attributes": {
- "name": "English",
- "locale": "eng-gb"
}
}, - "meta": {
}
}
Get subtitles
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
subtitleUuid required | string <uuid> Example: 8d5cc191-fa29-48ad-bf4d-5d6fe6b12a73 UUID of the subtitles |
object (subtitle-jsonapi) | |||||||||||||
| |||||||||||||
object (subtitle-meta) | |||||||||||||
|
{- "data": {
- "type": "subtitle",
- "id": "6462bcb1-ce61-4061-8f43-176694a1e9c5",
- "attributes": {
- "name": "English",
- "locale": "eng-gb"
}
}, - "meta": {
}
}
Edit a subtitle
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
subtitleUuid required | string <uuid> Example: 8d5cc191-fa29-48ad-bf4d-5d6fe6b12a73 UUID of the subtitles |
object (subtitle-jsonapi) | |||||||||||||
|
object (subtitle-jsonapi) | |||||||||||||
| |||||||||||||
object (subtitle-meta) | |||||||||||||
|
{- "data": {
- "type": "subtitle",
- "id": "6462bcb1-ce61-4061-8f43-176694a1e9c5",
- "attributes": {
- "name": "English",
- "locale": "eng-gb"
}
}
}
{- "data": {
- "type": "subtitle",
- "id": "6462bcb1-ce61-4061-8f43-176694a1e9c5",
- "attributes": {
- "name": "English",
- "locale": "eng-gb"
}
}, - "meta": {
}
}
Delete subtitles
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
subtitleUuid required | string <uuid> Example: 8d5cc191-fa29-48ad-bf4d-5d6fe6b12a73 UUID of the subtitles |
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Video transcript management for searchable text content, accessibility, and content analysis.
List all transcripts
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
filter[locale] | string Example: filter[locale]=eng-gb Show only transcripts matching the given locale |
page[number] | integer Default: 0 Example: page[number]=1 Page number |
page[size] | integer Default: 15 Example: page[size]=50 Page size |
Array of objects | |||||||||||||
Array
| |||||||||||||
object (transcript-meta) | |||||||||||||
|
{- "data": [
- {
- "type": "transcript",
- "id": "ac5ea309-bd25-474e-ba46-583831f11f7c",
- "attributes": {
- "name": "English",
- "locale": "eng-gb"
}, - "meta": {
}
}
], - "meta": {
}
}
Create a new transcript
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
transcripts required | string <base64> Transcript file |
locale required | string or null (locale) ^[a-z]{3}(-[a-z]{2})?$ Language and optional region identifier for the content |
name | string Name of the transcript |
object (transcript-jsonapi) | |||||||||||||
| |||||||||||||
object (transcript-meta) | |||||||||||||
|
{- "data": {
- "type": "transcript",
- "id": "ac5ea309-bd25-474e-ba46-583831f11f7c",
- "attributes": {
- "name": "English",
- "locale": "eng-gb"
}
}, - "meta": {
}
}
Get transcript
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
transcriptUuid required | string <uuid> Example: ac5ea309-bd25-474e-ba46-583831f11f7c UUID of the transcript |
object (transcript-jsonapi) | |||||||||||||
| |||||||||||||
object (transcript-meta) | |||||||||||||
|
{- "data": {
- "type": "transcript",
- "id": "ac5ea309-bd25-474e-ba46-583831f11f7c",
- "attributes": {
- "name": "English",
- "locale": "eng-gb"
}
}, - "meta": {
}
}
Edit a transcript
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
transcriptUuid required | string <uuid> Example: ac5ea309-bd25-474e-ba46-583831f11f7c UUID of the transcript |
object (transcript-jsonapi) | |||||||||||||
|
object (transcript-jsonapi) | |||||||||||||
| |||||||||||||
object (transcript-meta) | |||||||||||||
|
{- "data": {
- "type": "transcript",
- "id": "ac5ea309-bd25-474e-ba46-583831f11f7c",
- "attributes": {
- "name": "English",
- "locale": "eng-gb"
}
}
}
{- "data": {
- "type": "transcript",
- "id": "ac5ea309-bd25-474e-ba46-583831f11f7c",
- "attributes": {
- "name": "English",
- "locale": "eng-gb"
}
}, - "meta": {
}
}
Delete a transcript
videoUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the video |
transcriptUuid required | string <uuid> Example: ac5ea309-bd25-474e-ba46-583831f11f7c UUID of the transcript |
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Channels are used to group videos sharing the same configuration (player configurations, displays, etc.). Organize content by topic, brand, or audience.
List all channels
sort | string Default: "-published_at" Enum: "title" "-title" "created_at" "-created_at" "updated_at" "-updated_at" "published_at" "-published_at" Example: sort=title Sort results by the given attribute.
Prefix with '-' for descending order.
Available fields: |
page[number] | integer Default: 0 Example: page[number]=1 Page number |
page[size] | integer Default: 15 Example: page[size]=50 Page size |
Array of objects (channel-jsonapi) | |||||||
Array
|
{- "data": [
- {
- "type": "channel",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Channel Title",
- "description": "This is the description of my channel",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-channel"
}
}
]
}
Create a new channel
object | |||||||||||||||||||||||
|
object (channel-jsonapi) | |||||||||||||||||||||||||
|
{- "data": {
- "type": "channel",
- "attributes": {
- "title": "My Channel Title",
- "description": "This is the description of my channel",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-channel"
}
}
}
{- "data": {
- "type": "channel",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Channel Title",
- "description": "This is the description of my channel",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-channel"
}
}
}
Get a channel
channelUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the channel |
object (channel-jsonapi) | |||||||||||||||||||||||||
|
{- "data": {
- "type": "channel",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Channel Title",
- "description": "This is the description of my channel",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-channel"
}
}
}
Edit a channel
channelUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the channel |
object (channel-jsonapi) | |||||||||||||||||||||||||
|
object (channel-jsonapi) | |||||||||||||||||||||||||
|
{- "data": {
- "type": "channel",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Channel Title",
- "description": "This is the description of my channel",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-channel"
}
}
}
{- "data": {
- "type": "channel",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Channel Title",
- "description": "This is the description of my channel",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-channel"
}
}
}
Delete a channel
channelUuid required | string <uuid> Example: d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6 UUID of the channel |
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Player configuration management including playback settings, controls, and behavioral customizations.
List all player configs
Array of objects (player-config-jsonapi) | |||||||
Array
|
{- "data": [
- {
- "type": "playerConfig",
- "id": "cdcb0304-6504-4502-b008-7adb654a48ab",
- "attributes": {
- "name": "Player config name",
- "dvr": true,
- "muted": true,
- "autoplay": true,
- "dnt": false,
- "controls": true,
- "loop": false,
- "preload": "auto",
- "volumebar_type": "horizontal",
- "player_skin_id": "403c6f8a-232d-4125-bb00-e86531686183",
- "player_watermark_id": "21bab140-1e3a-4a4e-9d27-69d7f4ce679c",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
]
}
Create a player config
object | |||||||||||||||||||||||||||||||||
|
object (player-config-jsonapi) | |||||||||||||||||||||||||||||||||||
|
{- "data": {
- "type": "playerDisplayField",
- "attributes": {
- "name": "Player config name",
- "dvr": true,
- "muted": true,
- "autoplay": true,
- "dnt": false,
- "controls": true,
- "loop": false,
- "preload": "auto",
- "volumebar_type": "horizontal",
- "player_skin_id": "403c6f8a-232d-4125-bb00-e86531686183",
- "player_watermark_id": "21bab140-1e3a-4a4e-9d27-69d7f4ce679c",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
{- "data": {
- "type": "playerConfig",
- "id": "cdcb0304-6504-4502-b008-7adb654a48ab",
- "attributes": {
- "name": "Player config name",
- "dvr": true,
- "muted": true,
- "autoplay": true,
- "dnt": false,
- "controls": true,
- "loop": false,
- "preload": "auto",
- "volumebar_type": "horizontal",
- "player_skin_id": "403c6f8a-232d-4125-bb00-e86531686183",
- "player_watermark_id": "21bab140-1e3a-4a4e-9d27-69d7f4ce679c",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
Get a Player Config
playerConfigUuid required | string <uuid> Example: cdcb0304-6504-4502-b008-7adb654a48ab UUID of the player config |
object (player-config-jsonapi) | |||||||||||||||||||||||||||||||||||
|
{- "data": {
- "type": "playerConfig",
- "id": "cdcb0304-6504-4502-b008-7adb654a48ab",
- "attributes": {
- "name": "Player config name",
- "dvr": true,
- "muted": true,
- "autoplay": true,
- "dnt": false,
- "controls": true,
- "loop": false,
- "preload": "auto",
- "volumebar_type": "horizontal",
- "player_skin_id": "403c6f8a-232d-4125-bb00-e86531686183",
- "player_watermark_id": "21bab140-1e3a-4a4e-9d27-69d7f4ce679c",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
Edit a Player Config
playerConfigUuid required | string <uuid> Example: cdcb0304-6504-4502-b008-7adb654a48ab UUID of the player config |
object (player-config-attributes) | |||||||||||||||||||||||||||
|
object (player-config-jsonapi) | |||||||||||||||||||||||||||||||||||
|
{- "data": {
- "name": "Player config name",
- "dvr": true,
- "muted": true,
- "autoplay": true,
- "dnt": false,
- "controls": true,
- "loop": false,
- "preload": "auto",
- "volumebar_type": "horizontal",
- "player_skin_id": "403c6f8a-232d-4125-bb00-e86531686183",
- "player_watermark_id": "21bab140-1e3a-4a4e-9d27-69d7f4ce679c",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
{- "data": {
- "type": "playerConfig",
- "id": "cdcb0304-6504-4502-b008-7adb654a48ab",
- "attributes": {
- "name": "Player config name",
- "dvr": true,
- "muted": true,
- "autoplay": true,
- "dnt": false,
- "controls": true,
- "loop": false,
- "preload": "auto",
- "volumebar_type": "horizontal",
- "player_skin_id": "403c6f8a-232d-4125-bb00-e86531686183",
- "player_watermark_id": "21bab140-1e3a-4a4e-9d27-69d7f4ce679c",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
Delete a Player Config
playerConfigUuid required | string <uuid> Example: cdcb0304-6504-4502-b008-7adb654a48ab UUID of the player config |
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Player display templates and layouts for different viewing contexts and responsive design requirements.
List all Player Displays
Array of objects (player-display-jsonapi) | |||||||
Array
|
{- "data": [
- {
- "type": "playerDisplay",
- "id": "338dc2c0-7705-43aa-b960-a0e794549133",
- "attributes": {
- "name": "my-player-display",
- "type": "message",
- "purpose": "pre-live",
- "background_color": "#000000",
- "custom_css": ".freecaster_player .my_display_field{background-color:#ffffff}",
- "custom_js": "alert('some message')",
- "lang": "en-US",
- "preview": "data:image/jpeg;base64,...",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
]
}
Create a Player Display
object | |||||||||||||||||||||||||||
|
object (player-display-jsonapi) | |||||||||||||||||||||||||||||
|
{- "data": {
- "type": "playerDisplay",
- "attributes": {
- "name": "my-player-display",
- "type": "message",
- "purpose": "pre-live",
- "background_color": "#000000",
- "custom_css": ".freecaster_player .my_display_field{background-color:#ffffff}",
- "custom_js": "alert('some message')",
- "lang": "en-US",
- "preview": "data:image/jpeg;base64,...",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
{- "data": {
- "type": "playerDisplay",
- "id": "338dc2c0-7705-43aa-b960-a0e794549133",
- "attributes": {
- "name": "my-player-display",
- "type": "message",
- "purpose": "pre-live",
- "background_color": "#000000",
- "custom_css": ".freecaster_player .my_display_field{background-color:#ffffff}",
- "custom_js": "alert('some message')",
- "lang": "en-US",
- "preview": "data:image/jpeg;base64,...",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
Get a Player Display
playerDisplayUuid required | string <uuid> Example: 338dc2c0-7705-43aa-b960-a0e794549133 UUID of the player display |
object (player-display-jsonapi) | |||||||||||||||||||||||||||||
|
{- "data": {
- "type": "playerDisplay",
- "id": "338dc2c0-7705-43aa-b960-a0e794549133",
- "attributes": {
- "name": "my-player-display",
- "type": "message",
- "purpose": "pre-live",
- "background_color": "#000000",
- "custom_css": ".freecaster_player .my_display_field{background-color:#ffffff}",
- "custom_js": "alert('some message')",
- "lang": "en-US",
- "preview": "data:image/jpeg;base64,...",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
Edit a Player Display
playerDisplayUuid required | string <uuid> Example: 338dc2c0-7705-43aa-b960-a0e794549133 UUID of the player display |
object (player-display-jsonapi) | |||||||||||||||||||||||||||||
|
object (player-display-jsonapi) | |||||||||||||||||||||||||||||
|
{- "data": {
- "type": "playerDisplay",
- "id": "338dc2c0-7705-43aa-b960-a0e794549133",
- "attributes": {
- "name": "my-player-display",
- "type": "message",
- "purpose": "pre-live",
- "background_color": "#000000",
- "custom_css": ".freecaster_player .my_display_field{background-color:#ffffff}",
- "custom_js": "alert('some message')",
- "lang": "en-US",
- "preview": "data:image/jpeg;base64,...",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
{- "data": {
- "type": "playerDisplay",
- "id": "338dc2c0-7705-43aa-b960-a0e794549133",
- "attributes": {
- "name": "my-player-display",
- "type": "message",
- "purpose": "pre-live",
- "background_color": "#000000",
- "custom_css": ".freecaster_player .my_display_field{background-color:#ffffff}",
- "custom_js": "alert('some message')",
- "lang": "en-US",
- "preview": "data:image/jpeg;base64,...",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
Delete a Player Display
playerDisplayUuid required | string <uuid> Example: 338dc2c0-7705-43aa-b960-a0e794549133 UUID of the player display |
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Customizable display fields for player interfaces including metadata visibility and layout options.
List all Player Display Fields
playerDisplayUuid required | string <uuid> Example: 338dc2c0-7705-43aa-b960-a0e794549133 UUID of the player display |
Array of objects (player-display-field-attributes) | |||||||||||||||||||||||
Array
|
{- "data": [
- {
- "text": "some test",
- "slug": "some-unique-slug",
- "text_color": "#000000",
- "text_size": "16px",
- "text_position": "middlecenter",
- "text_align": "center",
- "type": "countdown",
- "format": "DD-MMMM-YYYY",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
Create a Player Display Fields
playerDisplayUuid required | string <uuid> Example: 338dc2c0-7705-43aa-b960-a0e794549133 UUID of the player display |
object | |||||||||||||||||||||||||||||
|
object (player-display-field-attributes) | |||||||||||||||||||||||
|
{- "data": {
- "type": "playerDisplayField",
- "attributes": {
- "text": "some test",
- "slug": "some-unique-slug",
- "text_color": "#000000",
- "text_size": "16px",
- "text_position": "middlecenter",
- "text_align": "center",
- "type": "countdown",
- "format": "DD-MMMM-YYYY",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
}
{- "data": {
- "text": "some test",
- "slug": "some-unique-slug",
- "text_color": "#000000",
- "text_size": "16px",
- "text_position": "middlecenter",
- "text_align": "center",
- "type": "countdown",
- "format": "DD-MMMM-YYYY",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Get a Player Display Field
playerDisplayUuid required | string <uuid> Example: 338dc2c0-7705-43aa-b960-a0e794549133 UUID of the player display |
playerDisplayFieldUuid required | string <uuid> Example: 4c93ba11-781c-4d39-b054-cad0717046f7 UUID of the player display field |
object (player-display-field-attributes) | |||||||||||||||||||||||
|
{- "data": {
- "text": "some test",
- "slug": "some-unique-slug",
- "text_color": "#000000",
- "text_size": "16px",
- "text_position": "middlecenter",
- "text_align": "center",
- "type": "countdown",
- "format": "DD-MMMM-YYYY",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Edit a Player Display Field
playerDisplayUuid required | string <uuid> Example: 338dc2c0-7705-43aa-b960-a0e794549133 UUID of the player display |
playerDisplayFieldUuid required | string <uuid> Example: 4c93ba11-781c-4d39-b054-cad0717046f7 UUID of the player display field |
object (player-display-field-jsonapi) | |||||||||||||||||||||||||||||||
|
object (player-display-field-attributes) | |||||||||||||||||||||||
|
{- "data": {
- "type": "playerDisplayField",
- "id": "4c93ba11-781c-4d39-b054-cad0717046f7",
- "attributes": {
- "text": "some test",
- "slug": "some-unique-slug",
- "text_color": "#000000",
- "text_size": "16px",
- "text_position": "middlecenter",
- "text_align": "center",
- "type": "countdown",
- "format": "DD-MMMM-YYYY",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
}
{- "data": {
- "text": "some test",
- "slug": "some-unique-slug",
- "text_color": "#000000",
- "text_size": "16px",
- "text_position": "middlecenter",
- "text_align": "center",
- "type": "countdown",
- "format": "DD-MMMM-YYYY",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Delete a Player Display Field
playerDisplayUuid required | string <uuid> Example: 338dc2c0-7705-43aa-b960-a0e794549133 UUID of the player display |
playerDisplayFieldUuid required | string <uuid> Example: 4c93ba11-781c-4d39-b054-cad0717046f7 UUID of the player display field |
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Player visual themes and styling options for brand consistency and user experience customization.
List all Player Skins
Array of objects (player-skin-jsonapi) | |||||||
Array
|
{- "data": [
- {
- "type": "playerSkin",
- "id": "7d839694-6e30-4c3a-8dce-2f8c9649a6f9",
- "attributes": {
- "name": "My skin name",
- "slug": "my-skin-name",
- "preview": "data:image/jpeg;base64,...",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
]
}
Create a Player Skin
object | |||||||||||||||||||
|
object (player-skin-jsonapi) | |||||||||||||||||||||
|
{- "data": {
- "type": "playerSkin",
- "attributes": {
- "name": "My skin name",
- "slug": "my-skin-name",
- "preview": "data:image/jpeg;base64,...",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
{- "data": {
- "type": "playerSkin",
- "id": "7d839694-6e30-4c3a-8dce-2f8c9649a6f9",
- "attributes": {
- "name": "My skin name",
- "slug": "my-skin-name",
- "preview": "data:image/jpeg;base64,...",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
Get a Player Skin
playerSkinUuid required | string <uuid> Example: 7d839694-6e30-4c3a-8dce-2f8c9649a6f9 UUID of the player skin |
object (player-skin-jsonapi) | |||||||||||||||||||||
|
{- "data": {
- "type": "playerSkin",
- "id": "7d839694-6e30-4c3a-8dce-2f8c9649a6f9",
- "attributes": {
- "name": "My skin name",
- "slug": "my-skin-name",
- "preview": "data:image/jpeg;base64,...",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
Edit a Player Skin
playerSkinUuid required | string <uuid> Example: 7d839694-6e30-4c3a-8dce-2f8c9649a6f9 UUID of the player skin |
object (player-skin-jsonapi) | |||||||||||||||||||||
|
object (player-skin-jsonapi) | |||||||||||||||||||||
|
{- "data": {
- "type": "playerSkin",
- "id": "7d839694-6e30-4c3a-8dce-2f8c9649a6f9",
- "attributes": {
- "name": "My skin name",
- "slug": "my-skin-name",
- "preview": "data:image/jpeg;base64,...",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
{- "data": {
- "type": "playerSkin",
- "id": "7d839694-6e30-4c3a-8dce-2f8c9649a6f9",
- "attributes": {
- "name": "My skin name",
- "slug": "my-skin-name",
- "preview": "data:image/jpeg;base64,...",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
Delete a Player Skin
playerSkinUuid required | string <uuid> Example: 7d839694-6e30-4c3a-8dce-2f8c9649a6f9 UUID of the player skin |
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
List all Player Watermarks
Array of objects (player-watermark-jsonapi) | |||||||
Array
|
{- "data": [
- {
- "type": "playerWatermark",
- "id": "cdcb0304-6504-4502-b008-7adb654a48ab",
- "attributes": {
- "name": "My watermark",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
]
}
Create a Player Watermarks
object | |||||||||||||||
|
object (player-watermark-jsonapi) | |||||||||||||||||
|
{- "data": {
- "type": "playerWatermark",
- "attributes": {
- "name": "My watermark",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
{- "data": {
- "type": "playerWatermark",
- "id": "cdcb0304-6504-4502-b008-7adb654a48ab",
- "attributes": {
- "name": "My watermark",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
Get a Player Watermarks
playerWatermarkUuid required | string <uuid> Example: cdcb0304-6504-4502-b008-7adb654a48ab UUID of the player watermark |
object (player-watermark-jsonapi) | |||||||||||||||||
|
{- "data": {
- "type": "playerWatermark",
- "id": "cdcb0304-6504-4502-b008-7adb654a48ab",
- "attributes": {
- "name": "My watermark",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
Edit a Player Watermarks
playerWatermarkUuid required | string <uuid> Example: cdcb0304-6504-4502-b008-7adb654a48ab UUID of the player watermark |
object (player-watermark-jsonapi) | |||||||||||||||||
|
object (player-watermark-jsonapi) | |||||||||||||||||
|
{- "data": {
- "type": "playerWatermark",
- "id": "cdcb0304-6504-4502-b008-7adb654a48ab",
- "attributes": {
- "name": "My watermark",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
{- "data": {
- "type": "playerWatermark",
- "id": "cdcb0304-6504-4502-b008-7adb654a48ab",
- "attributes": {
- "name": "My watermark",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
}
Delete a Player Watermarks
playerWatermarkUuid required | string <uuid> Example: cdcb0304-6504-4502-b008-7adb654a48ab UUID of the player watermark |
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Background job monitoring and management including transcoding status, processing queues, and task completion tracking.
List all jobs
sort | string Default: "-created_at" Example: sort=updated_at Sort jobs by the given attribute (prepending a '-', will go in descending order) |
page[number] | integer Default: 0 Example: page[number]=1 Page number |
page[size] | integer Default: 15 Example: page[size]=50 Page size |
filter[type] | string Example: filter[type]=ingest-rtmp Show only jobs matching the filtered type |
Array of objects (jobs-jsonapi) | |||||||
Array
|
{- "data": [
- {
- "type": "jobStatus",
- "id": "9584a416-951d-40ba-a6c2-97ce1067bad3",
- "attributes": {
- "name": "IngestRtmp",
- "type": "string",
- "attempts": 0,
- "progress": 0,
- "status": "executing",
- "cancellable": true,
- "instance_id": 2251799813732587,
- "output": {
- "key": "2251799813685323",
- "instance_key": "2251799813732587",
- "version": 1,
- "variables": { }
}, - "custom_data": { },
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z"
}
}
]
}
Webhooks allow you to be notified of specific events happening in the platform in real-time. They are HTTP POST requests made to the URL of your choice for events like transcoding completion, upload failures, and content updates.
Retrieve a list of all registered webhooks for your tenant.
Use this endpoint to view all webhook configurations, including their target URLs, event types, and status. This is useful for:
Returns an array of webhook objects with their configuration details including event names, target URLs, and custom headers.
Array of objects (webhook-jsonapi) | |||||||
Array
|
{- "data": [
- {
- "type": "webhook",
- "id": "a23936f6-c260-4586-b728-42f8d0955d07",
}
]
}
Register a new webhook endpoint to receive real-time notifications about platform events.
Configure webhooks to receive notifications for platform events. See the Events section for detailed event definitions and payload structures.
To receive multiple event types, create separate webhook registrations for each event.
object | |||||||||||||
|
object (webhook-jsonapi) | |||||||||||||||
|
{- "data": {
- "type": "webhook",
}
}
{- "data": {
- "type": "webhook",
- "id": "a23936f6-c260-4586-b728-42f8d0955d07",
}
}
Fetch a single webhook
webhookUuid required | string Example: a23936f6-c260-4586-b728-42f8d0955d07 UUID of the webhook |
object (webhook-jsonapi) | |||||||||||||||
|
{- "data": {
- "type": "webhook",
- "id": "a23936f6-c260-4586-b728-42f8d0955d07",
}
}
Edit a webhook
webhookUuid required | string Example: a23936f6-c260-4586-b728-42f8d0955d07 UUID of the webhook |
object (webhook-jsonapi) | |||||||||||||||
|
object (webhook-jsonapi) | |||||||||||||||
|
{- "data": {
- "type": "webhook",
- "id": "a23936f6-c260-4586-b728-42f8d0955d07",
}
}
{- "data": {
- "type": "webhook",
- "id": "a23936f6-c260-4586-b728-42f8d0955d07",
}
}
Delete a webhook
webhookUuid required | string Example: a23936f6-c260-4586-b728-42f8d0955d07 UUID of the webhook |
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Real-time event definitions and payload structures for webhook notifications including transcoding, upload, and content lifecycle events.
Webhook sent when a clip has completed
event_name | string Default: "clipping.completed" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (clip-section) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (clip-input) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (transcoding-output) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (video-webhook-payload) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
{- "event_name": "clipping.completed",
- "sections": [
- {
- "start": "2022-06-01T12:34:56Z",
- "end": "2022-06-01T12:56:34Z"
}
], - "input": {
}, - "outputs": [
- {
- "files": [
- {
- "url": "bIAcyHUjV4_1080p.mp4",
- "tracks": [
- {
- "type": "video",
- "default": null,
- "language": "und",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "url": "bIAcyHUjV4_360p.mp4",
- "tracks": [
- {
- "type": "video",
- "default": null,
- "language": "und",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "url": "bIAcyHUjV4_540p.mp4",
- "tracks": [
- {
- "type": "video",
- "default": null,
- "language": "und",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 960,
- "height": 540
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "url": "bIAcyHUjV4_720p.mp4",
- "tracks": [
- {
- "type": "video",
- "default": null,
- "language": "und",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
]
}
], - "content": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}, - "meta": {
- "duration": 10.5
}, - "posters": [
- {
- "type": "poster",
- "id": "94b93ff9-a30e-4ed7-8679-5526d0e1b8db",
- "attributes": {
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "locale": "eng-gb",
- "is_active": true
},
}
], - "delivery_urls": {
- "progressive": [
- {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 256,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 512,
- "height": 288
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 854,
- "height": 480
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
],
}
}
}
Webhook sent when a clip has failed
event_name | string Default: "clipping.failed" | ||||||||||||||||||||||||||||
Array of objects (clip-section) | |||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||
object (clip-input) | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
object (video-jsonapi) | |||||||||||||||||||||||||||||
|
{- "event_name": "clipping.failed",
- "sections": [
- {
- "start": "2022-06-01T12:34:56Z",
- "end": "2022-06-01T12:56:34Z"
}
], - "input": {
}, - "content": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}
}
Webhook sent when a clip is about to begin
event_name | string Default: "clipping.started" | ||||||||||||||||||||||||||||
Array of objects (clip-section) | |||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||
object (clip-input) | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
object (video-jsonapi) | |||||||||||||||||||||||||||||
|
{- "event_name": "clipping.started",
- "sections": [
- {
- "start": "2022-06-01T12:34:56Z",
- "end": "2022-06-01T12:56:34Z"
}
], - "input": {
}, - "content": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}
}
Webhook sent when a content has been updated
event_name | string Default: "content.updated" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object Object containing the fields that were modified and their new values | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (video-webhook-payload) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
{- "event_name": "content.updated",
- "changes": {
- "title": "Updated Title",
- "description": "New description",
- "published": true,
- "updated_at": "2021-09-06T13:56:35Z"
}, - "content": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}, - "meta": {
- "duration": 10.5
}, - "posters": [
- {
- "type": "poster",
- "id": "94b93ff9-a30e-4ed7-8679-5526d0e1b8db",
- "attributes": {
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "locale": "eng-gb",
- "is_active": true
},
}
], - "delivery_urls": {
- "progressive": [
- {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 256,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 512,
- "height": 288
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 854,
- "height": 480
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
],
}
}
}
Webhook sent when a poster has been created
event_name | string Default: "poster.created" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (video-webhook-payload) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
{- "event_name": "poster.created",
- "poster": {
- "type": "poster",
- "id": "94b93ff9-a30e-4ed7-8679-5526d0e1b8db",
- "attributes": {
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "locale": "eng-gb",
- "is_active": true
},
}, - "content": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}, - "meta": {
- "duration": 10.5
}, - "posters": [
- {
- "type": "poster",
- "id": "94b93ff9-a30e-4ed7-8679-5526d0e1b8db",
- "attributes": {
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "locale": "eng-gb",
- "is_active": true
},
}
], - "delivery_urls": {
- "progressive": [
- {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 256,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 512,
- "height": 288
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 854,
- "height": 480
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
],
}
}
}
Webhook sent when the video has been transcoded and is ready to be played
event_name | string Default: "transcoding.completed" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects (transcoding-output) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object (video-webhook-payload) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
{- "event_name": "transcoding.completed",
- "outputs": [
- {
- "files": [
- {
- "url": "bIAcyHUjV4_1080p.mp4",
- "tracks": [
- {
- "type": "video",
- "default": null,
- "language": "und",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "url": "bIAcyHUjV4_360p.mp4",
- "tracks": [
- {
- "type": "video",
- "default": null,
- "language": "und",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "url": "bIAcyHUjV4_540p.mp4",
- "tracks": [
- {
- "type": "video",
- "default": null,
- "language": "und",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 960,
- "height": 540
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "url": "bIAcyHUjV4_720p.mp4",
- "tracks": [
- {
- "type": "video",
- "default": null,
- "language": "und",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
]
}
], - "content": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}, - "meta": {
- "duration": 10.5
}, - "posters": [
- {
- "type": "poster",
- "id": "94b93ff9-a30e-4ed7-8679-5526d0e1b8db",
- "attributes": {
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "locale": "eng-gb",
- "is_active": true
},
}
], - "delivery_urls": {
- "progressive": [
- {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 256,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 512,
- "height": 288
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 520,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "baseline",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 640,
- "height": 360
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 96,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 1200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "main",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 854,
- "height": 480
}, - {
- "type": "audio",
- "default": null,
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "sample_format": null,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 2600,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1280,
- "height": 720
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}, - {
- "tracks": [
- {
- "type": "video",
- "codec": "h264",
- "bitrate": 5200,
- "duration": 12.3,
- "metadata": [ ],
- "profile": "high",
- "pixel_format": "yuv420p",
- "fps": 25,
- "gop_size": 50,
- "frames": 308,
- "width": 1920,
- "height": 1080
}, - {
- "type": "audio",
- "language": "eng",
- "codec": "aac",
- "bitrate": 128,
- "duration": 12.3,
- "metadata": [ ],
- "sample_rate": 48000,
- "channels": 2,
- "channel_layout": "stereo"
}
]
}
],
}
}
}
Webhook sent when the video failed to finish transcoding
event_name | string Default: "transcoding.failed" | ||||||||||||||||||||||||||||
object (video-jsonapi) | |||||||||||||||||||||||||||||
|
{- "event_name": "transcoding.failed",
- "content": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}
}
Webhook sent when the transcoding of a video is about to start
event_name | string Default: "transcoding.started" | ||||||||||||||||||||||||||||
object (video-jsonapi) | |||||||||||||||||||||||||||||
|
{- "event_name": "transcoding.started",
- "content": {
- "type": "video",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Video Title",
- "description": "This is the description of my video",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-video",
- "live": false,
- "countdown_time": "2030-09-28T14:15:00Z"
}
}
}
Webhook sent when the uploaded file is invalid
event_name | string Default: "upload.invalid_file" | ||||||||||||||||||||||||
input_file | string <uri> | ||||||||||||||||||||||||
object (channel-jsonapi) | |||||||||||||||||||||||||
|
{- "event_name": "upload.invalid_file",
- "content": {
- "type": "channel",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Channel Title",
- "description": "This is the description of my channel",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-channel"
}
}
}
Multi-tenant organization management including tenant creation, configuration, and isolation controls.
Get the current tenant
object (channel-jsonapi) | |||||||||||||||||||||||||
|
{- "data": {
- "type": "channel",
- "id": "d0ec9b9a-a05f-48b3-bfb4-bad9634ed2f6",
- "attributes": {
- "title": "My Channel Title",
- "description": "This is the description of my channel",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:15:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": "2021-09-28T14:15:00Z",
- "slug": "my-channel"
}
}
}
Create a tenant with its admin user
object (tenant-jsonapi) | |||||||||||||||||
|
object (channel-jsonapi) | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
Array of objects (tenant-includes) | |||||||||||||||||||||||||
Array
|
{- "data": {
- "type": "tenant",
- "attributes": {
- "title": "Snake Oil",
- "slug": "snake-oil",
- "parent": "42e2bc1b-6741-4e2e-b138-97b4a342c999",
- "admin_name": "snakeoil-admin",
- "admin_email": "snakeoil@example.com"
}
}
}
{- "data": {
- "type": "channel",
- "id": "0a3d1ce5-0e61-411a-8219-0d84e3d42936",
- "attributes": {
- "title": "My Tenant Name",
- "description": "This is the description of my tenant",
- "created_at": "2021-09-28T14:15:00Z",
- "updated_at": "2021-09-28T14:30:00Z",
- "published": true,
- "published_at": "2021-09-28T14:15:00Z",
- "unpublished_at": null,
- "slug": "my-tenant-name"
}
}, - "included": [
- {
- "type": "user",
- "id": "8a4affb0-353a-4b20-9799-80a57c306c87",
- "attributes": {
- "name": "snakeoil-admin",
- "email": "snakeoil@example.com",
- "password": "Np2(PB5QrXb<#q2<"
}
}
]
}
Role-based access control (RBAC) management including permission sets, user assignments, and security policies.
List all roles
Array of objects (role-jsonapi) | |||||||
Array
|
{- "data": [
- {
- "type": "role",
- "id": "a65bebba-6da6-4d09-b389-594e10300d33",
- "attributes": {
- "name": "content-view",
- "description": "Can view content"
}
}
]
}
User account management including creation, authentication, profile management, and access control.
List all users
Array of objects | |||||||||
Array
|
{- "data": [
- {
- "type": "user",
- "id": "8a4affb0-353a-4b20-9799-80a57c306c87",
- "attributes": {
- "name": "john-doe",
- "email": "john.doe@example.com"
}, - "included": [
- {
- "type": "role",
- "id": "a65bebba-6da6-4d09-b389-594e10300d33",
- "attributes": {
- "name": "content-view",
- "description": "Can view content"
}
}
]
}
]
}
Create a new user
object | |||||||||||||||||||||||||||
|
object (user-jsonapi) | |||||||||||||
| |||||||||||||
Array of objects (role-jsonapi) | |||||||||||||
Array
|
{- "data": {
- "type": "user",
- "attributes": {
- "name": "john-doe",
- "email": "john.doe@example.com",
- "password": "Np2(PB5QrXb<#q2<",
- "tenant": "freecaster"
}, - "relationships": {
- "roles": [
- {
- "type": "role",
- "id": "a65bebba-6da6-4d09-b389-594e10300d33"
}
]
}
}
}
{- "data": {
- "type": "user",
- "id": "8a4affb0-353a-4b20-9799-80a57c306c87",
- "attributes": {
- "name": "john-doe",
- "email": "john.doe@example.com"
}
}, - "included": [
- {
- "type": "role",
- "id": "a65bebba-6da6-4d09-b389-594e10300d33",
- "attributes": {
- "name": "content-view",
- "description": "Can view content"
}
}
]
}
Get a user
userUuid required | string <uuid> Example: 8a4affb0-353a-4b20-9799-80a57c306c87 UUID of the user |
object (user-jsonapi) | |||||||||||||
| |||||||||||||
Array of objects (role-jsonapi) | |||||||||||||
Array
|
{- "data": {
- "type": "user",
- "id": "8a4affb0-353a-4b20-9799-80a57c306c87",
- "attributes": {
- "name": "john-doe",
- "email": "john.doe@example.com"
}
}, - "included": [
- {
- "type": "role",
- "id": "a65bebba-6da6-4d09-b389-594e10300d33",
- "attributes": {
- "name": "content-view",
- "description": "Can view content"
}
}
]
}
Edit a user
userUuid required | string <uuid> Example: 8a4affb0-353a-4b20-9799-80a57c306c87 UUID of the user |
object (user-jsonapi) | |||||||||||||
|
object (user-jsonapi) | |||||||||||||
| |||||||||||||
Array of objects (role-jsonapi) | |||||||||||||
Array
|
{- "data": {
- "type": "user",
- "id": "8a4affb0-353a-4b20-9799-80a57c306c87",
- "attributes": {
- "name": "john-doe",
- "email": "john.doe@example.com"
}
}
}
{- "data": {
- "type": "user",
- "id": "8a4affb0-353a-4b20-9799-80a57c306c87",
- "attributes": {
- "name": "john-doe",
- "email": "john.doe@example.com"
}
}, - "included": [
- {
- "type": "role",
- "id": "a65bebba-6da6-4d09-b389-594e10300d33",
- "attributes": {
- "name": "content-view",
- "description": "Can view content"
}
}
]
}
Delete a user
userUuid required | string <uuid> Example: 8a4affb0-353a-4b20-9799-80a57c306c87 UUID of the user |
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
List a user roles
userUuid required | string <uuid> Example: 8a4affb0-353a-4b20-9799-80a57c306c87 UUID of the user |
Array of objects (role-reference) | |||||
Array
|
{- "data": [
- {
- "type": "role",
- "id": "a65bebba-6da6-4d09-b389-594e10300d33"
}
]
}
Replace a user roles
userUuid required | string <uuid> Example: 8a4affb0-353a-4b20-9799-80a57c306c87 UUID of the user |
Array of objects (role-reference) | |||||
Array
|
{- "data": [
- {
- "type": "role",
- "id": "a65bebba-6da6-4d09-b389-594e10300d33"
}
]
}
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Add roles to a user
userUuid required | string <uuid> Example: 8a4affb0-353a-4b20-9799-80a57c306c87 UUID of the user |
Array of objects (role-reference) | |||||
Array
|
{- "data": [
- {
- "type": "role",
- "id": "a65bebba-6da6-4d09-b389-594e10300d33"
}
]
}
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Remove roles from a user
userUuid required | string <uuid> Example: 8a4affb0-353a-4b20-9799-80a57c306c87 UUID of the user |
Array of objects (role-reference) | |||||
Array
|
{- "data": [
- {
- "type": "role",
- "id": "a65bebba-6da6-4d09-b389-594e10300d33"
}
]
}
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
OAuth client management for API access including client credentials, scopes, and application integration.
List all clients
Array of objects (client-jsonapi) | |||||||
Array
|
{- "data": [
- {
- "type": "client",
- "id": "ce3a9d5f-08f8-4a1a-ada8-cb96dd119fb5",
- "attributes": {
- "name": "My API Client",
- "client_id": "6a3400b3-4e03-4738-b6ea-fdd398037d65",
- "client_secret": ")EK&6u9pj?/w}3c[czB_!eB5:.eT&~3#"
}
}
]
}
Create a new client
object | |||||||||||||||||||||||||||
|
object (client-jsonapi) | |||||||||||||||
|
{- "data": {
- "type": "client",
- "attributes": {
- "name": "My API Client",
- "client_id": "6a3400b3-4e03-4738-b6ea-fdd398037d65",
- "client_secret": ")EK&6u9pj?/w}3c[czB_!eB5:.eT&~3#",
- "tenant": "freecaster"
}, - "relationships": {
- "roles": [
- {
- "type": "role",
- "id": "a65bebba-6da6-4d09-b389-594e10300d33"
}
]
}
}
}
{- "data": {
- "type": "client",
- "id": "ce3a9d5f-08f8-4a1a-ada8-cb96dd119fb5",
- "attributes": {
- "name": "My API Client",
- "client_id": "6a3400b3-4e03-4738-b6ea-fdd398037d65",
- "client_secret": ")EK&6u9pj?/w}3c[czB_!eB5:.eT&~3#"
}
}
}
Get a client
clientUuid required | string <uuid> Example: ce3a9d5f-08f8-4a1a-ada8-cb96dd119fb5 UUID of the client |
object (client-jsonapi) | |||||||||||||||
|
{- "data": {
- "type": "client",
- "id": "ce3a9d5f-08f8-4a1a-ada8-cb96dd119fb5",
- "attributes": {
- "name": "My API Client",
- "client_id": "6a3400b3-4e03-4738-b6ea-fdd398037d65",
- "client_secret": ")EK&6u9pj?/w}3c[czB_!eB5:.eT&~3#"
}
}
}
Edit a client
clientUuid required | string <uuid> Example: ce3a9d5f-08f8-4a1a-ada8-cb96dd119fb5 UUID of the client |
object (client-jsonapi) | |||||||||||||||
|
object (client-jsonapi) | |||||||||||||||
|
{- "data": {
- "type": "client",
- "id": "ce3a9d5f-08f8-4a1a-ada8-cb96dd119fb5",
- "attributes": {
- "name": "My API Client",
- "client_id": "6a3400b3-4e03-4738-b6ea-fdd398037d65",
- "client_secret": ")EK&6u9pj?/w}3c[czB_!eB5:.eT&~3#"
}
}
}
{- "data": {
- "type": "client",
- "id": "ce3a9d5f-08f8-4a1a-ada8-cb96dd119fb5",
- "attributes": {
- "name": "My API Client",
- "client_id": "6a3400b3-4e03-4738-b6ea-fdd398037d65",
- "client_secret": ")EK&6u9pj?/w}3c[czB_!eB5:.eT&~3#"
}
}
}
Delete a client
clientUuid required | string <uuid> Example: ce3a9d5f-08f8-4a1a-ada8-cb96dd119fb5 UUID of the client |
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
List a client roles
clientUuid required | string <uuid> Example: ce3a9d5f-08f8-4a1a-ada8-cb96dd119fb5 UUID of the client |
Array of objects (role-reference) | |||||
Array
|
{- "data": [
- {
- "type": "role",
- "id": "a65bebba-6da6-4d09-b389-594e10300d33"
}
]
}
Replace a client roles
clientUuid required | string <uuid> Example: ce3a9d5f-08f8-4a1a-ada8-cb96dd119fb5 UUID of the client |
Array of objects (role-reference) | |||||
Array
|
{- "data": [
- {
- "type": "role",
- "id": "a65bebba-6da6-4d09-b389-594e10300d33"
}
]
}
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Add roles to a client
clientUuid required | string <uuid> Example: ce3a9d5f-08f8-4a1a-ada8-cb96dd119fb5 UUID of the client |
Array of objects (role-reference) | |||||
Array
|
{- "data": [
- {
- "type": "role",
- "id": "a65bebba-6da6-4d09-b389-594e10300d33"
}
]
}
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}
Remove roles from a client
clientUuid required | string <uuid> Example: ce3a9d5f-08f8-4a1a-ada8-cb96dd119fb5 UUID of the client |
Array of objects (role-reference) | |||||
Array
|
{- "data": [
- {
- "type": "role",
- "id": "a65bebba-6da6-4d09-b389-594e10300d33"
}
]
}
{- "errors": [
- {
- "status": 401,
- "title": "Unauthenticated",
- "detail": "Unauthenticated",
- "meta": { }
}
]
}