---
title: "Search videos within a channel"
method: GET
path: "/api/v2/youtube/channel/search"
tags: ["YouTube channel"]
---

# Search videos within a channel

`GET /api/v2/youtube/channel/search`

Search for videos within a specific channel.

First page: pass `channel` (@handle, URL, or UC... ID) + `q`.
Subsequent pages: pass `continuation` token from previous response (omit `channel`/`q`).

Returns YouTube's full page (~30 items) per call.

**Pagination:** The response includes `continuation_token` (when `has_more=true`).

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

## Query parameters

- `channel` string, nullable — Channel identifier: @handle, channel URL, or UC... channel ID
- `q` string, nullable — Search query (required for first page)
- `continuation` string, nullable — Continuation token from previous page. When provided, channel/q are ignored.

## Response `200`

Successful Response

- ChannelSearchResponse
  - `results` VideoResult[]
    - `type` string
    - `videoId` string, nullable
    - `title` string, nullable
    - `channelId` string, nullable
    - `channelTitle` string, nullable
    - `channelHandle` string, nullable
    - `channelVerified` boolean
    - `lengthText` string, nullable
    - `viewCountText` string, nullable
    - `publishedTimeText` string, nullable
    - `hasCaptions` boolean
    - `thumbnails` Thumbnail[]
      - `url` string, required
      - `width` integer, nullable
      - `height` integer, nullable
  - `result_count` integer
  - `continuation_token` string, nullable
  - `has_more` boolean

## Other responses

- `400` — **Bad Request** - Invalid parameter combination. Provide either (`channel` + `q`) or `continuation`, not both.
- `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.

---

[API](https://skmtc.net/transcriptapi/apis/youtube-transcript-api-public.md) · [All operations](https://skmtc.net/transcriptapi/apis/youtube-transcript-api-public/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/transcriptapi/youtube-transcript-api-public/versions/3203c2d6486c/schema)
