> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scraperize.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Channel

> Fetches a YouTube channel's details and stats by channel id, handle or URL: id, handle, name, URLs, description (and an official artist channel's bio), verified and official-artist badges, profile picture and banner, subscriber count (YouTube shows it rounded), exact video and lifetime view counts, join date, country, keywords, external links, whether the channel lists a business email, its tabs (Videos, Shorts, Live, Playlists…), family-safe flag and RSS feed URL. Pass exactly one of `channelId`, `handle` or `url`. Videos are not included. Only publicly available data is returned.

> [!NOTE]
>
> **Cost: 1 credit** per successful request. Errors and cache hits (`cache_max_age`) are free.

> [accordion] Copy for AI assistant
>
> Paste this into ChatGPT, Claude or your coding assistant to generate working code for this endpoint (use the copy button).
>
> ```text Prompt
> I want to make an API call to /v1/youtube/channel. Here are the details:
>
> Endpoint: GET https://api.scraperize.com/v1/youtube/channel
> Description: Fetches a YouTube channel's details and stats by channel id, handle or URL: id, handle, name, URLs, description (and an official artist channel's bio), verified and official-artist badges, profile picture and banner, subscriber count (YouTube shows it rounded), exact video and lifetime view counts, join date, country, keywords, external links, whether the channel lists a business email, its tabs (Videos, Shorts, Live, Playlists…), family-safe flag and RSS feed URL. Pass exactly one of `channelId`, `handle` or `url`. Videos are not included. Only publicly available data is returned.
>
> Required Headers:
> - x-api-key: Your API key
>
> Parameters:
> - channelId (string): The channel id: `UC` followed by 22 characters, e.g. `UCX6OQ3DkcsbYNE6H8uQQuVA`.
> - handle (string): The channel handle, with or without `@`, e.g. `MrBeast`.
> - url (string): A YouTube channel URL: `/@handle`, `/channel/<id>`, `/c/<name>` or `/user/<name>`, e.g. `https://www.youtube.com/@MrBeast`.
> - cache_max_age (select): Optional. Return a cached result if one this age or newer exists — served for **0 credits** with `meta.cached=true` and `meta.cachedAt`. Otherwise a fresh scrape runs (**1 credit**) and refreshes the cache. Omit to always scrape fresh.
>
> Example Response:
> {
>   "data": {
>     "channel": {
>       "id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
>       "handle": "MrBeast",
>       "name": "MrBeast",
>       "url": "https://www.youtube.com/@MrBeast",
>       "channelUrl": "https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA",
>       "description": "SUBSCRIBE FOR A COOKIE!\nNew MrBeast or MrBeast Gaming video every single Saturday at noon eastern time!\nAccomplishments:\n- Raised $20,000,000 To Plant 20,000,00…",
>       "artistBio": null,
>       "isVerified": true,
>       "isOfficialArtist": false,
>       "avatarUrl": "https://yt3.googleusercontent.com/nxYrc_1_2f77DoBadyxMTmv7ZpRZapHR5jbuYe7PlPd5cIRJxtNNEYyOC0ZsxaDyJJzXrnJiuDE=s900-c-k-c0x00ffffff-no-rj",
>       "bannerUrl": "https://yt3.googleusercontent.com/mHMO_eEMp0dPvh0ADwXhPXNYb_GnjSVsLI8biqF1CpxT8OPl7izhNQsDPD3JHhd5y5Mg9GrP=w2560-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-…",
>       "subscriberCount": 525000000,
>       "subscriberCountText": "525M",
>       "videoCount": 1011,
>       "videoCountApproximate": false,
>       "viewCount": 145642371073,
>       "joinedAt": "2012-02-19",
>       "country": "United States",
>       "keywords": [
>         "mrbeast6000"
>       ],
>       "links": [
>         {
>           "title": "Follow",
>           "url": "https://www.instagram.com/mrbeast/",
>           "displayUrl": "instagram.com/mrbeast"
>         }
>       ],
>       "hasBusinessEmail": true,
>       "tabs": [
>         "Home"
>       ],
>       "isFamilySafe": true,
>       "availableCountryCount": 249,
>       "rssUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UCX6OQ3DkcsbYNE6H8uQQuVA"
>     },
>     "fetchedAt": "2026-11-03T11:25:33.058Z"
>   },
>   "meta": {
>     "requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
>     "creditsCharged": 1,
>     "creditsRemaining": 4999,
>     "cached": false
>   }
> }
>
> Please help me write code in my preferred programming language to make this API call and handle the response appropriately. Include error handling and best practices.
> ```


## OpenAPI

````yaml /api-reference/openapi.json get /v1/youtube/channel
openapi: 3.0.3
info:
  title: Scraperize API
  version: 1.0.0
  description: >-
    Extract public data from social media platforms as clean JSON. Endpoints are
    split by platform and by what they return, e.g. `GET /v1/twitter/tweet`.


    ## Authentication

    Send your API key in the `x-api-key` header (or `Authorization: Bearer
    <key>`). Create keys in your dashboard.


    ## Credits

    Each successful live scrape costs **1 credit**. Credits are prepaid and
    never expire.


    ## Caching

    Every endpoint accepts an optional `cache_max_age`
    (`1d`|`3d`|`7d`|`14d`|`30d`). A cache hit within that window is returned for
    **0 credits**.


    ## Responses

    Success returns `{ "data": …, "meta": { "requestId", … } }`. Errors return
    `{ "error": { "code", "message", "requestId" } }` with a matching HTTP
    status. `meta` on a scrape carries `creditsCharged`, `creditsRemaining`,
    `cached`, and (on a hit) `cachedAt`.


    ## Rate limits

    Requests are limited per team per minute; over the limit returns `429` with
    a `Retry-After` header.
servers:
  - url: https://api.scraperize.com
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Twitter
    description: Twitter / X scraping endpoints
  - name: Facebook
    description: Facebook scraping endpoints
  - name: Linkme
    description: Linkme (link.me) scraping endpoints
  - name: Amazon
    description: Amazon (creator shop / storefront) scraping endpoints
  - name: Linkbio
    description: Linkbio (lnk.bio) scraping endpoints
  - name: Pillar
    description: Pillar (pillar.io) scraping endpoints
  - name: Komi
    description: Komi (komi.io) scraping endpoints
  - name: Linktree
    description: Linktree (linktr.ee) scraping endpoints
  - name: Kick
    description: Kick (kick.com) scraping endpoints
  - name: Snapchat
    description: Snapchat (snapchat.com) scraping endpoints
  - name: Telegram
    description: Telegram (t.me) scraping endpoints
  - name: LinkedIn
    description: LinkedIn scraping endpoints
  - name: Twitch
    description: Twitch scraping endpoints
  - name: TikTok
    description: TikTok (tiktok.com) scraping endpoints
  - name: Instagram
    description: Instagram scraping endpoints
  - name: Lagos Life
    description: Lagos Life scraping endpoints
  - name: Bluesky
    description: Bluesky (bsky.app) scraping endpoints
  - name: Threads
    description: Threads (threads.com) scraping endpoints
  - name: Truth Social
    description: Truth Social (truthsocial.com) scraping endpoints
  - name: YouTube
    description: YouTube (youtube.com) scraping endpoints
paths:
  /v1/youtube/channel:
    get:
      tags:
        - YouTube
      summary: Channel
      description: >-
        Fetches a YouTube channel's details and stats by channel id, handle or
        URL: id, handle, name, URLs, description (and an official artist
        channel's bio), verified and official-artist badges, profile picture and
        banner, subscriber count (YouTube shows it rounded), exact video and
        lifetime view counts, join date, country, keywords, external links,
        whether the channel lists a business email, its tabs (Videos, Shorts,
        Live, Playlists…), family-safe flag and RSS feed URL. Pass exactly one
        of `channelId`, `handle` or `url`. Videos are not included. Only
        publicly available data is returned.
      parameters:
        - name: channelId
          in: query
          required: false
          description: >-
            The channel id: `UC` followed by 22 characters, e.g.
            `UCX6OQ3DkcsbYNE6H8uQQuVA`.
          schema:
            type: string
          example: UCX6OQ3DkcsbYNE6H8uQQuVA
        - name: handle
          in: query
          required: false
          description: The channel handle, with or without `@`, e.g. `MrBeast`.
          schema:
            type: string
          example: MrBeast
        - name: url
          in: query
          required: false
          description: >-
            A YouTube channel URL: `/@handle`, `/channel/<id>`, `/c/<name>` or
            `/user/<name>`, e.g. `https://www.youtube.com/@MrBeast`.
          schema:
            type: string
          example: https://www.youtube.com/@MrBeast
        - name: cache_max_age
          in: query
          required: false
          description: >-
            Optional. Return a cached result if one this age or newer exists —
            served for **0 credits** with `meta.cached=true` and
            `meta.cachedAt`. Otherwise a fresh scrape runs (**1 credit**) and
            refreshes the cache. Omit to always scrape fresh.
          schema:
            type: string
            enum:
              - 1d
              - 3d
              - 7d
              - 14d
              - 30d
          example: 7d
      responses:
        '200':
          description: The channel.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      channel:
                        type: object
                      fetchedAt:
                        type: string
                        format: date-time
                  meta:
                    type: object
                    description: >-
                      requestId + credit/caching metadata (creditsCharged,
                      creditsRemaining, cached, cachedAt).
                required:
                  - data
                  - meta
              example:
                data:
                  channel:
                    id: UCX6OQ3DkcsbYNE6H8uQQuVA
                    handle: MrBeast
                    name: MrBeast
                    url: https://www.youtube.com/@MrBeast
                    channelUrl: https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA
                    description: >
                      SUBSCRIBE FOR A COOKIE!

                      New MrBeast or MrBeast Gaming video every single Saturday
                      at noon eastern time!

                      Accomplishments:

                      - Raised $20,000,000 To Plant 20,000,000 Trees

                      - Removed 30,000,000 pounds of trash from the ocean

                      - Helped 2,000 people walk again

                      - Helped 1,000 blind people see

                      - Helped 1,000 deaf people hear

                      - Built wells in Africa

                      - Built and gave away 100 houses

                      - Adopted every dog in a shelter (twice)

                      - Given millions to charity

                      - Started my own snack company Feastables

                      - Started my own software company Viewstats

                      - Gave away a private island (twice)

                      - Gave away 1 million meals

                      - I counted to 100k

                      - Ran a marathon in the world's largest shoes

                      - Survived 50 hours in Antarctica

                      - Recreated Squid Game in real life

                      - Created the largest competition show with 1000 people
                      (Beast Games)

                      - Gave $5,000,000 to one person

                      - Raised $40,000,000 To Bring Clean Water To Millions Of
                      People

                      - Granted 100+ Dream Wishes for Kids Fighting Cancer

                      - Gave Away Another $5,000,000 On Beast Games S2
                    artistBio: null
                    isVerified: true
                    isOfficialArtist: false
                    avatarUrl: >-
                      https://yt3.googleusercontent.com/nxYrc_1_2f77DoBadyxMTmv7ZpRZapHR5jbuYe7PlPd5cIRJxtNNEYyOC0ZsxaDyJJzXrnJiuDE=s900-c-k-c0x00ffffff-no-rj
                    bannerUrl: >-
                      https://yt3.googleusercontent.com/mHMO_eEMp0dPvh0ADwXhPXNYb_GnjSVsLI8biqF1CpxT8OPl7izhNQsDPD3JHhd5y5Mg9GrP=w2560-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj
                    subscriberCount: 525000000
                    subscriberCountText: 525M
                    videoCount: 1011
                    videoCountApproximate: false
                    viewCount: 145642371073
                    joinedAt: '2012-02-19'
                    country: United States
                    keywords:
                      - mrbeast6000
                      - beast
                      - mrbeast
                    links:
                      - title: Follow
                        url: https://www.instagram.com/mrbeast/
                        displayUrl: instagram.com/mrbeast
                      - title: Twitter
                        url: https://twitter.com/MrBeast
                        displayUrl: twitter.com/MrBeast
                      - title: Facebook
                        url: https://facebook.com/mrbeast/
                        displayUrl: facebook.com/mrbeast
                    hasBusinessEmail: true
                    tabs:
                      - Home
                      - Videos
                      - Shorts
                    isFamilySafe: true
                    availableCountryCount: 249
                    rssUrl: >-
                      https://www.youtube.com/feeds/videos.xml?channel_id=UCX6OQ3DkcsbYNE6H8uQQuVA
                  fetchedAt: '2026-11-03T11:25:33.058Z'
                meta:
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
                  creditsCharged: 1
                  creditsRemaining: 4999
                  cached: false
        '401':
          description: Missing, invalid, or revoked API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: UNAUTHORIZED
                  message: API key required — pass it in the `x-api-key` header.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '402':
          description: Not enough credits for this request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: INSUFFICIENT_CREDITS
                  message: >-
                    This request costs 1 credit, but your balance is 0. Top up
                    to continue.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '404':
          description: No YouTube channel found (it may not exist or have been removed).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: NOT_FOUND
                  message: >-
                    The requested content was not found (it may not exist, be
                    deleted, or be private).
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '422':
          description: >-
            Invalid query parameters (pass exactly one of channelId, handle or
            url).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: VALIDATION_ERROR
                  message: Request validation failed
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
                  details:
                    - path: url
                      message: url is required
        '429':
          description: Over the per-minute rate limit — honour `Retry-After`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: RATE_LIMITED
                  message: >-
                    Rate limit exceeded — max 100 requests per 60s. Retry in
                    ~30s.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '503':
          description: >-
            Temporarily unavailable — retry after `Retry-After`. `error.code`
            tells you why: `UPSTREAM_BLOCKED` (the source blocked this request),
            `EXTRACTION_FAILED` (the source returned unexpected data),
            `PLATFORM_UNAVAILABLE` (the source is down), or
            `SERVICE_UNAVAILABLE` (we are at capacity).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: UPSTREAM_BLOCKED
                  message: >-
                    The source is temporarily unavailable. Please try again
                    shortly.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: NOT_FOUND
            message:
              type: string
              example: The requested content was not found.
            requestId:
              type: string
              example: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
            details:
              type: array
              items:
                type: object
              description: Present on validation errors.
          required:
            - code
            - message
            - requestId
      required:
        - error
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Your API key. Send it in the `x-api-key` header (or `Authorization:
        Bearer <key>`). Create and manage keys from your dashboard.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.