VSRC Public API (1.0.0)

Download OpenAPI specification:

VSRC (Video Streaming & Recording Cloud) Public API for customer-facing video operations.

Authentication

All API requests require authentication using an API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Getting Started

  1. Login to the dashboard at https://cloud.vsrc.video
  2. Navigate to Settings → API Keys
  3. Click "Generate API Key"
  4. Give it a name and select permission level (read or write)
  5. Copy the key (shown only once!)

Rate Limiting

  • Limit: 1,000 requests per 15 minutes per IP
  • Headers: Rate limit information included in response headers

Supported Video Formats

MP4, WebM, MOV, AVI, MKV, FLV, WMV, M4V

File Size Limits

  • Maximum: 10 GB per file

VOD

Video on Demand operations - upload and manage recorded videos

Upload a video file

Upload a video file for VOD (Video on Demand) encoding. The file will be automatically encoded to multiple qualities for adaptive streaming.

Authentication: Requires API key with write permission

Authorizations:
bearerAuth
Request Body schema: multipart/form-data
required
file
required
string <binary>

Video file to upload (max 10GB)

title
required
string [ 1 .. 255 ] characters

Video title

description
string <= 1000 characters

Video description (optional)

encodingProfileId
integer

Custom encoding profile ID (optional). Use default if not specified.

tags
string <= 500 characters

Comma-separated list of tags (optional)

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Video uploaded successfully",
  • "data": {
    }
}

Get media item information

Retrieve detailed information about a specific media item including tags.

Authentication: Requires API key with read or write permission

Authorizations:
bearerAuth
path Parameters
mediaId
required
string^vod_[a-f0-9\-]+$
Example: vod_a1b2c3d4-e5f6-7890-abcd-ef1234567890

Media identifier

Responses

Response samples

Content type
application/json
{}

Delete a media item

Delete a media item and its associated files from storage. This action cannot be undone.

Authentication: Requires API key with write permission

Authorizations:
bearerAuth
path Parameters
mediaId
required
string^vod_[a-f0-9\-]+$
Example: vod_a1b2c3d4-e5f6-7890-abcd-ef1234567890

Media identifier

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Media deleted successfully",
  • "data": {
    }
}

List all media items

Retrieve a paginated list of all media items for the authenticated user.

Authentication: Requires API key with read or write permission

Authorizations:
bearerAuth
query Parameters
page
integer >= 1
Default: 1
Example: page=1

Page number for pagination

limit
integer [ 1 .. 100 ]
Default: 20
Example: limit=20

Number of items per page

encodingStatus
string
Enum: "pending" "processing" "completed" "failed"
Example: encodingStatus=completed

Filter by encoding status

Responses

Response samples

Content type
application/json
{}

Search media items by tag(s)

Search for media items that have one or more specified tags. Supports single tag or multiple tags search with flexible matching.

Authentication: Requires API key with read or write permission

Authorizations:
bearerAuth
query Parameters
tags
required
string
Example: tags=conference,2024,keynote

Single tag name or comma-separated list of tag names to search for

match
string
Default: "any"
Enum: "any" "all"
Example: match=any

Match mode - 'any' returns media with ANY of the tags (OR), 'all' returns media with ALL tags (AND)

page
integer >= 1
Default: 1
Example: page=1

Page number for pagination

limit
integer [ 1 .. 100 ]
Default: 20
Example: limit=20

Number of items per page

Responses

Response samples

Content type
application/json
{}

Live Streaming

Live streaming operations - create and manage live streams

Create a live stream

Create a new live stream and receive RTMP credentials for streaming. The stream key is valid for 24 hours.

Authentication: Requires API key with write permission

Authorizations:
bearerAuth
Request Body schema: application/json
required
title
required
string [ 1 .. 255 ] characters

Stream title

description
string <= 1000 characters

Stream description (optional)

region
string

Preferred region for RTMP server (optional)

serverId
integer

Specific RTMP server ID (optional)

Responses

Request samples

Content type
application/json
{
  • "title": "My Live Event",
  • "description": "Live broadcast from our event",
  • "region": "us-east",
  • "serverId": 1
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Live stream created successfully",
  • "data": {
    }
}

Embed

Get embed codes for media playback

Get embed code for media

Retrieve HTML/JavaScript embed code for a media item (VOD or live stream). The embed code includes the VSRCPlayer library and configuration.

Authentication: Requires API key with read or write permission

Authorizations:
bearerAuth
path Parameters
mediaId
required
string^(vod|live)_[a-f0-9\-]+$
Example: vod_a1b2c3d4-e5f6-7890-abcd-ef1234567890

Media identifier (format vod_* for VOD or live_* for live streams)

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}