---
title: "Channel profile / identity"
method: GET
path: "/api/v2/youtube/channel/info"
tags: ["YouTube channel"]
---

# Channel profile / identity

`GET /api/v2/youtube/channel/info`

## Request

- Base URL: `https://transcriptapi.com`
- URL: `https://transcriptapi.com/api/v2/youtube/channel/info`
- Auth: HTTP bearer

Fetch a channel's profile: title, @handle, verified flag, subscriber/video count text, description, keywords, tags, thumbnails, banners, and available tabs.

Use the `channel` parameter with an @handle, channel URL, or UC... channel ID.

Formatted counts are display strings (e.g. `27.8M subscribers`) and are `null` when YouTube does not expose them — never `0`. About-tab fields YouTube does not serve over an unauthenticated request (join date, total views, country, external links) are omitted.

**Freshness:** cached for 5 minutes.

**Credit cost:** 1 credit per request.

## Query parameters

- `channel` string, nullable: Channel identifier: @handle, channel URL, or UC... channel ID

## Response `200`

Successful Response

- ChannelInfoResponse: Channel profile/identity from the Innertube browse endpoint. Formatted count strings (`subscriberCountText`, `videoCountText`) are display strings, not exact numbers, and are `None` when YouTube does not expose them — never coerced to 0. About-tab fields YouTube does not serve over an unauthenticated browse (join date, total views, country, external links) are intentionally omitted rather than guessed.
  - `channelId` string, nullable
  - `title` string, nullable
  - `handle` string, nullable
  - `verified` boolean
  - `subscriberCountText` string, nullable
  - `videoCountText` string, nullable
  - `description` string, nullable
  - `keywords` string, nullable
  - `tags` string[], nullable
  - `isFamilySafe` boolean, nullable
  - `thumbnails` Thumbnail[]
    - `url` string, required
    - `width` integer, nullable
    - `height` integer, nullable
  - `banners` Thumbnail[]
    - `url` string, required
    - `width` integer, nullable
    - `height` integer, nullable
  - `availableTabs` string[]

## Other responses

- `400`: **Bad Request** - Missing or invalid parameters. **Do not retry** with the same input.
- `401`: Unauthorized - invalid Authorization format or API key
- `402`: Payment Required - inactive plan or exhausted credits
- `404`: **Not Found** - Channel does not exist. **Do not retry.**
- `408`: **Request Timeout / Retry** - Temporary failure (bot detection, network issues). **Safe to retry** after a short delay (1-5 seconds).
- `422`: Validation Error
- `429`: **Too Many Requests** - Rate limit exceeded. **Retry after** the delay in `Retry-After` header.
- `500`: **Internal Server Error** - Unexpected error. May retry, but if persistent, contact support.
- `503`: **Service Unavailable** - Service temporarily down or initializing. **Retry** after a short delay.

## Changes

- **2026-10-07** `6380d033643e`: 3 warning
  - the optional response header `X-RateLimit-Limit` removed for the status `429`
  - the optional response header `X-RateLimit-Remaining` removed for the status `429`
  - the optional response header `X-RateLimit-Reset` removed for the status `429`
- **2026-09-18** `fefff856887d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/transcriptapi/apis/youtube-transcript-api-public/changes/api/v2/youtube/channel/info/get.md)

---

[API](https://skmtc.dev/transcriptapi/apis/youtube-transcript-api-public.md) - [All operations](https://skmtc.dev/transcriptapi/apis/youtube-transcript-api-public/llms.txt) - [OpenAPI document](https://skmtc.dev/transcriptapi/apis/youtube-transcript-api-public/revisions/af12b0db83b8?raw)
