Leaderboards
Endpoints for accessing ranked lists of top channels, videos, and niches across the platform.
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/leaderboards/channels |
Top channels ranked by various metrics |
| GET | /api/v1/leaderboards/videos |
Top videos ranked by various metrics |
| GET | /api/v1/leaderboards/niches |
Top niches ranked by various metrics |
Channel Leaderboard
GET /api/v1/leaderboards/channels
Get a ranked list of top YouTube channels.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
sort_by |
string | No | Sort field: subscribers (default), outliers, ratio, revenue, skool_mrr |
page |
integer | No | Page number (default: 1) |
per_page |
integer | No | Results per page (default: 25) |
Example Request
curl -X GET "https://tuberalytics.com/api/v1/leaderboards/channels?sort_by=skool_mrr" \
-H "Authorization: Bearer sk_live_your_api_key"
import requests
response = requests.get(
"https://tuberalytics.com/api/v1/leaderboards/channels",
params={"sort_by": "skool_mrr"},
headers={"Authorization": "Bearer sk_live_your_api_key"}
)
data = response.json()
require "net/http"
require "json"
uri = URI("https://tuberalytics.com/api/v1/leaderboards/channels?sort_by=skool_mrr")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer sk_live_your_api_key"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)
const response = await fetch(
"https://tuberalytics.com/api/v1/leaderboards/channels?sort_by=skool_mrr",
{ headers: { "Authorization": "Bearer sk_live_your_api_key" } }
);
const data = await response.json();
$ch = curl_init("https://tuberalytics.com/api/v1/leaderboards/channels?sort_by=skool_mrr");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer sk_live_your_api_key"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
Example Response
{
"data": [
{
"id": 170,
"title": "Nick Saraev",
"handle": "@nicksaraev",
"subscriber_count": 336000,
"average_views": 42598,
"avg_views_to_subs_ratio": 0.131,
"positive_outliers_count": 30,
"quality_classification": "rising",
"has_skool": true,
"skool_estimated_mrr": 3864
}
],
"meta": {
"current_page": 1,
"per_page": 25,
"total_pages": 40,
"total_count": 985
}
}
Video Leaderboard
GET /api/v1/leaderboards/videos
Get a ranked list of top-performing videos.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
sort_by |
string | No | Sort field: views (default), outlier_ratio, likes, vpd |
page |
integer | No | Page number (default: 1) |
per_page |
integer | No | Results per page (default: 25) |
Example Request
curl -X GET "https://tuberalytics.com/api/v1/leaderboards/videos?sort_by=outlier_ratio" \
-H "Authorization: Bearer sk_live_your_api_key"
import requests
response = requests.get(
"https://tuberalytics.com/api/v1/leaderboards/videos",
params={"sort_by": "outlier_ratio"},
headers={"Authorization": "Bearer sk_live_your_api_key"}
)
data = response.json()
require "net/http"
require "json"
uri = URI("https://tuberalytics.com/api/v1/leaderboards/videos?sort_by=outlier_ratio")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer sk_live_your_api_key"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)
const response = await fetch(
"https://tuberalytics.com/api/v1/leaderboards/videos?sort_by=outlier_ratio",
{ headers: { "Authorization": "Bearer sk_live_your_api_key" } }
);
const data = await response.json();
$ch = curl_init("https://tuberalytics.com/api/v1/leaderboards/videos?sort_by=outlier_ratio");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer sk_live_your_api_key"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
Example Response
{
"data": [
{
"id": 789,
"youtube_video_id": "abc123def456",
"channel_id": 170,
"title": "CLAUDE CODE FULL COURSE 4 HOURS: Build & Sell (2026)",
"published_at": "2026-03-15T10:00:00Z",
"view_count": 809358,
"like_count": 25000,
"is_positive_outlier": true,
"average_views_ratio": 19.0,
"views_per_day": 11500
}
],
"meta": {
"current_page": 1,
"per_page": 25,
"total_pages": 100,
"total_count": 2500
}
}
Niche Leaderboard
GET /api/v1/leaderboards/niches
Get a ranked list of top niches by various market metrics.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
sort_by |
string | No | Sort field: channels (default), demand, supply, monetization, skool_mrr |
page |
integer | No | Page number (default: 1) |
per_page |
integer | No | Results per page (default: 25) |
Example Request
curl -X GET "https://tuberalytics.com/api/v1/leaderboards/niches?sort_by=demand" \
-H "Authorization: Bearer sk_live_your_api_key"
import requests
response = requests.get(
"https://tuberalytics.com/api/v1/leaderboards/niches",
params={"sort_by": "demand"},
headers={"Authorization": "Bearer sk_live_your_api_key"}
)
data = response.json()
require "net/http"
require "json"
uri = URI("https://tuberalytics.com/api/v1/leaderboards/niches?sort_by=demand")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer sk_live_your_api_key"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)
const response = await fetch(
"https://tuberalytics.com/api/v1/leaderboards/niches?sort_by=demand",
{ headers: { "Authorization": "Bearer sk_live_your_api_key" } }
);
const data = await response.json();
$ch = curl_init("https://tuberalytics.com/api/v1/leaderboards/niches?sort_by=demand");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer sk_live_your_api_key"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
Example Response
{
"data": [
{
"id": 15,
"name": "home fitness",
"slug": "home-fitness",
"channels_count": 87,
"market_type": "health_fitness",
"supply_score": 7.2,
"demand_score": 8.4,
"monetization_score": 6.9,
"total_skool_mrr": 125000,
"avg_views_per_video": 45000
}
],
"meta": {
"current_page": 1,
"per_page": 25,
"total_pages": 8,
"total_count": 195
}
}