Search for YouTube creators based on custom filter criteria
Search for YouTube creators using advanced filters such as displayName, subscriber count, video performance, and more. Supports fuzzy search, pagination, and multiple filter combinations with up to 10 filters per request. The creatorList is, by default, sorted by displayName. Custom sorting can be applied using the sortBy parameter.
POST
/
youtube
/
search
Search for YouTube creators based on custom filter criteria
curl --request POST \
--url https://api.example.com/youtube/search \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"filters": [
{
"filterName": "<string>",
"op": {},
"value": "<string>",
"isFuzzySearch": true
}
],
"pageSize": 123,
"offset": 123,
"desc": 123,
"sortBy": "<string>"
}
'curl --request POST \
--url https://api.example.com/youtube/search \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"filters": [
{
"filterName": "<string>",
"op": {},
"value": "<string>",
"isFuzzySearch": true
}
],
"pageSize": 123,
"offset": 123,
"desc": 123,
"sortBy": "<string>"
}
'const options = {
method: 'POST',
headers: {'api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
filters: [{filterName: '<string>', op: {}, value: '<string>', isFuzzySearch: true}],
pageSize: 123,
offset: 123,
desc: 123,
sortBy: '<string>'
})
};
fetch('https://api.example.com/youtube/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.example.com/youtube/search"
payload = {
"filters": [
{
"filterName": "<string>",
"op": {},
"value": "<string>",
"isFuzzySearch": True
}
],
"pageSize": 123,
"offset": 123,
"desc": 123,
"sortBy": "<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://api.example.com/youtube/search",
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([
'filters' => [
[
'filterName' => '<string>',
'op' => [
],
'value' => '<string>',
'isFuzzySearch' => true
]
],
'pageSize' => 123,
'offset' => 123,
'desc' => 123,
'sortBy' => '<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://api.example.com/youtube/search")
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 \"filters\": [\n {\n \"filterName\": \"<string>\",\n \"op\": {},\n \"value\": \"<string>\",\n \"isFuzzySearch\": true\n }\n ],\n \"pageSize\": 123,\n \"offset\": 123,\n \"desc\": 123,\n \"sortBy\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodypackage main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/youtube/search"
payload := strings.NewReader("{\n \"filters\": [\n {\n \"filterName\": \"<string>\",\n \"op\": {},\n \"value\": \"<string>\",\n \"isFuzzySearch\": true\n }\n ],\n \"pageSize\": 123,\n \"offset\": 123,\n \"desc\": 123,\n \"sortBy\": \"<string>\"\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://api.example.com/youtube/search")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"filters\": [\n {\n \"filterName\": \"<string>\",\n \"op\": {},\n \"value\": \"<string>\",\n \"isFuzzySearch\": true\n }\n ],\n \"pageSize\": 123,\n \"offset\": 123,\n \"desc\": 123,\n \"sortBy\": \"<string>\"\n}")
.asString();{
"id": "<string>",
"email": "<string>"
}string
required
You need a valid api-key for authentication.
object[]
required
An array of filter objects that includes:
filterName, op, and value. For the full list of supported filterName and their corresponding data types, please refer to Configuring Custom Search Filters and Examples. You can combine multiple filters in a single request to narrow down your search results. The API supports up to 10 filters per request.
Maximum array length: 10Show properties
Show properties
string
required
The field to apply the filter on.
Show properties
Show properties
string
The name of the YouTube channel.
Supported operators include:
Supported operators include:
in, =string
The YouTube username/handle.
Constraint: Must be 3-100 characters, allowing letters, numbers, dots, hyphens, and underscores. Can include optional
Supported operators include:
Constraint: Must be 3-100 characters, allowing letters, numbers, dots, hyphens, and underscores. Can include optional
@ prefix (e.g., mrbeast or @mrbeast). Supported operators include:
in, =string
The primary category of the channel’s content.
Supported operators include:
Supported operators include:
in, =string
The country associated with the channel.
Constraint: Must be in ISO 3166-1 alpha-3 format (e.g.,
Supported operators include:
Constraint: Must be in ISO 3166-1 alpha-3 format (e.g.,
TWN, USA).Supported operators include:
in, =string
The main language of the channel’s videos.
Constraint: Must be in ISO 639-3 format.
Supported operators include:
Constraint: Must be in ISO 639-3 format.
Supported operators include:
in, =string
All languages used in the channel’s videos.
Constraint: Must be in ISO 639-3 format.
Supported operators include:
Constraint: Must be in ISO 639-3 format.
Supported operators include:
in, =string
The secondary language used in the channel’s videos.
Constraint: Must be in ISO 639-3 format.
Supported operators include:
Constraint: Must be in ISO 639-3 format.
Supported operators include:
in, =string
Keywords/tags used in video descriptions or tags.
Supported operators include:
in, =string
Represents unified content theme identified by CreatorDB’s AI model.
Supported operators include:
in, =string
YouTube specific topics associated with the channel.
Supported operators include:
in, =string
The country where the channel’s audience is most concentrated.
Constraint: Must be in ISO 3166-1 alpha-3 format.
Supported operators include:
Constraint: Must be in ISO 3166-1 alpha-3 format.
Supported operators include:
in, =string
The primary age range of the channel’s audience.
Allowed Values:
Supported operators include:
Allowed Values:
13-17, 18-24, 25-34, 35-44, 45-54, 55-64, 65+. Supported operators include:
in, =string
The dominant gender group among the channel’s audience.
Allowed Values:
Supported operators include:
Allowed Values:
male, female. Supported operators include:
in, =number
The total number of subscribers of the YouTube channel.
Supported operators include:
Supported operators include:
>, =, <number
The total number of videos uploaded by the creator.
Supported operators include:
Supported operators include:
>, =, <number
The total number of views across all videos.
Supported operators include:
Supported operators include:
>, =, <number
The timestamp of the most recent video upload (Unix timestamp in milliseconds).
Supported operators include:
Supported operators include:
>, =, <number
The growth rate of subscribers in the past 30 days.
Supported operators include:
Supported operators include:
>, =, <number
Average likes per video (based on recent long-form videos).
Supported operators include:
Supported operators include:
>, =, <number
Average likes per video (based on all-time long-form videos).
Supported operators include:
Supported operators include:
>, =, <number
Median likes per video (based on recent long-form videos).
Supported operators include:
Supported operators include:
>, =, <number
Median likes per video (based on all-time long-form videos).
Supported operators include:
Supported operators include:
>, =, <number
Average comments per video (based on recent long-form videos).
Supported operators include:
Supported operators include:
>, =, <number
Average comments per video (based on all-time long-form videos).
Supported operators include:
Supported operators include:
>, =, <number
Average views per video (based on recent long-form videos).
Supported operators include:
Supported operators include:
>, =, <number
Average views per video (based on all-time long-form videos).
Supported operators include:
Supported operators include:
>, =, <number
Median views per video (based on recent long-form videos).
Supported operators include:
Supported operators include:
>, =, <number
Median views per video (based on all-time long-form videos).
Supported operators include:
Supported operators include:
>, =, <number
Average engagement rate for recent long-form videos. Calculated as Subscribers(Likes+Comments).
Supported operators include:
Supported operators include:
>, =, <number
Average engagement rate for all-time long-form videos.
Supported operators include:
Supported operators include:
>, =, <number
Average views per short (based on recent shorts).
Supported operators include:
Supported operators include:
>, =, <number
Average views per short (based on all-time shorts)
Supported operators include:
Supported operators include:
>, =, <number
Median views per short (based on recent shorts).
Supported operators include:
Supported operators include:
>, =, <number
Median views per short (based on all-time shorts).
Supported operators include:
Supported operators include:
>, =, <number
Average likes per short (based on recent shorts).
Supported operators include:
Supported operators include:
>, =, <number
Median likes per short (based on recent shorts).
Supported operators include:
Supported operators include:
>, =, <number
Median likes per short (based on all-time shorts).
Supported operators include:
Supported operators include:
>, =, <number
Average comments per short (based on recent shorts).
Supported operators include:
Supported operators include:
>, =, <number
Average comments per short (based on all-time shorts).
Supported operators include:
Supported operators include:
>, =, <number
Average engagement rate for recent shorts. Calculated as Subscribers(Likes+Comments).
Supported operators include:
Supported operators include:
>, =, <number
Average engagement rate for all-time shorts.
Supported operators include:
Supported operators include:
>, =, <number
Average views across all content types (Videos+Shorts) in recent posts.
Supported operators include:
Supported operators include:
>, =, <number
Average likes across all content types (Videos+Shorts) in recent posts.
Supported operators include:
Supported operators include:
>, =, <number
Average comments across all content types (Videos+Shorts) in recent posts.
Supported operators include:
Supported operators include:
>, =, <number
Average engagement rate across all content types in recent posts.
Supported operators include:
Supported operators include:
>, =, <number
Growth rate of average views across all content types in recent posts.
Supported operators include:
Supported operators include:
>, =, <number
Growth rate of average likes across all content types in recent posts.
Supported operators include:
Supported operators include:
>, =, <number
Growth rate of average comments across all content types in recent posts.
Supported operators include:
Supported operators include:
>, =, <number
Growth rate of average engagement rate across all content types in recent posts.
Supported operators include:
Supported operators include:
>, =, <number
Growth rate of average views per long-form video in recent posts.
Supported operators include:
Supported operators include:
>, =, <number
Growth rate of average likes per long-form video in recent posts.
Supported operators include:
Supported operators include:
>, =, <number
Growth rate of average comments per short in recent posts.
Supported operators include:
Supported operators include:
>, =, <number
Growth rate of average engagement rate per short in recent posts.
Supported operators include:
Supported operators include:
>, =, <number
Percentile ranking of subscriber count compared to all YouTube channels (0-100).
Supported operators include:
Supported operators include:
>, =, <number
Percentile ranking of average content views compared to all YouTube channels (0-100).
Supported operators include:
Supported operators include:
>, =, <number
Percentile ranking of average content engagement compared to all YouTube channels (0-100).
Supported operators include:
Supported operators include:
>, =, <number
Growth rate of subscriber count percentile ranking.
Supported operators include:
Supported operators include:
>, =, <number
Growth rate of average content views percentile ranking.
Supported operators include:
Supported operators include:
>, =, <number
Growth rate of average content engagement percentile ranking.
Supported operators include:
Supported operators include:
>, =, <number
CreatorDB proprietary platform score indicating overall influence.
Supported operators include:
Supported operators include:
>, =, <number
The timestamp when the channel was created (Unix timestamp in milliseconds).
Supported operators include:
Supported operators include:
>, =, <number
Number of videos published in the last 30 days.
Supported operators include:
Supported operators include:
>, =, <number
Number of videos published in the last 90 days.
Supported operators include:
Supported operators include:
>, =, <number
The percentage of male subscribers in the channel’s audience (0-100).
Supported operators include:
Supported operators include:
>, =, <number
The percentage of female subscribers in the channel’s audience (0-100).
Supported operators include:
Supported operators include:
>, =, <boolean
Indicates whether the channel has published sponsored content.
Supported operators include:
Supported operators include:
=enum<string>
required
The comparison operator. Available values include
in, >, =, <. Stringfields support:=,in.Numberfields support:>,=,<.Booleanfields support:=
in, >, =, <string
required
The data type depends on the
filterName. - String fields require
stringorstring[]. - Number fields require
number. - Boolean fields require
boolean. - Operator
inrequiresstring[], operator=requiresstringfor string fields.
boolean
default:"false"
When set to
true, the filter will perform a fuzzy match for string-type values. Only applicable when the filterName corresponds to a string field. integer
required
Specifies the maximum number of results to return in a single response. The upper limit is 100.
Required range:
Required range:
1 ≤ x ≤ 100integer
required
Indicates the number of records to skip before starting to return results. Used for pagination.
Required range:
Required range:
x ≥ 0integer
Determines the sort order. When set to
true, results will be in descending order. When false, results will be in ascending order.string
The field to sort results by. For example, if the value is
totalFollowers, the creators that meet the search criteria are organized by the number of followers they have.string
required
Unique identifier for the newly created user
string
required
User’s email address
Last modified on June 8, 2026
⌘I
Search for YouTube creators based on custom filter criteria
curl --request POST \
--url https://api.example.com/youtube/search \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"filters": [
{
"filterName": "<string>",
"op": {},
"value": "<string>",
"isFuzzySearch": true
}
],
"pageSize": 123,
"offset": 123,
"desc": 123,
"sortBy": "<string>"
}
'curl --request POST \
--url https://api.example.com/youtube/search \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"filters": [
{
"filterName": "<string>",
"op": {},
"value": "<string>",
"isFuzzySearch": true
}
],
"pageSize": 123,
"offset": 123,
"desc": 123,
"sortBy": "<string>"
}
'const options = {
method: 'POST',
headers: {'api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
filters: [{filterName: '<string>', op: {}, value: '<string>', isFuzzySearch: true}],
pageSize: 123,
offset: 123,
desc: 123,
sortBy: '<string>'
})
};
fetch('https://api.example.com/youtube/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.example.com/youtube/search"
payload = {
"filters": [
{
"filterName": "<string>",
"op": {},
"value": "<string>",
"isFuzzySearch": True
}
],
"pageSize": 123,
"offset": 123,
"desc": 123,
"sortBy": "<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://api.example.com/youtube/search",
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([
'filters' => [
[
'filterName' => '<string>',
'op' => [
],
'value' => '<string>',
'isFuzzySearch' => true
]
],
'pageSize' => 123,
'offset' => 123,
'desc' => 123,
'sortBy' => '<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://api.example.com/youtube/search")
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 \"filters\": [\n {\n \"filterName\": \"<string>\",\n \"op\": {},\n \"value\": \"<string>\",\n \"isFuzzySearch\": true\n }\n ],\n \"pageSize\": 123,\n \"offset\": 123,\n \"desc\": 123,\n \"sortBy\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodypackage main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/youtube/search"
payload := strings.NewReader("{\n \"filters\": [\n {\n \"filterName\": \"<string>\",\n \"op\": {},\n \"value\": \"<string>\",\n \"isFuzzySearch\": true\n }\n ],\n \"pageSize\": 123,\n \"offset\": 123,\n \"desc\": 123,\n \"sortBy\": \"<string>\"\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://api.example.com/youtube/search")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"filters\": [\n {\n \"filterName\": \"<string>\",\n \"op\": {},\n \"value\": \"<string>\",\n \"isFuzzySearch\": true\n }\n ],\n \"pageSize\": 123,\n \"offset\": 123,\n \"desc\": 123,\n \"sortBy\": \"<string>\"\n}")
.asString();{
"id": "<string>",
"email": "<string>"
}