Get Content Details
Retrieve the most recent YouTube videos and shorts of a specified creator, including publish time, video or short description, and engagement metrics.
Optionally pass fields in the request body to limit how many items each content-detail array returns. Each item returned is billed individually, capped at the full-bundle price. Fractional calls must be enabled on your API key. Otherwise, a request that includes fields returns a 400 error (FractionalCallsNotEnabled). For per-item costs, see Field and Item Costs. For how fractional calls work, see Fractional Calls.
curl -X POST "https://apiv3.creatordb.app/youtube/content-detail" \
-H "Content-Type: application/json" \
-H "api-key: <YOUR_API-KEY_HERE>" \
-d '{ "channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA", "fields": { "recentVideos": 5 } }'
const options = {
method: 'POST',
headers: {'api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
channelId: 'UCBR8-60-B28hp2BmDPdntcQ',
uniqueId: '@youtube',
fields: {recentVideos: 5, recentShorts: 5}
})
};
fetch('https://apiv3.creatordb.app/youtube/content-detail', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://apiv3.creatordb.app/youtube/content-detail"
payload = {
"channelId": "UCBR8-60-B28hp2BmDPdntcQ",
"uniqueId": "@youtube",
"fields": {
"recentVideos": 5,
"recentShorts": 5
}
}
headers = {
"api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://apiv3.creatordb.app/youtube/content-detail",
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([
'channelId' => 'UCBR8-60-B28hp2BmDPdntcQ',
'uniqueId' => '@youtube',
'fields' => [
'recentVideos' => 5,
'recentShorts' => 5
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://apiv3.creatordb.app/youtube/content-detail")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"channelId\": \"UCBR8-60-B28hp2BmDPdntcQ\",\n \"uniqueId\": \"@youtube\",\n \"fields\": {\n \"recentVideos\": 5,\n \"recentShorts\": 5\n }\n}"
response = http.request(request)
puts response.read_bodypackage main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://apiv3.creatordb.app/youtube/content-detail"
payload := strings.NewReader("{\n \"channelId\": \"UCBR8-60-B28hp2BmDPdntcQ\",\n \"uniqueId\": \"@youtube\",\n \"fields\": {\n \"recentVideos\": 5,\n \"recentShorts\": 5\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api-key", "<api-key>")
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://apiv3.creatordb.app/youtube/content-detail")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"channelId\": \"UCBR8-60-B28hp2BmDPdntcQ\",\n \"uniqueId\": \"@youtube\",\n \"fields\": {\n \"recentVideos\": 5,\n \"recentShorts\": 5\n }\n}")
.asString();Authorizations
The valid CreatorDB API key for authentication.
Body
Unique channel ID. Provide exactly one of channelId or uniqueId.
1 - 50^UC[a-zA-Z0-9_-]{22}$"UCBR8-60-B28hp2BmDPdntcQ"
YouTube channel handle. Accepts youtube or @youtube format (the @ prefix is optional). Provide exactly one of channelId or uniqueId.
1 - 100"@youtube"
Map each content array to the number of items to return. Omit or pass an empty object to return all items at the full-bundle price. For per-item costs, see Field and Item Costs.
Show child attributes
Show child attributes
Response
YouTube content details returned successfully.
Retrieved YouTube content details of a specified creator.
Show child attributes
Show child attributes
Number of API credits consumed by this request.
1
Number of API credits remaining. Equals planCreditsAvailable plus purchasedCreditsAvailable.
-1
Remaining plan credits after this request, in credits.
900
Remaining purchased-bucket credits after this request, in display units.
75
Unique trace ID for each request.
"f8e4a3b2c1d0e9f8a7b6c5d4e3f2a1b0"
Time the response was generated, represented as a Unix timestamp in milliseconds.
1750732453635
Error code returned if the request fails. Empty if the request is successful.
""
Description of the error. Empty if the request is successful.
""
true if the request is successful.
true
Remaining credits this API key can spend after this request, before reaching its spend limit. Present only when the key has a spend limit.
4975
curl -X POST "https://apiv3.creatordb.app/youtube/content-detail" \
-H "Content-Type: application/json" \
-H "api-key: <YOUR_API-KEY_HERE>" \
-d '{ "channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA", "fields": { "recentVideos": 5 } }'
const options = {
method: 'POST',
headers: {'api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
channelId: 'UCBR8-60-B28hp2BmDPdntcQ',
uniqueId: '@youtube',
fields: {recentVideos: 5, recentShorts: 5}
})
};
fetch('https://apiv3.creatordb.app/youtube/content-detail', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://apiv3.creatordb.app/youtube/content-detail"
payload = {
"channelId": "UCBR8-60-B28hp2BmDPdntcQ",
"uniqueId": "@youtube",
"fields": {
"recentVideos": 5,
"recentShorts": 5
}
}
headers = {
"api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://apiv3.creatordb.app/youtube/content-detail",
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([
'channelId' => 'UCBR8-60-B28hp2BmDPdntcQ',
'uniqueId' => '@youtube',
'fields' => [
'recentVideos' => 5,
'recentShorts' => 5
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://apiv3.creatordb.app/youtube/content-detail")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"channelId\": \"UCBR8-60-B28hp2BmDPdntcQ\",\n \"uniqueId\": \"@youtube\",\n \"fields\": {\n \"recentVideos\": 5,\n \"recentShorts\": 5\n }\n}"
response = http.request(request)
puts response.read_bodypackage main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://apiv3.creatordb.app/youtube/content-detail"
payload := strings.NewReader("{\n \"channelId\": \"UCBR8-60-B28hp2BmDPdntcQ\",\n \"uniqueId\": \"@youtube\",\n \"fields\": {\n \"recentVideos\": 5,\n \"recentShorts\": 5\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api-key", "<api-key>")
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://apiv3.creatordb.app/youtube/content-detail")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"channelId\": \"UCBR8-60-B28hp2BmDPdntcQ\",\n \"uniqueId\": \"@youtube\",\n \"fields\": {\n \"recentVideos\": 5,\n \"recentShorts\": 5\n }\n}")
.asString();