Docs
Channel Search
Search Shorts and Longform channels, YouTube search, and channel trends tools.
Search Algrow's database of YouTube Shorts and Longform channels with similarity search, keyword matching, and advanced filters.
search_shorts_channels
Search Shorts channels — either similar to a given channel/topic, OR filtered by how they monetize (selling courses, digital products, memberships, sponsorships, affiliate, merch, software, services, newsletter, licensing — any revenue stream outside AdSense). Returns channel metadata, growth metrics, monetization profile per card, and recent videos.
| Parameter | Type | Default | Description |
|---|---|---|---|
| q | string | null | Search query. Accepts a channel ID, @handle, channel URL, a video URL (e.g. https://youtube.com/shorts/..., https://youtu.be/...), or topic keywords. Comma-separated for multiple, prefix with - to exclude. Leave empty only for browse-by-monetization-filter mode — pair with sells or monetization. |
| sells | string | null | Filter by whether/what the channel sells. Pass yes/no or a product type (digital products, courses, memberships, software, merch, affiliate, services). |
| monetization | string | null | Filter to a specific monetization method: digital_product, course, community, membership, affiliate, physical, merch, tool_software, newsletter, sponsorship, licensing, service_leadgen. Implies sells=yes. |
| metric | string | null | Browse-mode sort (used when q is empty): views/subs (24h, default), views_48h/subs_48h. |
| sort | string | null | Similar-mode sort (used when q is set): {field}_{asc|desc}. Fields: subs, views, videos, age, added, views_24h, subs_24h, views_48h, similarity. Defaults to similarity when searching. |
| page | integer | 1 | Page number (1-indexed, max 20) |
| min_subs | integer | null | Minimum subscriber count |
| max_subs | integer | null | Maximum subscriber count |
| min_avg_views | integer | null | Minimum average views per video |
| max_avg_views | integer | null | Maximum average views per video |
| min_age | integer | null | Minimum channel age in days since first upload |
| max_age | integer | null | Maximum channel age in days since first upload |
| min_uploads | integer | null | Minimum number of videos |
| max_uploads | integer | null | Maximum number of videos |
| min_views | integer | null | Minimum total view count |
| max_views | integer | null | Maximum total view count |
| min_views_24h | integer | null | Minimum views gained in last 24 hours |
| max_views_24h | integer | null | Maximum views gained in last 24 hours |
| min_views_48h | integer | null | Minimum views gained in last 48 hours |
| max_views_48h | integer | null | Maximum views gained in last 48 hours |
| min_days_added | integer | null | Minimum days since channel was added to Algrow's database (NOT channel age) |
| max_days_added | integer | null | Maximum days since channel was added to Algrow's database (NOT channel age) |
| min_similarity | integer | null | Minimum similarity score (0-100). Only effective when q is a channel identifier or topic keyword — the floor tightens the default similarity bar. Set when the user asks for e.g. 50%+ similar. |
| languages | string | null | Shorts only. Comma-separated full names: English, Spanish, Portuguese, German, French, Japanese, Korean (e.g. Spanish,Portuguese). Defaults to English. Longform is English only and ignores it. |
Search for 'roblox' Shorts channels in English under 50k subs that gained over 100k views in the last 24 hours
search_longform_channels
Search Longform channels — either similar to a given channel/topic, OR filtered by how they monetize (selling courses, digital products, memberships, sponsorships, affiliate, merch, software, services, newsletter, licensing — any revenue stream outside AdSense). Returns channel metadata, growth metrics, monetization profile per card, and recent videos with duration.
| Parameter | Type | Default | Description |
|---|---|---|---|
| q | string | null | Search query. Accepts a channel ID, @handle, channel URL, a video URL (e.g. https://youtube.com/shorts/..., https://youtu.be/...), or topic keywords. Comma-separated for multiple, prefix with - to exclude. Leave empty only for browse-by-monetization-filter mode — pair with sells or monetization. |
| sells | string | null | Filter by whether/what the channel sells. Pass yes/no or a product type (digital products, courses, memberships, software, merch, affiliate, services). |
| monetization | string | null | Filter to a specific monetization method: digital_product, course, community, membership, affiliate, physical, merch, tool_software, newsletter, sponsorship, licensing, service_leadgen. Implies sells=yes. |
| metric | string | null | Browse-mode growth ranking (used when q is empty and sort is not set): views/subs (24h, default), views_48h/subs_48h. Ignored when sort is set. |
| sort | string | null | Sort as {field}_{asc|desc}. Fields: subs, views, videos, age, total_views, added, views_24h, subs_24h, views_48h, similarity. Defaults to similarity when searching. Also works in browse mode (no q), where it overrides metric — age_asc = newest channels first. |
| page | integer | 1 | Page number (1-indexed, max 20) |
| min_subs | integer | null | Minimum subscriber count |
| max_subs | integer | null | Maximum subscriber count |
| min_avg_views | integer | null | Minimum average views per video |
| max_avg_views | integer | null | Maximum average views per video |
| min_age | integer | null | Minimum channel age in days since first upload |
| max_age | integer | null | Maximum channel age in days since first upload |
| min_uploads | integer | null | Minimum number of videos |
| max_uploads | integer | null | Maximum number of videos |
| min_duration | integer | null | Minimum average video duration in seconds |
| max_duration | integer | null | Maximum average video duration in seconds |
| monetized | string | null | Filter by YouTube ad-monetization eligibility: yes or no. |
| faceless | string | null | Filter by faceless classification: yes = only faceless channels (no on-camera host), no = only on-camera channels. Channels not yet classified are excluded from both filtered views. |
| category | string | null | Restrict to one content category. Only set when the user explicitly uses one of these keywords: tutorial, educational, documentary, gaming, reviews, commentary, compilation, stories, interview, challenge videos, diy, speeches, memes. Don't infer from topic. |
| min_views_24h | integer | null | Minimum views gained in last 24 hours |
| max_views_24h | integer | null | Maximum views gained in last 24 hours |
| min_views_48h | integer | null | Minimum views gained in last 48 hours |
| max_views_48h | integer | null | Maximum views gained in last 48 hours |
| min_days_added | integer | null | Minimum days since channel was added to Algrow's database (NOT channel age) |
| max_days_added | integer | null | Maximum days since channel was added to Algrow's database (NOT channel age) |
| remove_low_quality | boolean | false | Exclude channels flagged as low-quality. Browse mode only. |
| remove_music | boolean | false | Exclude music channels. Browse mode only. |
| min_similarity | integer | null | Minimum similarity score (0-100). Only effective when q is a channel identifier or topic keyword — the floor tightens the default 30% similarity bar. Values below 30 are clamped to the default. |
| gender | string | null | Estimated-audience gender filter: 'male' | 'female' | 'balanced'. Set when the user asks for channels whose AUDIENCE/viewers are men or women (e.g. 'channels watched mostly by women'). DEFAULT: None. |
| age | string | null | Estimated-audience age filter: 'young' (13-34) | 'middle' (35-54) | 'elderly' (55+), comma-separated for several, or raw brackets like '55-64,65+'. Set when the user describes the audience's age (e.g. 'channels for older viewers' → 'elderly'). DEFAULT: None. |
| min_revenue | integer | null | Only channels estimated to have earned at least this much (USD, LIFETIME AdSense — the returned est_lifetime_revenue band is lifetime too, never monthly). Set when the user asks for channels 'earning/doing/making $X+'. Combines with gender/age/monetized — 'monetized female elderly channels doing $10k' is ONE call. Revenue filtering is browse-style: q is ignored when this is set. Newest-first = sort='age_asc' (or 'recent'). DEFAULT: None. |
| max_revenue | integer | null | Only channels below this estimated lifetime earnings (USD). DEFAULT: None. |
Search for 'top 10 unsolved mysteries' monetized English longform channels under 100k subs with at least 10k average views, sorted by newest
youtube_search
Search everything on YouTube in one call — videos, channels, and playlists all in the same result list. Sort by relevance, views, upload date, or rating. Narrow by duration, upload recency, or a custom “last N days” window.
| Parameter | Type | Default | Description |
|---|---|---|---|
| query | string | required | Search query. |
| type | string | all | all, video, channel, playlist, movie. |
| sort_by | string | relevance | relevance, view_count, upload_date, rating. |
| upload_date | string | all | all, hour, today, week, month, year. |
| duration | string | all | short (<4m), medium (4–20m), long (>20m). Videos only. |
| limit | integer | 30 | Max results (1–100). |
| published_within_days | integer | null | Narrow video results to those posted within the last N days. Finer than upload_date — use for "last 3 days" phrasings. |
Find the most-viewed 'rise and fall' videos posted in the last 3 days
channel_trends
Browse the top-growing channels ranked by recent view or subscriber deltas — the leaderboard that powers the Channel Trends page. Use this for any browse-by-filter query that doesn't have a real topic, @handle, or video URL to anchor it (e.g. “newest channels”, “biggest channels by subs”, “channels that started in the last 2 months”). Pair with q to narrow the leaderboard to a niche.
| Parameter | Type | Default | Description |
|---|---|---|---|
| content_type | string | shorts | shorts or longform. |
| metric | string | views | Sort metric. 24h: views, subs. Rolling 48h: views_48h, subs_48h. similarity only when q is set. |
| q | string | null | Optional keyword or @handle to narrow the leaderboard to a niche. Comma-separated for multiple, - to exclude. Never pass filler words like “trending” / “new” — those are filters, not topics. |
| page | integer | 1 | Page (1–20). |
| per_page | integer | 50 | Results per page (1–50). |
| min_subs | integer | null | Minimum subscriber count. |
| max_subs | integer | null | Maximum subscriber count. |
| min_avg_views | integer | null | Minimum average views per video. |
| max_avg_views | integer | null | Maximum average views per video. |
| min_age | integer | null | Minimum channel age in days since first upload. |
| max_age | integer | null | Maximum channel age in days since first upload. Use when user says 'new channels', e.g. max_age=60 = started in last 2 months. |
| min_videos | integer | null | Minimum number of videos. |
| max_videos | integer | null | Maximum number of videos. |
| min_avg_duration | integer | null | Minimum average video duration in seconds (longform only). Hard floor of 420 (7 min) is enforced server-side — values below 420 are clamped up. |
| max_avg_duration | integer | null | Maximum average video duration in seconds (longform only). Must be >= 420 (7 min); the longform index excludes anything shorter. |
| min_days_added | integer | null | Minimum days since Algrow added the channel to its index. This is index age, not channel age or upload recency. |
| max_days_added | integer | null | Maximum days since Algrow added the channel to its index. Use for requests such as 'added in the last 30 days'. This is index age, not channel age or upload recency. |
| remove_low_quality | boolean | false | Exclude channels flagged low-quality. |
| remove_music | boolean | false | Exclude music channels (longform only). |
| category | string | null | Longform-only content-category filter. Only set when the user explicitly uses one of these keywords: tutorial, educational, documentary, gaming, reviews, commentary, compilation, stories, interview, challenge videos, diy, speeches, memes. Silently ignored on shorts. |
| monetized | string | null | Longform-only filter on YouTube ad-monetization eligibility: 'yes' or 'no'. Silently ignored on shorts. DEFAULT: None. |
| min_views_24h | integer | null | Minimum views gained in the last 24 hours. DEFAULT: None. |
| max_views_24h | integer | null | Maximum views gained in the last 24 hours. DEFAULT: None. |
| min_views_48h | integer | null | Minimum views gained in the last 48 hours. DEFAULT: None. |
| max_views_48h | integer | null | Maximum views gained in the last 48 hours. DEFAULT: None. |
| min_similarity | integer | null | Minimum similarity score (0-100). Only effective when q is set — it strengthens the default similarity bar on the keyword slice. DEFAULT: None. |
| gender | string | null | Estimated-audience gender filter: 'male' | 'female' | 'balanced'. Set when the user asks for channels whose AUDIENCE/viewers are men or women (e.g. 'fastest growing channels watched mostly by women'). DEFAULT: None. |
| age | string | null | Estimated-audience age filter: 'young' (13-34) | 'middle' (35-54) | 'elderly' (55+), comma-separated for several, or raw brackets like '55-64,65+'. Set when the user describes the audience's age. DEFAULT: None. |
| languages | string | null | Shorts only. Comma-separated full names: English, Spanish, Portuguese, German, French, Japanese, Korean (e.g. Spanish,Portuguese). Defaults to English. Longform is English only and ignores it. |
Show me the fastest-growing longform cooking channels that started in the last 90 days
trending_subjects
Subjects gaining YouTube views right now, this week vs last, from the Trending page, each with its top 5 videos. 20 / 50 / 100 calls a day.
"What topics are blowing up on YouTube right now?"
| Parameter | Type | Default | Description |
|---|---|---|---|
| sort | string | rising | rising (biggest jump vs last week), views or biggest (most views a day), total (most views all time), outlier (top outlier videos), channels or videos (most behind it). With channel, only rising or biggest. |
| niche | string | null | Optional niche key, e.g. gaming, true_crime. |
| q | string | null | Only subjects whose name holds this word. |
| limit | integer | 20 | Rows per call, 1–50. |
| offset | integer | 0 | Skip this many rows, to page through total. |
| min_videos | integer | null | Only subjects with at least this many videos behind them. |
| min_channels | integer | null | Only subjects with at least this many channels behind them. |
| sub_niche | string | null | A sub-niche inside niche; a niche's list returns its sub_niches. |
| win | integer | null | Days the list counts, 1–30 (1 = last 24 hours, 2 = 48 hours, 7 = a week). Default the week. Not with channel. |
| channel | string | null | @handle, channel link or UC id: the trends among the videos most like that channel's. The first call can take a few seconds; while search_status.complete is false, call again for more. |
What subjects are trending in true crime this week?
trending_title_formats
Title formats gaining YouTube views right now, this week vs last, from the Trending page, each with its top 5 videos. 20 / 50 / 100 calls a day.
"Give me trending title formats I could use for a cooking video"
| Parameter | Type | Default | Description |
|---|---|---|---|
| sort | string | rising | rising (biggest jump vs last week), views or biggest (most views a day), total (most views all time), outlier (top outlier videos), channels or videos (most behind it). With channel, only rising or biggest. |
| niche | string | null | Optional niche key, e.g. gaming, true_crime. |
| q | string | null | Only formats whose name holds this word. |
| limit | integer | 20 | Rows per call, 1–50. |
| offset | integer | 0 | Skip this many rows, to page through total. |
| min_videos | integer | null | Only formats with at least this many videos behind them. |
| min_channels | integer | null | Only formats with at least this many channels behind them. |
| sub_niche | string | null | A sub-niche inside niche; a niche's list returns its sub_niches. |
| win | integer | null | Days the list counts, 1–30 (1 = last 24 hours, 2 = 48 hours, 7 = a week). Default the week. Not with channel. |
| channel | string | null | @handle, channel link or UC id: the trends among the videos most like that channel's. The first call can take a few seconds; while search_status.complete is false, call again for more. |
| used | string | null | With channel, new = formats the channel hasn't used yet, used = ones it has. |
What title formats are working in gaming right now?
trend_videos
Every video behind one row of trending_subjects or trending_title_formats, with its views, the views it gained this period, channel, upload date and niche, biggest gainers first. Counts toward the viral video search limit.
"Which videos are using that trending title format?"
| Parameter | Type | Default | Description |
|---|---|---|---|
| kind | string | required | subjects or formats, the list the row is from. |
| key | string | required | The row's template (formats) or its key, else its name (subjects). |
| niche | string | null | The niche the list was for, if any. |
| sub_niche | string | null | The sub-niche the list was for, if any. |
| channel | string | null | The channel the list was for, if any. |
| limit | integer | 20 | Videos to return, 1–50. |
Show me all the videos behind that trending subject
shorts_title_formats
Title formats trending on YouTube Shorts (the extension's Title Ideas), mined nightly from recent Shorts, each with how many videos use it, their average outlier score and views, and up to 3 example videos. 20 / 50 / 100 calls a day.
"What Shorts title formats are working right now?"
| Parameter | Type | Default | Description |
|---|---|---|---|
| language | string | English | Channel language of the Shorts, e.g. English (default) or Spanish. Falls back to every language when it has none. |
| limit | integer | 30 | Formats to return, 1–100. |
Give me title ideas for my Shorts
get_channel_title_formats
One channel's title formats, its long-form videos grouped by title shape, with views, what's rising this week, when it last used each and the top videos. 100 / 200 / 400 calls a day; asking about the same channel again within 24 hours is free.
"Which of this channel's title formats gets the most views per video?"
| Parameter | Type | Default | Description |
|---|---|---|---|
| channel_id | string | required | YouTube channel ID (UC...). Use resolve_handle first for a @handle. |
| sort | string | this_week | this_week, growing, views, average, newest or videos. |
| limit | integer | 50 | Formats to return, 1–100. |
| min_videos | integer | 1 | Only formats used at least this many times. Default 1 keeps one-offs, labelled new, hit or used_once. |
What title formats does @MrBeast use, and which one is working right now?
