Create Webhook Endpoint
curl --request POST \
--url https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/webhooks/endpoints \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://example.com/webhook",
"name": "Video processing events",
"events": [
"created",
"queued"
]
}
'import requests
url = "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/webhooks/endpoints"
payload = {
"url": "https://example.com/webhook",
"name": "Video processing events",
"events": ["created", "queued"]
}
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({
url: 'https://example.com/webhook',
name: 'Video processing events',
events: ['created', 'queued']
})
};
fetch('https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/webhooks/endpoints', 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/{libraryId}/webhooks/endpoints"
payload := strings.NewReader("{\n \"url\": \"https://example.com/webhook\",\n \"name\": \"Video processing events\",\n \"events\": [\n \"created\",\n \"queued\"\n ]\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/{libraryId}/webhooks/endpoints")
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 \"url\": \"https://example.com/webhook\",\n \"name\": \"Video processing events\",\n \"events\": [\n \"created\",\n \"queued\"\n ]\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/webhooks/endpoints")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://example.com/webhook\",\n \"name\": \"Video processing events\",\n \"events\": [\n \"created\",\n \"queued\"\n ]\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/webhooks/endpoints");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"url\": \"https://example.com/webhook\",\n \"name\": \"Video processing events\",\n \"events\": [\n \"created\",\n \"queued\"\n ]\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/{libraryId}/webhooks/endpoints",
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([
'url' => 'https://example.com/webhook',
'name' => 'Video processing events',
'events' => [
'created',
'queued'
]
]),
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-15T13:06:54.816373335+06:00",
"created_at": "2025-10-15T13:06:54.816373335+06:00",
"library_id": "78542c6f-0dc1-4859-a122-35ad6f139827",
"updated_by": null,
"created_by": "2fa3fe27-ffcd-470b-becf-83f6f22a93ab",
"headers": null,
"name": "Video processing events",
"url": "https://example.com/webhooks/tenbyte",
"events": [
"uploaded",
"transcoded"
],
"id": "8e5f8558-50dc-453f-9c36-4e4e9033b36a",
"organization_id": "677826f5-1aea-4cba-8973-043cdbc60f35",
"is_active": true
},
"message": "Webhook Endpoint 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
}Webhook Endpoints
Create Webhook Endpoint
Register a new webhook endpoint to receive event notifications from this library. Each endpoint can subscribe to one or more event types.
POST
/
libraries
/
{libraryId}
/
webhooks
/
endpoints
Create Webhook Endpoint
curl --request POST \
--url https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/webhooks/endpoints \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://example.com/webhook",
"name": "Video processing events",
"events": [
"created",
"queued"
]
}
'import requests
url = "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/webhooks/endpoints"
payload = {
"url": "https://example.com/webhook",
"name": "Video processing events",
"events": ["created", "queued"]
}
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({
url: 'https://example.com/webhook',
name: 'Video processing events',
events: ['created', 'queued']
})
};
fetch('https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/webhooks/endpoints', 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/{libraryId}/webhooks/endpoints"
payload := strings.NewReader("{\n \"url\": \"https://example.com/webhook\",\n \"name\": \"Video processing events\",\n \"events\": [\n \"created\",\n \"queued\"\n ]\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/{libraryId}/webhooks/endpoints")
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 \"url\": \"https://example.com/webhook\",\n \"name\": \"Video processing events\",\n \"events\": [\n \"created\",\n \"queued\"\n ]\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/webhooks/endpoints")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://example.com/webhook\",\n \"name\": \"Video processing events\",\n \"events\": [\n \"created\",\n \"queued\"\n ]\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/webhooks/endpoints");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"url\": \"https://example.com/webhook\",\n \"name\": \"Video processing events\",\n \"events\": [\n \"created\",\n \"queued\"\n ]\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/{libraryId}/webhooks/endpoints",
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([
'url' => 'https://example.com/webhook',
'name' => 'Video processing events',
'events' => [
'created',
'queued'
]
]),
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-15T13:06:54.816373335+06:00",
"created_at": "2025-10-15T13:06:54.816373335+06:00",
"library_id": "78542c6f-0dc1-4859-a122-35ad6f139827",
"updated_by": null,
"created_by": "2fa3fe27-ffcd-470b-becf-83f6f22a93ab",
"headers": null,
"name": "Video processing events",
"url": "https://example.com/webhooks/tenbyte",
"events": [
"uploaded",
"transcoded"
],
"id": "8e5f8558-50dc-453f-9c36-4e4e9033b36a",
"organization_id": "677826f5-1aea-4cba-8973-043cdbc60f35",
"is_active": true
},
"message": "Webhook Endpoint 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.
Path Parameters
Unique identifier of the library.
Body
application/json
The destination URL where webhook events will be sent.
A descriptive name for the webhook endpoint, used for identification.
List of event types that will trigger this webhook (e.g., 'video.created', 'transcoding.completed').
Optional secret key used to sign webhook payloads for verification and security.
⌘I