# Hatena Bookmark API
> Japan's biggest social-bookmarking trends from Hatena Bookmark (b.hatena.ne.jp), read keyless. "Hatebu" is the Japanese internet's collective save button: when something is worth reading, Japanese users bookmark it, and the most-bookmarked links become the country's de-facto trending list across technology, society, business, life, learning, fun and games. The hot endpoint returns the established popular entries for a category — the links that have gathered the most bookmarks. The new endpoint returns the newly-rising entries gaining bookmarks fast right now, the leading edge before they hit the hot list. Each entry carries its title, URL, bookmark count, category and date. The count endpoint looks up the exact bookmark count for any one or more URLs — useful to gauge how much attention a page (yours or a competitor's) has drawn on the Japanese web. This is the Hatena Bookmark cut — a distinct social-bookmarking platform, separate from the developer, blogging and streaming feeds in the catalogue, and the cleanest read on Japanese-web attention. Bookmark counts are the real, live numbers Hatena shows; titles are Japanese as Hatena publishes them (HTML entities decoded). A short cache fronts the upstream. Keyless.

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

## Pricing
- **Free** (Free) — 900 calls/Mo, 2 req/s
- **Starter** ($27/Mo) — 73,000 calls/Mo, 6 req/s
- **Pro** ($74/Mo) — 505,000 calls/Mo, 16 req/s
- **Scale** ($202/Mo) — 2,950,000 calls/Mo, 40 req/s

## Endpoints

### Hot

#### `GET /v1/hot` — Most-bookmarked entries by category

**Parameters:**
- `category` (query, optional, string) — general (default), social, economics, life, knowledge, it, fun, entertainment or game Example: `it`
- `limit` (query, optional, string) — Max entries (1-50) Example: `30`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/hatenabookmark-api/v1/hot?category=it&limit=30"
```

**Response:**
```json
{
    "data": {
        "note": "Hatena Bookmark's popular (hot) entries for the 'it' category — the links that have gathered the most bookmarks, ranked as Hatena ranks them. Each entry has its title, URL, bookmark_count and date. Category: general/social/economics/life/knowledge/it/fun/entertainment/game; limit 1-50. Titles are Japanese (entities decoded). Live, cached ~10m.",
        "count": 30,
        "source": "Hatena Bookmark hotentry RSS (b.hatena.ne.jp), keyless",
        "entries": [
            {
                "url": "https://www.nikkei.com/article/DGXZQOGN130K40T10C26A6000000/",
                "date": "2026-06-13T01:12:38Z",
                "title": "アンソロピック、米政府指示でミュトス級AI提供停止 日本含む - 日本経済新聞",
                "category": "テクノロジー",
                "bookmark_count": 259
            },
            {
                "url": "https://www.anthropic.com/news/fable-mythos-access",
                "date": "2026-06-13T01:02:23Z",
                "title": "Statement on the US government directive to suspend access to Fable 5 and Mythos 5",
                "category": "テクノロジー",
                "bookmark_count": 97
            },
            {
                "url": "https://www.watch.impress.co.jp/docs/news/2116932.html",
                "date": "2026-06-13T02:30:49Z",
                "title": "アンソロピック、Fable 5などミュトス級AIモデルを公開停止 米国政府
…(truncated, see openapi.json for full schema)
```

### New

#### `GET /v1/new` — Newly-rising entries

**Parameters:**
- `category` (query, optional, string) — general (default), social, economics, life, knowledge, it, fun, entertainment or game Example: `it`
- `limit` (query, optional, string) — Max entries (1-50) Example: `30`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/hatenabookmark-api/v1/new?category=it&limit=30"
```

**Response:**
```json
{
    "data": {
        "note": "Hatena Bookmark's newly-rising entries for the 'it' category — links gaining bookmarks fast right now, the leading edge before they reach the hot list. Each entry has its title, URL, bookmark_count and date. Category: general/social/economics/life/knowledge/it/fun/entertainment/game; limit 1-50. Live, cached ~10m.",
        "count": 30,
        "source": "Hatena Bookmark entrylist RSS (b.hatena.ne.jp), keyless",
        "entries": [
            {
                "url": "https://www.watch.impress.co.jp/docs/news/2116932.html",
                "date": "2026-06-13T02:30:49Z",
                "title": "アンソロピック、Fable 5などミュトス級AIモデルを公開停止 米国政府が指令",
                "category": "テクノロジー",
                "bookmark_count": 70
            },
            {
                "url": "https://togetter.com/li/2708651",
                "date": "2026-06-13T02:12:40Z",
                "title": "COCO'Sで配膳ロボットがかき氷を運んでくる際、近くの席に居た子ども達が「かき氷を食べたい」と騒ぎ始め、親に「マジ迷惑なんだけど！かき氷頼むなよ！」と文句を言われた",
                "category": "テクノロジー",
                "bookmark_count": 32
            },
            {
                "url": "https://news.web.nhk/newsweb/na/na-k10015149041000",
                "date": "2026-06-13T02:02:31Z",
                "title": "
…(truncated, see openapi.json for full schema)
```

### Count

#### `GET /v1/count` — Exact bookmark count for URL(s)

**Parameters:**
- `url` (query, required, string) — One URL (or several comma-separated, up to 20) Example: `https://github.com/`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/hatenabookmark-api/v1/count?url=https%3A%2F%2Fgithub.com%2F"
```

**Response:**
```json
{
    "data": {
        "note": "The exact Hatena Bookmark count for each URL — how many times the page has been bookmarked on the Japanese web, the clearest measure of the attention it has drawn there. Pass url (a single URL) or urls (comma-separated, up to 20). A count of 0 means no bookmarks (or the URL is unknown to Hatena). Live, cached ~10m.",
        "count": 1,
        "source": "Hatena Bookmark count API (bookmark.hatenaapis.com/count/entries), keyless",
        "results": [
            {
                "url": "https://github.com/",
                "bookmark_count": 1416
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-13T04:42:04.139Z",
        "request_id": "36fe7e41-a1e4-4eac-95b0-935b2987cb6f"
    },
    "status": "ok",
    "message": "Bookmark counts retrieved successfully",
    "success": true
}
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "note": "hot and new take category (one of: general, social, economics, life, knowledge, it, fun, entertainment, game, default general) and limit (1-50). count takes url (a single URL) or urls (comma-separated, up to 20). meta takes no parameters. bookmark_count is the real Hatena bookmark total; titles are Japanese with HTML entities decoded. A ~10-minute cache fronts the upstream.",
        "sample": {
            "title": "アンソロピック、米政府指示でミュトス級AI提供停止 日本含む - 日本経済新聞",
            "top_bookmarks": 259
        },
        "source": "Hatena Bookmark public RSS + count API (b.hatena.ne.jp, bookmark.hatenaapis.com), keyless, live",
        "service": "hatenabookmark-api",
        "endpoints": {
            "GET /v1/hot": "Most-bookmarked (popular) entries by category (category=it).",
            "GET /v1/new": "Newly-rising entries gaining bookmarks fast (category=it).",
            "GET /v1/meta": "This document.",
            "GET /v1/count": "Exact bookmark count for URL(s) (url=https://github.com/)."
        },
        "categories": [
            "general",
            "social",
            "economics",
            "life",
            "knowledge",
            "it",
            "fun",
            "entertainment",
            "game"
        ],
        "description": "Japan's biggest social-bookmarking trends from Hatena Bookmark (b.hatena.ne.jp), keyless. 'Hatebu' is the Japanese internet's c
…(truncated, see openapi.json for full schema)
```

### Bookmarks

#### `GET /v1/entry` — The public bookmarks and comments on one URL

**Parameters:**
- `url` (query, required, string) — Target URL Example: `https://developer.mozilla.org/ja/docs/Web/JavaScript`
- `limit` (query, optional, string) — Max bookmarks (1-100) Example: `30`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/hatenabookmark-api/v1/entry?url=https%3A%2F%2Fdeveloper.mozilla.org%2Fja%2Fdocs%2FWeb%2FJavaScript&limit=30"
```

**Response:**
```json
{
    "data": {
        "eid": "148820594",
        "url": "https://developer.mozilla.org/ja/docs/Web/JavaScript",
        "note": "Every public bookmark Hatena returns for this URL, each with the user, their comment and tags. bookmark_count is the total (incl. private/comment-less); public_bookmarks_returned is how many are listed here. Live, cached ~10m.",
        "title": "JavaScript - MDC",
        "source": "Hatena Bookmark entry API (b.hatena.ne.jp/entry/jsonlite), keyless",
        "bookmarks": [
            {
                "tags": [
                    "JavaScript"
                ],
                "user": "fukuchiharuki",
                "comment": "基礎",
                "timestamp": "2022/03/21 15:15"
            },
            {
                "tags": [
                    "javascript",
                    "programming",
                    "language",
                    "reference",
                    "document",
                    "api",
                    "言語",
                    "ブラウザ",
                    "プログラミング",
                    "あとで読む"
                ],
                "user": "Itisango",
                "comment": "チュートリアル/完全な初心者向け/JavaScript の第一歩/JavaScript の構成要素/JavaScript のオブジェクトの紹介/非同期 JavaScript/クライアント側ウェブ API/JavaScript ガイド/中級者向け/クライアント側の JavaScript フレームワークの
…(truncated, see openapi.json for full schema)
```

### Members

#### `GET /v1/user` — A member's recent bookmarks

**Parameters:**
- `username` (query, required, string) — Hatena username Example: `jkondo`
- `limit` (query, optional, string) — Max bookmarks (1-50) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/hatenabookmark-api/v1/user?username=jkondo&limit=20"
```

**Response:**
```json
{
    "data": {
        "note": "The member's most recent public bookmarks — what they have been saving — each with the page title, URL, the user's comment, tags and how many bookmarks the page has overall. Live, cached ~10m.",
        "count": 20,
        "source": "Hatena Bookmark user RSS (b.hatena.ne.jp/<user>/bookmark.rss), keyless",
        "username": "jkondo",
        "bookmarks": [
            {
                "url": "https://waf.nopth.ink/articles/0195b83a-ad1a-7f80-b464-c53204b9292f/",
                "date": "2025-04-03T23:48:19Z",
                "tags": [],
                "title": "自宅サーバの使いみち (2025-Q1)",
                "comment": null,
                "bookmark_count": 635
            },
            {
                "url": "https://blog.kushii.net/archives/2023/12/29/164827",
                "date": "2023-12-29T14:09:04Z",
                "tags": [],
                "title": "株式会社はてな 京都本社が引っ越したらしいので行ってきた！ - 941::blog",
                "comment": "ようこそ！",
                "bookmark_count": 339
            },
            {
                "url": "https://internet.watch.impress.co.jp/docs/interview/1509975.html",
                "date": "2023-06-21T01:46:44Z",
                "tags": [],
                "title": "ポッドキャストをAIで文字起こししてくれるサービス「LISTEN」登場 「はてな」創業者の近藤淳也氏が立ち上げ。その狙い
…(truncated, see openapi.json for full schema)
```


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