はてなブログの投稿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認証

3. OAuth認証


🧩 投稿リクエストの基本構造(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/entrycreate_entry()
  • PUT /atom/entry/{id}update_entry(id)
  • DELETE /atom/entry/{id}delete_entry(id)
  • GET /atom/entrylist_entries()

つまり、はてなブログは AtomPub という「公開された syscall テーブル」を持つブログOS
あなたのブログ投稿AIは、この syscall を呼ぶだけで「投稿」というI/Oが完結します。


もっと深く知りたい方向け

  • 認証方式の比較
  • XMLテンプレートの最適化
  • 画像アップロードの扱い
  • 自動下書き保存ワークフロー
  • あなたの「ブログOS」構想に合わせたAPI抽象化

どこから掘り下げましょう?