Get Performance Information
Retrieve advanced performance information of a specified YouTube creator, including upload activity, subscriber growth, engagement metrics, and video performance.
Optionally pass fields in the request body to return only a subset of performance blocks. Requesting a subset bills fractionally, 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). Per-field costs are not published yet. For how fractional costs work, see Fractional Costs.
curl -X POST "https://apiv3.creatordb.app/youtube/performance" \
-H "Content-Type: application/json" \
-H "api-key: <YOUR_API-KEY_HERE>" \
-d '{ "channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA", "fields": ["engagement"] }'const options = {
method: 'POST',
headers: {'api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({channelId: '<string>', fields: ['<string>']})
};
fetch('https://apiv3.creatordb.app/youtube/performance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://apiv3.creatordb.app/youtube/performance"
payload = {
"channelId": "<string>",
"fields": ["<string>"]
}
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/performance",
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' => '<string>',
'fields' => [
'<string>'
]
]),
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/performance")
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\": \"<string>\",\n \"fields\": [\n \"<string>\"\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/performance"
payload := strings.NewReader("{\n \"channelId\": \"<string>\",\n \"fields\": [\n \"<string>\"\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/performance")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"channelId\": \"<string>\",\n \"fields\": [\n \"<string>\"\n ]\n}")
.asString();{
"data": {
"contentCountByDays": {
"7d": 3,
"30d": 8,
"90d": 26
},
"ranking": {
"totalSubscribers": {
"global": 1,
"country": 1,
"language": 1
},
"avgEngagementRate": {
"global": 0.5279,
"country": 0.5036,
"language": 0.4221
}
},
"videosPerformanceRecent": {
"likes": {
"all": 71621680,
"avg": 3581084,
"median": 2669037,
"min": 1300000,
"max": 22000000
},
"comments": {
"all": 1174720,
"avg": 58736,
"median": 53951,
"min": 8770,
"max": 115035
},
"views": {
"all": 3050115040,
"avg": 152505752,
"median": 131558084,
"min": 56885878,
"max": 603517253,
"percentile25": 104827304,
"percentile75": 149680016,
"iqr": 44852712
},
"length": {
"avg": 1167
},
"engagement": {
"avgEngagementRate": 0.0231,
"likesPerSubscriber": 0.0077,
"commentsPerSubscriber": 0.0001,
"viewsPerSubscriber": 0.3259,
"engagementConsistency": {
"cv": 0.4606,
"medianVsMean": 0.856,
"topBottomRatio": 2.6884,
"consistencyScore": 53,
"consistencyLevel": "moderate"
}
}
},
"shortsPerformanceRecent": {
"likes": {
"all": 51069500,
"avg": 2553475,
"median": 2059098,
"min": 463000,
"max": 6200000
},
"comments": {
"all": 635020,
"avg": 31751,
"median": 14155,
"min": 5115,
"max": 186830
},
"views": {
"all": 3881469200,
"avg": 194073460,
"median": 80108228,
"min": 12298373,
"max": 968276492,
"percentile25": 50286890,
"percentile75": 201918051,
"iqr": 151631161
},
"length": {
"avg": 29
},
"engagement": {
"avgEngagementRate": 0.0207,
"likesPerSubscriber": 0.0055,
"commentsPerSubscriber": 0.0001,
"viewsPerSubscriber": 0.4147,
"engagementConsistency": {
"cv": 0.3732,
"medianVsMean": 1.0541,
"topBottomRatio": 3.6335,
"consistencyScore": 53,
"consistencyLevel": "moderate"
}
}
},
"videosPerformanceAll": {
"likes": {
"all": 222423708,
"avg": 4835298,
"median": 3400000,
"min": 1300000,
"max": 28000000
},
"comments": {
"all": 4020078,
"avg": 87393,
"median": 71759,
"min": 8770,
"max": 349397
},
"views": {
"all": 8897761232,
"avg": 193429592,
"median": 165616724,
"min": 56885878,
"max": 603517253,
"percentile25": 130697086,
"percentile75": 220213535,
"iqr": 89516449
},
"length": {
"avg": 1280
},
"engagement": {
"avgEngagementRate": 0.0249,
"likesPerSubscriber": 0.0103,
"commentsPerSubscriber": 0.0002,
"viewsPerSubscriber": 0.4133,
"engagementConsistency": {
"cv": 0.5654,
"medianVsMean": 0.8656,
"topBottomRatio": 4.6788,
"consistencyScore": 47,
"consistencyLevel": "low"
}
}
},
"shortsPerformanceAll": {
"likes": {
"all": 1650228640,
"avg": 10313929,
"median": 8150000,
"min": 461000,
"max": 57000000
},
"comments": {
"all": 5172480,
"avg": 32328,
"median": 17060,
"min": 2772,
"max": 822627
},
"views": {
"all": 60515376800,
"avg": 378221105,
"median": 338464804,
"min": 6532098,
"max": 1692388343,
"percentile25": 136813142,
"percentile75": 537217514,
"iqr": 400404372
},
"length": {
"avg": 31
},
"engagement": {
"avgEngagementRate": 0.0279,
"likesPerSubscriber": 0.022,
"commentsPerSubscriber": 0.0001,
"viewsPerSubscriber": 0.8082,
"engagementConsistency": {
"cv": 0.4515,
"medianVsMean": 0.9376,
"topBottomRatio": 14.6975,
"consistencyScore": 41,
"consistencyLevel": "low"
}
}
},
"recentVideosGrowth": {
"g7": {
"avgViews": 0.0158,
"engagementRate": -0.0156
},
"g30": {
"avgViews": -0.0063,
"engagementRate": -0.0189
},
"g90": {
"avgViews": 0.0952,
"engagementRate": -0.1305
}
},
"recentShortsGrowth": {
"g7": {
"avgViews": 0.0342,
"engagementRate": 0.0002
},
"g30": {
"avgViews": 0.4128,
"engagementRate": -0.0281
},
"g90": {
"avgViews": 0.2758,
"engagementRate": -0.2429
}
}
},
"traceId": "3d69e43ce36749693badd422e38ccc28",
"timestamp": 1771887295991,
"errorCode": "",
"errorDescription": "",
"success": true
}Authorizations
The valid CreatorDB API key for authentication.
Body
Unique channel ID.
1 - 50^UC[a-zA-Z0-9_-]{22}$"UCBR8-60-B28hp2BmDPdntcQ"
Subset of performance blocks to return. Omit or pass an empty array to return the full response at the full-bundle price. Per-field costs are not published yet.
["engagement", "views"]
Response
Performance data of the specified YouTube creator returned successfully.
Performance metrics.
Show child attributes
Show child attributes
Number of API credits consumed by this request.
1
Number of API credits remaining.
-1
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
curl -X POST "https://apiv3.creatordb.app/youtube/performance" \
-H "Content-Type: application/json" \
-H "api-key: <YOUR_API-KEY_HERE>" \
-d '{ "channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA", "fields": ["engagement"] }'const options = {
method: 'POST',
headers: {'api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({channelId: '<string>', fields: ['<string>']})
};
fetch('https://apiv3.creatordb.app/youtube/performance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://apiv3.creatordb.app/youtube/performance"
payload = {
"channelId": "<string>",
"fields": ["<string>"]
}
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/performance",
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' => '<string>',
'fields' => [
'<string>'
]
]),
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/performance")
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\": \"<string>\",\n \"fields\": [\n \"<string>\"\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/performance"
payload := strings.NewReader("{\n \"channelId\": \"<string>\",\n \"fields\": [\n \"<string>\"\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/performance")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"channelId\": \"<string>\",\n \"fields\": [\n \"<string>\"\n ]\n}")
.asString();{
"data": {
"contentCountByDays": {
"7d": 3,
"30d": 8,
"90d": 26
},
"ranking": {
"totalSubscribers": {
"global": 1,
"country": 1,
"language": 1
},
"avgEngagementRate": {
"global": 0.5279,
"country": 0.5036,
"language": 0.4221
}
},
"videosPerformanceRecent": {
"likes": {
"all": 71621680,
"avg": 3581084,
"median": 2669037,
"min": 1300000,
"max": 22000000
},
"comments": {
"all": 1174720,
"avg": 58736,
"median": 53951,
"min": 8770,
"max": 115035
},
"views": {
"all": 3050115040,
"avg": 152505752,
"median": 131558084,
"min": 56885878,
"max": 603517253,
"percentile25": 104827304,
"percentile75": 149680016,
"iqr": 44852712
},
"length": {
"avg": 1167
},
"engagement": {
"avgEngagementRate": 0.0231,
"likesPerSubscriber": 0.0077,
"commentsPerSubscriber": 0.0001,
"viewsPerSubscriber": 0.3259,
"engagementConsistency": {
"cv": 0.4606,
"medianVsMean": 0.856,
"topBottomRatio": 2.6884,
"consistencyScore": 53,
"consistencyLevel": "moderate"
}
}
},
"shortsPerformanceRecent": {
"likes": {
"all": 51069500,
"avg": 2553475,
"median": 2059098,
"min": 463000,
"max": 6200000
},
"comments": {
"all": 635020,
"avg": 31751,
"median": 14155,
"min": 5115,
"max": 186830
},
"views": {
"all": 3881469200,
"avg": 194073460,
"median": 80108228,
"min": 12298373,
"max": 968276492,
"percentile25": 50286890,
"percentile75": 201918051,
"iqr": 151631161
},
"length": {
"avg": 29
},
"engagement": {
"avgEngagementRate": 0.0207,
"likesPerSubscriber": 0.0055,
"commentsPerSubscriber": 0.0001,
"viewsPerSubscriber": 0.4147,
"engagementConsistency": {
"cv": 0.3732,
"medianVsMean": 1.0541,
"topBottomRatio": 3.6335,
"consistencyScore": 53,
"consistencyLevel": "moderate"
}
}
},
"videosPerformanceAll": {
"likes": {
"all": 222423708,
"avg": 4835298,
"median": 3400000,
"min": 1300000,
"max": 28000000
},
"comments": {
"all": 4020078,
"avg": 87393,
"median": 71759,
"min": 8770,
"max": 349397
},
"views": {
"all": 8897761232,
"avg": 193429592,
"median": 165616724,
"min": 56885878,
"max": 603517253,
"percentile25": 130697086,
"percentile75": 220213535,
"iqr": 89516449
},
"length": {
"avg": 1280
},
"engagement": {
"avgEngagementRate": 0.0249,
"likesPerSubscriber": 0.0103,
"commentsPerSubscriber": 0.0002,
"viewsPerSubscriber": 0.4133,
"engagementConsistency": {
"cv": 0.5654,
"medianVsMean": 0.8656,
"topBottomRatio": 4.6788,
"consistencyScore": 47,
"consistencyLevel": "low"
}
}
},
"shortsPerformanceAll": {
"likes": {
"all": 1650228640,
"avg": 10313929,
"median": 8150000,
"min": 461000,
"max": 57000000
},
"comments": {
"all": 5172480,
"avg": 32328,
"median": 17060,
"min": 2772,
"max": 822627
},
"views": {
"all": 60515376800,
"avg": 378221105,
"median": 338464804,
"min": 6532098,
"max": 1692388343,
"percentile25": 136813142,
"percentile75": 537217514,
"iqr": 400404372
},
"length": {
"avg": 31
},
"engagement": {
"avgEngagementRate": 0.0279,
"likesPerSubscriber": 0.022,
"commentsPerSubscriber": 0.0001,
"viewsPerSubscriber": 0.8082,
"engagementConsistency": {
"cv": 0.4515,
"medianVsMean": 0.9376,
"topBottomRatio": 14.6975,
"consistencyScore": 41,
"consistencyLevel": "low"
}
}
},
"recentVideosGrowth": {
"g7": {
"avgViews": 0.0158,
"engagementRate": -0.0156
},
"g30": {
"avgViews": -0.0063,
"engagementRate": -0.0189
},
"g90": {
"avgViews": 0.0952,
"engagementRate": -0.1305
}
},
"recentShortsGrowth": {
"g7": {
"avgViews": 0.0342,
"engagementRate": 0.0002
},
"g30": {
"avgViews": 0.4128,
"engagementRate": -0.0281
},
"g90": {
"avgViews": 0.2758,
"engagementRate": -0.2429
}
}
},
"traceId": "3d69e43ce36749693badd422e38ccc28",
"timestamp": 1771887295991,
"errorCode": "",
"errorDescription": "",
"success": true
}