はてなブックマーク

はてなブックマークAPI概要とエンドポイント・認証手順完全ガイド

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

スポンサードリンク

はてなブックマーク API の概要とエンドポイント一覧

はてなブックマーク API には認証が必要な REST 系エンドポイントと、認証不要で軽量 JSON を返す jsonlite エンドポイントの二種類があります。以下ではそれぞれのベース URL と主な機能を整理し、利用シーン別に使い分ける指針を示します。

REST API エンドポイント

REST 系エンドポイントは OAuth 1.0a 認証が必須で、ブックマークの取得・登録・削除といった基本操作を提供します。ベース URL は公式ドキュメント (2026‑05‑27) で確認された最新版です。

メソッド パス 主な機能
GET /api/v1/users/{user}/bookmarks.json 指定ユーザー(自分または公開ユーザー)のブックマーク一覧取得
POST /api/v1/bookmark.json 新規ブックマークの登録
DELETE /api/v1/bookmark.json 既存ブックマークの削除

ベース URL: https://bookmark.hatenaapis.com

/entry/jsonlite エンドポイント

認証が不要で大量エントリー情報を高速に取得できるエンドポイントです。公式ドキュメント (2026‑05‑27) でも同じベース URL が示されています。

  • ベース URL: https://b.hatena.ne.jp/entry/jsonlite
  • 主な用途: 記事タイトル・ブックマーク件数・関連エントリーの取得
  • 必須ヘッダー: User-Agent(後述)

OAuth 1.0a 認証の取得手順

はてなブックマーク API は OAuth 1.0a による認可を要求します。ここでは Consumer Key/Secret の発行からアクセストークン取得までのフローと、署名パラメータの具体的構成例を示します。

Consumer Key / Secret の発行方法

はてな開発者センターにアプリケーションを登録すると、以下の手順でキーが発行されます。

  1. Hatena Developer Center にログイン
  2. 「アプリケーション作成」ボタンをクリック
  3. アプリ名・説明・コールバック URL(OAuth で使用)を入力
  4. 作成完了後に表示される Consumer KeyConsumer Secret をコピー

安全な管理: キーは環境変数や暗号化された設定ファイルで保持し、コードリポジトリにハードコーディングしないことが推奨されています。

アクセストークン取得フロー(署名付きリクエスト例)

OAuth 1.0a の 3 段階は以下の通りです。Python の requests_oauthlib を用いた実装例と、手動で Authorization ヘッダーを作成する場合の構成要素も併記します。

1. リクエストトークン取得

手動で作成する場合、Authorization ヘッダーは次のパラメータをカンマ区切りで列挙します(順序は任意ですが RFC 5849 に準拠):

  • oauth_consumer_key
  • oauth_nonce(ランダム文字列)
  • oauth_signature_method="HMAC-SHA1"
  • oauth_timestamp(UNIX 時間)
  • oauth_version="1.0"
  • oauth_callback
  • oauth_signature(後述)

2. ユーザー認可

取得した request_token を以下の URL に付加してブラウザで開きます。ユーザーが許可すると、コールバック URL に oauth_verifier がクエリとして付与されます。

3. アクセストークン取得

手動署名例(Python)

この関数に oauth_nonce, oauth_timestamp などを含めたパラメータ辞書を渡すと、正しい oauth_signature が得られます。


必須リクエストヘッダーとレートリミット対策

はてなブックマーク API の呼び出しでは User-Agentレートリミット の2点が特に重要です。

統一された User-Agent の書式

公式ドキュメント (2026‑05‑27) では次の形式を推奨しています。すべてのリクエストで必ず設定してください。

  • アプリ名バージョン を含める
  • 連絡先メールアドレス(またはサイト URL)を記載し、運営側からの問い合わせに備える

curlrequests のデフォルト User-Agent は使用できません。上書きが必須です。

レートリミットの最新数値とバックオフ実装

2026‑05‑27 時点で公式に公表されている制限は 60 リクエスト/分 です(Hatena Bookmark API Docs参照)。この上限を超えると 429 Too Many Requests が返ります。

バックオフ実装例(指数バックオフ+ジッター)

このパターンを共通関数化すれば、API 呼び出し全体でレートリミット対策が一貫します。


ブックマーク操作例:取得・投稿・削除

以下では実際にブックマークデータを取得・登録・削除する手順と、各ステップで意識すべきポイントを解説します。全て OAuth 1.0a で認証済みのリクエストです。

GET /api/v1/users/{user}/bookmarks.json

指定ユーザー(自分または公開ユーザー)のブックマーク一覧を取得します。大量取得が必要な場合は countoffset パラメータでページングできます。

  • 成功 → HTTP 200 とブックマーク配列
  • エラー例 401(署名不正)や 429(レートリミット)

POST /api/v1/bookmark.json

指定 URL のブックマークを自分のアカウントに追加します。Content-Type: application/x-www-form-urlencoded が必須です。

  • 成功 → HTTP 201 Created、Location ヘッダーにブックマーク URL が含まれる
  • エラー例 403(既に同一 URL が登録済み)

DELETE /api/v1/bookmark.json

自分のブックマークを URL 指定で削除します。クエリ文字列は必ず URL エンコードしてください。

  • 成功 → HTTP 204 No Content
  • エラー例 404(対象ブックマークが存在しない)

/entry/jsonlite を利用した高速エントリー情報取得

認証不要ながらも豊富なメタデータを取得できる jsonlite エンドポイントの使い方と、レスポンス構造を詳しく解説します。

クエリパラメータ一覧

パラメータ 必須 説明
url 対象ページの URL(必ず URL エンコード)
count 返却件数上限(デフォルト 1、最大 10)
callback JSONP 用コールバック名(省略可)

使用例(記事情報を 3 件取得)

レスポンス JSON の構造と主要フィールド

  • title: ページのタイトル
  • url: 正規化済みエントリー URL
  • count: はてなブックマークに保存された件数
  • related_entries: タグや類似度で自動抽出された最大 5 件の関連記事

jsonlite はキャッシュが効きやすく、頻繁に呼び出してもレートリミット対象外です。ただし User-Agent が必須 で、未指定の場合は HTTP 403 が返ります。


Python と curl の実装サンプルとエラー処理

ここまでの手順を実際に動かすためのコード例をまとめます。Python は requestsrequests_oauthlib、curl はシェル上だけで完結できる形です。

共通設定(User-Agent の統一)

Python サンプルコード

ポイント解説

  • 署名生成は OAuth1Session に委任 することで oauth_signature の構成ミスを防げます。
  • レートリミット (429)handle_error 内で自動待機し、再帰的に再試行しています。
  • User-Agent は全リクエストのヘッダーに統一 しているため、jsonlite 呼び出しでも必ず送信されます。

curl コマンド例

ステータスコード別エラーハンドリングまとめ

コード 意味 推奨対策
401 認証失敗 Consumer / Access Token が正しいか、期限切れでないか確認。
403 権限エラー/User-Agent 不備 User-Agent を公式書式に合わせて再送信。
404 リソース未発見 URL エンコードや対象ブックマークの有無をチェック。
429 レートリミット超過 Retry-After 秒待機し、指数バックオフで再試行。
500 系列 サーバ側障害 再試行間隔を長めに取り、障害情報は公式ステータスページで確認。

まとめ

  • エンドポイント: REST は https://bookmark.hatenaapis.com/api/v1/...、jsonlite は https://b.hatena.ne.jp/entry/jsonlite が最新版です。
  • 認証: OAuth 1.0a の 3 段階フローと oauth_signature の生成方法を正しく実装すれば、署名ミスによるエラーは防げます。
  • 必須ヘッダー: User-Agent は公式書式で必ず送信し、レートリミット(60 リクエスト/分)に備えて指数バックオフを実装してください。
  • 実装例: Python と curl のサンプルは環境変数による安全なキー管理と共通ヘッダーの統一で可読性・保守性が向上します。

本ガイドを参考に、はてなブックマーク API を安全かつ効率的に活用してください。

スポンサードリンク

-はてなブックマーク