---
title: "YouTube — Search video"
method: GET
path: "/api/search/video"
tags: ["YouTube"]
---

# YouTube — Search video

`GET /api/search/video`

## Request

- Base URL: `https://youtube.fetcher.sh`
- URL: `https://youtube.fetcher.sh/api/search/video`
- Auth: none declared

Search video from YouTube. Returns the standard { status, message, data } envelope. $0.005 per call, payable with x402 (USDC on Base, Monad or Solana) or a prepaid credits API key.

## Query parameters

- `query` string, required
- `cursor` string
- `duration` 'short' | 'medium' | 'long'
- `features` 'hd' | 'subtitles' | 'creative_commons' | '3d' | 'live' | 'purchased' | '4k' | '360' | 'location' | 'hdr' | 'vr180'
- `uploadDate` 'hour' | 'today' | 'week' | 'month' | 'year'
- `sortBy` 'relevance' | 'rating' | 'upload_date' | 'view_count'
- `lang` string
- `geo` string

## Response `200`

Success — upstream payload in `data`.

- Envelope: Every response uses this envelope; the HTTP status mirrors `status`.
  - `status` integer, required: HTTP status code, mirrored in the body.
  - `message` string, required: "ok" on success, otherwise the error reason.
  - `data` object, nullable, required: Upstream payload; null on errors.

## Other responses

- `400`: Missing or invalid parameter.
- `402`: Payment Required
- `502`: Upstream error.

---

[API](https://skmtc.dev/fetcher/apis/youtube-api-fetcher-sh.md) · [All operations](https://skmtc.dev/fetcher/apis/youtube-api-fetcher-sh/llms.txt) · [OpenAPI document](https://skmtc.dev/fetcher/apis/youtube-api-fetcher-sh/revisions/557a744ced6a?raw)
