YouTube Channel API

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

Vad kan du göra?
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…

Prova live
99.9 % Drifttid
1935ms Svar
20 req/s
0.005 Krediter / förfrågan

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}

Svarskoder

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.

Info

youtube/channel/info 0.0050 credits

Parameters

API Key
body · string · required
Channel
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

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}

Svarskoder

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.

Videos

youtube/channel/videos 0.0090 credits

Parameters

API Key
body · string · required
Channel
body · string · required
Limit
body · string
Order
body · string
Period
body · string
Published After
body · string
Published Before
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

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}

Svarskoder

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

youtube/channel/playlists 0.0090 credits

Parameters

API Key
body · string · required
Channel
body · string · required
Limit
body · string
Order
body · string
Published After
body · string
Published Before
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

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}

Svarskoder

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 ID

youtube/channel/find-id 0.0010 credits

Parameters

API Key
body · string · required
Query
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

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}

Svarskoder

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.

Thumbnail

youtube/channel/thumbnail 0.0010 credits

Parameters

API Key
body · string · required
Channel
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

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}

Svarskoder

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

youtube/channel/region-restrictions 0.0030 credits

Parameters

API Key
body · string · required
Channel
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

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}

Svarskoder

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.

Settings

youtube/channel/settings 0.0050 credits

Parameters

API Key
body · string · required
Channel
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

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}

Svarskoder

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

youtube/channel/statistics 0.0070 credits

Parameters

API Key
body · string · required
Channel
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

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

Svarskoder

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

youtube/channel/subscribe-link-generator 0.0010 credits

Parameters

API Key
body · string · required
Channel
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

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}

Svarskoder

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

youtube/channel/search 0.0090 credits

Parameters

API Key
body · string · required
Query
body · string · required
Limit
body · string
Order
body · string
Period
body · string
Published After
body · string
Published Before
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

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}

Svarskoder

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.

Audit

youtube/channel/audit 0.0100 credits

Parameters

API Key
body · string · required
Channel
body · string · required
Published After
body · string
Published Before
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

YouTube Channel API — Practical Guide

A hands-on guide to turning a YouTube channel into actionable signals: find/resolve IDs, fetch latest uploads and playlists, read settings/statistics, run audits, and build real workflows (mix scheduling, SEO checks, regional compliance, badges).

#What this API solves

The youtube/channel module focuses on channel-level intelligence: resolve channel IDs, pull core info & settings, list uploads/playlists with practical filters, inspect statistics, and run a lightweight, production-ready audit (best upload day/hour, median signals). Results help you schedule mixes, benchmark performance, and avoid embedding issues.

#Endpoints & when to use them

#POST /v1/youtube/channel/find-id — Find Channel ID

  • Best for: Converting @handle / vanity to canonical channelId (UC…).
  • Output: { "channel_id": "UC…" }.
  • Tip: Cache this mapping; most other endpoints accept either value, but canonicalizing simplifies storage.

#POST /v1/youtube/channel/info — Channel Info

  • Best for: Bio cards, topic categories, country routing.
  • Output: { id, title, description, keywords, topicCats[], topicCatsRaw[], country }.
  • Tip: Use topicCats to cluster channels (“Science and technology”, “Programming”).

#POST /v1/youtube/channel/videos — Latest Videos

  • Best for: Build “latest” or “top this month” rails; seed audits.
  • Filters: order (date | viewCount | …), period (today/week/month/year), or custom after/before (RFC-3339 or YYYY-MM-DD).
  • Output: Array of { id, title, … } items.

#POST /v1/youtube/channel/playlists — Playlists

  • Best for: Curatorial analysis (“which series drive views?”).
  • Output: { playlists: [{ id, title, description, video_count, published_at }] }.
  • Tip: Sort by videos to find evergreen series; filter by dates to compare seasons.

#POST /v1/youtube/channel/statistics — Statistics

  • Best for: High-level counters for badges and sanity checks.
  • Output: { subscribers, views, videos, hiddenSubs }.

#POST /v1/youtube/channel/settings — Channel Settings

  • Best for: Localization defaults (language/country) and side-rail curation (featured channels).
  • Output: { defaultLang, country, showRelatedChannels, featuredChannels[] }.

#POST /v1/youtube/channel/region-restrictions — Region Restrictions

  • Best for: Compliance/UX gating at the channel level (e.g., kids content).
  • Output: { madeForKids: boolean }.
  • Best for: Discovery workflows; onboarding new sources.
  • Filters: order, period, or custom after/before.
  • Output: { results: [{ id, title, …}] }.

#POST /v1/youtube/channel/audit — Channel Audit

  • Best for: Quickly infer optimal upload windows, typical lengths, and top performers over a period.
  • Output: { bestUploadDay, bestUploadHourUTC, avgVideoLengthSec, topVideos[], language, country, category, categoryRaw }.
  • Tip: Pass after/before to focus on a season or rebrand window.

#POST /v1/youtube/channel/subscribe-link-generator — Subscribe Link

  • Best for: One-click subscribe CTA in your UI.
  • Output: { url: "…?sub_confirmation=1" }.

#POST /v1/youtube/channel/thumbnail — Channel Thumbnail

  • Best for: Channel cards, “featured creators” strips.
  • Output: { url } (high-res avatar).

#Quick start

# 1) Resolve channel ID from @handle
curl -X POST "https://api.yeb.to/v1/youtube/channel/find-id" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "query": "@GoogleDevelopers" }'
# 2) Latest videos this month, sorted by views
curl -X POST "https://api.yeb.to/v1/youtube/channel/videos" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "channel":"UC_x5XG1OV2P6uZZ5FSM9Ttw", "order":"viewCount", "period":"month", "limit":25 }'
# 3) Playlists after a given date
curl -X POST "https://api.yeb.to/v1/youtube/channel/playlists" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "channel":"GoogleDevelopers", "order":"videos", "after":"2024-11-01", "limit":25 }'
# 4) Channel audit across a custom window
curl -X POST "https://api.yeb.to/v1/youtube/channel/audit" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "channel":"GoogleDevelopers", "after":"2025-01-01", "before":"2025-06-30" }'

#Parameters that actually matter

ParamTypeRequiredPractical guidance
api_key string Yes Use server-side or sign short-lived edge tokens.
channel string Yes* UC… ID or vanity (@handle). Not required for find-id / search.
limit int No 1–50 (default varies). Keep UI grids tidy: 12/24/48.
order string No For videos and search. Typical: date or viewCount.
period string No Shortcut time filter: today | week | month | year.
after/before date No RFC-3339 or YYYY-MM-DD; we normalize. Use to bracket seasons or editorial windows.
query string Yes* For find-id/search: keywords or @handle.

#Reading & acting on responses

#Audit — interpretation

{
  "bestUploadDay": "Wednesday",
  "bestUploadHourUTC": "17",
  "avgVideoLengthSec": 412,
  "topVideos": [{ "id":"3fumBcKC6RE","title":"…","views":5200000,"len_s":372 }],
  "language": "en",
  "country": "US",
  "category": "Science and technology"
}
  • Schedule: Publish near bestUploadHourUTC for the target market; A/B test ±2h.
  • Format: Use avgVideoLengthSec to pick default mix lengths per channel.
  • Editorial: Promote a topVideos[0] rerun in your weekly hub.

#Info — interpretation

{
  "id":"UC_x5XG1OV2P6uZZ5FSM9Ttw",
  "title":"Google Developers",
  "topicCats":["Science and technology","Computer programming"],
  "country":"US"
}
  • Drive category pages from topicCats; geotarget copy by country.

#Videos — interpretation

[
  { "id":"dQw4w9WgXcQ", "title":"…" },
  { "id":"kJQP7kiw5Fk", "title":"Despacito" }
]
  • Pipe IDs to your youtube/video/* endpoints (engagement, restrictions, audit, etc.).

#Playlists — interpretation

{
  "playlists":[
    { "id":"PL590…", "title":"Google I/O 2025 – full sessions", "video_count":27, "published_at":"2025-05-14T12:03:44Z" }
  ]
}
  • Sort by video_count to detect successful series; feature them prominently.

#Statistics — interpretation

{ "subscribers":2500000, "views":150000000, "videos":320, "hiddenSubs":false }
  • Use for creator badges and sanity checks; don’t re-poll too often (cache daily).

#Practical recipes

  • Weekly mix planning: Pull videos for the last week, rank by engagement (via video API), schedule near bestUploadHourUTC.
  • Channel onboarding: find-idinfo/settingsstatistics snapshot → seed playlists.
  • Seasonal check: Run audit with after/before around a rebrand to compare cadence/length shifts.

#YouTube identifiers you’ll use

FieldWhat it isHow to use
channelId Canonical channel ID (starts with UC) https://www.youtube.com/channel/{channelId}
@handle Vanity username Resolve with /channel/find-id once; then persist channelId.
playlistId Channel playlist identifier https://www.youtube.com/playlist?list={playlistId}
videoId 11-char video ID Used across youtube/video/* endpoints.

#Errors & troubleshooting

  • 400 "Missing "action" parameter" — Internal routing error; ensure endpoint path sets an action.
  • 400 "Missing "channel" parameter" — Provide channel for all except find-id/search.
  • 404 "Unable to resolve channel ID" — Vanity not found; try find-id or pass UC… directly.
  • 422 "Invalid "order"" — Use documented values (e.g., date, viewCount).
  • 422 "Invalid "after" or "before" date" — Use RFC-3339 or YYYY-MM-DD; ensure after <= before.
  • 404 "Channel has no recent videos" — For audit, widen date range or increase activity window.

#API Changelog (youtube/channel)

2025-11-21
Date normalization & filters. after/before now accept RFC-3339 or YYYY-MM-DD across videos, playlists, search, and audit. Clear 422s on invalid or inverted ranges.
2025-11-14
Videos endpoint upgrades. Added order (date, viewCount, …) and period shortcuts (today/week/month/year).
2025-11-07
Audit windowing. /channel/audit accepts after/before to focus on seasons; topVideos capped at 10 with length in seconds.
2025-10-31
Playlists wrapping. Standardized success shape to { playlists: [...] }; added sorting by videos/title.

Use the Playgrounds attached to each endpoint block on this page to experiment with your own channel / @handle.

Vanliga frågor och svar

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.

Upp till 20 förfrågningar / sekund per nyckel. Inga dagliga eller månatliga begränsningar – betala efter behov.

Vi använder ett kreditsystem. Köp en gång – krediterna förfaller aldrig och det finns inga abonnemang.

Varje HTTP-anrop är en förfrågan; varje förfrågan förbrukar ett antal krediter beroende på slutpunkt.

Ja, de förfaller aldrig förrän du använder dem (men de är inte återbetalningsbara).

Krediter är inte återbetalningsbara. Köp endast det du behöver – du kan fylla på när som helst.

Priser anges i krediter, inte dollar. Varje slutpunkt visar sin kostnad – se märket ”Krediter / förfrågan” ovan.
← Tillbaka till API:er