Media
24 routes. Paths are relative to https://api.intersink.com/v1.
- GET/media/channels/{channelId}/assetsThe channel's own videos (its server key's), newest first (?status, ?limit, ?offset)
- GET/media/channels/{channelId}/jobsProcessing jobs of the channel, newest first (?status, ?limit)
- GET/media/channels/{channelId}/overviewMedia & storage: limits, storage by kind, this month's use, counts (channel managers)
- PUT/media/channels/{channelId}/quotaSet a channel's media limits (platform only)
- GET/media/channels/{channelId}/usageDaily bytes in, downloads, plays and processing minutes (?days ≤ 90)
- GET/media/v1/assetsYour videos, newest first (?status, ?limit, ?offset)
- POST/media/v1/assetsCreate a video: { title?, visibility: private|public, source_file_id?, options: { max_height, av1, auto_captions, captions_lang }, passthrough? }
- GET/media/v1/assets/{id}One video: status (waiting_upload, queued, processing, ready, failed), progress, renditions, tracks
- PATCH/media/v1/assets/{id}Change title, visibility or passthrough
- DELETE/media/v1/assets/{id}Delete a video and its renditions (the source file stays until you delete it)
- POST/media/v1/assets/{id}/captionsAuto captions (speech to text): { lang: "en" | null to detect }
- GET/media/v1/assets/{id}/playbackSigned playback: HLS (CMAF) and DASH manifests, poster, thumbnails, sprite previews, subtitles (?ttl seconds)
- GET/media/v1/assets/{id}/tracksAudio (dub) and subtitle tracks with their status
- DELETE/media/v1/assets/{id}/tracks/{trackId}Remove an audio or subtitle track (a new manifest version is published)
- GET/media/v1/filesYour files, newest first (?limit, ?offset, ?purpose)
- GET/media/v1/files/{id}One file: name, type, size, SHA-256, status (scanning | ready | refused)
- DELETE/media/v1/files/{id}Delete a file (its bytes go once nothing else of yours uses them)
- GET/media/v1/files/{id}/urlA signed download link (?ttl seconds, 60–86400). Byte ranges work: resume or download in parallel chunks.
- POST/media/v1/files/claimUpload skipped: you already stored these bytes ({ sha256, size, filename }) → a new file, 404 if not
- GET/media/v1/public/assets/{id}/playbackPlayback of a PUBLIC video with the channel's app key (X-App-Key)
- POST/media/v1/uploadstus: create an upload (Upload-Length, Upload-Metadata: filename, filetype, purpose, sha256, asset_id, lang, label)
- GET/media/v1/uploads/{id}An upload as JSON: status, offset, and file_id once it is finished
- PATCH/media/v1/uploads/{id}tus: append bytes at Upload-Offset (Upload-Checksum: sha256|sha1|md5 <base64> is checked)
- DELETE/media/v1/uploads/{id}tus termination: abort an upload and drop its bytes
The channel's own videos (its server key's), newest first (?status, ?limit, ?offset)
GET/media/channels/{channelId}/assets
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Processing jobs of the channel, newest first (?status, ?limit)
GET/media/channels/{channelId}/jobs
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. data is object[].
Media & storage: limits, storage by kind, this month's use, counts (channel managers)
GET/media/channels/{channelId}/overview
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Set a channel's media limits (platform only)
PUT/media/channels/{channelId}/quota
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Daily bytes in, downloads, plays and processing minutes (?days ≤ 90)
GET/media/channels/{channelId}/usage
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| channelIdrequired | string, path | |
| daysrequired | string, query |
Response
200. data is object[].
Your videos, newest first (?status, ?limit, ?offset)
GET/media/v1/assets
Needs a signed-in user (Bearer token or access_token cookie).
Response
200. The payload in data is not described in the spec yet.
Create a video: { title?, visibility: private|public, source_file_id?, options: { max_height, av1, auto_captions, captions_lang }, passthrough? }
POST/media/v1/assets
Needs a signed-in user (Bearer token or access_token cookie).
Without source_file_id, upload the source with tus (Upload-Metadata purpose vod_source, asset_id). Processing starts when the file is stored and checked.
Response
201. The payload in data is not described in the spec yet.
One video: status (waiting_upload, queued, processing, ready, failed), progress, renditions, tracks
GET/media/v1/assets/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Change title, visibility or passthrough
PATCH/media/v1/assets/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Delete a video and its renditions (the source file stays until you delete it)
DELETE/media/v1/assets/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Auto captions (speech to text): { lang: "en" | null to detect }
POST/media/v1/assets/{id}/captions
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | string, path |
Response
201. The payload in data is not described in the spec yet.
Signed playback: HLS (CMAF) and DASH manifests, poster, thumbnails, sprite previews, subtitles (?ttl seconds)
GET/media/v1/assets/{id}/playback
Needs a signed-in user (Bearer token or access_token cookie).
One folder token covers every segment, so players fetch relative URLs straight from the CDN.
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | string, path | |
| ttlrequired | string, query |
Response
200. The payload in data is not described in the spec yet.
Audio (dub) and subtitle tracks with their status
GET/media/v1/assets/{id}/tracks
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Remove an audio or subtitle track (a new manifest version is published)
DELETE/media/v1/assets/{id}/tracks/{trackId}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | string, path | |
| trackIdrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Your files, newest first (?limit, ?offset, ?purpose)
GET/media/v1/files
Needs a signed-in user (Bearer token or access_token cookie).
Response
200. The payload in data is not described in the spec yet.
One file: name, type, size, SHA-256, status (scanning | ready | refused)
GET/media/v1/files/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
Delete a file (its bytes go once nothing else of yours uses them)
DELETE/media/v1/files/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
A signed download link (?ttl seconds, 60–86400). Byte ranges work: resume or download in parallel chunks.
GET/media/v1/files/{id}/url
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | string, path | |
| ttlrequired | string, query |
Response
200. The payload in data is not described in the spec yet.
Upload skipped: you already stored these bytes ({ sha256, size, filename }) → a new file, 404 if not
POST/media/v1/files/claim
Needs a signed-in user (Bearer token or access_token cookie).
Checks only your own storage, never anyone else's.
Response
200. The payload in data is not described in the spec yet.
Playback of a PUBLIC video with the channel's app key (X-App-Key)
GET/media/v1/public/assets/{id}/playback
Public: no sign-in needed.
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
tus: create an upload (Upload-Length, Upload-Metadata: filename, filetype, purpose, sha256, asset_id, lang, label)
POST/media/v1/uploads
Needs a signed-in user (Bearer token or access_token cookie).
creation-with-upload: send the first bytes in the same request (Content-Type: application/offset+octet-stream).
Response
201. The payload in data is not described in the spec yet.
An upload as JSON: status, offset, and file_id once it is finished
GET/media/v1/uploads/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
tus: append bytes at Upload-Offset (Upload-Checksum: sha256|sha1|md5 <base64> is checked)
PATCH/media/v1/uploads/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.
tus termination: abort an upload and drop its bytes
DELETE/media/v1/uploads/{id}
Needs a signed-in user (Bearer token or access_token cookie).
Parameters
| Name | Type | Description |
|---|---|---|
| idrequired | string, path |
Response
200. The payload in data is not described in the spec yet.