FetchFox
Get started

YouTube channel stats checker API

Look up available public subscriber counts, video counts and channel metadata.

Make a request

GET /youtube/channel-stats accepts query parameters. POST /youtube/channel-stats accepts the same inputs as JSON. Send your project key in the x-access-key header; keep it on your server.

Credits: 1 credit per successful request.

curl request example
curl
curl --fail-with-body --get 'https://api.fetchfox.net/youtube/channel-stats' \
  -H 'x-access-key: YOUR_KEY' \
  --data-urlencode 'url=https://www.youtube.com/@YouTube'
JavaScript request example
JavaScript
// Run on your server with FETCHFOX_API_KEY set.
const url = new URL('https://api.fetchfox.net/youtube/channel-stats');
url.searchParams.set('url', 'https://www.youtube.com/@YouTube');
const response = await fetch(url, {
  headers: { 'x-access-key': process.env.FETCHFOX_API_KEY },
  signal: AbortSignal.timeout(130000)
});
if (!response.ok) throw new Error('HTTP ' + response.status);
const result = await response.json();
if (!result.success) throw new Error('Request unsuccessful');
console.log(result.data);
Python request example
Python
import json, os
from urllib.parse import urlencode
from urllib.request import Request, urlopen

query = urlencode({"url":"https://www.youtube.com/@YouTube"})
request = Request('https://api.fetchfox.net/youtube/channel-stats?' + query,
    headers={'x-access-key': os.environ['FETCHFOX_API_KEY']})
with urlopen(request, timeout=130) as response:
    result = json.load(response)
if not result.get('success'):
    raise RuntimeError('Request unsuccessful')
print(result['data'])

Replace placeholder source IDs with real public URLs. See limits and retries before automating calls.

Inputs and limits

This is a public snapshot. Subscriber counts may be rounded or hidden; audience demographics and private analytics are not available.

Use comparable observations

Save source URLs and your retrieval time with returned data. Public metrics can change and some counts are rounded. Missing metrics remain null, separately from genuine zero. Search and channel lists are samples, not a complete archive or guaranteed ranking feed.

Video duration alone does not establish whether an item is a Short. Returned dates and descriptions depend on source availability; optional full_details enrichment on /youtube/videos is capped at 30 videos.

Continue building