Endpoint Playground
Searches public YouTube channel profiles stored in a search index — subscriber, video and view counts, region, bio and links, discovered via Common Crawl and Wikidata and hydrated from each channel's public About page. Sort enum: `relevance`, `followers_desc`, `followers_asc`, `views_desc`, `videos_desc`, `hydrated_at_desc`, `hydrated_at_asc`. Some channels hide their subscriber, video, or view count; the `_available` flags on each item distinguish a hidden count (stored as `0`, `*_available: false`) from a genuine `0`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100). Dataset Playground requests query indexed data and do not apply proxy routing.
14 Oct 2026: 20 items; 16 fields had a value in every checked item and 2 varied between items.
Sample value profiles: joined_date: 2005-12-11 to 2020-02-04; followers_count: 94,600,000 to 518,000,000, median 120,000,000; channel_url: youtube.com.
curl "https://api.crawlora.net/api/v1/datasets/youtube-creators/search?sort=relevance" \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| q | string | No | Full-text query over channel_name and bio, max 256 characters | |
| channel_id | string | No | Exact channel id filter (e.g. UCxxxxxxxxxxxxxxxxxxxxxxxx), max 128 characters | |
| region | string | No | Exact channel region/country filter (case-insensitive), max 128 characters | |
| discovery_source | string | No | Exact filter for how the channel was discovered (e.g. commoncrawl, wikidata), max 128 characters | |
| has_bio | boolean | No | Filter by a non-empty About bio | |
| has_links | boolean | No | Filter by at least one linked external URL | |
| followers_count_available | boolean | No | Filter by whether the channel exposes a public subscriber count | |
| videos_count_available | boolean | No | Filter by whether the channel has a known uploaded-video count | |
| views_count_available | boolean | No | Filter by whether the channel has a known total view count | |
| min_followers | integer | No | Minimum subscriber count | |
| max_followers | integer | No | Maximum subscriber count | |
| min_videos | integer | No | Minimum uploaded-video count | |
| max_videos | integer | No | Maximum uploaded-video count | |
| min_views | integer | No | Minimum total view count | |
| max_views | integer | No | Maximum total view count | |
| joined_after | string | No | Channels created on or after this date (RFC3339 or YYYY-MM-DD) | |
| joined_before | string | No | Channels created on or before this date (RFC3339 or YYYY-MM-DD) | |
| hydrated_after | string | No | Records last refreshed on or after this date (RFC3339 or YYYY-MM-DD) | |
| hydrated_before | string | No | Records last refreshed on or before this date (RFC3339 or YYYY-MM-DD) | |
| sort | string | No | relevance | Sort enum: relevance, followers_desc, followers_asc, views_desc, videos_desc, hydrated_at_desc, hydrated_at_asc |
| page | integer | No | Page number, defaults to 1 | |
| page_size | integer | No | Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000 |
{
"code": 200,
"msg": "OK",
"data": {
"dataset": "youtube-creators",
"items": [
{
"channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
"channel_name": "MrBeast",
"channel_url": "https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA",
"profile_pic": "https://yt3.googleusercontent.com/avatar.jpg",
"links": [
"https://www.beastphilanthropy.org"
],
"followers_count": 300000000,
"followers_count_available": true,
"videos_count": 830,
"videos_count_available": true,
"views_count": 55000000000,
"views_count_available": true,
"region": "US",
"bio": "SUBSCRIBE FOR A COOKIE!",
"joined_date": "2012-02-20T00:00:00Z",
"discovery_source": "commoncrawl",
"status": "ok",
"discovered_at": "2026-07-03T00:00:00Z",
"hydrated_at": "2026-08-19T00:00:00Z"
}
],
"page": 1,
"page_size": 20,
"total": 2490319,
"sort": "followers_desc"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.