# YouTube API
> 38 endpoints for live YouTube data — search, suggestions, video & channel detail, thumbnails, ID/URL helpers.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/youtube-api/..."
```

## Pricing
- **Free** (Free) — 100 calls/Mo, 1 req/s
- **Basic** ($15/Mo) — 25,000 calls/Mo, 10 req/s
- **Pro** ($49/Mo) — 100,000 calls/Mo, 20 req/s
- **Mega** ($149/Mo) — 500,000 calls/Mo, 50 req/s

## Endpoints

### Search

#### `GET /v1/search/all` — Search all

Kombinierte Such über Videos, Channels, Live, Live-Streams.

**Parameters:**
- `query` (query, required, string) — Search text Example: `mrbeast`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/search/all?query=mrbeast"
```

**Response:**
```json
{
    "data": {
        "count": 27,
        "query": "mrbeast",
        "results": [
            {
                "type": "video",
                "title": "I Stranded 100 People In The Wilderness For $250,000",
                "duration": "37:00",
                "video_id": "6Zy5VLcEbZc",
                "thumbnail": "https://i.ytimg.com/vi/6Zy5VLcEbZc/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDjXGQvpaoEr8q2zGy3Ulz-w0aV1w",
                "watch_url": "https://www.youtube.com/watch?v=6Zy5VLcEbZc",
                "view_count": "51873537",
                "channel_url": "https://www.youtube.com/@MrBeast",
                "channel_name": "MrBeast",
                "published_time": "1d ago",
                "view_count_text": "51,873,537 views"
            },
            {
                "type": "video",
                "title": "Last To Leave Grocery Store, Wins $250,000",
                "duration": "42:57",
                "video_id": "zRtGL0-5rg4",
                "thumbnail": "https://i.ytimg.com/vi/zRtGL0-5rg4/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAf-HGlB3_13-Tqb54BYAOiy_3lHg",
                "watch_url": "https://www.youtube.com/watch?v=zRtGL0-5rg4",
                "view_count": "120870136",
                "channel_url": "https://www.youtube.com/@MrBeast",
                "channel_name": "MrBeast",
                "published_time": "2w ago",
                "view_count_text": "120,870,136 views"
   
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search/videos` — Search videos

Video-Suche.

**Parameters:**
- `query` (query, required, string) — Search text Example: `mrbeast`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/search/videos?query=mrbeast"
```

**Response:**
```json
{
    "data": {
        "count": 24,
        "query": "mrbeast",
        "videos": [
            {
                "type": "video",
                "title": "I Stranded 100 People In The Wilderness For $250,000",
                "duration": "37:00",
                "video_id": "6Zy5VLcEbZc",
                "thumbnail": "https://i.ytimg.com/vi/6Zy5VLcEbZc/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDjXGQvpaoEr8q2zGy3Ulz-w0aV1w",
                "watch_url": "https://www.youtube.com/watch?v=6Zy5VLcEbZc",
                "view_count": "51873537",
                "channel_url": "https://www.youtube.com/@MrBeast",
                "channel_name": "MrBeast",
                "published_time": "1 day ago",
                "view_count_text": "51,873,537 views"
            },
            {
                "type": "video",
                "title": "Last To Leave Grocery Store, Wins $250,000",
                "duration": "42:57",
                "video_id": "zRtGL0-5rg4",
                "thumbnail": "https://i.ytimg.com/vi/zRtGL0-5rg4/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAf-HGlB3_13-Tqb54BYAOiy_3lHg",
                "watch_url": "https://www.youtube.com/watch?v=zRtGL0-5rg4",
                "view_count": "120870136",
                "channel_url": "https://www.youtube.com/@MrBeast",
                "channel_name": "MrBeast",
                "published_time": "2 weeks ago",
                "view_count_text": "120,870,136 vie
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search/channels` — Search channels

Channel-Suche.

**Parameters:**
- `query` (query, required, string) — Search text Example: `mrbeast`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/search/channels?query=mrbeast"
```

**Response:**
```json
{
    "data": {
        "count": 3,
        "query": "mrbeast",
        "channels": [
            {
                "type": "channel",
                "title": "MrBeast",
                "handle": "/@MrBeast",
                "thumbnail": "//yt3.ggpht.com/nxYrc_1_2f77DoBadyxMTmv7ZpRZapHR5jbuYe7PlPd5cIRJxtNNEYyOC0ZsxaDyJJzXrnJiuDE=s176-c-k-c0x00ffffff-no-rj-mo",
                "channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
                "channel_url": "https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA",
                "description": "SUBSCRIBE FOR A COOKIE! New MrBeast or MrBeast Gaming video every single Saturday at noon eastern time!",
                "video_count_text": "481M subscribers",
                "subscriber_count_text": "@MrBeast"
            },
            {
                "type": "channel",
                "title": "MrBeast Gaming",
                "handle": "/@MrBeastGaming",
                "thumbnail": "//yt3.googleusercontent.com/ytc/AIdro_lMiSL6eHqg2dVxvll6mVMeXo1qVak4TZ4_7mEWdobRRCk=s176-c-k-c0x00ffffff-no-rj-mo",
                "channel_id": "UCIPPMRA040LQr5QPyJEbmXA",
                "channel_url": "https://www.youtube.com/channel/UCIPPMRA040LQr5QPyJEbmXA",
                "description": "New MrBeast or MrBeast Gaming video every single Saturday at noon eastern time! MrBeast Gaming - SUBSCRIBE OR ELSE.",
                "video_count_text": "56.1M subscribers",
                "subscriber_count_text": "@MrBeastGaming"
            },
            {

…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search/live` — Search live

Aktuell live laufende Streams.

**Parameters:**
- `query` (query, required, string) — Search text Example: `news`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/search/live?query=news"
```

**Response:**
```json
{
    "data": {
        "live": [
            {
                "type": "video",
                "title": "🔴LIVE | TN Election Result Live Today | சற்றுநேரத்தில் விஜய் Entry.. | TVK Vijay | Election Results",
                "duration": null,
                "video_id": "EdcJHyvDScs",
                "thumbnail": "https://i.ytimg.com/vi/EdcJHyvDScs/hq720.jpg?v=69f891a0&sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDi9kjsnECc-lXfJbClSLxytBsK0w",
                "watch_url": "https://www.youtube.com/watch?v=EdcJHyvDScs",
                "view_count": "76248",
                "channel_url": "https://www.youtube.com/@PuthiyaThalaimuraiTV",
                "channel_name": "PuthiyathalaimuraiTV",
                "published_time": null,
                "view_count_text": "76,248 watching"
            },
            {
                "type": "video",
                "title": "Kerala Assembly Election Results 2026 | Counting Day Live | Result updates | Kerala Results 2026",
                "duration": null,
                "video_id": "3miKzKlmA-4",
                "thumbnail": "https://i.ytimg.com/vi/3miKzKlmA-4/hq720.jpg?v=69f8502d&sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDZHQzntXw3l7pErX8nicYcIaRKiA",
                "watch_url": "https://www.youtube.com/watch?v=3miKzKlmA-4",
                "view_count": "22837",
                "channel_url": "https://www.youtube.com/@manoramanews",
                "cha
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search/top-result` — Top result

Bester Treffer für die Query.

**Parameters:**
- `query` (query, required, string) — Search text Example: `mrbeast`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/search/top-result?query=mrbeast"
```

**Response:**
```json
{
    "data": {
        "query": "mrbeast",
        "result": {
            "type": "video",
            "title": "I Stranded 100 People In The Wilderness For $250,000",
            "duration": "37:00",
            "video_id": "6Zy5VLcEbZc",
            "thumbnail": "https://i.ytimg.com/vi/6Zy5VLcEbZc/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDjXGQvpaoEr8q2zGy3Ulz-w0aV1w",
            "watch_url": "https://www.youtube.com/watch?v=6Zy5VLcEbZc",
            "view_count": "51873537",
            "channel_url": "https://www.youtube.com/@MrBeast",
            "channel_name": "MrBeast",
            "published_time": "1 day ago",
            "view_count_text": "51,873,537 views"
        }
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:33.723Z",
        "request_id": "97a12ce8-6000-4b8a-9b78-5359663851c4"
    },
    "status": "ok",
    "message": "Top result retrieved successfully",
    "success": true
}
```

#### `GET /v1/search/video-ids` — Search video IDs

Nur Video-IDs für die Query.

**Parameters:**
- `query` (query, required, string) — Search text Example: `mrbeast`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/search/video-ids?query=mrbeast"
```

**Response:**
```json
{
    "data": {
        "count": 25,
        "query": "mrbeast",
        "video_ids": [
            "6Zy5VLcEbZc",
            "zRtGL0-5rg4",
            "DXVHmGoCTco",
            "JFtlf8RoPZY",
            "AoN1K4c7VKE",
            "5OLs1GWB4OA",
            "9WEQts7b8Pw",
            "pAnGwRiQ4-4",
            "QJI0an6irrA",
            "DXVHmGoCTco",
            "C__PnW1Mixw",
            "pAnGwRiQ4-4",
            "ha4tRQwKIUg",
            "ayXxwJJId_c",
            "Xj0Jtjg3lHQ",
            "KrLj6nc516A",
            "bn0Kh9c4Zv4",
            "0NGWT9COcEI",
            "PWirijQkH4M",
            "2isYuQZMbdU",
            "erLbbextvlY",
            "zajUgQLviwk",
            "IdENz7Spr74",
            "1WEAJ-DFkHE",
            "48h57PspBec"
        ]
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:34.664Z",
        "request_id": "bc7bf87c-b8dc-4094-b00e-38609c596330"
    },
    "status": "ok",
    "message": "Video IDs retrieved successfully",
    "success": true
}
```

#### `GET /v1/search/thumbnails` — Search thumbnails

Thumbnail-URLs aus den Suchergebnissen.

**Parameters:**
- `query` (query, required, string) — Search text Example: `mrbeast`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/search/thumbnails?query=mrbeast"
```

**Response:**
```json
{
    "data": {
        "count": 24,
        "query": "mrbeast",
        "thumbnails": [
            {
                "title": "100 People Simulate Being Stranded In The Wilderness",
                "video_id": "6Zy5VLcEbZc",
                "thumbnail": "https://i.ytimg.com/vi/6Zy5VLcEbZc/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDjXGQvpaoEr8q2zGy3Ulz-w0aV1w"
            },
            {
                "title": "Last To Leave Grocery Store, Wins $250,000",
                "video_id": "zRtGL0-5rg4",
                "thumbnail": "https://i.ytimg.com/vi/zRtGL0-5rg4/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAf-HGlB3_13-Tqb54BYAOiy_3lHg"
            },
            {
                "title": "50 Streamers Fight for $1,000,000",
                "video_id": "DXVHmGoCTco",
                "thumbnail": "https://i.ytimg.com/vi/DXVHmGoCTco/hq720_custom_2.jpg?sqp=CLTK4s8G-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBvytBu0uZHCEXPDJU_DekRFvOY5A"
            },
            {
                "title": "Trapped On An Island Until I Build A Boat",
                "video_id": "JFtlf8RoPZY",
                "thumbnail": "https://i.ytimg.com/vi/JFtlf8RoPZY/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBnd7JzGg0L5d8tE7enchu1cvZxLg"
            },
            {
                "title": "Survive 30 Days Stranded With Your Ex, Win $250,000",
                "video_id": "AoN1K4c7VKE",
                "
…(truncated, see openapi.json for full schema)
```

### Suggestions

#### `GET /v1/suggestions/all` — Suggestions all

YouTube Auto-Complete (Phrasen + Entitäten).

**Parameters:**
- `query` (query, required, string) — Search text Example: `mrbeast`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/suggestions/all?query=mrbeast"
```

**Response:**
```json
{
    "data": {
        "count": 14,
        "query": "mrbeast",
        "suggestions": [
            {
                "image": "https://yt3.googleusercontent.com/nxYrc_1_2f77DoBadyxMTmv7ZpRZapHR5jbuYe7PlPd5cIRJxtNNEYyOC0ZsxaDyJJzXrnJiuDE=s88-c-k-c0x00ffffff-no-rj",
                "query": "mrbeast",
                "entity": "@MrBeast",
                "entity_id": "/g/11ffmnm29k"
            },
            {
                "image": null,
                "query": "mrbeast auf deutsch",
                "entity": null,
                "entity_id": null
            },
            {
                "image": null,
                "query": "mrbeast gaming",
                "entity": null,
                "entity_id": null
            },
            {
                "image": null,
                "query": "mrbeast minecraft",
                "entity": null,
                "entity_id": null
            },
            {
                "image": null,
                "query": "mrbeast supermarket",
                "entity": null,
                "entity_id": null
            },
            {
                "image": null,
                "query": "mrbeast give me some money",
                "entity": null,
                "entity_id": null
            },
            {
                "image": null,
                "query": "mrbeast english",
                "entity": null,
                "entity_id": null
            },
            {
                "image": null,
             
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/suggestions/phrases` — Suggestions phrases

Auto-Complete-Phrasen (typische Suchanfragen).

**Parameters:**
- `query` (query, required, string) — Search text Example: `mrbeast`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/suggestions/phrases?query=mrbeast"
```

**Response:**
```json
{
    "data": {
        "count": 14,
        "query": "mrbeast",
        "phrases": [
            "mrbeast",
            "mrbeast auf deutsch",
            "mrbeast gaming",
            "mrbeast minecraft",
            "mrbeast supermarket",
            "mrbeast give me some money",
            "mrbeast english",
            "mrbeast edeka",
            "mrbeast 2",
            "mrbeast german",
            "mrbeast streamers",
            "mrbeast survival",
            "mrbeast 7 days",
            "mrbeast lamborghini"
        ]
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:35.876Z",
        "request_id": "906e7981-4e2b-4043-85f7-714d6c7d4d0c"
    },
    "status": "ok",
    "message": "Suggestion phrases retrieved successfully",
    "success": true
}
```

#### `GET /v1/suggestions/entities` — Suggestions entities

Auto-Complete-Entitäten (Personen, Channels, Themen).

**Parameters:**
- `query` (query, required, string) — Search text Example: `mrbeast`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/suggestions/entities?query=mrbeast"
```

**Response:**
```json
{
    "data": {
        "count": 1,
        "query": "mrbeast",
        "entities": [
            {
                "image": "https://yt3.googleusercontent.com/nxYrc_1_2f77DoBadyxMTmv7ZpRZapHR5jbuYe7PlPd5cIRJxtNNEYyOC0ZsxaDyJJzXrnJiuDE=s88-c-k-c0x00ffffff-no-rj",
                "query": "mrbeast",
                "entity": "@MrBeast",
                "entity_id": "/g/11ffmnm29k"
            }
        ]
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:35.989Z",
        "request_id": "b6b5d2d3-609e-4676-9627-335d83e6f883"
    },
    "status": "ok",
    "message": "Suggestion entities retrieved successfully",
    "success": true
}
```

### Videos

#### `GET /v1/videos/detail` — Video detail

Detail-Daten zu einem Video.

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/videos/detail?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "html": "<iframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/dQw4w9WgXcQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)\"></iframe>",
        "type": "video",
        "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
        "width": 200,
        "height": 113,
        "video_id": "dQw4w9WgXcQ",
        "author_url": "https://www.youtube.com/@RickAstleyYT",
        "author_name": "Rick Astley",
        "provider_url": "https://www.youtube.com/",
        "provider_name": "YouTube",
        "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg",
        "thumbnail_width": 480,
        "thumbnail_height": 360
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:36.081Z",
        "request_id": "a0180734-8e84-4da0-920c-b7774c498f29"
    },
    "status": "ok",
    "message": "Video detail retrieved successfully",
    "success": true
}
```

#### `GET /v1/videos/title` — Video title

Nur der Video-Title.

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/videos/title?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
        "video_id": "dQw4w9WgXcQ"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:36.184Z",
        "request_id": "c56139a7-ef4a-4ecf-9ab0-15234fc6339e"
    },
    "status": "ok",
    "message": "Video title retrieved successfully",
    "success": true
}
```

#### `GET /v1/videos/author` — Video author

Channel-Name + URL des Video-Autors.

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/videos/author?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "video_id": "dQw4w9WgXcQ",
        "author_url": "https://www.youtube.com/@RickAstleyYT",
        "author_name": "Rick Astley"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:36.263Z",
        "request_id": "df4d0775-a424-4c8a-85cd-03cff3e99a7f"
    },
    "status": "ok",
    "message": "Video author retrieved successfully",
    "success": true
}
```

#### `GET /v1/videos/thumbnail` — Video thumbnail

Default-Thumbnail-URL.

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/videos/thumbnail?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "width": 480,
        "height": 360,
        "video_id": "dQw4w9WgXcQ",
        "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:36.342Z",
        "request_id": "740c28af-cb7c-47ee-9fd9-c3af507936ff"
    },
    "status": "ok",
    "message": "Video thumbnail retrieved successfully",
    "success": true
}
```

#### `GET /v1/videos/embed-html` — Video embed HTML

oEmbed-iframe-HTML zum Einbinden.

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/videos/embed-html?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "html": "<iframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/dQw4w9WgXcQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)\"></iframe>",
        "video_id": "dQw4w9WgXcQ"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:36.422Z",
        "request_id": "95602f48-a57a-4854-b772-4ef96e2aaa84"
    },
    "status": "ok",
    "message": "Video embed HTML retrieved successfully",
    "success": true
}
```

#### `GET /v1/videos/provider` — Video provider

Provider-Metadata via oEmbed (yt/yt-music etc.).

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/videos/provider?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "type": "video",
        "video_id": "dQw4w9WgXcQ",
        "provider_url": "https://www.youtube.com/",
        "provider_name": "YouTube"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:36.516Z",
        "request_id": "22a748f9-7891-4f79-ac39-1c0012a6ebff"
    },
    "status": "ok",
    "message": "Video provider retrieved successfully",
    "success": true
}
```

#### `GET /v1/videos/urls` — Video URLs

Alle URL-Varianten zu einem Video (watch, short, embed, shorts).

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/videos/urls?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "video_id": "dQw4w9WgXcQ",
        "embed_url": "https://www.youtube.com/embed/dQw4w9WgXcQ",
        "short_url": "https://youtu.be/dQw4w9WgXcQ",
        "watch_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
        "shorts_url": "https://www.youtube.com/shorts/dQw4w9WgXcQ"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:36.582Z",
        "request_id": "0036fce2-8b68-444d-9697-f616383497e8"
    },
    "status": "ok",
    "message": "Video URLs retrieved successfully",
    "success": true
}
```

#### `GET /v1/videos/thumbnails` — Video thumbnails

Alle Thumbnail-Auflösungen (default, medium, high, standard, maxres).

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/videos/thumbnails?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "video_id": "dQw4w9WgXcQ",
        "thumbnails": {
            "high": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg",
            "maxres": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg",
            "medium": "https://i.ytimg.com/vi/dQw4w9WgXcQ/mqdefault.jpg",
            "default": "https://i.ytimg.com/vi/dQw4w9WgXcQ/default.jpg",
            "standard": "https://i.ytimg.com/vi/dQw4w9WgXcQ/sddefault.jpg"
        }
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:36.643Z",
        "request_id": "053d3c36-ee80-4f4d-8943-ec7dc03b282f"
    },
    "status": "ok",
    "message": "Video thumbnails retrieved successfully",
    "success": true
}
```

### Channels

#### `GET /v1/channels/id-from-handle` — ID from handle

Channel-ID aus einem @-Handle.

**Parameters:**
- `handle` (query, required, string) — YouTube channel handle Example: `MrBeast`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/channels/id-from-handle?handle=MrBeast"
```

**Response:**
```json
{
    "data": {
        "handle": "@MrBeast",
        "channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:37.120Z",
        "request_id": "75088268-08bc-4d77-aad6-c4412be16018"
    },
    "status": "ok",
    "message": "Channel ID retrieved successfully",
    "success": true
}
```

#### `GET /v1/channels/rss-feed` — RSS feed

Roher RSS-Feed eines Channels.

**Parameters:**
- `channel_id` (query, required, string) — YouTube channel ID Example: `UCX6OQ3DkcsbYNE6H8uQQuVA`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/channels/rss-feed?channel_id=UCX6OQ3DkcsbYNE6H8uQQuVA"
```

**Response:**
```json
{
    "data": {
        "count": 15,
        "title": "MrBeast",
        "videos": [
            {
                "title": "Asking My Fiancée on a Date",
                "updated": "2026-05-04T02:54:12+00:00",
                "video_id": "feu5PQvoCiA",
                "published": "2026-05-03T16:00:11+00:00",
                "thumbnail": "https://i3.ytimg.com/vi/feu5PQvoCiA/hqdefault.jpg",
                "watch_url": "https://www.youtube.com/shorts/feu5PQvoCiA",
                "channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
                "view_count": "3497091",
                "author_name": "MrBeast",
                "description": null
            },
            {
                "title": "I Stranded 100 People In The Wilderness For $250,000",
                "updated": "2026-05-04T13:52:37+00:00",
                "video_id": "6Zy5VLcEbZc",
                "published": "2026-05-02T16:00:01+00:00",
                "thumbnail": "https://i3.ytimg.com/vi/6Zy5VLcEbZc/hqdefault.jpg",
                "watch_url": "https://www.youtube.com/watch?v=6Zy5VLcEbZc",
                "channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
                "view_count": "51872069",
                "author_name": "MrBeast",
                "description": "what wins in a battle of survival, knowledge or resources?\n\nThanks to Bass Pro Shops for providing these teams with some awesome gear. Shop here: https://www.basspro.com/home\n\nDisclaimer: We are contributing cash towards the wish of your choosing. Ru
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/channels/rss-metadata` — RSS metadata

Channel-Metadata aus dem RSS-Feed.

**Parameters:**
- `channel_id` (query, required, string) — YouTube channel ID Example: `UCX6OQ3DkcsbYNE6H8uQQuVA`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/channels/rss-metadata?channel_id=UCX6OQ3DkcsbYNE6H8uQQuVA"
```

**Response:**
```json
{
    "data": {
        "count": 15,
        "title": "MrBeast",
        "feed_url": "https://www.youtube.com/feeds/videos.xml?channel_id=UCX6OQ3DkcsbYNE6H8uQQuVA",
        "channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
        "author_name": "MrBeast"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:37.256Z",
        "request_id": "2c9559b6-bc20-48c2-b50c-a894aa1969b0"
    },
    "status": "ok",
    "message": "RSS metadata retrieved successfully",
    "success": true
}
```

#### `GET /v1/channels/latest-videos` — Latest videos

Liste der neuesten Videos eines Channels.

**Parameters:**
- `channel_id` (query, required, string) — YouTube channel ID Example: `UCX6OQ3DkcsbYNE6H8uQQuVA`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/channels/latest-videos?channel_id=UCX6OQ3DkcsbYNE6H8uQQuVA"
```

**Response:**
```json
{
    "data": {
        "count": 15,
        "videos": [
            {
                "title": "Asking My Fiancée on a Date",
                "updated": "2026-05-04T02:54:12+00:00",
                "video_id": "feu5PQvoCiA",
                "published": "2026-05-03T16:00:11+00:00",
                "thumbnail": "https://i3.ytimg.com/vi/feu5PQvoCiA/hqdefault.jpg",
                "watch_url": "https://www.youtube.com/shorts/feu5PQvoCiA",
                "channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
                "view_count": "3497091",
                "author_name": "MrBeast",
                "description": null
            },
            {
                "title": "I Stranded 100 People In The Wilderness For $250,000",
                "updated": "2026-05-04T13:52:37+00:00",
                "video_id": "6Zy5VLcEbZc",
                "published": "2026-05-02T16:00:01+00:00",
                "thumbnail": "https://i3.ytimg.com/vi/6Zy5VLcEbZc/hqdefault.jpg",
                "watch_url": "https://www.youtube.com/watch?v=6Zy5VLcEbZc",
                "channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
                "view_count": "51872069",
                "author_name": "MrBeast",
                "description": "what wins in a battle of survival, knowledge or resources?\n\nThanks to Bass Pro Shops for providing these teams with some awesome gear. Shop here: https://www.basspro.com/home\n\nDisclaimer: We are contributing cash towards the wish of your choosing. Rules and conditions apply. Pl
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/channels/latest-video` — Latest video

Neuestes Video eines Channels (kompakt).

**Parameters:**
- `channel_id` (query, required, string) — YouTube channel ID Example: `UCX6OQ3DkcsbYNE6H8uQQuVA`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/channels/latest-video?channel_id=UCX6OQ3DkcsbYNE6H8uQQuVA"
```

**Response:**
```json
{
    "data": {
        "video": {
            "title": "Asking My Fiancée on a Date",
            "updated": "2026-05-04T02:54:12+00:00",
            "video_id": "feu5PQvoCiA",
            "published": "2026-05-03T16:00:11+00:00",
            "thumbnail": "https://i3.ytimg.com/vi/feu5PQvoCiA/hqdefault.jpg",
            "watch_url": "https://www.youtube.com/shorts/feu5PQvoCiA",
            "channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
            "view_count": "3497091",
            "author_name": "MrBeast",
            "description": null
        },
        "channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:37.386Z",
        "request_id": "5afee988-dd3d-45dc-afd0-e2233a20184a"
    },
    "status": "ok",
    "message": "Latest video retrieved successfully",
    "success": true
}
```

#### `GET /v1/channels/video-ids` — Video IDs

Nur die Video-IDs eines Channels.

**Parameters:**
- `channel_id` (query, required, string) — YouTube channel ID Example: `UCX6OQ3DkcsbYNE6H8uQQuVA`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/channels/video-ids?channel_id=UCX6OQ3DkcsbYNE6H8uQQuVA"
```

**Response:**
```json
{
    "data": {
        "count": 15,
        "video_ids": [
            "feu5PQvoCiA",
            "6Zy5VLcEbZc",
            "VEGq2Du_HCw",
            "EdT5Z16Y5WE",
            "ScjQAcbA9e4",
            "hRBpDdWbUpI",
            "pzxtGL9kzPs",
            "yy-Nt0dRhNI",
            "zRtGL0-5rg4",
            "mFWpUx3FiyU",
            "6W_841xoprg",
            "VIJLIo5yT1I",
            "uNu6XEPTy5g",
            "DXVHmGoCTco",
            "_JUlWtSCNbs"
        ],
        "channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:37.455Z",
        "request_id": "86bffb15-594d-4610-b467-5b53a7dcf1dc"
    },
    "status": "ok",
    "message": "Channel video IDs retrieved successfully",
    "success": true
}
```

### Utils

#### `GET /v1/utils/video-id-from-url` — Video ID from URL

Extrahiert die Video-ID aus jeder YouTube-URL.

**Parameters:**
- `url` (query, required, string) — YouTube URL Example: `https://youtu.be/dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/utils/video-id-from-url?url=https%3A%2F%2Fyoutu.be%2FdQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "video_id": "dQw4w9WgXcQ"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:37.535Z",
        "request_id": "fd53b156-d19b-4789-af26-af347d1f575d"
    },
    "status": "ok",
    "message": "Video ID retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/watch-url-from-id` — Watch URL

Baut die /watch?v=...-URL.

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/utils/watch-url-from-id?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "watch_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:37.583Z",
        "request_id": "13a2a5b3-53c0-4bcc-b809-7f611318c34a"
    },
    "status": "ok",
    "message": "Watch URL retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/short-url-from-id` — Short URL

Baut die youtu.be-URL.

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/utils/short-url-from-id?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "short_url": "https://youtu.be/dQw4w9WgXcQ"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:37.630Z",
        "request_id": "fa726db4-97b4-4c05-92a6-4c3e8d33fafb"
    },
    "status": "ok",
    "message": "Short URL retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/embed-url-from-id` — Embed URL

Baut die /embed/...-URL.

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/utils/embed-url-from-id?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "embed_url": "https://www.youtube.com/embed/dQw4w9WgXcQ"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:37.674Z",
        "request_id": "e975cbd2-d170-4b48-9fc6-3ab07736f801"
    },
    "status": "ok",
    "message": "Embed URL retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/shorts-url-from-id` — Shorts URL

Baut die /shorts/...-URL.

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/utils/shorts-url-from-id?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "shorts_url": "https://www.youtube.com/shorts/dQw4w9WgXcQ"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:37.748Z",
        "request_id": "ef6fb851-8c0f-4e00-982f-ce2a3a9f7490"
    },
    "status": "ok",
    "message": "Shorts URL retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/thumbnail-default` — Thumbnail default

Default-Thumbnail-URL (120×90).

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/utils/thumbnail-default?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "quality": "default",
        "video_id": "dQw4w9WgXcQ",
        "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/default.jpg"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:37.796Z",
        "request_id": "38d4ca5e-ecac-40d6-9bb9-67e39070d299"
    },
    "status": "ok",
    "message": "Default thumbnail URL retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/thumbnail-medium` — Thumbnail medium

Medium-Thumbnail-URL (320×180).

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/utils/thumbnail-medium?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "quality": "mqdefault",
        "video_id": "dQw4w9WgXcQ",
        "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/mqdefault.jpg"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:37.850Z",
        "request_id": "39fbcc41-398d-47a2-a4d8-6fb759e7914c"
    },
    "status": "ok",
    "message": "Medium thumbnail URL retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/thumbnail-high` — Thumbnail high

High-Thumbnail-URL (480×360).

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/utils/thumbnail-high?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "quality": "hqdefault",
        "video_id": "dQw4w9WgXcQ",
        "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:37.898Z",
        "request_id": "b71fac08-eb30-4529-aa7d-057a485e8df6"
    },
    "status": "ok",
    "message": "High thumbnail URL retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/thumbnail-standard` — Thumbnail standard

Standard-Thumbnail-URL (640×480).

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/utils/thumbnail-standard?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "quality": "sddefault",
        "video_id": "dQw4w9WgXcQ",
        "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/sddefault.jpg"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:37.945Z",
        "request_id": "92a3d0d8-bd56-479e-a2cd-78ca7e358969"
    },
    "status": "ok",
    "message": "Standard thumbnail URL retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/thumbnail-maxres` — Thumbnail maxres

Maxres-Thumbnail-URL (1280×720).

**Parameters:**
- `id` (query, required, string) — YouTube video ID Example: `dQw4w9WgXcQ`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/utils/thumbnail-maxres?id=dQw4w9WgXcQ"
```

**Response:**
```json
{
    "data": {
        "quality": "maxresdefault",
        "video_id": "dQw4w9WgXcQ",
        "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:37.994Z",
        "request_id": "a4cd8429-2ba5-4b33-80ea-5044a2c391f2"
    },
    "status": "ok",
    "message": "Max thumbnail URL retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/channel-url-from-id` — Channel URL from ID

Baut die Channel-URL aus einer Channel-ID.

**Parameters:**
- `id` (query, required, string) — YouTube channel ID Example: `UCX6OQ3DkcsbYNE6H8uQQuVA`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/utils/channel-url-from-id?id=UCX6OQ3DkcsbYNE6H8uQQuVA"
```

**Response:**
```json
{
    "data": {
        "channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
        "channel_url": "https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:38.067Z",
        "request_id": "06082e33-deb7-45c1-9ddc-4758600881da"
    },
    "status": "ok",
    "message": "Channel URL retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/channel-handle-from-url` — Channel handle from URL

Extrahiert das @-Handle aus einer Channel-URL.

**Parameters:**
- `url` (query, required, string) — YouTube channel URL Example: `https://www.youtube.com/@MrBeast`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/utils/channel-handle-from-url?url=https%3A%2F%2Fwww.youtube.com%2F%40MrBeast"
```

**Response:**
```json
{
    "data": {
        "handle": "@MrBeast"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:38.114Z",
        "request_id": "9c8f56e4-330c-4465-a921-5ee3a4cee085"
    },
    "status": "ok",
    "message": "Channel handle retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/playlist-id-from-url` — Playlist ID from URL

Extrahiert die Playlist-ID aus einer YouTube-URL.

**Parameters:**
- `url` (query, required, string) — Playlist URL Example: `https://www.youtube.com/playlist?list=PLrAXtmRdnEQy6nuLMHjMZOz59OqDsHh25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/utils/playlist-id-from-url?url=https%3A%2F%2Fwww.youtube.com%2Fplaylist%3Flist%3DPLrAXtmRdnEQy6nuLMHjMZOz59OqDsHh25"
```

**Response:**
```json
{
    "data": {
        "playlist_id": "PLrAXtmRdnEQy6nuLMHjMZOz59OqDsHh25"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:38.162Z",
        "request_id": "ba5eac4b-428f-4829-8de6-64b5783ece1e"
    },
    "status": "ok",
    "message": "Playlist ID retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/playlist-url-from-id` — Playlist URL from ID

Baut die Playlist-URL aus einer Playlist-ID.

**Parameters:**
- `id` (query, required, string) — Playlist ID Example: `PLrAXtmRdnEQy6nuLMHjMZOz59OqDsHh25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/youtube-api/v1/utils/playlist-url-from-id?id=PLrAXtmRdnEQy6nuLMHjMZOz59OqDsHh25"
```

**Response:**
```json
{
    "data": {
        "playlist_id": "PLrAXtmRdnEQy6nuLMHjMZOz59OqDsHh25",
        "playlist_url": "https://www.youtube.com/playlist?list=PLrAXtmRdnEQy6nuLMHjMZOz59OqDsHh25"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:38.213Z",
        "request_id": "a4af68ca-d1a9-4789-ac59-fb6d19b4efbb"
    },
    "status": "ok",
    "message": "Playlist URL retrieved successfully",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/youtube-api
OpenAPI spec: https://www.oanor.com/api/youtube-api/openapi.json
