結論

Confluenceとは、Atlassian社のチーム向けWikiです。設計書や議事録をページで共有します。Jiraの課題とつなげて使えます。

この記事でわかること

  • 用語・マクロ・権限の早見表と料金4プラン
  • 設計書・議事録など4種のページ構成例
  • REST API v2で送るJSONとMarkdown変換の実物

2026年10月22日更新|Python 3.11・confluence.js 3.3.1で送信を確認

Confluence の情報は「サイト → スペース → ページ」の順に入れ子になっています。ページの下に子ページを作ると、左のサイドバーにページツリーとして並びます。

flowchart TD
    S[サイト<br>会社の Confluence] --> SP[スペース<br>チーム・案件ごと]
    SP --> P[ページ<br>設計書・議事録・手順書]
    P --> C[子ページ<br>ページツリーで並ぶ]
    P -->|作業項目を表示| J[Jira]

よくある用事と、Confluence での方法の早見表です。

やりたいこと(よくある順) Confluence での方法 補足
文書を書いて共有する スペースにページを作って公開 公開は Ctrl+Enter(Mac は Cmd+Enter)
決まった形で書く テンプレートから作成 議事録・ポストモーテムなど
目次・コードを入れる 「/」でマクロ・要素を挿入 目次マクロ・コードブロック
Jira の課題を見せる Jira の URL を貼り付け Jira 作業項目マクロになる
見られる人を絞る スペースのロール・ページの制限 Free プランでは細かく設定できない
プログラムで作る REST API v2 の POST /pages 本文は storage format(XHTML)

確認環境:Ubuntu 24.04・Python 3.11.15(requests 2.34.2・Markdown 3.10.2)・md2cf 2.3.0・Node.js 22.22.2(confluence.js 3.3.1)・curl 8.5.0。Confluence Cloud REST API v2 のページ作成・取得・更新を、届いた内容を記録する擬似サーバーに送り、URL・ヘッダー・JSON を記録しました。Markdown から storage format への変換と XML としての検査も手元で実行しています。画面の名称・料金・権限・マクロ・テンプレート・エクスポートは Atlassian の公式サイトとサポート文書(日本語版がある箇所は日本語版)、API の項目は Atlassian の API リファレンスと、その定義から作られた confluence.js 3.3.1 の型、版の更新時のエラー文は Atlassian の課題管理(CONFCLOUD-76640)で確かめました(確認日 2026年10月22日)。

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「Confluenceとは|使い方・料金・権限・REST APIを実例で解説」

Confluenceとは(読み方・何ができるか)

この節では、Confluence が何をするツールで、Jira とどう役割を分けるかが分かります。

Confluence(読み方:コンフルエンス)は、オーストラリアの Atlassian(アトラシアン)社が提供する、ブラウザで使うチーム向けの Wiki(社内の情報共有サイト)です。 英語の confluence は「合流」という意味です。Wikipedia(英語版)によると最初の版は2004年3月25日に公開され、Java で書かれています。

Atlassian のサポート文書は、Confluence Cloud を「ユーザー、知識、アイデアを共有ワークスペースにまとめる」コラボレーションツールとして紹介しています。できることは大きく3つです。

観点 できること 例
作成 ページ・リアルタイム文書・ホワイトボード・データベース・スライドを作る 設計書、議事録、構成図
コラボレーション スペースで整理し、共同編集・インラインコメント・@メンションで議論する レビューの指摘をページ上で残す
共有 検索で既存の知識を探し、全社で再利用する 手順書・ガイドラインの公開

編集すると全員の画面にすぐ反映され、版(バージョン)は自動で残るので前の状態に戻せます。リアルタイム文書は最大30人で同時に編集できると書かれています。

Standard 以上のプランには、Atlassian の AI「Rovo」の検索・チャット・エージェントが含まれます(公式の料金ページ)。製品ページでは、あらゆるソースから回答を得る・作業の最新情報を把握する、といった使い方が紹介されています。ほかのツールとの連携として、Jira・Figma・GitHub・Google Drive・Microsoft Teams・Loom が挙げられています。

Jiraとの違い(役割の分け方)

Confluence(文書)

なぜ・どう作るかを書いて残す

設計書・議事録・手順書・ポストモーテム

単位は「ページ」

Jira(作業)

誰が・いつまでに何をするかを追う

課題・バグ・スプリント・ロードマップ

単位は「作業項目(課題)」

どちらも Atlassian の製品で、互いに埋め込めます。Confluence のページに Jira の作業項目の一覧を出したり、ページの文章から Jira の作業項目を作ったりできます(後の「Jira連携」の節)。

Cloud・Data Center・Server の違い

Confluence には、Atlassian が運用する Cloud(クラウド版) と、自社のサーバーに入れる Data Center があります。

種類 状況(2026年10月22日時点) 出典
Cloud 新規も既存も利用できる。この記事の説明は Cloud が対象 公式の料金ページ
Data Center 新規の購入は2026年3月30日で終了。既存の拡張は2028年3月30日まで。2029年3月28日に提供終了(読み取り専用になる) Atlassian「Data Center end of life」
Server 2024年2月15日でサポート終了 Atlassian「Server end of support」

Confluenceの基本用語(スペース・ページ・ページツリー)

この節では、画面に出てくる用語の意味が分かります。

1スペース

チームや案件ごとの独立した場所。概要・ブログ・ページとリアルタイム文書が入る。権限もスペースごとに決める。

2ページ

版の管理をしながら公開する文書。公式文書は「ドキュメントやポリシー」に向くと説明している。

3リアルタイム文書

最大30人で同時に書ける文書。公開の操作が無く、変更がすぐ全員に見える。下書きと版の履歴はページだけにある。

4ページツリー

ページの親子関係。サイドバーに並び、ドラッグで移動できる。設計書の章立てをそのまま表せる。

5ホワイトボード・データベース

付箋や図を描くボードと、表形式で項目を管理するデータベース。Free プランのホワイトボードは1人3つまで。

6ラベル

ページに付ける目印。「ラベル別コンテンツ」マクロなどで、同じラベルのページを一覧にできる。

用語 意味 似た言葉との違い
サイト 会社などで契約した Confluence 全体(○○.atlassian.net) 複数のスペースを持つ
スペース チーム・案件ごとの区画 Notion のチームスペースに近い
ページ 版の管理つきの文書 子ページを持てる
ブログ投稿 日付順に並ぶお知らせ スペースの「ブログ」に入る
マクロ ページに機能や動く内容を足す部品 目次・Jira・子ページの一覧など
テンプレート ページのひな形 スペースの管理者が作る
ラベル ページの分類の目印 検索やレポートの絞り込みに使う

Confluenceの料金とプラン(Free・Standard・Premium・Enterprise)

この節では、4つのプランの料金と、無料の Free プランでできないことが分かります。

公式の料金ページ(英語版、米ドル表示)の内容です(2026年10月22日時点)。料金は「1ユーザーあたり月額」で、年払いにすると最大17%安くなると書かれています。

10人Free プランの上限ストレージ 2GB。権限の細かい設定は無し
$5.78Standard(1ユーザー・月)ストレージ 250GB。権限の設定ができる
$11.16Premium(1ユーザー・月)ストレージ無制限・稼働率 99.9% の SLA
項目 Free Standard Premium Enterprise
料金(1ユーザー・月) $0 $5.78 $11.16 問い合わせ(年払い)
ユーザー数 10人まで 1サイト25万人まで 同左 最大150サイト
ストレージ 2GB 250GB 無制限 記載なし
権限 設定できない グローバル・スペース・コンテンツの権限 +閲覧・編集できる人の確認 同左
ゲスト 記載なし 有料ユーザー1人につき5人まで無料 同左 同左
サポート コミュニティ 平日の営業時間 24時間365日(重大な問題は1時間で応答) 24時間365日(重大な問題は30分で応答)
稼働率の SLA なし なし 99.9% 99.95%
AI(Rovo) 記載なし 検索・チャット・エージェント 利用量の上限が多い 同左

Free プランでは権限を変えられず、ログインできる人は全員が閲覧・追加・編集できます(サポート文書「Confluence Cloud プランの機能」)。外部の人を入れる、人事や見積もりのページを隠す、といった使い方をするなら Standard 以上が前提です。SSO(シングルサインオン)は Standard・Premium では別契約の Atlassian Guard、Enterprise には含まれます。

有料プランは試用から始まり、Free からは Standard を14日、Premium を30日試せます。有料から Free に戻すときは、先にユーザーを10人以下に減らします。

Confluenceの使い方(始め方とページの作り方)

この節では、サイトを作ってからページを公開するまでの流れと、編集画面での入力の早見表が分かります。

1

サイトを作り、メンバーを招待する

Atlassian のアカウントで Confluence を始めると、○○.atlassian.net のサイトができます。メンバーはメールアドレスで招待します。

Free は10人まで

2

スペースを作る

チームか案件ごとに1つ作ります。スペースキー(例:DEV)は URL や API で使う短い名前です。

権限はスペース単位で決める

3

ページを作る(白紙かテンプレート)

サイドバーの「+」から作ります。親のページを選んで作ると、その子ページになります。

議事録などはテンプレートから

4

書いて公開する

見出し・表・コード・マクロを入れ、「公開」で全員に見える状態にします。公開後に編集すると、新しい版として残ります。

Ctrl+Enter/Cmd+Enter

5

共有して議論する

@メンションで人に知らせ、文章を選んでインラインコメントを付けます。決まったことはアクションアイテム(タスク)にします。

ページの URL を Slack や Jira に貼る

編集画面で使える入力(Markdown風の書き方・ショートカット)

Confluence の編集画面では、Markdown に似た書き方を打つと、その場で書式に変わります。サポート文書「キーボード ショートカットとオートコンプリート」の内容です。

入力 結果 補足
# +スペース(###### まで) 見出し1〜6 Ctrl+Alt+1〜6 でも同じ
* か - +スペース 箇条書き 1. +スペースで番号付き
``` +スペース コードブロック 言語を選ぶと色が付く
[] +スペース アクションアイテム(タスク) 担当者を @ で指定できる
> +スペース 引用 ―
--- +スペース 区切り線 ―
**文字**・`文字` 太字・インラインのコード ~~文字~~ で取り消し線
/ 要素・マクロのメニュー 名前を打って絞り込む
@・:・! メンション・絵文字・画像 ―
操作 Windows Mac
リンクの挿入 Ctrl+K Cmd+K
表の挿入 Ctrl+Shift+I Cmd+Shift+I
公開 Ctrl+Enter Cmd+Enter
ショートカットの一覧 Ctrl+? Ctrl+?

Markdown の記法そのものは、関連記事「Markdownの書き方一覧|記法早見表と環境別の対応・変換結果つき」で扱っています。

ページの履歴(版)を見て戻す

ページは、編集して更新するたびに新しい版ができます。公式文書によると、前の版に戻しても後の版は消えず、ページの履歴はすべて残ります。一方で、版を削除すると元に戻せません。リアルタイム文書には下書きと版の履歴が無く、変更はすぐ全員に見えます。

ページを書き出す(PDF・Word・HTML)

単位 形式 主な用途(公式文書の説明)
1ページ Word・PDF Confluence に入れない人へ送る
スペース(または選んだページ) PDF マニュアルを作る
スペース CSV 別の Confluence Cloud へ取り込む
スペース HTML 静的な Web サイトにする
スペース XML Confluence Data Center へ取り込む

スペース単位の書き出しはスペースの管理者が行います。Word の書き出しは Microsoft Word で開く前提で、Google ドキュメントなどとは互換が無いと書かれています。

テンプレートとマクロの早見表

この節では、よく使うマクロ(ページに機能を足す部品)と、テンプレートの作り方が分かります。

マクロは、ページに機能や動く内容を足す部品です。 公式文書は「Confluence ページやリアルタイム文書の機能を拡張」するものと説明しています。編集中に「/」を打ってマクロ名を入れるか、ツールバーから選びます。

マクロ・要素 何をするか 開発チームでの使い道
目次マクロ ページの見出しから目次を作る 長い設計書の先頭
コードブロック 言語ごとに色を付けてコードを表示 設定例・SQL・コマンド
Jira 課題マクロ Jira の作業項目(1件・一覧・件数)を表示 設計書から関連チケットへ
子ページ表示マクロ 子ページの一覧を自動で出す 議事録の目次ページ
ページを含めるマクロ 別ページの内容を埋め込む 共通の注意書きを1か所で直す
抜粋・抜粋インクルード 一部分だけを別ページに出す 仕様の要約を一覧に集める
ラベル別コンテンツマクロ 同じラベルのページを一覧にする ポストモーテムの一覧
タスクレポートマクロ ページのアクションアイテムを集める 議事録の宿題の残り
変更履歴マクロ ページの版の履歴を表示する 手順書の改訂履歴
添付ファイルマクロ 添付ファイルの一覧を出す 構成図・ログの置き場

コードブロックは80を超える言語(Java・Python・SQL・Shell・YAML・TypeScript など)に対応し、title(題名)・linenumbers(行番号)・firstline(最初の行番号)・collapse(折りたたみ)を指定できます。

テンプレートを作る

公式文書によると、スペースのテンプレートを作れるのはスペースの管理者だけです。スペースの「スペース設定」→「ルック & フィール」→「テンプレート」→「新しいテンプレートの作成」で作ります。

要素 内容
変数 テキスト・複数行テキスト・リストの3種。作成時のフォームに入れた値がページに入る
プレースホルダー テキスト 書き方の説明。編集中だけ表示され、公開したページには出ない
ラベル テンプレートに付けると、作ったページにも付く
制限 テンプレートには画像や添付ファイルを入れられない

Atlassian は、議事録(Meeting minutes)やインシデントのポストモーテム(Incident postmortem)などのテンプレートを公開しています。ポストモーテムのテンプレートは「概要を書く」「誰も責めない形で分析する」「再発防止の計画を作る」の3段階で書く形です。

Confluenceの権限(スペースのロール・ページの制限)

この節では、誰が何を見られ、編集できるかを決める仕組みが分かります。

権限は「サイト全体(グローバル権限)→ スペースのロール → ページごとの制限」の3段階で決まります。サポート文書「Confluence のロールとは」によると、スペースには既定で4つのロールがあります。

ロール できること 向いている人
管理 スペース内のすべてを管理 スペースの持ち主・IT 担当
マネージャー ユーザーとコンテンツを管理(設定は除く) プロジェクトリード・チームリード
協力者 コンテンツの追加と編集 メンバー
Viewer コンテンツの閲覧とコメント 関係部署・ゲスト

ページ単位で見られる人を絞るときは、「コンテンツに対するユーザー アクセスを管理」の権限を持つ人が、ページに制限を付けます。Atlassian のナレッジ記事(Data Center 向け)は、子ページに引き継がれるのは閲覧の制限だけで、編集の制限は引き継がれないと説明しています。隠したいページは、閲覧を制限した専用の親ページの下にまとめると管理しやすくなります。

Free プランではこの権限の設定ができません。 料金の節のとおり、ログインできる人は全員がすべてのページを閲覧・編集できます。

Jira連携でできること

この節では、Confluence と Jira をつないで何ができるかが分かります。

やりたいこと 機能(公式文書の名称)
ページに Jira の作業項目を出す Jira 作業項目マクロ(URL の貼り付けでも入る)
作業項目をグラフで出す Jira チャート マクロ
ページの文章から作業項目を作る 文章を選んで「Jira 作業項目を作成」
表の行から作業項目をまとめて作る 公開済みページの表から複数の作業項目を作成
Jira 側からページを見る 作業項目やスプリントからページをリンク・作成
ロードマップを出す Jira ロードマップ マクロ
変更履歴・状況のレポートを作る Jira レポート ブループリント

設計書のページに関連する作業項目の一覧を出し、Jira の作業項目からは設計書へリンクする、という双方向のつなぎ方がよく使われます。

開発チームでの使い方(スペースとページの構成例)

この節では、開発チームのスペースをどう分け、設計書・議事録・手順書・ポストモーテムをどう書くかが、そのまま使える構成例で分かります。

スペースのページツリーの例

1つの開発チーム(または1つのシステム)で1スペースにし、トップの下を役割で分けた例です。

DEV(スペース:注文システム開発)
├─ 概要(チームの連絡先・用語集・リンク集)
├─ 設計書
│   ├─ 基本設計
│   │   ├─ 画面設計
│   │   └─ API設計
│   └─ 詳細設計
├─ 議事録
│   ├─ 2026-10-22 定例
│   └─ 2026-10-15 定例
├─ 手順書
│   ├─ リリース手順
│   └─ 障害対応手順
└─ ポストモーテム
    └─ 2026-10-01 注文APIの遅延

4種類のページの構成

ページ 見出しの構成 入れるマクロ・要素
設計書 目的・前提/全体構成/詳細(画面・API・DB)/決まっていないこと/変更履歴 目次・コードブロック・Jira 課題・変更履歴
議事録 日時・参加者/議題/決定事項/アクションアイテム(担当・期限)/次回 タスク([])・@メンション・決定事項
手順書 目的・対象/事前の確認/手順(番号付き)/確認方法/切り戻し コードブロック・情報パネル・ページを含める
ポストモーテム 概要(影響・時間)/時系列/原因/うまくいったこと/再発防止策 Jira 課題(対策のチケット)・ラベル別コンテンツ

議事録は「議事録」の親ページの子にして、親ページに子ページ表示マクロを置くと、日付順の一覧が自動でできます。ポストモーテムには postmortem などのラベルを付けておくと、ラベル別コンテンツマクロで一覧ページが作れます。

書く中身の詳しい型は、次の記事で扱っています。

スペースを散らからせないためのチェックリスト

  • 1スペースはチームかシステムの単位で作り、個人のメモは個人用スペースに分けた権限がスペース単位なので、見せる範囲が同じものをまとめる
  • 2トップの下の親ページ(設計書・議事録・手順書など)を先に決めたページツリーがそのまま目次になる
  • 3議事録・ポストモーテムはテンプレートから作る決まりにした見出しが揃うと、検索と比較がしやすい
  • 4ページ名に日付や対象を入れる形を決めた例:「2026-10-22 定例」「リリース手順(注文API)」
  • 5ラベルの付け方を決めた例:postmortem・runbook・adr。ラベル別コンテンツで一覧を作れる
  • 6使い終わったページはアーカイブするStandard 以上でアーカイブでき、Premium はまとめてアーカイブできる

Notion・Googleドキュメント・GitHub Wikiとの違い

この節では、似たツールとの違いを、各社の公式文書に書かれた事実で比べます。

観点 Confluence Notion Google ドキュメント GitHub Wiki
置き場所の単位 スペース → ページツリー チームスペース → ページ Google ドライブのファイル リポジトリごとの Wiki
無料の範囲(2026年10月22日時点) 10人まで・2GB フリープラン(ゲスト10人・ページ履歴7日) Google アカウントで利用 公開リポジトリは Free で利用
有料の料金(1人・月) $5.78〜 $10〜 Google Workspace の料金 GitHub Pro・Team など
Markdown 入力時に書式へ自動で変わる ページを Markdown で書き出せる 設定で Markdown を有効にでき、.md の取り込み・書き出しができる Markdown などで書き、HTML に変換
Jira との連携 同じ Atlassian の製品で標準の機能 連携の機能やアプリで 拡張機能などで ―

Notion の料金はNotion公式の料金ページ(米ドル、年払いで最大20%割引)、GitHub Wiki は GitHub Docs「ウィキについて」で確かめました。GitHub Wiki は、既定ではリポジトリに書き込める人だけが編集でき、ファイル数に5,000の目安の上限があります。

どれを選ぶか(判断表)

状況 選ばれやすいもの 理由
Jira で課題を管理している Confluence 作業項目の表示・作成・リンクが標準でできる
スペース単位で権限を分けたい Confluence(Standard 以上)・Notion(有料) 無料の範囲では権限の設定が限られる
表で項目を管理する文書が多い Notion・Confluence のデータベース データベースの機能を使う
1つの文書を社外とやり取りする Google ドキュメント ファイル単位で共有できる
コードと一緒に文書を管理したい GitHub Wiki・リポジトリの Markdown Git で履歴を持てる

Confluence REST APIでページを作成・取得する(v2)

この節では、Confluence Cloud の REST API v2 でページを作る・読む・更新するときに、実際に送る URL・ヘッダー・JSON が分かります。

本物の Confluence の代わりに、届いた中身を記録して Page オブジェクトの形で返す擬似サーバーを立て、Python(requests)・curl・confluence.js から送りました。

flowchart TD
    M[Markdown の文書] --> X[storage format<br>XHTML に変換]
    X --> P[POST /wiki/api/v2/pages<br>JSON で送る]
    P --> C[Confluence のページ]
    C -->|GET body-format=storage| R[本文を読み戻す]

準備:APIトークンとBasic認証

1

API トークンを作る

Atlassian アカウントの API トークンの管理画面(id.atlassian.com の manage/api-tokens)で作ります。トークンはパスワードの代わりなので、コードに直接書かず環境変数に入れます。

作った直後しか表示されない

2

「メールアドレス:トークン」を Base64 にする

公式文書の手順どおり、Authorization ヘッダーに Basic と、Base64 にした文字列を入れます。curl の -u や requests の auth= はこれを自動で作ります。

Linux・Mac は echo -n … | base64

3

スペースキーから spaceId を引く

v2 のページ作成は、スペースキー(DEV)ではなく数字の spaceId を使います。GET /wiki/api/v2/spaces?keys=DEV で取れます。

v1 はスペースキーで指定していた

export CONFLUENCE_BASE=https://your-domain.atlassian.net   # 末尾に /wiki は付けない
export CONFLUENCE_EMAIL=taro@example.com
export CONFLUENCE_API_TOKEN=(作ったトークン)
echo -n "$CONFLUENCE_EMAIL:$CONFLUENCE_API_TOKEN" | base64

Pythonでページを作成して読み戻す

Markdown のファイルを storage format に変換し(変換の関数は次の節)、ページを作って本文を読み戻すスクリプトです。

"""Markdown を storage format に変換し、Confluence Cloud REST API v2 でページを作って読み戻す。"""
import os, sys, requests
from md_to_storage import md_to_storage

BASE = os.environ.get("CONFLUENCE_BASE", "https://your-domain.atlassian.net")   # 末尾に /wiki は付けない
AUTH = (os.environ["CONFLUENCE_EMAIL"], os.environ["CONFLUENCE_API_TOKEN"])
API = BASE + "/wiki/api/v2"

# 1. スペースキー(DEV)から spaceId(数字)を引く
r = requests.get(f"{API}/spaces", params={"keys": "DEV"}, auth=AUTH)
r.raise_for_status()
space_id = r.json()["results"][0]["id"]
print("spaceId =", space_id)

# 2. ページを作る
md = open(sys.argv[1], encoding="utf-8").read()
payload = {
    "spaceId": space_id,
    "status": "current",
    "title": "注文APIの設計",
    "body": {"representation": "storage", "value": md_to_storage(md)},
}
r = requests.post(f"{API}/pages", json=payload, auth=AUTH)
print("POST", r.status_code)
page = r.json()
print("id =", page["id"], "/ version =", page["version"]["number"])

# 3. storage format で読み戻す
r = requests.get(f"{API}/pages/{page['id']}", params={"body-format": "storage"}, auth=AUTH)
print("GET", r.status_code, "/ body の先頭:", r.json()["body"]["storage"]["value"][:40])

擬似サーバーに向けて実行した出力です。

$ python3 create_page.py design.md
spaceId = 98306
POST 200
id = 1310721 / version = 1
GET 200 / body の先頭: <h1>注文APIの設計</h1>
<h2>概要</h2>
<p>注文を登録する

実際に送られたリクエスト(URL・ヘッダー・JSON)

擬似サーバーが記録した POST の中身です(Authorization は先頭だけ残して伏せています)。

{
  "method": "POST",
  "path": "/wiki/api/v2/pages",
  "headers": {
    "User-Agent": "python-requests/2.34.2",
    "Content-Length": "1214",
    "Content-Type": "application/json",
    "Authorization": "Basic dGFy…(62文字)"
  },
  "body": {
    "spaceId": "98306",
    "status": "current",
    "title": "注文APIの設計",
    "body": {
      "representation": "storage",
      "value": "<h1>注文APIの設計</h1>\n<h2>概要</h2>\n<p>注文を登録する <strong>POST /orders</strong> の設計です。…(略)…<h2>呼び出し例</h2>\n<ac:structured-macro ac:name=\"code\"><ac:parameter ac:name=\"language\">python</ac:parameter><ac:plain-text-body><![CDATA[import requests\nr = requests.post(url, json={\"itemId\": \"A-1\", \"quantity\": 2})\nprint(r.status_code)\n]]></ac:plain-text-body></ac:structured-macro>\n…(略)…"
    }
  }
}

読み取れることは3つです。

  • 本文は JSON の中の文字列で、中身は XHTML(storage format)です。 改行や " は JSON の決まりでエスケープされます。
  • spaceId は数字の文字列で、スペースキーではありません。 親ページの下に作るときは parentId を足します。
  • Authorization は62文字でした。Basic の6文字と、メールアドレス:トークン を Base64 にした56文字です。

公式の API リファレンスでは、ページは status に draft を指定しない限り公開された状態で作られ、公開するページには title が必要と説明されています。必要な権限は「スペースの閲覧」と「スペースでのページ作成」です。

取得するときの body-format

GET /wiki/api/v2/pages/{id} で本文を受け取るときは、body-format で形式を指定します(confluence.js 3.3.1 の型に入っている値)。

body-format 返る形 使い道
storage XHTML(保存されている形) 読んで書き換えて PUT で戻す
atlas_doc_format ADF(JSON の文書形式) 新しいエディターの構造で扱う
view 表示用の HTML 画面と同じ見た目で取り出す
export_view 書き出し用の HTML 別のサイトに載せる

一覧の取得は GET /wiki/api/v2/pages に space-id・title・limit・cursor などを付けます。続きのページがあるときは、応答の Link ヘッダーの next の URL で取ります。

ページを更新する(versionの番号を1つ上げる)

更新は PUT /wiki/api/v2/pages/{id} に、今の版の番号+1を version.number に入れて送ります。

{
  "id": "1310721",
  "status": "current",
  "title": "注文APIの設計",
  "body": {
    "representation": "storage",
    "value": "<h1>注文APIの設計</h1><p>エラー形式を追記しました。</p>"
  },
  "version": { "number": 2, "message": "エラー形式を追記" }
}
curl -sS -u "$CONFLUENCE_EMAIL:$CONFLUENCE_API_TOKEN" \
  -X PUT -H "Content-Type: application/json" \
  --data-binary @update.json \
  "$CONFLUENCE_BASE/wiki/api/v2/pages/1310721"

version 1 のページを更新するとき

今と同じ番号"version": {"number": 1} → 409 CONFLICT
→
1つ上げた番号"version": {"number": 2} → 更新される

先に GET で今の version.number を読み、+1 して送る。message は版の履歴に出る

版の番号を上げずに送ったときのエラー文は、Atlassian の課題管理(CONFCLOUD-76640)に次のように載っています。

409 CONFLICT
Version must be incremented when updating a page. Current Version: [1]. Provided version: [1]

TypeScript(confluence.js)で送る

confluence.js は、Atlassian の OpenAPI 定義から型を作った TypeScript のクライアントです(Node.js 22 以上)。子ページとして議事録を作る例です。

import { createV2Client } from 'confluence.js';

const confluence = createV2Client({
  host: process.env.CONFLUENCE_BASE,
  auth: { type: 'basic', email: process.env.CONFLUENCE_EMAIL, apiToken: process.env.CONFLUENCE_API_TOKEN },
});
const page = await confluence.page.createPage({
  body: {
    spaceId: '98306',
    status: 'current',
    title: '議事録 2026-10-22 定例',
    parentId: '1310721',
    body: { representation: 'storage', value: '<h2>決定事項</h2><ul><li>リリースは10月30日</li></ul>' },
  },
});
console.log(page.id, page.title, page.version?.number, page.parentId);
$ node cjs.mjs
1310722 議事録 2026-10-22 定例 1 1310721

擬似サーバーに届いたのは、Python と同じ POST /wiki/api/v2/pages で、ヘッダーは Accept: application/json・Content-Type: application/json・Authorization: Basic …、本文は 208 バイトでした。parentId を入れたので、応答の parentId が親ページの ID になっています。

v1 API との違い

項目 v2(この記事の形) v1
ページ作成の URL POST /wiki/api/v2/pages POST /wiki/rest/api/content(現行の定義から外れた)
スペースの指定 "spaceId": "98306" "space": {"key": "DEV"}
親ページ "parentId": "…" "ancestors": [{"id": …}]
本文 "body": {"representation": "storage", "value": "…"} "body": {"storage": {"value": "…", "representation": "storage"}}
検索(CQL) ― GET /wiki/rest/api/search?cql=type=page

v1 の形は、v1 を使う md2cf 2.3.0 のソースと、confluence.js の v1 の定義で確かめました。confluence.js の説明によると、Atlassian が公開している現行の v1 の定義からは、ページ作成などの createContent を含む37の操作が外れていて、そのうち33は v2 に同じ機能があります。v1 を使うのは、添付ファイルのアップロード・ページの制限・CQL での検索・テンプレートなど、v2 に同じ機能が無いものです。新しく書くページの作成・更新は v2 を使います。

API の設計の決め方そのものは、関連記事「REST APIの設計|URL・ステータスコード・エラー形式の決め方」で扱っています。

storage formatとは(MarkdownからXHTMLへの変換例)

この節では、Confluence がページを保存している形式と、Markdown から変換するときのつまずきが分かります。

storage format は、Confluence がページの中身を保存している XHTML ベースの形式です。 普通の HTML のタグ(h1・p・table など)に、Confluence 独自の ac:(マクロやリンク)と ri:(ページ・添付ファイルなどの参照先)のタグを足したものです。

書きたいもの storage format
見出し・太字 <h1>見出し</h1>・<strong>太字</strong>
別のページへのリンク <ac:link><ri:page ri:content-title="ページ名" /></ac:link>
添付した画像 <ac:image><ri:attachment ri:filename="図.png" /></ac:image>
タスク <ac:task-list><ac:task><ac:task-status>incomplete</ac:task-status>…
コードブロック <ac:structured-macro ac:name="code"> + <ac:plain-text-body><![CDATA[…]]>
目次 <ac:structured-macro ac:name="toc" />

MarkdownをPythonで変換する

Python の Markdown ライブラリで HTML にし、コードブロックだけを Confluence のコードマクロに置き換える最小の変換です。

"""Markdown を Confluence の storage format(XHTML)に変換する最小の例。"""
import html, re, sys
import markdown

def code_macro(m):
    lang, code = m.group(1) or "none", html.unescape(m.group(2))
    code = code.replace("]]>", "]]]]><![CDATA[>")          # CDATA の中に ]]> は書けない
    return ('<ac:structured-macro ac:name="code">'
            f'<ac:parameter ac:name="language">{lang}</ac:parameter>'
            f'<ac:plain-text-body><![CDATA[{code}]]></ac:plain-text-body>'
            '</ac:structured-macro>')

def md_to_storage(md_text):
    xhtml = markdown.markdown(md_text, extensions=["tables", "fenced_code"])
    xhtml = re.sub(r'<pre><code(?: class="language-([\w+-]+)")?>(.*?)</code></pre>', code_macro, xhtml, flags=re.S)
    return xhtml

if __name__ == "__main__":
    print(md_to_storage(open(sys.argv[1], encoding="utf-8").read()))

変換する Markdown(474 バイト)です。

# 注文APIの設計

## 概要

注文を登録する **POST /orders** の設計です。詳細は [API設計の決まり](https://example.com/api-rules) を参照。

## 項目

| 項目 | 型 | 必須 |
|---|---|---|
| itemId | string | ○ |
| quantity | int | ○ |

## 呼び出し例

```python
import requests
r = requests.post(url, json={"itemId": "A-1", "quantity": 2})
print(r.status_code)
```

## 残作業

- 在庫の引き当て
- エラー形式を決める

変換した結果(表の行は一部を省いています)です。

<h1>注文APIの設計</h1>
<h2>概要</h2>
<p>注文を登録する <strong>POST /orders</strong> の設計です。詳細は <a href="https://example.com/api-rules">API設計の決まり</a> を参照。</p>
<h2>項目</h2>
<table>
<thead>
<tr>
<th>項目</th>
<th>型</th>
<th>必須</th>
</tr>
</thead>
<tbody>
<tr>
<td>itemId</td>
<td>string</td>
<td>○</td>
</tr>
…
</tbody>
</table>
<h2>呼び出し例</h2>
<ac:structured-macro ac:name="code"><ac:parameter ac:name="language">python</ac:parameter><ac:plain-text-body><![CDATA[import requests
r = requests.post(url, json={"itemId": "A-1", "quantity": 2})
print(r.status_code)
]]></ac:plain-text-body></ac:structured-macro>
<h2>残作業</h2>
<ul>
<li>在庫の引き当て</li>
<li>エラー形式を決める</li>
</ul>

474 バイトの Markdown が、831 バイト(35行)の storage format になりました。同じファイルを、Markdown を Confluence に載せるツール md2cf 2.3.0 の変換器に通すと 888 バイトで、違いはコードマクロに linenumbers を true で付けることと、改行の位置でした。

送る前にXMLとして正しいかを確かめる

storage format は XML の決まりに従うので、HTML では許される <br> のような閉じないタグは使えません。ac: と ri: の名前空間を付けて XML として読み込むと、送る前に壊れた所が分かります。

"""storage format が XML として正しく閉じているかを確かめる。"""
import sys, xml.etree.ElementTree as ET
WRAP = '<root xmlns:ac="http://atlassian.com/content" xmlns:ri="http://atlassian.com/resource/identifier">\n{}\n</root>'
for path in sys.argv[1:]:
    s = open(path, encoding="utf-8").read()
    try:
        r = ET.fromstring(WRAP.format(s))
        print(path, "OK 要素数", sum(1 for _ in r.iter()) - 1)
    except ET.ParseError as e:
        line, col = e.position
        print(path, "NG", str(e).split(":")[0], f"{line - 1}行目 {col + 1}文字目")
$ python3 xmlcheck.py design.storage.xml design.md2cf.xml broken.xml fixed.xml
design.storage.xml OK 要素数 29
design.md2cf.xml OK 要素数 30
broken.xml NG mismatched tag 1行目 14文字目
fixed.xml OK 要素数 2

broken.xml は <p>改行<br>あり</p> で、<br> が閉じていないため </p> の所で mismatched tag になりました。<br /> に直した fixed.xml は通っています。Python の Markdown ライブラリは <br />・<hr /> の形で出力するので、そのまま通りました。

コードに「]]>」が入っているとき

コードブロックの中身は <![CDATA[ … ]]> で囲みます。CDATA は ]]> で終わるので、コードの中に ]]> があると、そこで切れてしまいます。

コードに ]]> を含む XML の例を載せる

そのまま囲むXML の検査で mismatched tag(1行目 84文字目)
→
分けて囲む]]> を ]]]]><![CDATA[> に置き換えて OK

2つの CDATA に分かれるが、読み込むと元のコードと同じ文字列に戻る

上の変換の関数で <a><![CDATA[x]]></a> というコードを変換し、XML として読み込んで中身を取り出すと、'<a><![CDATA[x]]></a>\n' と元の文字列に戻りました。

よくあるつまずきとエラー

この節では、使い始めと API で起きやすいつまずきの原因と直し方が分かります。

画面での使い方のつまずき

症状 原因 直し方
隠したいページを全員が見られる Free プランは権限を設定できない Standard 以上にする。Free の間は隠す情報を置かない
テンプレートを作るメニューが無い スペースの管理者でない 管理者に頼むか、管理のロールをもらう
子ページが見えない人がいる 親ページの閲覧の制限が引き継がれている 親ページの制限を確かめる
ページが増えて探せない 親ページ・ラベル・名前の決まりが無い 前の節のチェックリストで構成を決める
Word に書き出したファイルが崩れる Word 以外のアプリで開いた 公式文書は Microsoft Word で開く前提と説明している
議事録の宿題が漏れる アクションアイテムにしていない [] でタスクにし、タスクレポートマクロで集める

REST APIのつまずき

症状(手元で起こしたもの) 原因 直し方
URL が /wiki/wiki/api/v2/pages/… になる ベースの URL に /wiki を付けたうえで、パスにも /wiki を付けた ベースは https://○○.atlassian.net までにする
Content-Type: application/x-www-form-urlencoded で送られる curl の --data だけで、Content-Type を付けていない -H "Content-Type: application/json" を付ける
本文が 286 バイトから 276 バイトに減った curl の --data @ファイル は改行を取り除く --data-binary @ファイル を使う
409 Version must be incremented… version.number を上げていない GET で今の番号を読み、+1 して PUT
XML の検査で mismatched tag <br> などの閉じないタグ・CDATA の中の ]]> <br /> にする。]]> を分けて囲む
401 が返る メールアドレスとトークンの組み合わせの誤り -u メール:トークン を確かめる。トークンを作り直す

1行目と2行目は、擬似サーバーが記録した次の内容で確かめました。

PUT /wiki/api/v2/pages/1310721 application/x-www-form-urlencoded
GET /wiki/wiki/api/v2/pages/1310721 None

よくある質問

Q. Confluenceとは何ですか?読み方は? A. Atlassian 社のチーム向け Wiki で、設計書・議事録・手順書などをページにして共有するツールです。読み方は「コンフルエンス」で、英語で「合流」という意味です。

Q. Confluenceは無料で使えますか? A. Free プランは10ユーザーまで無料で、ストレージは2GBです(2026年10月22日時点)。ただし権限を設定できず、ログインできる人は全員がすべてのページを閲覧・編集できます。

Q. Confluenceの料金はいくらですか? A. 公式の料金ページ(米ドル表示)では、Standard が1ユーザー月額 $5.78、Premium が $11.16、Enterprise は問い合わせです(2026年10月22日時点)。年払いにすると最大17%安くなると書かれています。

Q. ConfluenceとJiraの違いは? A. Confluence は文書(なぜ・どう作るか)を残すツール、Jira は作業項目(誰が・いつまでに何をするか)を追うツールです。Confluence のページに Jira の作業項目を表示したり、文章から作業項目を作ったりできます。

Q. ConfluenceはJiraなしでも使えますか? A. 使えます。Confluence は単独で契約でき、Jira の連携は両方を使っているときに足せる機能です。

Q. ConfluenceとNotionの違いは? A. Confluence はスペースとページツリーで文書を整理し、Jira との連携が標準の機能です。Notion はページとデータベースを組み合わせて使い、フリープランでもゲストを10人まで招待できます。比べた表は「Notion・Googleドキュメント・GitHub Wikiとの違い」の節にあります。

Q. ConfluenceでMarkdownは使えますか? A. 編集画面で #+スペースで見出し、*+スペースで箇条書きのように、Markdown に似た入力が書式に変わります。保存される形式は Markdown ではなく storage format(XHTML)なので、API で Markdown の文書を載せるときは変換します。

Q. Confluenceのマクロとは何ですか? A. ページに機能や動く内容を足す部品です。目次・コードブロック・Jira 課題・子ページの一覧・別ページの埋め込みなどがあり、編集中に「/」を打って名前で探して入れます。

Q. ConfluenceのAPIでページを作るには? A. POST /wiki/api/v2/pages に、spaceId・status・title・body(representation が storage、value が XHTML)を JSON で送ります。認証はメールアドレスと API トークンの Basic 認証です。

Q. Confluenceのページを更新すると409になるのはなぜですか? A. version.number を今の版より1つ大きくしていないためです。先に GET で今の番号を読み、+1 した番号で PUT します。

Q. Confluence Data CenterやServerはまだ使えますか? A. Server は2024年2月15日にサポートが終了しました。Data Center は2026年3月30日で新規の購入が終わり、2029年3月28日に提供が終了して読み取り専用になると公式に案内されています。

まとめ

  • Confluence は Atlassian のチーム向け Wiki。サイト → スペース → ページ(ページツリー)の順に整理し、Jira の作業項目とつなげられる。
  • 料金は Free(10人・2GB)・Standard($5.78)・Premium($11.16)・Enterprise(2026年10月22日時点、1ユーザー月額)。Free では権限を設定できない。
  • 編集画面では Markdown に似た入力と「/」のメニューで、見出し・コード・目次・Jira 課題などのマクロを入れる。テンプレートを作れるのはスペースの管理者。
  • 開発チームでは、設計書・議事録・手順書・ポストモーテムを親ページで分け、テンプレート・ラベル・子ページ表示マクロで揃える。
  • REST API v2 は POST /wiki/api/v2/pages に spaceId と storage format の本文を JSON で送る。更新は version.number を+1 しないと409になる。
  • storage format は XML として正しい必要がある。<br /> で閉じ、コードの中の ]]> は CDATA を分けて囲む。

参考・出典

確認日はいずれも 2026年10月22日です。

  • Atlassian サポート「Confluence Cloud とは」:https://support.atlassian.com/ja/confluence-cloud/docs/what-is-confluence-cloud
  • Atlassian「Confluence Pricing」:https://www.atlassian.com/en/software/confluence/pricing
  • Atlassian Support「Learn about the features of Confluence Cloud plans」:https://support.atlassian.com/confluence-cloud/docs/learn-about-confluence-cloud-plans/
  • Atlassian「Data Center end of life」:https://www.atlassian.com/licensing/data-center-end-of-life
  • Atlassian「Server end of support」:https://www.atlassian.com/licensing/server-end-of-support
  • Atlassian サポート「キーボード ショートカットとオートコンプリート」:https://support.atlassian.com/ja/confluence-cloud/docs/keyboard-shortcuts-markdown-and-autocomplete/
  • Atlassian サポート「マクロとは」:https://support.atlassian.com/ja/confluence-cloud/docs/what-are-macros/
  • Atlassian サポート「テンプレートを作成する」:https://support.atlassian.com/ja/confluence-cloud/docs/create-a-template/
  • Atlassian Support「Create, update, and manage written content」:https://support.atlassian.com/confluence-cloud/docs/create-edit-and-publish-a-page/
  • Atlassian ナレッジ「Child page does not inherit page restrictions from parent page」:https://support.atlassian.com/confluence/kb/child-page-does-not-inherit-page-restrictions-from-parent-page/
  • Atlassian サポート「Confluence のロールとは」:https://support.atlassian.com/ja/confluence-cloud/docs/what-are-confluences-roles/
  • Atlassian サポート「Jira と Confluence を一緒に利用する」:https://support.atlassian.com/ja/confluence-cloud/docs/use-jira-and-confluence-together
  • Atlassian サポート「コンテンツを Word、PDF、HTML、XML にエクスポートする」:https://support.atlassian.com/ja/confluence-cloud/docs/export-content-to-word-pdf-html-and-xml/
  • Atlassian「Incident postmortem template」:https://www.atlassian.com/software/confluence/templates/incident-postmortem
  • Atlassian「Meeting minutes template」:https://www.atlassian.com/software/confluence/templates/meeting-notes
  • Confluence Data Center ドキュメント「Confluence Storage Format」:https://confluence.atlassian.com/doc/confluence-storage-format-790796544.html
  • Confluence ドキュメント「Code Block Macro」:https://confluence.atlassian.com/doc/code-block-macro-139390.html
  • Atlassian Developer「The Confluence Cloud REST API v2」:https://developer.atlassian.com/cloud/confluence/rest/v2/intro/
  • Atlassian Developer「Basic auth for REST APIs」:https://developer.atlassian.com/cloud/confluence/basic-auth-for-rest-apis/
  • Atlassian 課題管理「CONFCLOUD-76640」:https://jira.atlassian.com/browse/CONFCLOUD-76640
  • confluence.js(npm):https://www.npmjs.com/package/confluence.js
  • md2cf(PyPI):https://pypi.org/project/md2cf/
  • Notion「料金プラン」:https://www.notion.com/ja/pricing
  • Notion ヘルプ「コンテンツをエクスポートする」:https://www.notion.com/ja/help/export-your-content
  • Google ドキュメント エディタ ヘルプ「マークダウンを使用する」:https://support.google.com/docs/answer/12014036?hl=ja
  • GitHub Docs「ウィキについて」:https://docs.github.com/ja/communities/documenting-your-project-with-wikis/about-wikis
  • Wikipedia「Confluence (software)」:https://en.wikipedia.org/wiki/Confluence_(software)

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「Confluenceとは|使い方・料金・権限・REST APIを実例で解説」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?