# Twitch API
> 35 endpoints for live Twitch data — users, streams, videos, clips, search, 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/twitch-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

### Users

#### `GET /v1/users/detail` — User detail

Vollständiges User-Profil per Login.

**Parameters:**
- `login` (query, required, string) — Twitch username (login) Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/users/detail?login=ninja"
```

**Response:**
```json
{
    "data": {
        "id": "19571641",
        "login": "ninja",
        "roles": {
            "isStaff": null,
            "isPartner": true,
            "isAffiliate": false
        },
        "created_at": "2011-01-16T04:31:20.024666Z",
        "channel_url": "https://www.twitch.tv/ninja",
        "description": "Just want to make people happy. Co-Founder @DrinkNutcase. ",
        "display_name": "Ninja",
        "followers_count": 19261130,
        "banner_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/36b341d1-0ee2-4cb2-ae00-361740b0051d-profile_banner-480.png",
        "profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/90d40495-f467-4911-9035-72d8d10a49c5-profile_image-300x300.png"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:18.624Z",
        "request_id": "8a878143-f277-45cd-b500-17c2dad81dfb"
    },
    "status": "ok",
    "message": "User detail retrieved successfully",
    "success": true
}
```

#### `GET /v1/users/id` — User ID

Numerische User-ID per Login.

**Parameters:**
- `login` (query, required, string) — Twitch username (login) Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/users/id?login=ninja"
```

**Response:**
```json
{
    "data": {
        "login": "ninja",
        "user_id": "19571641"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:18.911Z",
        "request_id": "3e9fbef4-1b74-4f8a-ad2c-db8a73fbb921"
    },
    "status": "ok",
    "message": "User ID retrieved successfully",
    "success": true
}
```

#### `GET /v1/users/login` — Resolve login

Bestätigt + normalisiert ein Login.

**Parameters:**
- `login` (query, required, string) — Twitch username (login) Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/users/login?login=ninja"
```

**Response:**
```json
{
    "data": {
        "login": "ninja",
        "user_id": "19571641"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:19.209Z",
        "request_id": "0d6ff90d-6266-404e-ab27-1e44437735e9"
    },
    "status": "ok",
    "message": "User login retrieved successfully",
    "success": true
}
```

#### `GET /v1/users/followers` — Follower-Count

Aktueller Follower-Count.

**Parameters:**
- `login` (query, required, string) — Twitch username (login) Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/users/followers?login=ninja"
```

**Response:**
```json
{
    "data": {
        "login": "ninja",
        "followers_count": 19261130
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:19.475Z",
        "request_id": "f65c60fc-9269-4a40-9cd0-8782705d0cfd"
    },
    "status": "ok",
    "message": "Followers retrieved successfully",
    "success": true
}
```

#### `GET /v1/users/avatar` — Avatar URL

Avatar-Bild-URL.

**Parameters:**
- `login` (query, required, string) — Twitch username (login) Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/users/avatar?login=ninja"
```

**Response:**
```json
{
    "data": {
        "login": "ninja",
        "profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/90d40495-f467-4911-9035-72d8d10a49c5-profile_image-300x300.png"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:19.761Z",
        "request_id": "230a3451-96ce-4cf7-afd4-6df56c00b456"
    },
    "status": "ok",
    "message": "Avatar retrieved successfully",
    "success": true
}
```

#### `GET /v1/users/banner` — Banner URL

Banner-Bild-URL.

**Parameters:**
- `login` (query, required, string) — Twitch username (login) Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/users/banner?login=ninja"
```

**Response:**
```json
{
    "data": {
        "login": "ninja",
        "banner_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/36b341d1-0ee2-4cb2-ae00-361740b0051d-profile_banner-480.png"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:27.518Z",
        "request_id": "1b7bb869-cf8e-41eb-878d-b58f1235d4e9"
    },
    "status": "ok",
    "message": "Banner retrieved successfully",
    "success": true
}
```

#### `GET /v1/users/roles` — User roles

Partner / Affiliate / Staff Flags.

**Parameters:**
- `login` (query, required, string) — Twitch username (login) Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/users/roles?login=ninja"
```

**Response:**
```json
{
    "data": {
        "login": "ninja",
        "roles": {
            "isStaff": null,
            "isPartner": true,
            "isAffiliate": false
        }
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:27.800Z",
        "request_id": "9a29892c-e117-454a-8aa5-196e41046a6a"
    },
    "status": "ok",
    "message": "Roles retrieved successfully",
    "success": true
}
```

### Streams

#### `GET /v1/streams/status` — Stream status

Online/Offline-Status eines Channels.

**Parameters:**
- `login` (query, required, string) — Twitch login (live channel best) Example: `gaules`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/streams/status?login=gaules"
```

**Response:**
```json
{
    "data": {
        "login": "gaules",
        "is_live": true
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:28.109Z",
        "request_id": "84e099f7-7107-4fc8-859a-8d1d46510ad3"
    },
    "status": "ok",
    "message": "Stream status retrieved successfully",
    "success": true
}
```

#### `GET /v1/streams/detail` — Stream detail

Vollständige Stream-Daten (live).

**Parameters:**
- `login` (query, required, string) — Twitch login (live channel best) Example: `gaules`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/streams/detail?login=gaules"
```

**Response:**
```json
{
    "data": {
        "id": "317875136245",
        "game": {
            "id": "517947",
            "name": "Voidtrain",
            "box_art_url": "https://static-cdn.jtvnw.net/ttv-boxart/517947_IGDB-144x192.jpg"
        },
        "type": "live",
        "title": "RERUN: Jogos Variados! - !socio - Siga @Gaules nas redes sociais!",
        "watch_url": "https://www.twitch.tv/gaules",
        "created_at": "2026-05-03T12:27:23Z",
        "viewers_count": 908,
        "preview_image_url": "https://static-cdn.jtvnw.net/previews-ttv/live_user_gaules-640x360.jpg"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:28.426Z",
        "request_id": "16ca44d4-1745-4621-a0af-95b0d37740b7"
    },
    "status": "ok",
    "message": "Stream detail retrieved successfully",
    "success": true
}
```

#### `GET /v1/streams/title` — Stream title

Aktueller Stream-Titel.

**Parameters:**
- `login` (query, required, string) — Twitch login (live channel best) Example: `gaules`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/streams/title?login=gaules"
```

**Response:**
```json
{
    "data": {
        "login": "gaules",
        "title": "RERUN: Jogos Variados! - !socio - Siga @Gaules nas redes sociais!"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:28.725Z",
        "request_id": "5392cfd5-de9c-426d-a501-82ce138fa8c8"
    },
    "status": "ok",
    "message": "Stream title retrieved successfully",
    "success": true
}
```

#### `GET /v1/streams/viewers` — Stream viewers

Aktuelle Viewer-Count.

**Parameters:**
- `login` (query, required, string) — Twitch login (live channel best) Example: `gaules`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/streams/viewers?login=gaules"
```

**Response:**
```json
{
    "data": {
        "login": "gaules",
        "viewers_count": 908
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:29.002Z",
        "request_id": "8ee72e4e-6029-4421-892e-7351f4214aab"
    },
    "status": "ok",
    "message": "Stream viewers retrieved successfully",
    "success": true
}
```

#### `GET /v1/streams/game` — Stream game

Aktuell gespieltes Game / Kategorie.

**Parameters:**
- `login` (query, required, string) — Twitch login (live channel best) Example: `gaules`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/streams/game?login=gaules"
```

**Response:**
```json
{
    "data": {
        "game": {
            "id": "517947",
            "name": "Voidtrain",
            "box_art_url": "https://static-cdn.jtvnw.net/ttv-boxart/517947_IGDB-144x192.jpg"
        },
        "login": "gaules"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:29.301Z",
        "request_id": "8c702366-88e0-4297-8ef6-eff38df2badc"
    },
    "status": "ok",
    "message": "Stream game retrieved successfully",
    "success": true
}
```

#### `GET /v1/streams/preview` — Stream preview

Live-Preview-Bild-URL.

**Parameters:**
- `login` (query, required, string) — Twitch login (live channel best) Example: `gaules`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/streams/preview?login=gaules"
```

**Response:**
```json
{
    "data": {
        "login": "gaules",
        "preview_image_url": "https://static-cdn.jtvnw.net/previews-ttv/live_user_gaules-640x360.jpg"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:29.586Z",
        "request_id": "127c887b-9da2-45c9-bdf5-22062eaae9e1"
    },
    "status": "ok",
    "message": "Stream preview retrieved successfully",
    "success": true
}
```

### Videos

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

Liste der Videos eines Channels.

**Parameters:**
- `login` (query, required, string) — Twitch username Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/videos/list?login=ninja"
```

**Response:**
```json
{
    "data": {
        "count": 10,
        "login": "ninja",
        "videos": [
            {
                "id": "2759025179",
                "title": "New map, new update, :D",
                "video_url": "https://www.twitch.tv/videos/2759025179",
                "created_at": "2026-04-28T11:14:21Z",
                "view_count": 114915,
                "channel_url": "https://www.twitch.tv/ninja",
                "thumbnail_url": "https://static-cdn.jtvnw.net/cf_vods/d1m7jfoe9zdc1j/a73bd777ee1ab91144e3_ninja_319118075099_1777374856//thumb/thumb0-320x180.jpg",
                "length_seconds": 11967
            },
            {
                "id": "2743402377",
                "title": "LAST STREAM FOR AWHILE.... | Blev bros sports show, vibing with the bros |",
                "video_url": "https://www.twitch.tv/videos/2743402377",
                "created_at": "2026-04-09T00:25:04Z",
                "view_count": 55443,
                "channel_url": "https://www.twitch.tv/ninja",
                "thumbnail_url": "https://static-cdn.jtvnw.net/cf_vods/d1m7jfoe9zdc1j/e2350127388ec5d6bc0f_ninja_318667539290_1775694299//thumb/thumb0-320x180.jpg",
                "length_seconds": 3876
            },
            {
                "id": "2742139515",
                "title": "Completing our expedition today vibes type stuff | Jesus has risen! HAPPY EASTER",
                "video_url": "https://www.twitch.tv/videos/2742139515",
                "created_at": "2026-04-07
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/videos/latest` — Latest video

Neuestes Video eines Channels.

**Parameters:**
- `login` (query, required, string) — Twitch username Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/videos/latest?login=ninja"
```

**Response:**
```json
{
    "data": {
        "login": "ninja",
        "video": {
            "id": "2759025179",
            "title": "New map, new update, :D",
            "video_url": "https://www.twitch.tv/videos/2759025179",
            "created_at": "2026-04-28T11:14:21Z",
            "view_count": 114915,
            "channel_url": "https://www.twitch.tv/ninja",
            "thumbnail_url": "https://static-cdn.jtvnw.net/cf_vods/d1m7jfoe9zdc1j/a73bd777ee1ab91144e3_ninja_319118075099_1777374856//thumb/thumb0-320x180.jpg",
            "length_seconds": 11967
        }
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:30.662Z",
        "request_id": "07ef5ec5-7718-4cbd-ab6e-7e77d7e6520c"
    },
    "status": "ok",
    "message": "Latest video retrieved successfully",
    "success": true
}
```

#### `GET /v1/videos/ids` — Video IDs

Nur Video-IDs eines Channels.

**Parameters:**
- `login` (query, required, string) — Twitch username Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/videos/ids?login=ninja"
```

**Response:**
```json
{
    "data": {
        "count": 10,
        "login": "ninja",
        "video_ids": [
            "2759025179",
            "2743402377",
            "2742139515",
            "2737976217",
            "2737133200",
            "2736293554",
            "2735691388",
            "2735533525",
            "2730657194",
            "2729715224"
        ]
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:30.939Z",
        "request_id": "53324b2c-aff3-4e2a-8bdf-a9eb52bd67ec"
    },
    "status": "ok",
    "message": "Video IDs retrieved successfully",
    "success": true
}
```

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

Thumbnail-URLs aller Videos.

**Parameters:**
- `login` (query, required, string) — Twitch username Example: `ninja`

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

**Response:**
```json
{
    "data": {
        "count": 10,
        "login": "ninja",
        "thumbnails": [
            {
                "id": "2759025179",
                "title": "New map, new update, :D",
                "thumbnail_url": "https://static-cdn.jtvnw.net/cf_vods/d1m7jfoe9zdc1j/a73bd777ee1ab91144e3_ninja_319118075099_1777374856//thumb/thumb0-320x180.jpg"
            },
            {
                "id": "2743402377",
                "title": "LAST STREAM FOR AWHILE.... | Blev bros sports show, vibing with the bros |",
                "thumbnail_url": "https://static-cdn.jtvnw.net/cf_vods/d1m7jfoe9zdc1j/e2350127388ec5d6bc0f_ninja_318667539290_1775694299//thumb/thumb0-320x180.jpg"
            },
            {
                "id": "2742139515",
                "title": "Completing our expedition today vibes type stuff | Jesus has risen! HAPPY EASTER",
                "thumbnail_url": "https://static-cdn.jtvnw.net/cf_vods/d1m7jfoe9zdc1j/1e041243d63f4f08fbaa_ninja_318747888987_1775566254//thumb/thumb0-320x180.jpg"
            },
            {
                "id": "2737976217",
                "title": "PLAYING EVERY MAP BUT STELLA MONTIS | NERF TRIGGER NADES FOR THE LOVE OF GOD",
                "thumbnail_url": "https://static-cdn.jtvnw.net/cf_vods/d1m7jfoe9zdc1j/114c0842795ec3ed0566_ninja_318553556954_1775133647//thumb/thumb0-320x180.jpg"
            },
            {
                "id": "2737133200",
                "title": "NEW SMG AND SHOTGUN BLUEPRINT OBTAINED | Using them 
…(truncated, see openapi.json for full schema)
```

### Clips

#### `GET /v1/clips/list` — Clip list

Clips eines Channels.

**Parameters:**
- `login` (query, required, string) — Twitch username Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/clips/list?login=ninja"
```

**Response:**
```json
{
    "data": {
        "clips": [
            {
                "id": "1887094151",
                "url": "https://www.twitch.tv/ninja/clip/IcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD",
                "game": {
                    "id": "509658",
                    "name": "Just Chatting"
                },
                "slug": "IcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD",
                "title": "Ninja Reenacting Chalk Board Egirls",
                "created_at": "2021-04-20T18:22:14Z",
                "view_count": 311384,
                "broadcaster": {
                    "login": "ninja",
                    "display_name": "Ninja"
                },
                "thumbnail_url": "https://static-cdn.jtvnw.net/twitch-video-assets/twitch-vap-video-assets-prod-us-west-2/63bd5360-8aea-4234-bce7-00a6426d621a/landscape/thumb/thumb-0000000000-1920x1080.jpg",
                "duration_seconds": 25
            },
            {
                "id": "3649957971",
                "url": "https://www.twitch.tv/ninja/clip/LivelyElegantLasagnaBabyRage-ZK0Mcq5IJGcxthOi",
                "game": {
                    "id": "33214",
                    "name": "Fortnite"
                },
                "slug": "LivelyElegantLasagnaBabyRage-ZK0Mcq5IJGcxthOi",
                "title": "Ninja talks about Dr. Disrespect and how he feels about the situation",
                "created_at": "2024-06-25T14:22:08Z",
                "view_count": 260899,
                "broadc
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/clips/top` — Top clips

Top-Clips (sorted by views).

**Parameters:**
- `login` (query, required, string) — Twitch username Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/clips/top?login=ninja"
```

**Response:**
```json
{
    "data": {
        "clip": {
            "id": "1887094151",
            "url": "https://www.twitch.tv/ninja/clip/IcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD",
            "game": {
                "id": "509658",
                "name": "Just Chatting"
            },
            "slug": "IcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD",
            "title": "Ninja Reenacting Chalk Board Egirls",
            "created_at": "2021-04-20T18:22:14Z",
            "view_count": 311384,
            "broadcaster": {
                "login": "ninja",
                "display_name": "Ninja"
            },
            "thumbnail_url": "https://static-cdn.jtvnw.net/twitch-video-assets/twitch-vap-video-assets-prod-us-west-2/63bd5360-8aea-4234-bce7-00a6426d621a/landscape/thumb/thumb-0000000000-1920x1080.jpg",
            "duration_seconds": 25
        },
        "login": "ninja"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:31.739Z",
        "request_id": "e3c27ca7-dcae-461d-a22b-6de8330f1b71"
    },
    "status": "ok",
    "message": "Top clip retrieved successfully",
    "success": true
}
```

#### `GET /v1/clips/slugs` — Clip slugs

Nur Clip-Slugs eines Channels.

**Parameters:**
- `login` (query, required, string) — Twitch username Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/clips/slugs?login=ninja"
```

**Response:**
```json
{
    "data": {
        "count": 10,
        "login": "ninja",
        "slugs": [
            "IcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD",
            "LivelyElegantLasagnaBabyRage-ZK0Mcq5IJGcxthOi",
            "HonestArtisticMartenAMPEnergy-tipf-QT_07jWaKhd",
            "ReliableSassySnakeNerfBlueBlaster-JId3CJ2lXlfXUXB4",
            "EnticingBreakableMochaKappaClaus",
            "BenevolentElegantShallotFunRun-R863cKoM7ovPNaPa",
            "FaithfulTemperedShallotArgieB8-BSAekleKbkhSMuiu",
            "AmazonianCarelessSwanTakeNRG",
            "EnchantingPlayfulBillMikeHogu-rlZEoFGnjW70pDfJ",
            "PlumpBovineStorkRitzMitz-4mrGXvXjx9-tpb1P"
        ]
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:32.022Z",
        "request_id": "6f5766bc-efdc-466f-b621-1d7db5436305"
    },
    "status": "ok",
    "message": "Clip slugs retrieved successfully",
    "success": true
}
```

#### `GET /v1/clips/thumbnails` — Clip thumbnails

Thumbnail-URLs aller Clips.

**Parameters:**
- `login` (query, required, string) — Twitch username Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/clips/thumbnails?login=ninja"
```

**Response:**
```json
{
    "data": {
        "count": 10,
        "login": "ninja",
        "thumbnails": [
            {
                "slug": "IcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD",
                "title": "Ninja Reenacting Chalk Board Egirls",
                "thumbnail_url": "https://static-cdn.jtvnw.net/twitch-video-assets/twitch-vap-video-assets-prod-us-west-2/63bd5360-8aea-4234-bce7-00a6426d621a/landscape/thumb/thumb-0000000000-1920x1080.jpg"
            },
            {
                "slug": "LivelyElegantLasagnaBabyRage-ZK0Mcq5IJGcxthOi",
                "title": "Ninja talks about Dr. Disrespect and how he feels about the situation",
                "thumbnail_url": "https://static-cdn.jtvnw.net/twitch-video-assets/twitch-vap-video-assets-prod-us-west-2/36e050de-c2ff-456e-ace6-73a3d61d3a39/landscape/thumb/thumb-0000000000-1920x1080.jpg"
            },
            {
                "slug": "HonestArtisticMartenAMPEnergy-tipf-QT_07jWaKhd",
                "title": "LEGO X FORTNITE ",
                "thumbnail_url": "https://static-cdn.jtvnw.net/twitch-video-assets/twitch-vap-video-assets-prod-us-west-2/72f60fda-b60e-44bc-8a61-d38c87a8255d/landscape/thumb/thumb-0000000000-1920x1080.jpg"
            },
            {
                "slug": "ReliableSassySnakeNerfBlueBlaster-JId3CJ2lXlfXUXB4",
                "title": "Ninja on Kick compared to Mixer",
                "thumbnail_url": "https://static-cdn.jtvnw.net/twitch-video-assets/twitch-vap-video-assets-prod-us-west-2/74e3
…(truncated, see openapi.json for full schema)
```

### Search

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

Kombinierte Suche (Users + Categories).

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

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

**Response:**
```json
{
    "data": {
        "count": 20,
        "query": "fortnite",
        "results": [
            {
                "id": "55125740",
                "type": "user",
                "login": "fortnite",
                "roles": {
                    "isStaff": null,
                    "isPartner": true,
                    "isAffiliate": false
                },
                "created_at": "2014-01-17T12:49:38.554458Z",
                "channel_url": "https://www.twitch.tv/fortnite",
                "description": "Official Twitch for Fortnite: available on Mobile, PC & Console. ",
                "display_name": "Fortnite",
                "followers_count": 6338015,
                "banner_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/dad12037-b6ad-454e-ab78-6af532dd5e41-profile_banner-480.jpeg",
                "profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/80542f40-4016-499d-9965-19197a5a0006-profile_image-300x300.png"
            },
            {
                "id": "196701476",
                "type": "user",
                "login": "fortnitees",
                "roles": {
                    "isStaff": null,
                    "isPartner": false,
                    "isAffiliate": false
                },
                "created_at": "2018-02-16T15:26:31.680024Z",
                "channel_url": "https://www.twitch.tv/fortnitees",
                "description": null,
                "display_name": "FortniteES",
             
…(truncated, see openapi.json for full schema)
```

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

User-Suche.

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

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

**Response:**
```json
{
    "data": {
        "count": 10,
        "query": "fortnite",
        "users": [
            {
                "id": "55125740",
                "login": "fortnite",
                "roles": {
                    "isStaff": null,
                    "isPartner": true,
                    "isAffiliate": false
                },
                "created_at": "2014-01-17T12:49:38.554458Z",
                "channel_url": "https://www.twitch.tv/fortnite",
                "description": "Official Twitch for Fortnite: available on Mobile, PC & Console. ",
                "display_name": "Fortnite",
                "followers_count": 6338015,
                "banner_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/dad12037-b6ad-454e-ab78-6af532dd5e41-profile_banner-480.jpeg",
                "profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/80542f40-4016-499d-9965-19197a5a0006-profile_image-300x300.png"
            },
            {
                "id": "196701476",
                "login": "fortnitees",
                "roles": {
                    "isStaff": null,
                    "isPartner": false,
                    "isAffiliate": false
                },
                "created_at": "2018-02-16T15:26:31.680024Z",
                "channel_url": "https://www.twitch.tv/fortnitees",
                "description": null,
                "display_name": "FortniteES",
                "followers_count": 142874,
                "banner_image_url": 
…(truncated, see openapi.json for full schema)
```

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

Game/Category-Suche.

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

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

**Response:**
```json
{
    "data": {
        "count": 10,
        "query": "fortnite",
        "categories": [
            {
                "id": "33214",
                "name": "Fortnite",
                "slug": "Fortnite",
                "box_art_url": "https://static-cdn.jtvnw.net/ttv-boxart/33214-144x192.jpg",
                "category_url": "https://www.twitch.tv/directory/category/fortnite",
                "viewers_count": 80518
            },
            {
                "id": "2101965177",
                "name": "Fortnite 2: Love on the Battlefield",
                "slug": "Fortnite 2: Love on the Battlefield",
                "box_art_url": "https://static-cdn.jtvnw.net/ttv-boxart/2101965177_IGDB-144x192.jpg",
                "category_url": "https://www.twitch.tv/directory/category/fortnite-2%3A-love-on-the-battlefield",
                "viewers_count": null
            },
            {
                "id": "689509228",
                "name": "Fortnite: Lockjaw Starter Quest Pack",
                "slug": "Fortnite: Lockjaw Starter Quest Pack",
                "box_art_url": "https://static-cdn.jtvnw.net/ttv-boxart/689509228-144x192.jpg",
                "category_url": "https://www.twitch.tv/directory/category/fortnite%3A-lockjaw-starter-quest-pack",
                "viewers_count": null
            },
            {
                "id": "2015434764",
                "name": "LEGO Fortnite: Odyssey",
                "slug": "LEGO Fortnite: Odyssey",
                "box_art_u
…(truncated, see openapi.json for full schema)
```

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

Bester Treffer (1-best-match).

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

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

**Response:**
```json
{
    "data": {
        "query": "fortnite",
        "result": {
            "id": "55125740",
            "type": "user",
            "login": "fortnite",
            "roles": {
                "isStaff": null,
                "isPartner": true,
                "isAffiliate": false
            },
            "created_at": "2014-01-17T12:49:38.554458Z",
            "channel_url": "https://www.twitch.tv/fortnite",
            "description": "Official Twitch for Fortnite: available on Mobile, PC & Console. ",
            "display_name": "Fortnite",
            "followers_count": 6338015,
            "banner_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/dad12037-b6ad-454e-ab78-6af532dd5e41-profile_banner-480.jpeg",
            "profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/80542f40-4016-499d-9965-19197a5a0006-profile_image-300x300.png"
        }
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:33.481Z",
        "request_id": "1a070340-a9e8-42be-bc66-6f806729c104"
    },
    "status": "ok",
    "message": "Top result retrieved successfully",
    "success": true
}
```

### Utils

#### `GET /v1/utils/login-from-url` — Login from URL

Extrahiert das Login aus einer Twitch-Channel-URL.

**Parameters:**
- `url` (query, required, string) — Twitch channel URL Example: `https://www.twitch.tv/ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/utils/login-from-url?url=https%3A%2F%2Fwww.twitch.tv%2Fninja"
```

**Response:**
```json
{
    "data": {
        "login": "ninja"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:33.534Z",
        "request_id": "a605e596-981e-4947-bf72-363e7317a501"
    },
    "status": "ok",
    "message": "Login retrieved successfully",
    "success": true
}
```

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

Extrahiert die Video-ID aus einer Twitch-Video-URL.

**Parameters:**
- `url` (query, required, string) — Twitch video URL Example: `https://www.twitch.tv/videos/2759025179`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/utils/video-id-from-url?url=https%3A%2F%2Fwww.twitch.tv%2Fvideos%2F2759025179"
```

**Response:**
```json
{
    "data": {
        "video_id": "2759025179"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:33.579Z",
        "request_id": "12f436c5-0529-4a3b-b63f-cf1ad1c933cc"
    },
    "status": "ok",
    "message": "Video ID retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/clip-slug-from-url` — Clip slug from URL

Extrahiert den Clip-Slug aus einer Twitch-Clip-URL.

**Parameters:**
- `url` (query, required, string) — Twitch clip URL Example: `https://clips.twitch.tv/IcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/utils/clip-slug-from-url?url=https%3A%2F%2Fclips.twitch.tv%2FIcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD"
```

**Response:**
```json
{
    "data": {
        "clip_slug": "IcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:33.628Z",
        "request_id": "910c090c-3729-4d28-b2d4-b8d5f040e937"
    },
    "status": "ok",
    "message": "Clip slug retrieved successfully",
    "success": true
}
```

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

Baut die Channel-URL aus einem Login.

**Parameters:**
- `login` (query, required, string) — Twitch username Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/utils/channel-url?login=ninja"
```

**Response:**
```json
{
    "data": {
        "channel_url": "https://www.twitch.tv/ninja"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:33.695Z",
        "request_id": "10c73a2a-4384-4053-bd14-9cdfcfda59bc"
    },
    "status": "ok",
    "message": "Channel URL retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/videos-url` — Videos URL

Baut die Channel-Videos-URL.

**Parameters:**
- `login` (query, required, string) — Twitch username Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/utils/videos-url?login=ninja"
```

**Response:**
```json
{
    "data": {
        "videos_url": "https://www.twitch.tv/ninja/videos"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:33.766Z",
        "request_id": "f7bf76b9-069c-49b6-8eaa-7fe17fe9b464"
    },
    "status": "ok",
    "message": "Videos URL retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/clips-url` — Clips URL

Baut die Channel-Clips-URL.

**Parameters:**
- `login` (query, required, string) — Twitch username Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/utils/clips-url?login=ninja"
```

**Response:**
```json
{
    "data": {
        "clips_url": "https://www.twitch.tv/ninja/clips"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:33.813Z",
        "request_id": "28213c95-6329-41ed-b124-8965e65d36d0"
    },
    "status": "ok",
    "message": "Clips URL retrieved successfully",
    "success": true
}
```

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

Baut die Video-URL aus einer Video-ID.

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

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/utils/video-url?id=2759025179"
```

**Response:**
```json
{
    "data": {
        "video_id": "2759025179",
        "video_url": "https://www.twitch.tv/videos/2759025179"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:33.858Z",
        "request_id": "4299f136-3ac5-480d-b19d-8cc27c0d45c6"
    },
    "status": "ok",
    "message": "Video URL retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/clip-url` — Clip URL from slug

Baut die Clip-URL aus einem Slug.

**Parameters:**
- `slug` (query, required, string) — Twitch clip slug Example: `IcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/utils/clip-url?slug=IcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD"
```

**Response:**
```json
{
    "data": {
        "clip_url": "https://clips.twitch.tv/IcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD",
        "clip_slug": "IcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD"
    },
    "meta": {
        "timestamp": "2026-05-04T18:46:33.903Z",
        "request_id": "8198631a-f90c-46e8-8f74-16e3bd91e775"
    },
    "status": "ok",
    "message": "Clip URL retrieved successfully",
    "success": true
}
```

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

Baut die Player-Embed-URL.

**Parameters:**
- `login` (query, required, string) — Twitch username Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/utils/embed-url?login=ninja"
```

**Response:**
```json
{
    "data": {
        "embed_url": "https://player.twitch.tv/?channel=ninja&parent=oanor.com"
    },
    "meta": {
        "timestamp": "2026-05-05T17:57:09.321Z",
        "request_id": "d5d47b28-0bc7-44ee-aa3c-dfd077f74690"
    },
    "status": "ok",
    "message": "Embed URL retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/chat-embed-url` — Chat embed URL

Baut die Chat-Embed-URL.

**Parameters:**
- `login` (query, required, string) — Twitch username Example: `ninja`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/twitch-api/v1/utils/chat-embed-url?login=ninja"
```

**Response:**
```json
{
    "data": {
        "chat_embed_url": "https://www.twitch.tv/embed/ninja/chat?parent=oanor.com"
    },
    "meta": {
        "timestamp": "2026-05-05T17:57:09.371Z",
        "request_id": "5c988869-4e92-4b88-b9b8-f86e316fe822"
    },
    "status": "ok",
    "message": "Chat embed URL retrieved successfully",
    "success": true
}
```


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