# Niconico Video API
> Live video, search and engagement data from Niconico (nicovideo.jp), the pioneering Japanese video platform that invented danmaku — the comments that scroll across the video itself — read keyless from Niconico's public Snapshot Search API and video-info endpoint. Niconico is one of Japan's biggest video communities, the home of Vocaloid, "Let's Play" culture and a vast catalogue with videos counting tens of millions of views and millions of overlaid comments. This exposes what is popular, who is watching and how each video is performing across Niconico's distinctive engagement signals — views, the famous scrolling comments, mylist bookmarks and likes. The search endpoint finds videos by keyword, sorted by views, comments, mylists, likes or upload date — the way to surface the platform's most-watched and most-discussed content. The tag endpoint browses an exact Niconico tag (the platform's main discovery axis — VOCALOID, ゲーム/games, 音楽/music, アニメ/anime) ranked by views, so you can see what leads a category. The video endpoint returns one video's full detail by its watch id (the sm/nm/so id), including its description, tags, length, upload date and uploader. This is the Niconico platform cut — a distinct social/video platform, separate from the YouTube, Bilibili, TikTok, BitChute and other platform feeds in the catalogue. View, comment, mylist and like counts are live; nothing is stored beyond a short cache. Counts are integers; dates are as the platform reports them (JST).

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

## Pricing
- **Free** (Free) — 1,300 calls/Mo, 2 req/s
- **Starter** ($15/Mo) — 32,000 calls/Mo, 6 req/s
- **Pro** ($53/Mo) — 175,000 calls/Mo, 16 req/s
- **Scale** ($147/Mo) — 620,000 calls/Mo, 40 req/s

## Endpoints

### Search

#### `GET /v1/search` — Search videos by keyword, sorted by engagement

**Parameters:**
- `q` (query, required, string) — Search keyword Example: `VOCALOID`
- `sort` (query, optional, string) — views, comments, mylists, likes or new Example: `views`
- `limit` (query, optional, string) — Max results (1-50) Example: `20`

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

**Response:**
```json
{
    "data": {
        "note": "Niconico videos matching a keyword, sorted by views (views, comments, mylists, likes or new) — each with its view count, scrolling-comment count, mylist (bookmark) count and likes. Pass q (required), sort (default views), in=description to search descriptions instead of titles, and limit (1-50). Live, cached ~60s.",
        "sort": "views",
        "count": 20,
        "query": "VOCALOID",
        "source": "Niconico Snapshot Search API (snapshot.search.nicovideo.jp), keyless",
        "videos": [
            {
                "likes": 13155,
                "title": "【VOCALOID 原創】ECHO【Gumi English】",
                "views": 9092876,
                "mylists": 95270,
                "user_id": 19241380,
                "comments": 94176,
                "uploaded": "2014-10-08T13:39:07+09:00",
                "video_url": "https://www.nicovideo.jp/watch/sm24643818",
                "channel_id": null,
                "content_id": "sm24643818",
                "length_seconds": 244
            },
            {
                "likes": 13413,
                "title": "VOCALOID2 初音ミクに「Ievan Polkka」を歌わせてみた",
                "views": 6695250,
                "mylists": 126893,
                "user_id": 85430,
                "comments": 227356,
                "uploaded": "2007-09-04T12:55:53+09:00",
                "video_url": "https://www.nicovideo.jp/watch/sm982882",
                "channel_id": nul
…(truncated, see openapi.json for full schema)
```

### Tag

#### `GET /v1/tag` — Top videos under an exact Niconico tag

**Parameters:**
- `tag` (query, required, string) — An exact Niconico tag Example: `VOCALOID`
- `sort` (query, optional, string) — views, comments, mylists, likes or new Example: `views`
- `limit` (query, optional, string) — Max results (1-50) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/niconico-api/v1/tag?tag=VOCALOID&sort=views&limit=20"
```

**Response:**
```json
{
    "data": {
        "tag": "VOCALOID",
        "note": "The top Niconico videos under an exact tag, ranked by views — tags are Niconico's main discovery axis, so this is how a category (VOCALOID, ゲーム/games, 音楽/music, アニメ/anime…) is performing. total_videos is how many videos carry the tag. Pass tag (required), sort (default views) and limit (1-50). Live, cached ~60s.",
        "sort": "views",
        "count": 20,
        "source": "Niconico Snapshot Search API (tagsExact), keyless",
        "videos": [
            {
                "likes": 42744,
                "title": "『初音ミク』千本桜『オリジナル曲PV』",
                "views": 18648461,
                "mylists": 333341,
                "user_id": 449061,
                "comments": 1581065,
                "uploaded": "2011-09-17T19:00:28+09:00",
                "video_url": "https://www.nicovideo.jp/watch/sm15630734",
                "channel_id": null,
                "content_id": "sm15630734",
                "length_seconds": 244
            },
            {
                "likes": 20956,
                "title": "【初音ミク】みくみくにしてあげる♪【してやんよ】",
                "views": 17275854,
                "mylists": 231153,
                "user_id": 70391,
                "comments": 3008410,
                "uploaded": "2007-09-20T01:22:02+09:00",
                "video_url": "https://www.nicovideo.jp/watch/sm1097445",
               
…(truncated, see openapi.json for full schema)
```

### Video

#### `GET /v1/video` — One video's full detail by watch id

**Parameters:**
- `id` (query, required, string) — A Niconico watch id Example: `sm9`

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

**Response:**
```json
{
    "data": {
        "note": "One Niconico video's full detail: its view count, scrolling-comment count and mylist (bookmark) count, its length, upload date, genre, uploader and tags. Live, cached ~60s.",
        "tags": [
            "陰陽師",
            "レッツゴー！陰陽師",
            "公式",
            "音楽",
            "ゲーム",
            "弾幕動画",
            "矢部野彦麿",
            "3月6日投稿動画",
            "重要ニコニコ文化財",
            "お前らの愛で見えなくしたい",
            "ニコニ国歌"
        ],
        "genre": "未設定",
        "title": "新・豪血寺一族 -煩悩解放 - レッツゴー！陰陽師",
        "views": 22965866,
        "length": "5:20",
        "source": "Niconico getthumbinfo API (ext.nicovideo.jp), keyless",
        "mylists": 183056,
        "comments": 5670147,
        "uploaded": "2007-03-06T00:33:00+09:00",
        "uploader": "中の",
        "video_url": "https://www.nicovideo.jp/watch/sm9",
        "content_id": "sm9",
        "description": "レッツゴー！陰陽師（フルコーラスバージョン）",
        "thumbnail_url": "https://nicovideo.cdn.nimg.jp/thumbnails/9/9"
    },
    "meta": {
        "timestamp": "2026-06-13T04:42:53.079Z",
        "request_id": "54e5d028-75fb-4ffb-96ef-07afe9b6eff9"
    },
    "status": "ok",
    "message": "Video retrieved successfully",
    "success": true
}
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "note": "search takes q (required), sort (views/comments/mylists/likes/new, default views), in=description (optional) and limit (1-50). tag takes tag (an exact Niconico tag, required), sort and limit. video takes id (a watch id like sm9, required). meta takes no parameters. Counts are live integers from the upstream; a short ~60-second cache fronts it.",
        "source": "Niconico Snapshot Search API + getthumbinfo, keyless, live",
        "service": "niconico-api",
        "endpoints": {
            "GET /v1/tag": "Top videos under an exact tag (tag=音楽).",
            "GET /v1/meta": "This document.",
            "GET /v1/video": "One video's full detail by watch id (id=sm9).",
            "GET /v1/search": "Search videos by keyword, sorted by engagement (q=VOCALOID, sort=views)."
        },
        "description": "Live video, search and engagement data from Niconico (nicovideo.jp), the pioneering Japanese video platform that invented danmaku (comments scrolling across the video), from its public Snapshot Search API and getthumbinfo endpoint (no key). The search endpoint finds videos by keyword sorted by views/comments/mylists/likes/new; tag browses an exact Niconico tag ranked by views (the platform's main discovery axis); video returns one video's full detail by its watch id. The Niconico platform cut — a distinct social/video platform, separate from the YouTube, Bilibili, TikTok, BitChute and other platform feeds. Engagement: views, scrollin
…(truncated, see openapi.json for full schema)
```


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