Get batch channels
curl --request POST \
--url https://api.poix.io/batch/channels \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ids": [
"UCuAXFkgsw1L7xaCfnd5JJOw",
"UC0C-w0YjGpqDXGB8IHb662A",
"UCSY5V7BJSrxNvvBF0Drslow",
"UCBVjMGOIkavEAhyqpxJ73Dw",
"UCi4EDAgjULwwNBHOg1aaCig"
]
}
'import requests
url = "https://api.poix.io/batch/channels"
payload = { "ids": ["UCuAXFkgsw1L7xaCfnd5JJOw", "UC0C-w0YjGpqDXGB8IHb662A", "UCSY5V7BJSrxNvvBF0Drslow", "UCBVjMGOIkavEAhyqpxJ73Dw", "UCi4EDAgjULwwNBHOg1aaCig"] }
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({
ids: [
'UCuAXFkgsw1L7xaCfnd5JJOw',
'UC0C-w0YjGpqDXGB8IHb662A',
'UCSY5V7BJSrxNvvBF0Drslow',
'UCBVjMGOIkavEAhyqpxJ73Dw',
'UCi4EDAgjULwwNBHOg1aaCig'
]
})
};
fetch('https://api.poix.io/batch/channels', 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.poix.io/batch/channels",
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([
'ids' => [
'UCuAXFkgsw1L7xaCfnd5JJOw',
'UC0C-w0YjGpqDXGB8IHb662A',
'UCSY5V7BJSrxNvvBF0Drslow',
'UCBVjMGOIkavEAhyqpxJ73Dw',
'UCi4EDAgjULwwNBHOg1aaCig'
]
]),
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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.poix.io/batch/channels"
payload := strings.NewReader("{\n \"ids\": [\n \"UCuAXFkgsw1L7xaCfnd5JJOw\",\n \"UC0C-w0YjGpqDXGB8IHb662A\",\n \"UCSY5V7BJSrxNvvBF0Drslow\",\n \"UCBVjMGOIkavEAhyqpxJ73Dw\",\n \"UCi4EDAgjULwwNBHOg1aaCig\"\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))
}HttpResponse<String> response = Unirest.post("https://api.poix.io/batch/channels")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ids\": [\n \"UCuAXFkgsw1L7xaCfnd5JJOw\",\n \"UC0C-w0YjGpqDXGB8IHb662A\",\n \"UCSY5V7BJSrxNvvBF0Drslow\",\n \"UCBVjMGOIkavEAhyqpxJ73Dw\",\n \"UCi4EDAgjULwwNBHOg1aaCig\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.poix.io/batch/channels")
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 \"ids\": [\n \"UCuAXFkgsw1L7xaCfnd5JJOw\",\n \"UC0C-w0YjGpqDXGB8IHb662A\",\n \"UCSY5V7BJSrxNvvBF0Drslow\",\n \"UCBVjMGOIkavEAhyqpxJ73Dw\",\n \"UCi4EDAgjULwwNBHOg1aaCig\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"totalResults": 1,
"data": [
{
"id": "UCuAXFkgsw1L7xaCfnd5JJOw",
"title": "Rick Astley",
"description": "'Free' Remaster out now!",
"keywords": "Official Rick Astley \"rick astley\" \"never gonna give you up\" \"the best of me\" \"best of me\" \"together forever\" \"cry for help\" \"beautiful life\" \"official video\" \"official audio\" rickroll rickrolled \"rick roll\" \"rick asltey\" \"give up\" meme",
"unsubscribedTrailer": "mIHHfNVfhPk",
"country": "GB",
"customUrl": "@rickastleyyt",
"publishedAt": "2015-02-01T16:32:30Z",
"thumbnails": {
"default": {
"url": "https://yt3.ggpht.com/coJBIm7rugfAkdb9_cw5Lry2NDnfSYDjL5MBu_R2st_YCLsZtDxYu28h2EAJzPfY8qudaF8U=s88-c-k-c0x00ffffff-no-rj",
"width": 88,
"height": 88
},
"medium": {
"url": "https://yt3.ggpht.com/coJBIm7rugfAkdb9_cw5Lry2NDnfSYDjL5MBu_R2st_YCLsZtDxYu28h2EAJzPfY8qudaF8U=s240-c-k-c0x00ffffff-no-rj",
"width": 240,
"height": 240
},
"high": {
"url": "https://yt3.ggpht.com/coJBIm7rugfAkdb9_cw5Lry2NDnfSYDjL5MBu_R2st_YCLsZtDxYu28h2EAJzPfY8qudaF8U=s800-c-k-c0x00ffffff-no-rj",
"width": 800,
"height": 800
}
},
"viewCount": "2100929381",
"subscriberCount": "4160000",
"hiddenSubscriberCount": false,
"videoCount": "265",
"topicIds": [
"/m/04rlf",
"/m/0gywn",
"/m/06by7",
"/m/064t9"
],
"topicCategories": [
"https://en.wikipedia.org/wiki/Music",
"https://en.wikipedia.org/wiki/Soul_music",
"https://en.wikipedia.org/wiki/Rock_music",
"https://en.wikipedia.org/wiki/Pop_music"
],
"relatedPlaylists": {
"likes": "",
"uploads": "UUuAXFkgsw1L7xaCfnd5JJOw"
},
"privacyStatus": "public",
"isLinked": true,
"longUploadsStatus": "longUploadsUnspecified",
"madeForKids": false,
"bannerExternalUrl": "https://yt3.googleusercontent.com/KBtTGhBjiM4CD9oUrQke85BALlD1Tt-QFh_AQqzJIQJXFUQt1mtS6jJjIJkQDEbphga9O1Kt",
"thumbnailUrl": "https://yt3.ggpht.com/coJBIm7rugfAkdb9_cw5Lry2NDnfSYDjL5MBu_R2st_YCLsZtDxYu28h2EAJzPfY8qudaF8U=s240-c-k-c0x00ffffff-no-rj"
}
]
}{
"success": false,
"error": {
"issues": [
{
"received": "defaultLanguage",
"code": "invalid_enum_value",
"options": [
"title",
"description",
"keywords",
"country",
"customUrl",
"publishedAt",
"viewCount",
"subscriberCount",
"hiddenSubscriberCount",
"unsubscribedTrailer",
"videoCount",
"topicIds",
"topicCategories",
"relatedPlaylists",
"privacyStatus",
"isLinked",
"longUploadsStatus",
"madeForKids",
"bannerExternalUrl",
"thumbnailUrl",
"localizations",
"thumbnails"
],
"path": [
"fields",
1
],
"message": "Invalid enum value. Expected 'title' | 'description' | 'keywords' | 'country' | 'customUrl' | 'publishedAt' | 'viewCount' | 'subscriberCount' | 'hiddenSubscriberCount' | 'unsubscribedTrailer' | 'videoCount' | 'topicIds' | 'topicCategories' | 'relatedPlaylists' | 'privacyStatus' | 'isLinked' | 'longUploadsStatus' | 'madeForKids' | 'bannerExternalUrl' | 'thumbnailUrl' | 'localizations' | 'thumbnails', received 'defaultLanguage'"
}
],
"name": "ZodError"
}
}{
"error": {
"message": "Forbidden"
}
}Batch
Get batch channels
Retrieve data for up to 1000 channels based on their IDs
POST
/
batch
/
channels
Get batch channels
curl --request POST \
--url https://api.poix.io/batch/channels \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ids": [
"UCuAXFkgsw1L7xaCfnd5JJOw",
"UC0C-w0YjGpqDXGB8IHb662A",
"UCSY5V7BJSrxNvvBF0Drslow",
"UCBVjMGOIkavEAhyqpxJ73Dw",
"UCi4EDAgjULwwNBHOg1aaCig"
]
}
'import requests
url = "https://api.poix.io/batch/channels"
payload = { "ids": ["UCuAXFkgsw1L7xaCfnd5JJOw", "UC0C-w0YjGpqDXGB8IHb662A", "UCSY5V7BJSrxNvvBF0Drslow", "UCBVjMGOIkavEAhyqpxJ73Dw", "UCi4EDAgjULwwNBHOg1aaCig"] }
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({
ids: [
'UCuAXFkgsw1L7xaCfnd5JJOw',
'UC0C-w0YjGpqDXGB8IHb662A',
'UCSY5V7BJSrxNvvBF0Drslow',
'UCBVjMGOIkavEAhyqpxJ73Dw',
'UCi4EDAgjULwwNBHOg1aaCig'
]
})
};
fetch('https://api.poix.io/batch/channels', 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.poix.io/batch/channels",
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([
'ids' => [
'UCuAXFkgsw1L7xaCfnd5JJOw',
'UC0C-w0YjGpqDXGB8IHb662A',
'UCSY5V7BJSrxNvvBF0Drslow',
'UCBVjMGOIkavEAhyqpxJ73Dw',
'UCi4EDAgjULwwNBHOg1aaCig'
]
]),
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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.poix.io/batch/channels"
payload := strings.NewReader("{\n \"ids\": [\n \"UCuAXFkgsw1L7xaCfnd5JJOw\",\n \"UC0C-w0YjGpqDXGB8IHb662A\",\n \"UCSY5V7BJSrxNvvBF0Drslow\",\n \"UCBVjMGOIkavEAhyqpxJ73Dw\",\n \"UCi4EDAgjULwwNBHOg1aaCig\"\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))
}HttpResponse<String> response = Unirest.post("https://api.poix.io/batch/channels")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ids\": [\n \"UCuAXFkgsw1L7xaCfnd5JJOw\",\n \"UC0C-w0YjGpqDXGB8IHb662A\",\n \"UCSY5V7BJSrxNvvBF0Drslow\",\n \"UCBVjMGOIkavEAhyqpxJ73Dw\",\n \"UCi4EDAgjULwwNBHOg1aaCig\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.poix.io/batch/channels")
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 \"ids\": [\n \"UCuAXFkgsw1L7xaCfnd5JJOw\",\n \"UC0C-w0YjGpqDXGB8IHb662A\",\n \"UCSY5V7BJSrxNvvBF0Drslow\",\n \"UCBVjMGOIkavEAhyqpxJ73Dw\",\n \"UCi4EDAgjULwwNBHOg1aaCig\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"totalResults": 1,
"data": [
{
"id": "UCuAXFkgsw1L7xaCfnd5JJOw",
"title": "Rick Astley",
"description": "'Free' Remaster out now!",
"keywords": "Official Rick Astley \"rick astley\" \"never gonna give you up\" \"the best of me\" \"best of me\" \"together forever\" \"cry for help\" \"beautiful life\" \"official video\" \"official audio\" rickroll rickrolled \"rick roll\" \"rick asltey\" \"give up\" meme",
"unsubscribedTrailer": "mIHHfNVfhPk",
"country": "GB",
"customUrl": "@rickastleyyt",
"publishedAt": "2015-02-01T16:32:30Z",
"thumbnails": {
"default": {
"url": "https://yt3.ggpht.com/coJBIm7rugfAkdb9_cw5Lry2NDnfSYDjL5MBu_R2st_YCLsZtDxYu28h2EAJzPfY8qudaF8U=s88-c-k-c0x00ffffff-no-rj",
"width": 88,
"height": 88
},
"medium": {
"url": "https://yt3.ggpht.com/coJBIm7rugfAkdb9_cw5Lry2NDnfSYDjL5MBu_R2st_YCLsZtDxYu28h2EAJzPfY8qudaF8U=s240-c-k-c0x00ffffff-no-rj",
"width": 240,
"height": 240
},
"high": {
"url": "https://yt3.ggpht.com/coJBIm7rugfAkdb9_cw5Lry2NDnfSYDjL5MBu_R2st_YCLsZtDxYu28h2EAJzPfY8qudaF8U=s800-c-k-c0x00ffffff-no-rj",
"width": 800,
"height": 800
}
},
"viewCount": "2100929381",
"subscriberCount": "4160000",
"hiddenSubscriberCount": false,
"videoCount": "265",
"topicIds": [
"/m/04rlf",
"/m/0gywn",
"/m/06by7",
"/m/064t9"
],
"topicCategories": [
"https://en.wikipedia.org/wiki/Music",
"https://en.wikipedia.org/wiki/Soul_music",
"https://en.wikipedia.org/wiki/Rock_music",
"https://en.wikipedia.org/wiki/Pop_music"
],
"relatedPlaylists": {
"likes": "",
"uploads": "UUuAXFkgsw1L7xaCfnd5JJOw"
},
"privacyStatus": "public",
"isLinked": true,
"longUploadsStatus": "longUploadsUnspecified",
"madeForKids": false,
"bannerExternalUrl": "https://yt3.googleusercontent.com/KBtTGhBjiM4CD9oUrQke85BALlD1Tt-QFh_AQqzJIQJXFUQt1mtS6jJjIJkQDEbphga9O1Kt",
"thumbnailUrl": "https://yt3.ggpht.com/coJBIm7rugfAkdb9_cw5Lry2NDnfSYDjL5MBu_R2st_YCLsZtDxYu28h2EAJzPfY8qudaF8U=s240-c-k-c0x00ffffff-no-rj"
}
]
}{
"success": false,
"error": {
"issues": [
{
"received": "defaultLanguage",
"code": "invalid_enum_value",
"options": [
"title",
"description",
"keywords",
"country",
"customUrl",
"publishedAt",
"viewCount",
"subscriberCount",
"hiddenSubscriberCount",
"unsubscribedTrailer",
"videoCount",
"topicIds",
"topicCategories",
"relatedPlaylists",
"privacyStatus",
"isLinked",
"longUploadsStatus",
"madeForKids",
"bannerExternalUrl",
"thumbnailUrl",
"localizations",
"thumbnails"
],
"path": [
"fields",
1
],
"message": "Invalid enum value. Expected 'title' | 'description' | 'keywords' | 'country' | 'customUrl' | 'publishedAt' | 'viewCount' | 'subscriberCount' | 'hiddenSubscriberCount' | 'unsubscribedTrailer' | 'videoCount' | 'topicIds' | 'topicCategories' | 'relatedPlaylists' | 'privacyStatus' | 'isLinked' | 'longUploadsStatus' | 'madeForKids' | 'bannerExternalUrl' | 'thumbnailUrl' | 'localizations' | 'thumbnails', received 'defaultLanguage'"
}
],
"name": "ZodError"
}
}{
"error": {
"message": "Forbidden"
}
}This endpoint allows you to retrieve multiple channels in a single request. Simply specify a list of channel IDs, and the API will return the details of each channel.
This request supports batch processing, allowing you to retrieve up to
1,000 channels in a single request.
Price
The cost of this request is based on the number of channel chunks (by 50 channels) in the request. For example:- 1 channel means 1 chunk
- 50 channels means 1 chunk
- 75 channels means 2 chunks
- 100 channels means 2 chunks
- 101 channels means 3 chunks
- 1000 channels means 20 chunks
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
The language code (e.g., "en-US", "es") to retrieve localized data in. If not specified, the default language of the channel is used.
Available options:
af, am, ar, as, az, be, bg, bn, bs, ca, cs, da, de, el, en-GB, en-IN, en, es, es-419, es-US, et, eu, fa, fi, fil, fr-CA, fr, gl, gu, hi, hr, hu, hy, id, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, no, ne, nl, or, pa, pl, pt, pt-PT, ro, ru, si, sk, sl, sq, sr-Latn, sr, sv, sw, ta, te, th, tr, uk, ur, uz, vi, zh-CN, zh-HK, zh-TW, zu A comma-separated list of fields to include in the response. If not provided, all fields will be returned.
Body
application/json
An array of channel IDs to retrieve data for. Each ID should be a valid 24-character channel ID. Minimum 1, maximum 1000 IDs.
Required array length:
1 - 1000 elementsRequired string length:
24Whether to include localized data for the channel. If true, localized fields will be returned in the specified language (hl parameter). Default is false.
⌘I