Create Library
curl --request POST \
--url https://api.tenbyte.io/v1/vidinfra/libraries \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Product Launch Video",
"usage_type": "marketing"
}
'import requests
url = "https://api.tenbyte.io/v1/vidinfra/libraries"
payload = {
"name": "Product Launch Video",
"usage_type": "marketing"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Product Launch Video', usage_type: 'marketing'})
};
fetch('https://api.tenbyte.io/v1/vidinfra/libraries', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.tenbyte.io/v1/vidinfra/libraries"
payload := strings.NewReader("{\n \"name\": \"Product Launch Video\",\n \"usage_type\": \"marketing\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://api.tenbyte.io/v1/vidinfra/libraries")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Product Launch Video\",\n \"usage_type\": \"marketing\"\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("https://api.tenbyte.io/v1/vidinfra/libraries")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Product Launch Video\",\n \"usage_type\": \"marketing\"\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.tenbyte.io/v1/vidinfra/libraries");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"name\": \"Product Launch Video\",\n \"usage_type\": \"marketing\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tenbyte.io/v1/vidinfra/libraries",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Product Launch Video',
'usage_type' => 'marketing'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"updated_at": "2025-10-16T10:28:09.121621765+06:00",
"created_at": "2025-10-16T10:28:09.121621765+06:00",
"created_by": "2fa3fe27-ffcd-470b-becf-83f6f22a93ab",
"updated_by": null,
"deleted_at": null,
"region": "us-east-1",
"description": "Videos for product launches and announcements.",
"default_privacy": "unlisted",
"tags": [
"product",
"launch",
"marketing"
],
"status": "provisioning",
"usage_type": "marketing",
"name": "Product Launch Videos",
"security": {
"whitelist_referrer_policy": null,
"black_country_policy": null
},
"id": "ab0507fa-3020-4cfa-8f6a-a5864e65f06c",
"distribution_id": "00000000-0000-0000-0000-000000000000",
"organization_id": "677826f5-1aea-4cba-8973-043cdbc60f35"
},
"message": "Library Created Successfully",
"success": true
}{
"message": "Invalid Request",
"success": false
}{
"code": "auth_type_not_found",
"message": "Could not determine authentication type from request. Please provide a valid Authorization header or X-API-Key header.",
"success": false
}{
"message": "Resource not found",
"success": false
}{
"message": "Invalid Request",
"errors": [
{
"field": "field_name",
"code": "validation_required",
"message": "This field is required"
}
],
"success": false
}{
"message": "Internal server error",
"success": false
}Library
Create Library
Create a new video library within your Tenbyte account. Libraries are used to organize video assets, folders, and related webhooks.
POST
/
libraries
Create Library
curl --request POST \
--url https://api.tenbyte.io/v1/vidinfra/libraries \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Product Launch Video",
"usage_type": "marketing"
}
'import requests
url = "https://api.tenbyte.io/v1/vidinfra/libraries"
payload = {
"name": "Product Launch Video",
"usage_type": "marketing"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Product Launch Video', usage_type: 'marketing'})
};
fetch('https://api.tenbyte.io/v1/vidinfra/libraries', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.tenbyte.io/v1/vidinfra/libraries"
payload := strings.NewReader("{\n \"name\": \"Product Launch Video\",\n \"usage_type\": \"marketing\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://api.tenbyte.io/v1/vidinfra/libraries")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Product Launch Video\",\n \"usage_type\": \"marketing\"\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("https://api.tenbyte.io/v1/vidinfra/libraries")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Product Launch Video\",\n \"usage_type\": \"marketing\"\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.tenbyte.io/v1/vidinfra/libraries");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"name\": \"Product Launch Video\",\n \"usage_type\": \"marketing\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tenbyte.io/v1/vidinfra/libraries",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Product Launch Video',
'usage_type' => 'marketing'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"updated_at": "2025-10-16T10:28:09.121621765+06:00",
"created_at": "2025-10-16T10:28:09.121621765+06:00",
"created_by": "2fa3fe27-ffcd-470b-becf-83f6f22a93ab",
"updated_by": null,
"deleted_at": null,
"region": "us-east-1",
"description": "Videos for product launches and announcements.",
"default_privacy": "unlisted",
"tags": [
"product",
"launch",
"marketing"
],
"status": "provisioning",
"usage_type": "marketing",
"name": "Product Launch Videos",
"security": {
"whitelist_referrer_policy": null,
"black_country_policy": null
},
"id": "ab0507fa-3020-4cfa-8f6a-a5864e65f06c",
"distribution_id": "00000000-0000-0000-0000-000000000000",
"organization_id": "677826f5-1aea-4cba-8973-043cdbc60f35"
},
"message": "Library Created Successfully",
"success": true
}{
"message": "Invalid Request",
"success": false
}{
"code": "auth_type_not_found",
"message": "Could not determine authentication type from request. Please provide a valid Authorization header or X-API-Key header.",
"success": false
}{
"message": "Resource not found",
"success": false
}{
"message": "Invalid Request",
"errors": [
{
"field": "field_name",
"code": "validation_required",
"message": "This field is required"
}
],
"success": false
}{
"message": "Internal server error",
"success": false
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
The display name of the library. This identifies the library.
Deployment region or storage zone for the library.
Defines how the library will be used.
Short summary of what this library is used for.
Sets the default privacy mode for uploaded assets.
List of labels or keywords to categorize and quickly filter libraries (e.g., ["marketing", "training", "internal"]).
⌘I