はてなブックマーク

Hatena Bookmark API 2026: Endpoints, OAuth2 & Implementation

ⓘ本ページはプロモーションが含まれています

スポンサードリンク

1. API エンドポイントの種類と選び方

はてなブックマーク API には、大きく分けて 認証必須 REST エンドポイント認証不要 JSONLite エンドポイント の 2 種類が用意されています。
どちらを採用すべきかは、取得したいデータの詳細度とリアルタイム性に依存します。

1.1 認証必須 REST エンドポイント

OAuth 2.0 による認可が前提で、ブックマーク本体だけでなく コメント・タグ・ユーザー情報 といったリッチなメタデータを取得できます。
公式ドキュメント: https://developer.hatena.ne.jp/ja/documents/bookmark/apis/rest/

ポイント:フル機能が必要なアプリケーション(例:自社サービスへのブックマーク統合、ユーザー別レポート作成)では必ずこのエンドポイントを利用します。

1.2 認証不要 JSONLite エンドポイント

シンプルな JSON を返すだけの軽量 API です。認可が不要なので アクセストークン取得コストがかからない のが特徴です。主に以下の用途で活用されます。

  • URL 正規化後のブックマーク総数取得
  • 公開エントリのタイトル・URL 抽出

公式ドキュメント: https://developer.hatena.ne.jp/ja/documents/bookmark/apis/jsonlite/

ポイント:読み取り専用で高速応答が求められるシナリオ(例:ページビュー計測、外部サイトのサマリー表示)に適しています。


2. OAuth 2.0 認可フローの実装手順

はてなブックマークリストを取得するには、まず Hatena Developer Center にアプリケーション登録し、OAuth 2.0 の「認可コードフロー」を組み立てます。以下では「クライアント登録」から「アクセストークン取得/リフレッシュ」までを具体的に示します。

2.1 クライアント(アプリ)登録

  1. Hatena Developer Center にログインし、左メニューの「アプリケーション管理」 → 「新規作成」をクリック。
  2. 必要項目(アプリ名・説明・利用目的)を入力し、リダイレクト URI(例:https://yourdomain.com/oauth/callback) を設定します。
  3. 作成完了後に表示される Client IDClient Secret を安全な場所(環境変数やシークレットマネージャ)に保存してください。

公式手順は「認可設定」セクションに詳述されています:https://developer.hatena.ne.jp/ja/documents/bookmark/apis/rest/#auth

2.2 認可コード取得

ユーザーを以下の URL にリダイレクトさせます(GET)。scopebookmark.read を最低限指定すればブックマーク情報が取得可能です。

ユーザーが許可すると、code パラメータ付きでリダイレクト URI が呼び出されます。サーバ側はこの code を受け取り、次のステップへ進みます。

2.3 アクセストークン取得

認可コードを使って POST リクエストを送ります。公式エンドポイントは https://www.hatena.com/oauth/tokenapplication/x-www-form-urlencoded)です。

成功時のレスポンス例:

2.4 トークンのリフレッシュ

アクセストークンは 1 時間expires_in = 3600)で期限切れになるため、以下のパラメータで再取得します。

注意invalid_grant エラーはリダイレクト URI が登録と不一致、またはリフレッシュトークンが破棄された場合に発生します。


3. 主な REST エンドポイントとサンプルコード

以下の表は 認証必須 の代表的エンドポイントです。ベース URL は公式で公開されている https://bookmark.hatenaapis.com/v1/ です。

エンドポイント 主なクエリパラメータ 用途
/bookmarks url, count, offset 指定 URL のブックマーク一覧(コメント・ユーザー情報含む)
/entries url, since, until エントリのメタデータ(タイトル・タグ・全コメント)
/users/me (なし) 認証中ユーザーのプロフィールとトークン有効期限確認

3.1 /bookmarks の取得例

リクエスト

レスポンス(抜粋)

3.2 /entries の取得例

主なフィールド

フィールド 内容
title エントリのタイトル
tags 登録されているタグ配列
comments ユーザーコメントオブジェクト(user, comment, timestamp)

3.3 /users/me の取得例

レスポンス抜粋

ポイント:全てのリクエストで url パラメータは必ず URL エンコードし、ヘッダーに Authorization: Bearer <token> を付与してください。


4. ブックマークデータの取得・加工例(Python/PHP)

4.1 Python(標準 jsonrequests

4.2 PHP(Laravel + Guzzle)

どちらの例も 取得した JSON → 必要項目だけ抽出 → テンプレートエンジンで表示 の流れを示しています。実装時は try / catch(Python)や try { … } catch (RequestException $e) { … }(PHP)で例外処理を入れると安全です。

4.3 コメント表示用ブログパーツの埋め込み

公式が提供する「はてなブックマーク コメント表示ブログパーツ」は次のコードで利用できます。
※公式ページ: https://developer.hatena.ne.jp/ja/documents/bookmark/#comment-widget

URL 正規化のベストプラクティス

  1. スキームは https に統一(http と https は別エントリになる)。
  2. トラッキングパラメータは除去(例: ?utm_…)。
  3. 末尾スラッシュは一貫性を保つ(公式は「末尾スラッシュあり」)。

正規化した URL を API に渡すと、期待通りのエントリが取得できます。


5. レートリミット・エラーハンドリング・デプロイチェック

5.1 レートリミット概要

  • 上限:認証済みアプリは 1 分間に 60 リクエスト(公式ドキュメント2026‑04時点)。
  • 超過時のステータス429 Too Many Requests が返り、Retry-After ヘッダーで待機秒数が示されます。

5.2 推奨リトライ戦略(指数バックオフ)

5.3 デプロイ後の動作確認チェックリスト

項目 確認手順
OAuth 認証成功 /login → 許可画面 → コールバックでアクセストークン取得できるか
ブックマーク取得 /v1/bookmarks が 200 を返し、期待の JSON フィールドが存在するか
コメントウィジェット表示 埋め込み <a class="hatena-bookmark-comment"> が正しくレンダリングされるか
レートリミット遵守 1 分間に 60 リクエスト以下で 429 が出ないことを負荷テストで検証
エラーログの有無 サーバログに OAuthExceptionJSONDecodeError 等が記録されていないか

デバッグヒント

  • リダイレクト URI の不一致invalid_grant エラー。設定とコードを完全一致させる。
  • アクセストークン期限切れ → 1 時間ごとにリフレッシュロジックを走らせる。
  • URL 正規化ミス → API が「エントリなし」(404) を返すケースが頻発するので、正規化関数のテストを書いておく。

6. まとめ

はてなブックマーク API は 認証必須 REST エンドポイント認証不要 JSONLite エンドポイント の二本柱で構成され、用途に応じた選択が可能です。OAuth 2.0 の認可コードフローを正しく実装すれば、公式が保証する 1 分 60 リクエスト のレートリミット内で安全にデータ取得できます。

本稿で紹介した Python / PHP のサンプルコードデプロイチェックリスト を活用すれば、開発から本番運用までスムーズに移行できるはずです。ぜひ自社サービスや個人ブログに組み込み、読者へリアルタイムなブックマーク情報とコメント表示を提供してください。


本記事の内容は 2026 年 7 月時点の公式ドキュメント(Hatena Developer Center)に基づいています。API の仕様変更が行われた場合は、必ず最新の公式ページをご確認ください。

スポンサードリンク

-はてなブックマーク