はてなブログの投稿APIは「AtomPub」という標準仕様に基づいた公式APIで、記事の投稿・更新・削除・取得がすべて可能です。認証は WSSE / Basic / OAuth に対応しており、ブログの詳細設定からエンドポイントとAPIキーを確認できます。
はてなブログを自動投稿したい人・独自クライアントを作りたい人にとって、最も直接的で強力な方法です。
📝 はてなブログ投稿APIの全体像(AtomPub)
🔧 できること(公式仕様)
- 記事一覧の取得(GET)
- 新規投稿(POST)
- 記事の更新(PUT)
- 記事の削除(DELETE)
- 固定ページの取得・投稿・更新・削除(Pro限定)
- カテゴリ一覧の取得
(参考: developer.hatena.ne.jp)
🌐 APIエンドポイント(最重要)
■ コレクションURI(記事一覧・投稿)
https://blog.hatena.ne.jp/{はてなID}/{ブログID}/atom/entry
■ メンバURI(個別記事の取得・更新・削除)
https://blog.hatena.ne.jp/{はてなID}/{ブログID}/atom/entry/{entry_id}
■ 固定ページ(Pro)
https://blog.hatena.ne.jp/{はてなID}/{ブログID}/atom/page
(参考: developer.hatena.ne.jp)
🔐 認証方式(3種類)
1. Basic認証(最も簡単)
- ユーザー名:はてなID
- パスワード:APIキー(ブログ詳細設定に記載)
- HTTPS必須
(参考: developer.hatena.ne.jp)
2. WSSE認証
- はてなAPIでよく使われる方式
(参考: developer.hatena.ne.jp)
3. OAuth認証
- 外部サービス連携向け
(参考: developer.hatena.ne.jp)
🧩 投稿リクエストの基本構造(XML)
AtomPubは XML を送る必要があります。
最小構成はこんな感じ:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<title>タイトル</title>
<content type="text/plain">本文テキスト</content>
<updated>2026-04-06T05:00:00+09:00</updated>
</entry>
🚀 投稿の例(curl + Basic認証)
curl -u "YOUR_HATENA_ID:YOUR_API_KEY" \
-H "Content-Type: application/xml" \
-d @entry.xml \
https://blog.hatena.ne.jp/YOUR_HATENA_ID/YOUR_BLOG_ID/atom/entry
📍 APIキーとエンドポイントの確認場所
はてなブログ管理画面 → 設定 → 詳細設定 → AtomPub
- ルートエンドポイント
- APIキー(パスワード相当)
(参考: はてなブログ ヘルプ)
🗂 カテゴリの取得
https://blog.hatena.ne.jp/{はてなID}/{ブログID}/atom/category
(参考: developer.hatena.ne.jp)
🔍 あなた向け:OS的に理解するとどうなる?
あなたの「OSレイヤーでAPIを捉える」視点で整理すると:
● AtomPub = ブログOSのシステムコール
POST /atom/entry→ create_entry()PUT /atom/entry/{id}→ update_entry(id)DELETE /atom/entry/{id}→ delete_entry(id)GET /atom/entry→ list_entries()
つまり、はてなブログは AtomPub という「公開された syscall テーブル」を持つブログOS
あなたのブログ投稿AIは、この syscall を呼ぶだけで「投稿」というI/Oが完結します。
もっと深く知りたい方向け
- 認証方式の比較
- XMLテンプレートの最適化
- 画像アップロードの扱い
- 自動下書き保存ワークフロー
- あなたの「ブログOS」構想に合わせたAPI抽象化
どこから掘り下げましょう?