# SHOWROOM Live Streaming API
> Live data from SHOWROOM (showroom-live.com), the Japanese live-streaming platform built around idols and talent, read keyless from its public web API. SHOWROOM is where AKB48, Nogizaka46 and thousands of aspiring idols, voice actors and creators broadcast and where fans send virtual gifts in real time — a streaming culture quite unlike Twitch or Kick. This exposes who is live right now, how many are watching, which genres are hot and each room's standing. The live endpoint lists the rooms broadcasting right now across every genre, ranked by viewers, each with its streamer name, current viewer count, genre and how long it has been live (the "Popularity" overlay is de-duplicated so every room is counted once under its real category). The genres endpoint aggregates the live picture by category — idols, talents, virtual streamers, music and more — with each genre's number of live rooms and total viewers, so you can see where the audience is. The room endpoint returns one room's profile by its room id: the room name, its follower count, its room level (SHOWROOM's standing metric) and whether it is live now. This is the SHOWROOM platform cut — a distinct social/streaming platform, separate from the Twitch, Kick, Bilibili, Niconico and other feeds in the catalogue. Viewer and follower counts are live; nothing is stored beyond a short cache. Counts are integers; times are UTC.

## 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/showroom-api/..."
```

## Pricing
- **Free** (Free) — 1,350 calls/Mo, 2 req/s
- **Starter** ($16/Mo) — 34,000 calls/Mo, 6 req/s
- **Pro** ($51/Mo) — 168,000 calls/Mo, 16 req/s
- **Scale** ($143/Mo) — 600,000 calls/Mo, 40 req/s

## Endpoints

### Live

#### `GET /v1/live` — Rooms live right now, ranked by viewers

**Parameters:**
- `limit` (query, optional, string) — Max rooms (1-100) Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/showroom-api/v1/live?limit=25"
```

**Response:**
```json
{
    "data": {
        "note": "The SHOWROOM rooms broadcasting right now across every genre, ranked by current viewers — each with its streamer name, viewer count, genre and how long it has been live. total_live_rooms and total_viewers are the platform-wide live picture. Pass limit (1-100, default 25). Live, cached ~45s.",
        "count": 25,
        "rooms": [
            {
                "name": "坂本 真凛（SKE48 チームS）",
                "genre": "Idol",
                "live_id": 23030755,
                "room_id": 76503,
                "viewers": 5197,
                "room_url": "https://www.showroom-live.com/48_MARIN_SAKAMOTO",
                "started_at": "2026-06-13T04:00:13.000Z",
                "live_minutes": 43
            },
            {
                "name": "〜17日ｶﾞﾁｲﾍﾞ中🐼音羽瑞歩(カグヤ新選組)",
                "genre": "Idol",
                "live_id": 23030528,
                "room_id": 531895,
                "viewers": 4698,
                "room_url": "https://www.showroom-live.com/6011d9068886",
                "started_at": "2026-06-13T02:02:56.000Z",
                "live_minutes": 160
            },
            {
                "name": "15日～楽曲提供☆I NOUうた☺︎💓☆",
                "genre": "Music",
                "live_id": 23030670,
                "room_id": 75721,
                "viewers": 3588,
                "room_url": "https://www.showroom-live.com/mayachacha",
   
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/timetable` — Scheduled and currently-running streams

**Parameters:**
- `order` (query, optional, string) — asc (default, soonest first) or desc Example: `asc`
- `limit` (query, optional, string) — Max results (1-100) Example: `30`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/showroom-api/v1/timetable?order=asc&limit=30"
```

### Genres

#### `GET /v1/genres` — Live audience by genre

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/showroom-api/v1/genres"
```

**Response:**
```json
{
    "data": {
        "note": "SHOWROOM's live audience by genre right now — for each category (idols, talents, virtual streamers, music…) the number of rooms live and their total viewers, with the most-watched room, ranked by total viewers. The fastest read on where the SHOWROOM audience is. Live, cached ~45s.",
        "count": 18,
        "genres": [
            {
                "genre": "Idol",
                "genre_id": 102,
                "top_room": {
                    "name": "坂本 真凛（SKE48 チームS）",
                    "room_id": 76503,
                    "viewers": 5197
                },
                "live_rooms": 39,
                "total_viewers": 37575
            },
            {
                "genre": "Music",
                "genre_id": 112,
                "top_room": {
                    "name": "15日～楽曲提供☆I NOUうた☺︎💓☆",
                    "room_id": 75721,
                    "viewers": 3588
                },
                "live_rooms": 16,
                "total_viewers": 10474
            },
            {
                "genre": "Karaoke",
                "genre_id": 703,
                "top_room": {
                    "name": "Ryo♥️絶対楽しい毎日にしよう‼️",
                    "room_id": 336836,
                    "viewers": 1811
                },
                "live_rooms": 20,
                "total_viewers": 10226
            },
            {
                "gen
…(truncated, see openapi.json for full schema)
```

### Room

#### `GET /v1/room` — One room's profile by id

**Parameters:**
- `room_id` (query, required, string) — Numeric SHOWROOM room id Example: `61576`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/showroom-api/v1/room?room_id=61576"
```

**Response:**
```json
{
    "data": {
        "note": "One SHOWROOM room's profile: its name, follower count, room level (SHOWROOM's standing metric, higher is more established), whether it is live right now and, if so, its current viewers. Live, cached ~45s.",
        "source": "SHOWROOM public web API (showroom-live.com/api/room/profile), keyless",
        "is_live": false,
        "room_id": 61576,
        "room_url": "https://www.showroom-live.com/48_Seina_Fukuoka",
        "followers": 24582,
        "image_url": "https://static.showroom-live.com/image/room/cover/cf6b8f12524a44ad3ee8684de42e39a379b389d55bba86c397b74a28e8649652_m.png?v=1781096760",
        "room_name": "福岡 聖菜（AKB48）",
        "room_level": 819,
        "description": "おしゃべり好きなのでぜひ気軽にみていってください☺️\r\n\r\n福岡聖菜　Seina Fukuoka\r\n \r\n【ﾆｯｸﾈｰﾑ】せいちゃん\r\n\r\n.*･ﾟ　.ﾟ･*.*･ﾟ　.ﾟ･*.*･ﾟ　.ﾟ･*.*･ﾟ　.ﾟ･*.*･ﾟ\r\n\r\n【AKB48プライベートメールサービス】\r\nAKB48の推しメンバーから直接メールが届きます！\r\nhttps://www.akb48.co.jp/mailmagazine\r\n\r\n .*･ﾟ　.ﾟ･*.*･ﾟ　.ﾟ･*.*･ﾟ　.ﾟ･*.*･ﾟ　.ﾟ･*.*･ﾟ\r\n\r\n＜プロフィール＞\r\n【生年月日】\r\n 2000年8月1日\r\n\r\n【出身地】\r\n神奈川県\r\n \r\n.*･ﾟ　.ﾟ･*.*･ﾟ　.ﾟ･*.*･ﾟ　.ﾟ･*.*･ﾟ　.ﾟ･*.*･ﾟ\r\n\r\n＜SNS＞\r\n【X(Twitter)】\r\n
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/showroom-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "live takes limit (1-100, default 25). genres and meta take no parameters. room takes room_id (a numeric SHOWROOM room id, required). Viewer and follower counts are live integers; times are UTC. A short ~45-second cache fronts the upstream.",
        "sample": {
            "live_rooms": 121,
            "total_viewers": 72788
        },
        "source": "SHOWROOM public web API (showroom-live.com/api), keyless, live",
        "service": "showroom-api",
        "endpoints": {
            "GET /v1/live": "Rooms live right now, ranked by viewers (limit).",
            "GET /v1/meta": "This document.",
            "GET /v1/room": "One room's profile by id (room_id=61576).",
            "GET /v1/genres": "Live audience by genre — rooms and viewers per category."
        },
        "description": "Live data from SHOWROOM (showroom-live.com), the Japanese live-streaming platform built around idols and talent (AKB48, Nogizaka46 and thousands of aspiring idols, voice actors and creators), from its public web API (no key). The live endpoint lists the rooms broadcasting now, ranked by viewers, with name, viewer count, genre and live duration; genres aggregates the live audience by category; room returns one room's profile by id (name, followers, room level, live status). The SHOWROOM platform cut — a distinct social/streaming platform, separate from the Twitch, Kick, Bilibili, Niconico and other feeds.",
        "upstream_status": "ok"
    },
    "m
…(truncated, see openapi.json for full schema)
```

### Rooms

#### `GET /v1/search` — Find rooms by name

**Parameters:**
- `q` (query, required, string) — Room/streamer name Example: `AKB`
- `limit` (query, optional, string) — Max results (1-50) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/showroom-api/v1/search?q=AKB&limit=20"
```


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