YouTube Channel API

Extended channel analytics: info, videos, playlists, stats and audits.

What can you do?
Instant channel stats

Subscribers, views and more in 1 call.

Fetch latest uploads

Retrieve IDs, titles and publish dates.

One-click audit

Average length, best upload time, top videos…

Try Live
99.9 % Uptime
Response
20 req/s
0.005 Credits / request

Channel Info


POST https://api.yeb.to/v1/youtube/channel/info
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID (UC…) or vanity URL

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/info \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "channel": "UC_x5XG1OV2P6uZZ5FSM9Ttw"
}'

Response Example

{
  "id":              "UC_x5XG1OV2P6uZZ5FSM9Ttw",
  "title":           "Google Developers",
  "description":     "The Google Developers channel provides ...",
  "keywords":        "Google, Android, Chrome, Firebase",
  "topicCats":       ["Science and technology", "Computer programming"],
  "topicCatsRaw": [
    "https://en.wikipedia.org/wiki/Science_and_technology",
    "https://en.wikipedia.org/wiki/Computer_programming"
  ],
  "country":         "US"
}
{"error":"Missing \"channel\" parameter","code":400}

Response Codes

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Latest Videos


POST https://api.yeb.to/v1/youtube/channel/videos
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID (UC…) or vanity URL
limit int opt Max items (1-50, default 50)
order string opt Sort by: date (default) · relevance · rating · viewCount · title · videoCount
period string opt Quick date filter: today | week | month | year
after RFC 3339 opt Custom publishedAfter (e.g. 2025-01-01T00:00:00Z) – overrides period
before RFC 3339 opt Custom publishedBefore (same format as after)

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/videos \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "channel": "GoogleDevelopers",
  "limit":   25,
  "order":   "viewCount",
  "period":  "month"
}'

Response Example

[
  {"id":"dQw4w9WgXcQ","title":"Rick Astley – …"},
  {"id":"kJQP7kiw5Fk","title":"Despacito"}
]
{"error":"Missing \"channel\" parameter","code":400}

Response Codes

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Playlists


POST https://api.yeb.to/v1/youtube/channel/playlists
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID or vanity
limit int opt Max playlists (1-50, default 50)
order string opt Sort by: date (default), videos, title
after string opt Only playlists published after this date (YYYY-MM-DD or RFC-3339)
before string opt Only playlists published before this date (YYYY-MM-DD or RFC-3339)

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/playlists \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "channel": "GoogleDevelopers",
  "order"  : "videos",
  "after"  : "2023-01-01",
  "limit"  : 25
}'

Response Example

{
  "playlists": [
    {
      "id"          : "PL590L5WQmH8fJ54Foh3L5jT8vIojl7FeN",
      "title"       : "Google I/O 2025 – full sessions",
      "description" : "",
      "video_count" : 27,
      "published_at": "2025-05-14T12:03:44Z"
    },
    {
      "id"          : "PL590L5WQmH8f7u7b1ZOM8I3W-hd2_XxT4",
      "title"       : "Android Basics",
      "description" : "Intro series for new Android devs",
      "video_count" : 18,
      "published_at": "2024-11-08T09:20:11Z"
    }
  ]
}
{"error":"Invalid \"after\" or \"before\" date","code":422}

Response Codes

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Find Channel ID


POST https://api.yeb.to/v1/youtube/channel/find-id
ParameterTypeReq.Description
api_key string yes Your API key
query string yes Vanity URL (handle) or channel name

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/find-id \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "query": "@GoogleDevelopers"
}'

Response Example

{"channel_id":"UC_x5XG1OV2P6uZZ5FSM9Ttw"}
{"error":"Not found","code":404}

Response Codes

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Channel Thumbnail


POST https://api.yeb.to/v1/youtube/channel/thumbnail
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID or vanity

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/thumbnail \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "channel": "GoogleDevelopers"
}'

Response Example

{"url":"https://yt3.ggpht.com/ytc/AAUvwng…=s800-c-k-c0xffffffff-no-rj"}
{"error":"Missing \"channel\"","code":400}

Response Codes

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Region Restrictions


POST https://api.yeb.to/v1/youtube/channel/region-restrictions
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID or vanity

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/region-restrictions \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","channel":"GoogleDevelopers"}'

Response Example

{"madeForKids":false}
{"error":"Missing \"channel\"","code":400}

Response Codes

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Channel Settings


POST https://api.yeb.to/v1/youtube/channel/settings
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID or vanity

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/settings \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","channel":"GoogleDevelopers"}'

Response Example

{
  "defaultLang": "en",
  "country": "US",
  "showRelatedChannels": true,
  "featuredChannels": ["UCVHFbqXqoYvEWM1Ddxl0QDg"]
}
{"error":"Missing \"channel\"","code":400}

Response Codes

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Statistics


POST https://api.yeb.to/v1/youtube/channel/statistics
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID or vanity

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/statistics \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","channel":"GoogleDevelopers"}'

Response Example

{
  "subscribers": 2500000,
  "views": 150000000,
  "videos": 320,
  "hiddenSubs": false
}
{"error":"Missing \"channel\"","code":400}

Response Codes

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Subscribe-Link Generator


POST https://api.yeb.to/v1/youtube/channel/subscribe-link-generator
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID or vanity

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/subscribe-link-generator \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","channel":"GoogleDevelopers"}'

Response Example

Response Codes

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Search Channels


POST https://api.yeb.to/v1/youtube/channel/search
ParameterTypeReq.Description
api_key string yes Your API key
query string yes Search keywords or @handle
limit int opt Max results (1-50, default 10)
order string opt Sort: relevance (default) · date · rating · viewCount · title · videoCount
period string opt Date filter: today | week | month | year
after RFC 3339 opt Custom publishedAfter (overrides period)
before RFC 3339 opt Custom publishedBefore

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/search \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "query":   "technology reviews",
  "limit":   10,
  "order":   "relevance",
  "period":  "week"
}'

Response Example

[
  {"id":"UC-9-kyTW8ZkZNDHQJ6FgpwQ","title":"Music"},
  {"id":"UC_iD0xppBwwsrM9DegC5cQQ","title":"Trap City"}
]
{"error":"Missing \"query\"","code":400}

Response Codes

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

YouTube Channel Audit


POST https://api.yeb.to/v1/youtube/channel/audit
ParameterTypeReq.Description
api_key string yes Your API key
channel string yes Channel ID or vanity
after string opt RFC-3339 or YYYY-MM-DD – fetch uploads **after** this date
before string opt RFC-3339 or YYYY-MM-DD – fetch uploads **before** this date

Example

curl -X POST https://api.yeb.to/v1/youtube/channel/audit \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","channel":"GoogleDevelopers","after":"2025-01-01","before":"2025-06-30"}'

Response Example

{
  "bestUploadDay":      "Wednesday",
  "bestUploadHourUTC":  "17",
  "avgVideoLengthSec":  412,
  "topVideos":[
    {
      "id":"3fumBcKC6RE",
      "title":"Google I/O 2025 – Keynote",
      "views":5200000,
      "len_s":372
    },
    {
      "id":"Vb2ZXRh74WU",
      "title":"Jetpack Compose 2.0",
      "views":2900000,
      "len_s":648
    }
  ],
  "language": "en",
  "country":  "US",
  "category":      "Science and technology",
  "categoryRaw":   "https://en.wikipedia.org/wiki/Science_and_technology"
}
{"error":"Channel has no recent videos","code":404}

Response Codes

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Frequently Asked Questions

Up to 20 requests per second per API key, in line with the global burst limit.

It fetches the last N uploads (default 10) and returns average length, best upload time and top-performing videos.

Up to 5 requests / second per key. No daily or monthly caps – just pay as you go.

We operate on a credit system. Buy once – credits never expire and there are no subscriptions.

Every HTTP call is one request; each request consumes a number of credits depending on the endpoint.

Yes, they never expire until you spend them (but they are non-refundable).

Credits are non-refundable. Please buy only what you need – you can top-up any time.

Prices are set in credits, not dollars. Each endpoint lists its own cost – see the “Credits / request” badge above.
← Back to APIs