Backlog APIとは?概要と実務での自動化・連携事例

監修者 二宮 優大

プロジェクト管理ツールとして多くの現場で利用されている「Backlog(バックログ)」。

タスク管理として利用することが主な方法ですが、「Backlog API」を活用することで、さらに業務を効率化・拡張することができます。

「手動での進捗更新や報告が手間に感じる」

「Backlogに蓄積されている日々の情報・データをナレッジ化したい」

今回はそんな課題を解決するために、Backlog APIの概要から、実務で今すぐ使えるヒントをご紹介します。

この記事からわかること

Backlog APIは、タスク管理を業務改善へつなげるための設計手段です。

  • Backlog APIの基本的な仕組み

  • APIキーの取得方法と利用時の注意点

  • 課題取得・コメント追加など、実務で使いやすい主要エンドポイント

  • GitHub Actionsと連携したBacklogへの自動コメント通知

  • AWS Lambdaを使ったBacklogデータの定期取得・S3保存

  • Backlogに蓄積された情報をナレッジ化・分析活用する考え方

手動での進捗共有や情報整理に限界を感じている現場では、Backlog APIの活用が業務フローを見直すきっかけになります。本記事では、日々の運用を自動化し、Backlogをチームのデジタル資産として活かすための実践的な方法を解説します。

Backlog APIとは?

Backlog APIとは、プロジェクトやユーザーの管理などブラウザ上のBacklogでできる操作の大部分をAPIから行うことができます。

通常はブラウザを開いて手動で行っていたことを、APIを使うことで、特定のイベント(Gitのプッシュや特定日時からなど)をきっかけに自動実行など、日々の業務を効率化させることができます。

主な活用メリット

  • 運用の自動化(CI/CDや外部ツールとの結合)
    課題の起票やコメント追加を完全無人化します。例えば、GitHubのプルリクエスト作成時に該当のBacklog課題へ進捗を自動コメントしたり、ステージング環境へのデプロイ完了と同時に確認用URLを課題へ通知するといった、開発サイクルに最適化したワークフローが実現します。

  • データの利活用とナレッジ化
    Backlog内に蓄積された課題テキストやコメント履歴、ステータスの遷移ログなどを定期的に外部ストレージ(Amazon S3など)へエクスポートできます。単なるバックアップに留まらず、蓄積したデータを分析してプロジェクトを可視化したり、社内ナレッジの学習ソースとして二次利用することが可能になります。

APIの基本的な仕組みや活用イメージについては、関連記事「APIとは?図解でわかる仕組みと活用方法【初心者向け完全ガイド】」でも解説しています。

利用できる主なエンドポイント(APIで操作)

Backlog APIでは、プロジェクト管理に必要なほぼ全てのデータにアクセスできます。

基本となる共通URL(ベースURL)は以下の通りです。

`https://{スペース名}.backlog.jp/api/v2/{エンドポイント}`

実務でよく使われる代表的なエンドポイントには、以下のようなものがあります。

横にスクロールできます

機能カテゴリ

HTTPメソッド

エンドポイント

概要

課題の取得

GET

/api/v2/issues

条件を指定して課題一覧を取得する

課題の追加

POST

/api/v2/issues

新しい課題を起票する

課題コメントの取得

GET

/api/v2/issues/:issueIdOrKey/comments

指定した課題のコメント一覧を取得する

課題コメントの追加

POST

/api/v2/issues/:issueIdOrKey/comments

指定した課題にコメントを追加する

プロジェクト取得

GET

/api/v2/projects

参加しているプロジェクト一覧を取得する

出典・参考資料:Backlog API とは

今回ご紹介する実例でも、これらのエンドポイントを組み合わせて自動化を実現しています。

事前準備:Backlog API キーの取得手順

Backlog APIを動かすには、認証用の「APIキー」を発行する必要があります。API経由でアクセスする際、このキーを認証情報として利用します。

取得手順

  1. Backlogにログインする。

  2. 画面右上のマイアイコンをクリックし、「個人設定」を開く。

  3. 左メニューから「API」を選択する。

  4. APIの設定」>「新しいAPIキーを発行

  5. APIキーが発行される。

⚠️ 注意点

  • APIキーは、「そのキーを発行したユーザーの権限」を引き継ぎます。

  • 課題コメント追加(POST)した際は、APIキーを発行したユーザーでコメントされます。

今回は、このBacklog APIを業務への活用例をご紹介します。

【実例①】GitHub Actionsと連携した「Backlogへの自動コメント通知」

Backlogへの自動コメント通知

開発現場で非常によくあるのが、「ソースコードや記事が更新された際、自動で通知を飛ばしたい」というケースです。

ここでは、GitHub Actionsを利用して、自動通知を実装した例を簡単に、ご紹介します。構成と要件は下記になります。

構成

  • CMS: microCMS(ヘッドレスCMS)

  • ソースコード管理: GitHub

  • CI/CD: GitHub Actions

  • フロントエンド: SSG(静的サイト生成)

要件

  • Backlogで、タスク進行している

  • 本番公開するサーバーへは、ファイルを手動でのアップが必要

  • 公開する差分ファイルの情報を関係者に通知が必要

利用する Backlog API エンドポイント

コメントへの投稿には、以下のエンドポイントを POST で叩きます。

`POST https://{BACKLOG_API_HOST}/api/v2/issues/{issueKey}/comments?apiKey={API_KEY}`

Github Actionsのワークフロー(抜粋)

横にスクロールできます

トリガー(実行タイミング)

用途

microCMSの更新
※任意のWebhookのタイミング

CMS更新によるビルド・差分通知を特定のBacklog課題へ通知

# Backlog通知ジョブ
  backlog-notify-api:
      runs-on: ubuntu-latest
      steps:
        - name: Post Comment to Backlog API
          run: |
            # 1. 宛先課題キーと認証情報の用意
            ISSUE_KEY="〇〇_〇〇-100" 
            API_HOST="〇〇.backlog.jp"
            API_KEY="${{ secrets.BACKLOG_API_KEY }}"

            # 2. 投稿するコメント
            COMMENT_BODY=$(printf "✅CMSで更新されました。\n\n**アップファイルリスト:**\n> dist/index.html")

            # 3. Backlog APIにPOSTリクエストを送信
            curl -X POST \
              "<https://$>{API_HOST}/api/v2/issues/${ISSUE_KEY}/comments?apiKey=${API_KEY}" \
              -H "Content-Type: application/x-www-form-urlencoded" \
              --data-urlencode "content=${COMMENT_BODY}"
          shell: bash
            
  • API_HOST(APIホスト)
    チームが使っているBacklogのサーバーURL。

  • ISSUE_KEY(課題キー)
    課題ごとに自動で割り振られる固有の識別ID。

microCMS側でコンテンツが更新された際、GitHub側で自動ビルド(npm run build)を走らせ、生成された差分内容をBacklogの特定の課題に報告する流れです。

▼ Backlogへの自動投稿コメントのイメージ

✅ CMSで更新されました。

アップファイルリスト:

dist/〇〇/index.html

dist/〇〇/news/index.html

上記は、Github経由で、Backlogへのファイル通知の例になりますが、他にもWebhookを利用できるお問い合わせツールなどからBacklogへお問い合わせごとに課題を作成→コメント通知をするといったワークフローも実現が可能となります。

【実例②】AWS LambdaでBacklog情報を定期取得してS3に保存

Backlog情報を定期取得してS3に保存

もう一つの実用例は、「データのバックアップや分析」を目的としたパターンです。

Backlog上の課題データ(コメント含む)を、「AWS Lambda」を使って定期的に丸ごと取得し、オブジェクトストレージである「Amazon S3」にJSONファイルとしてバックアップします。

以下は、Backlog APIから課題一覧を取得し、さらに各課題に紐づくコメントデータも、S3に一括保存するLambda関数のコードです。

コード例

import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";
const s3 = new S3Client({ region: "ap-northeast-1" }); 

export const handler = async () => {
  const SPACE_NAME = "YOUR_SPACE_NAME";
  const PROJECT_KEY = "YOUR_PROJECT_ID";
  const API_KEY = "YOUR_BACKLOG_API_KEY";
  const BUCKET_NAME = "backup-bucket";

  // 1. Backlog APIから課題一覧を取得(最大100件)
  const url = `https://${SPACE_NAME}.backlog.com/api/v2/issues?apiKey=${API_KEY}&projectId[]=${PROJECT_KEY}&count=100`;
  const response = await fetch(url);
  const issues = await response.json();

  // 2. ループ処理で各課題のコメントを取得し、データを結合
  const issuesWithComments = [];
  for (const issue of issues) {
    const commentUrl = `https://${SPACE_NAME}.backlog.com/api/v2/issues/${issue.id}/comments?apiKey=${API_KEY}`;
    const commentResponse = await fetch(commentUrl);
    const comments = await commentResponse.json();
    
    // 課題オブジェクトに comments データ格納
    issuesWithComments.push({
      ...issue,
      comments: comments 
    });
  } 

  // 3. コメント付きの結合データをJSON形式でAmazon S3に保存
  const s3Command = new PutObjectCommand({
    Bucket: BUCKET_NAME,
    Key: "backlog_issues.json",
    Body: JSON.stringify(issuesWithComments, null, 2), 
    ContentType: "application/json",
  });

  await s3.send(s3Command);
};

主要なステップごとに細分化して解説します。

課題一覧のフェッチ

const url = `https://${SPACE_NAME}.backlog.com/api/v2/issues?apiKey=${API_KEY}&projectId[]=${PROJECT_KEY}&count=100`;
const response = await fetch(url);
const issues = await response.json();

指定したプロジェクトIDに紐づく課題を、 fetch APIを用いてJSON形式で取得します。実務運用を見据え、1回のリクエストで取得できる限界値である count=100 をクエリパラメータに明示しています。

コメントの取得

for (const issue of issues) {
  const commentUrl = `https://${SPACE_NAME}.backlog.com/api/v2/issues/${issue.id}/comments?apiKey=${API_KEY}`;
  const commentResponse = await fetch(commentUrl);
  const comments = await commentResponse.json();

  issuesWithComments.push({
    ...issue,
    comments: comments
  });
}

Backlogの「課題一覧取得API」のレスポンスには、各課題のコメント本文が含まれていません。
そのため、フェッチした課題の配列(issues)をループで回し、各課題の固有ID(issue.id)をもとにコメント追加APIを個別に処理しています。

このスクリプトを、AWSの「Amazon EventBridge」などを使って日次(毎日夜間など)で定期実行するように設定すれば、常に最新の情報をS3に自動蓄積も可能です。

⚠️ Backlog API利用時の注意点

  • 取得件数の上限: 課題一覧取得APIは1回につき最大100件までしか取得できません。

  • デフォルトの挙動: 件数指定(count パラメータ)がない場合は、自動的に20件しか取得されない仕様です。

  • 101件以上の対策: 全件バックアップする際は、取得開始位置をずらす offset を使ったループ処理が必要です。

Backlog APIで業務効率化とナレッジ活用を実現する

今回は、Backlog APIの概要から、実務に直結する2つの具体的な自動化・連携事例をご紹介しました。
AWS Lambdaを使用したデータ取得では、S3に保存したデータをAmazon Bedrock(生成AIサービス)と組み合わせれば、蓄積された過去の膨大な課題やコメント履歴をAIに学習・分析させることも可能です。
例えば、「過去の類似バグの修正方法をAIに要約させる」「プロジェクトの進捗の遅れをAIに予測させてアラートを出す」といった、一歩進んだ業務効率化まで視野に入ってきます。

外部APIとの柔軟な連携は、単なる手作業の自動化に留まらず、プロダクト開発のサイクル全体をモダンに最適化していくための強力な武器です。

本記事で紹介したGitHub ActionsやAWS Lambdaをベースとしたパイプラインは、最小限の実装で大きな効率化を得られます。チームの開発ワークフローへ組み込んでみてください。

API活用・設計なら株式会社デパートへご相談ください

API活用は、単なるシステム連携ではなく、業務フローや情報資産の設計まで含めて考えることが重要です。株式会社デパートでは、Web制作・システム開発・運用改善の視点から、事業成長につながるAPI活用を支援します。課題整理から実装まで、お気軽にご相談ください。

株式会社デパートのサービスのご紹介

運用・保守の課題や状態を簡易チェックしませんか?

現在の運用・保守にどのような課題があるのか、見直すべき状態なのかを確認したい方はこちらからチェック。
簡単な質問に答えるだけで診断できます。

Contact

制作のご依頼やサービスに関するお問い合わせ、
まだ案件化していないご相談など、
お気軽にお問い合わせください。

お問い合わせはこちら