Search a video provider
curl --request GET \
--url https://api.video2ctx.dev/v1/providers/{provider}/search \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.video2ctx.dev/v1/providers/{provider}/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.video2ctx.dev/v1/providers/{provider}/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"query": "<string>",
"results": [
{
"type": "video",
"id": "dQw4w9WgXcQ",
"title": "<string>",
"channel": {
"id": "<string>",
"name": "<string>",
"url": "<string>"
},
"thumbnails": [
{
"url": "<string>",
"width": 1,
"height": 1
}
],
"isLive": true,
"url": "<string>",
"description": "<string>",
"durationSeconds": 1,
"durationText": "<string>",
"publishedTimeText": "<string>",
"viewCount": 1,
"viewCountText": "<string>",
"hasCaptions": true
}
],
"meta": {
"provider": "youtube",
"source": "video2ctx",
"fetchedAt": "2023-11-07T05:31:56Z",
"partial": true,
"warnings": [
"<string>"
]
},
"continuation": "<string>",
"estimatedTotal": 1
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}Discovery
Search a video provider
Searches the selected external provider. Cache hits cost less than fresh upstream retrieval.
GET
/
v1
/
providers
/
{provider}
/
search
Search a video provider
curl --request GET \
--url https://api.video2ctx.dev/v1/providers/{provider}/search \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.video2ctx.dev/v1/providers/{provider}/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.video2ctx.dev/v1/providers/{provider}/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"query": "<string>",
"results": [
{
"type": "video",
"id": "dQw4w9WgXcQ",
"title": "<string>",
"channel": {
"id": "<string>",
"name": "<string>",
"url": "<string>"
},
"thumbnails": [
{
"url": "<string>",
"width": 1,
"height": 1
}
],
"isLive": true,
"url": "<string>",
"description": "<string>",
"durationSeconds": 1,
"durationText": "<string>",
"publishedTimeText": "<string>",
"viewCount": 1,
"viewCountText": "<string>",
"hasCaptions": true
}
],
"meta": {
"provider": "youtube",
"source": "video2ctx",
"fetchedAt": "2023-11-07T05:31:56Z",
"partial": true,
"warnings": [
"<string>"
]
},
"continuation": "<string>",
"estimatedTotal": 1
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}Authorizations
bearerApiKeysessionCookiecliSessionapiKeydemoUser
Permanent personal API key created in the dashboard. Example: curl -H "Authorization: Bearer aty_…" https://your-host/v1/projects
Path Parameters
External video provider.
Available options:
youtube Example:
"youtube"
Query Parameters
Provider search query.
Maximum string length:
500Example:
"AI agents"
Provider entity type.
Available options:
all, video, channel, playlist Restrict search to a channel.
Preferred language code.
Example:
"en"
Video duration bucket.
Available options:
short, medium, long Result ordering.
Available options:
relevance, date, views, rating Only include captioned videos.
Live broadcast state.
Available options:
live, upcoming, completed Opaque token returned by a previous provider search page.