Skip to content
scrapeatlas.Dashboard

Get a YouTube channel

Try in Playground

Retrieve a public YouTube channel by channelId, handle, url or forUsername, with identity, statistics, links, keywords, avatar and banner.

GET/v1/youtube/channelx-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
4
channelIdstringquery

Channel ID from the page metadata; checked against a requested channelId.

handlestringquery

Handle with the leading @, taken from the canonical URL; null for channels without a handle (topic and auto-generated channels).

max 64 chars

ExampleExampleChannel
urlstringquery

Channel 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

forUsernamestringquery

Legacy YouTube username, resolved through youtube.com/user/<name>.

Response fields
45
requestIdstring

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.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when the channel record was retrieved.

statusenum

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

channelIdstring

Channel ID from the page metadata; checked against a requested channelId.

channelstring

Canonical owner URL as YouTube publishes it (http://www.youtube.com/@handle, or a /channel/ URL for channels without a handle).

absolute HTTPS URL

handlestringnullable

Handle with the leading @, taken from the canonical URL; null for channels without a handle (topic and auto-generated channels).

isVerifiedboolean

True when the page header carries the verified check badge.

namestring

Channel title.

descriptionstring

Full channel description with original line breaks; empty string when none.

subscriberCountintegernullable

Subscriber count parsed from the displayed text (K/M/B suffixes expanded, so 2.75M is 2750000); null when the text cannot be parsed.

subscriberCountTextstringnullable

Displayed subscriber text, for example "2.75M subscribers".

videoCountTextstringoptional

Displayed video count text from the About panel, omitted when YouTube does not show one.

videoCountintegernullable

Video count parsed from videoCountText; null when unavailable.

viewCountTextstringoptional

Displayed total view text from the About panel, omitted when YouTube does not show one.

viewCountintegernullable

Total views parsed from viewCountText; null when unavailable.

joinedDateTextstringoptional

Displayed join date, for example "Joined Aug 23, 2017"; omitted when unavailable.

tagsstringnullable

Channel keywords joined with ", "; null when the channel has none.

emailstringnullable

First email address found in the public description; null when none.

countrystringoptional

Country label from the About panel; omitted when the channel does not publish one.

linksstring[]

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

keywordsstring[]optional

Channel keywords as an array; omitted when the channel has none.

up to 500 items

isFamilySafeboolean

Family-safe flag from the page metadata.

facebookProfileIdstringoptional

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

avatar.image.sources.urlstring

Always included.

absolute HTTPS URL

avatar.image.sources.widthinteger

Always included.

≥ 0

avatar.image.sources.heightinteger

Always included.

≥ 0

avatar.image.processorobjectoptional

Optional.

avatar.avatarImageSizestringoptional

Optional.

Banner image sources (URL, width, height) at every published width; omitted when the channel has no banner.

up to 20 items

banner.urlstring

Always included.

absolute HTTPS URL

banner.widthinteger

Always included.

≥ 0

banner.heightinteger

Always included.

≥ 0

sourceUrlstring

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

fetchedAtstring

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).

coverage.sourceenum

Always included.

one of: public_page, public_api

coverage.completeboolean

Always included.

coverage.warningsenum[]

Always included.

up to 8 items

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.

Error codes
13
HTTPfailure.codeMeaning
400invalid_requestMissing, malformed, duplicate or conflicting parameters, unsupported parameters or an unsafe URL.
400invalid_continuationYouTube rejected the supplied continuation token.
401unauthorizedMissing or invalid worker API key.
403restricted_pageThe channel, video, playlist or post is terminated, private, members-only or otherwise unavailable.
403age_restrictedThe video is age restricted and cannot be read logged out.
404not_foundYouTube reports no channel, video, playlist or post for the identifier.
429upstream_rate_limitedYouTube rate limited the request; no automatic retry.
502upstream_challengedYouTube rejected or challenged the request.
502unsupported_pageThe response lacks the embedded data, the data is malformed, or the resolved identity does not match the request.
502response_too_large payload_too_complexThe response exceeded byte, depth or node limits.
502unsafe_redirect request_limit upstream_errorThe bounded request could not complete.
503busyAll worker slots are in use.
504timeoutThe total retrieval deadline expired.