Discover/ChannelCrawler API
live

ChannelCrawler APIapp.channelcrawler.com

Search 25M+ YouTube channels by keyword, category, country, language, and subscriber range. Returns channel stats, engagement rates, and email availability.

Endpoint health
verified 1h ago
get_search_results
get_channel_details
search_channels
1/3 passing latest checkself-healing
Endpoints
3
Updated
26d ago

What is the ChannelCrawler API?

The ChannelCrawler API provides 3 endpoints to search and retrieve data from a database of over 25 million YouTube channels. The search_channels endpoint accepts filters for keyword, category, country, language, and subscriber range, returning a search ID, total match count, email availability count, and an array of channel objects with engagement and audience metadata. Individual channel details are retrievable by channel ID.

Try it
Sort field: '_score' for relevance, 'core.subscribers' for subscriber count
Country filter (e.g., 'United States')
Search keyword (e.g., 'gaming', 'cooking'). Either keyword or category is required.
Topic category filter (e.g., 'Animals', 'Gaming', 'Music'). Either keyword or category is required.
Language filter (e.g., 'English')
Sort direction: 'asc' or 'desc'
Maximum subscriber count filter
Minimum subscriber count filter
api.parse.bot/scraper/b1063f39-0d68-47c0-8358-8b02d6cb5c13/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/b1063f39-0d68-47c0-8358-8b02d6cb5c13/search_channels?sort=_score&country=United+States&keyword=gaming&category=Gaming&language=English&sort_direction=asc&max_subscribers=1000000&min_subscribers=10000' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace app-channelcrawler-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: ChannelCrawler SDK — search YouTube channels, inspect results, get details."""
from parse_apis.channelcrawler_youtube_channel_search_api import (
    ChannelCrawler, Sort, SortDirection, ChannelNotFound
)

client = ChannelCrawler()

# Search for gaming channels sorted by subscriber count
for channel in client.searchresults.search(keyword="gaming", sort=Sort.SUBSCRIBERS, sort_direction=SortDirection.DESC, limit=5):
    print(channel.title, channel.subscribers, channel.has_email)

# Drill into one channel's full details
top = client.searchresults.search(keyword="cooking", limit=1).first()
if top:
    detail = top.details()
    print(detail.name, detail.youtube_url, detail.subscribers_display)

# Fetch a known channel directly by ID
try:
    mrbeast = client.channels.get(channel_id="UCX6OQ3DkcsbYNE6H8uQQuVA")
    print(mrbeast.name, mrbeast.description[:80])
except ChannelNotFound as exc:
    print(f"channel gone: {exc}")

print("exercised: searchresults.search / channel_summary.details / channels.get")
All endpoints · 3 totalmissing one? ·

Search for YouTube channels by keyword, category, country, language, and subscriber range. Creates a new search and returns a search ID along with total matching channel and email counts. Returns up to 10 channel results per search. The channels array may be empty on the free tier; use get_channel_details with known channel IDs for detailed channel data.

Input
ParamTypeDescription
sortstringSort field: '_score' for relevance, 'core.subscribers' for subscriber count
countrystringCountry filter (e.g., 'United States')
keywordstringSearch keyword (e.g., 'gaming', 'cooking'). Either keyword or category is required.
categorystringTopic category filter (e.g., 'Animals', 'Gaming', 'Music'). Either keyword or category is required.
languagestringLanguage filter (e.g., 'English')
sort_directionstringSort direction: 'asc' or 'desc'
max_subscribersintegerMaximum subscriber count filter
min_subscribersintegerMinimum subscriber count filter
Response
{
  "type": "object",
  "fields": {
    "channels": "array of channel objects with id, title, username, subscribers, topics, engagement_rate, avg_views_per_video, has_email, avatar_url, youtube_url, links",
    "search_id": "string — UUID identifying this search, usable with get_search_results",
    "total_with_email": "integer — number of matching channels that have an email on file",
    "channels_returned": "integer — number of channels in the channels array",
    "total_matching_channels": "integer — total number of channels matching the search criteria"
  },
  "sample": {
    "data": {
      "channels": [
        {
          "id": "UC5c9VlYTSvBSCaoMu_GI6gQ",
          "links": [
            "https://discord.gg/totalgaming",
            "https://facebook.com/totalgaming093"
          ],
          "title": "Total Gaming",
          "topics": [
            "Gameplay Walkthroughs & Tutorials"
          ],
          "username": "@totalgaming093",
          "has_email": true,
          "avatar_url": "https://yt3.ggpht.com/ytc/AIdro_l7o9hDEiDVLvAW00YMnnYKzf4UpyJWhREfNWD3V33mBhM=s800-c-k-c0x00ffffff-no-rj",
          "subscribers": 45700000,
          "youtube_url": "https://youtube.com/channel/UC5c9VlYTSvBSCaoMu_GI6gQ",
          "engagement_rate": 8.31,
          "avg_views_per_video": 990803.5
        }
      ],
      "search_id": "2a2dcd37-b4ed-5092-b420-40400f26b994",
      "total_with_email": 200703,
      "channels_returned": 10,
      "total_matching_channels": 1620150
    },
    "status": "success"
  }
}

About the ChannelCrawler API

Search and Filter YouTube Channels

The search_channels endpoint accepts up to seven filter parameters — keyword, category, country, language, min_subscribers, max_subscribers, and sort — and returns a UUID search_id along with total_matching_channels and total_with_email. The response includes a channels array of up to 10 objects per search, each containing id, title, username, subscribers, topics, engagement_rate, avg_views_per_video, has_email, and avatar_url. Either keyword or category must be supplied; all other filters are optional.

Re-query Results with a Search ID

The get_search_results endpoint accepts a search_id UUID from a prior search_channels call and re-returns the same counts and channel array with optional re-sorting via sort and sort_direction. This is useful when you need to retrieve results from a previously executed search without re-running the full filter query.

Individual Channel Lookup

The get_channel_details endpoint takes a channel_id (e.g., UCX6OQ3DkcsbYNE6H8uQQuVA) and returns the channel's name, description, youtube_url, and subscribers_display. Note that subscribers_display may return '0' for channels where YouTube does not expose the subscriber count publicly.

Reliability & maintenanceVerified

The ChannelCrawler API is a managed, monitored endpoint for app.channelcrawler.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when app.channelcrawler.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official app.channelcrawler.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
1h ago
Latest check
1/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Filter YouTube channels by min_subscribers and max_subscribers to identify mid-tier creators for influencer outreach
  • Use total_with_email from search_channels to estimate the size of a reachable creator pool in a given niche
  • Query channels by category and country to build regional creator lists for localized campaigns
  • Retrieve engagement_rate and avg_views_per_video to compare creator performance before partnership decisions
  • Look up get_channel_details by channel ID to pull full channel descriptions for content categorization
  • Use has_email field to filter the channels array down to contactable creators only
  • Re-sort a previous search by subscriber count using get_search_results with sort=core.subscribers
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does ChannelCrawler have an official developer API?+
ChannelCrawler does not publish a documented public developer API. The data is accessible through the ChannelCrawler web application at app.channelcrawler.com.
What does the `search_channels` endpoint return beyond the channel list?+
search_channels returns total_matching_channels (the full count of channels matching your filters), total_with_email (how many of those have an email on file), search_id (a UUID for re-querying), and channels_returned (the count in the current response array). The channels array itself contains up to 10 objects, each including engagement_rate, avg_views_per_video, has_email, and topics.
Does the API return video-level data such as individual video titles, view counts, or upload history?+
Not currently. The API covers channel-level data: subscriber counts, engagement rate, average views per video, topics, and channel descriptions. You can fork this API on Parse and revise it to add an endpoint targeting video-level data for a given channel.
Why might `subscribers_display` show '0' in `get_channel_details`?+
Some YouTube channels hide their subscriber count publicly. When the count is not exposed, subscribers_display returns '0' rather than an estimated or cached figure. The subscribers field in the search_channels channel objects may carry a different value sourced from ChannelCrawler's indexed data.
Does the API support pagination to retrieve more than 10 channels per search?+
The current endpoints return up to 10 channel results per search and do not expose a page or offset parameter. The total_matching_channels field shows how many total results exist, but retrieving beyond the first 10 is not supported by the current endpoints. You can fork this API on Parse and revise it to add pagination support if the underlying data supports it.
Page content last updated . Spec covers 3 endpoints from app.channelcrawler.com.
Related APIs in Streaming VideoSee all →
viewstats.com API
viewstats.com API
twitch.tv API
Search for Twitch streamers and channels, view their profiles and streaming details, and discover live streams organized by category. Find the content and creators you want to watch all in one place.
patreon.com API
Search for Patreon creators and discover their membership tiers, pricing, patron counts, and detailed profile information. Find the creators you want to support or research with comprehensive details about their offerings and community size.
TGStat API
Search and discover Telegram channels and groups by keyword or category, view detailed channel ratings and performance metrics, and access comprehensive profile information including subscriber counts and engagement data. Monitor top-performing channels and groups to find the most popular content across categories and regions.
filmot.com API
Search YouTube channels and find specific moments across videos by looking up subtitles in multiple languages through Filmot's comprehensive database. Discover exactly when topics are mentioned across channels without manually watching every video.
justwatch.com API
Search for movies and TV shows, retrieve streaming availability and detailed metadata, browse trending content, and discover similar titles — all via JustWatch.
kick.com API
Discover all active livestreams from any Kick.com category and access detailed information about each channel, including viewer counts, tags, language, and creator profiles. Monitor live content across specific categories to find streamers and trending broadcasts in real-time.
watchcharts.com API
Search and analyze luxury watch market data including current listings, historical price trends, and recent sales information. Get detailed watch specifications and track market pricing to make informed collecting or investment decisions.