curl --request GET \
--url https://api.tella.com/v1/videos/search \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tella.com/v1/videos/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tella.com/v1/videos/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tella.com/v1/videos/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tella.com/v1/videos/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tella.com/v1/videos/search")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tella.com/v1/videos/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"pagination": {
"hasMore": true,
"nextCursor": "eyJpZCI6IjEyMyJ9"
},
"results": [
{
"matches": [
{
"endSeconds": 123,
"field": "title",
"matchedTokens": [
"<string>"
],
"snippet": "<string>",
"startSeconds": 123
}
],
"video": {
"aspectRatio": "16:9",
"autoRatio": false,
"createdAt": "2024-01-15T10:30:00.000Z",
"description": "Learn how to create and share your first video",
"dimensions": {
"height": 1080,
"width": 1920
},
"id": "vid_abc123def456",
"links": {
"embedPage": "https://www.tella.tv/video/vid_abc123def456/embed",
"viewPage": "https://www.tella.tv/video/vid_abc123def456/view"
},
"name": "Getting Started with Tella",
"updatedAt": "2024-01-15T14:45:00.000Z",
"views": 1234
}
}
]
}{
"docsUrl": "https://docs.tella.com/",
"error": "bad_request",
"message": "The request was malformed or contained invalid parameters."
}{
"docsUrl": "https://docs.tella.com/",
"error": "unauthorized",
"message": "Authentication is required. Provide a valid API key."
}{
"docsUrl": "https://docs.tella.com/",
"error": "forbidden",
"message": "You don't have permission to access this resource."
}{
"docsUrl": "https://docs.tella.com/",
"error": "not_found",
"message": "The requested resource was not found."
}{
"docsUrl": "https://docs.tella.com/",
"error": "conflict",
"message": "The request conflicts with the resource's current state, e.g. an Idempotency-Key whose first request is still in progress. Retry once it settles."
}{
"docsUrl": "https://docs.tella.com/",
"error": "rate_limited",
"message": "You have exceeded the rate limit. Please slow down."
}{
"docsUrl": "https://docs.tella.com/",
"error": "server_error",
"message": "An unexpected error occurred"
}{
"docsUrl": "https://docs.tella.com/",
"error": "not_implemented",
"message": "The requested operation is not implemented."
}{
"docsUrl": "https://docs.tella.com/",
"error": "unavailable",
"message": "A dependency was unavailable and the request was not executed. Safe to resend unchanged after the Retry-After delay."
}Search videos
Search the authenticated user’s direct video library by title or indexed transcript sentences.
curl --request GET \
--url https://api.tella.com/v1/videos/search \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tella.com/v1/videos/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tella.com/v1/videos/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tella.com/v1/videos/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tella.com/v1/videos/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tella.com/v1/videos/search")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tella.com/v1/videos/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"pagination": {
"hasMore": true,
"nextCursor": "eyJpZCI6IjEyMyJ9"
},
"results": [
{
"matches": [
{
"endSeconds": 123,
"field": "title",
"matchedTokens": [
"<string>"
],
"snippet": "<string>",
"startSeconds": 123
}
],
"video": {
"aspectRatio": "16:9",
"autoRatio": false,
"createdAt": "2024-01-15T10:30:00.000Z",
"description": "Learn how to create and share your first video",
"dimensions": {
"height": 1080,
"width": 1920
},
"id": "vid_abc123def456",
"links": {
"embedPage": "https://www.tella.tv/video/vid_abc123def456/embed",
"viewPage": "https://www.tella.tv/video/vid_abc123def456/view"
},
"name": "Getting Started with Tella",
"updatedAt": "2024-01-15T14:45:00.000Z",
"views": 1234
}
}
]
}{
"docsUrl": "https://docs.tella.com/",
"error": "bad_request",
"message": "The request was malformed or contained invalid parameters."
}{
"docsUrl": "https://docs.tella.com/",
"error": "unauthorized",
"message": "Authentication is required. Provide a valid API key."
}{
"docsUrl": "https://docs.tella.com/",
"error": "forbidden",
"message": "You don't have permission to access this resource."
}{
"docsUrl": "https://docs.tella.com/",
"error": "not_found",
"message": "The requested resource was not found."
}{
"docsUrl": "https://docs.tella.com/",
"error": "conflict",
"message": "The request conflicts with the resource's current state, e.g. an Idempotency-Key whose first request is still in progress. Retry once it settles."
}{
"docsUrl": "https://docs.tella.com/",
"error": "rate_limited",
"message": "You have exceeded the rate limit. Please slow down."
}{
"docsUrl": "https://docs.tella.com/",
"error": "server_error",
"message": "An unexpected error occurred"
}{
"docsUrl": "https://docs.tella.com/",
"error": "not_implemented",
"message": "The requested operation is not implemented."
}{
"docsUrl": "https://docs.tella.com/",
"error": "unavailable",
"message": "A dependency was unavailable and the request was not executed. Safe to resend unchanged after the Retry-After delay."
}Authorizations
API key obtained from your Tella account settings
Query Parameters
Words to find in video titles or indexed transcript sentences
1 - 200Fields to search (default: all)
all, title, transcript Upper bound on results per page (default: 20, max: 100). A page can be shorter once results the caller cannot see are removed, so keep paging while hasMore is true.
1 <= x <= 100Opaque pagination cursor from the previous response
Response
Matching videos
Pagination metadata for list responses. Results are sorted by updatedAt descending.
Hide child attributes
Hide child attributes
Whether there are more items to fetch
true
Cursor for next page. Pass this value as the 'cursor' query parameter to fetch the next page. Null if no more pages. This is an opaque value - do not decode or modify it.
"eyJpZCI6IjEyMyJ9"
Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
End of the matching transcript sentence, in seconds. Null for title matches.
title, transcript Plain-text matching excerpt
Start of the matching transcript sentence, in seconds. Null for title matches.
Video item in a list response
Hide child attributes
Hide child attributes
Video aspect ratio (e.g., '16:9', '9:16')
"16:9"
Whether the canvas is in Auto ratio (sized from the video's recording and following it as layouts change), the editor's Setup → Size → Auto.
false
ISO 8601 datetime
"2024-01-15T10:30:00.000Z"
Video description
5000"Learn how to create and share your first video"
Unique video identifier
"vid_abc123def456"
Related URLs for the video
Video title
1 - 255"Getting Started with Tella"
ISO 8601 datetime
"2024-01-15T14:45:00.000Z"
Total view count
0 <= x <= 90071992547409911234
Was this page helpful?