Get a YouTube channel
Retrieve a public YouTube channel by channelId, handle, url or forUsername, with identity, statistics, links, keywords, avatar and banner.
/v1/youtube/channelx-api-keyHeaders
Get your API keyYour ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.
Channel ID from the page metadata; checked against a requested channelId.
Handle with the leading @, taken from the canonical URL; null for channels without a handle (topic and auto-generated channels).
max 64 chars
ExampleChannelChannel URL: youtube.com/@handle, /channel/UC…, /user/name, /c/name or a legacy youtube.com/name link. www and m subdomains, http/https, a trailing tab such as /videos or /about, query and fragment are accepted and removed.
max 2048 chars
Legacy YouTube username, resolved through youtube.com/user/<name>.
Operation identifier for correlation.
Upstream HTTP attempts (handle resolution unless the channel was named by ID, the channel browse, the About panel and at most one transient retry), decoded response bytes and duration.
Always included.
≥ 0
Always included.
≥ 0
Always included.
≥ 0
True when the channel record was retrieved.
success when the page and About panel were both read; partial when the About panel was unavailable or a link title collided with a fixed field; failed or challenged with a failure object otherwise.
one of: success, partial
Channel ID from the page metadata; checked against a requested channelId.
Canonical owner URL as YouTube publishes it (http://www.youtube.com/@handle, or a /channel/ URL for channels without a handle).
absolute HTTPS URL
Handle with the leading @, taken from the canonical URL; null for channels without a handle (topic and auto-generated channels).
True when the page header carries the verified check badge.
Channel title.
Full channel description with original line breaks; empty string when none.
Subscriber count parsed from the displayed text (K/M/B suffixes expanded, so 2.75M is 2750000); null when the text cannot be parsed.
Displayed subscriber text, for example "2.75M subscribers".
Displayed video count text from the About panel, omitted when YouTube does not show one.
Video count parsed from videoCountText; null when unavailable.
Displayed total view text from the About panel, omitted when YouTube does not show one.
Total views parsed from viewCountText; null when unavailable.
Displayed join date, for example "Joined Aug 23, 2017"; omitted when unavailable.
Channel keywords joined with ", "; null when the channel has none.
First email address found in the public description; null when none.
Country label from the About panel; omitted when the channel does not publish one.
Public link URLs in About-panel order, as https://<displayed link text>. Each link also appears as its own field named after the link title (lower-cased, spaces replaced by underscores) placed before links.
up to 100 items
Channel keywords as an array; omitted when the channel has none.
up to 500 items
Family-safe flag from the page metadata.
Linked Facebook profile identifier from the page metadata; omitted when the channel has none.
The channel's own header avatar renderer: image.sources (URL, width, height) and, when present, image.processor and avatarImageSize. Tracking directives are removed.
Always included.
Always included.
up to 20 items
Always included.
absolute HTTPS URL
Always included.
≥ 0
Always included.
≥ 0
Optional.
Optional.
Banner image sources (URL, width, height) at every published width; omitted when the channel has no banner.
up to 20 items
Always included.
absolute HTTPS URL
Always included.
≥ 0
Always included.
≥ 0
The public browse API route the channel document was read from (https://www.youtube.com/youtubei/v1/browse); the canonical channel URL is the channel field.
absolute HTTPS URL
UTC retrieval timestamp.
source is public_api. complete is false with a warning of about_unavailable when the About panel could not be read (counters, join date, country and links are then null or omitted) or link_key_conflict when a link title matched a fixed field name (the URL stays in links).
Always included.
one of: public_page, public_api
Always included.
Always included.
up to 8 items
No fields match.
HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.
| HTTP | failure.code | Meaning |
|---|---|---|
| 400 | invalid_request | Missing, malformed, duplicate or conflicting parameters, unsupported parameters or an unsafe URL. |
| 400 | invalid_continuation | YouTube rejected the supplied continuation token. |
| 401 | unauthorized | Missing or invalid worker API key. |
| 403 | restricted_page | The channel, video, playlist or post is terminated, private, members-only or otherwise unavailable. |
| 403 | age_restricted | The video is age restricted and cannot be read logged out. |
| 404 | not_found | YouTube reports no channel, video, playlist or post for the identifier. |
| 429 | upstream_rate_limited | YouTube rate limited the request; no automatic retry. |
| 502 | upstream_challenged | YouTube rejected or challenged the request. |
| 502 | unsupported_page | The response lacks the embedded data, the data is malformed, or the resolved identity does not match the request. |
| 502 | response_too_large payload_too_complex | The response exceeded byte, depth or node limits. |
| 502 | unsafe_redirect request_limit upstream_error | The bounded request could not complete. |
| 503 | busy | All worker slots are in use. |
| 504 | timeout | The total retrieval deadline expired. |