Aller au contenu
AddnessCentre d’aide
Accompagnement gratuit
Nous contacter
Poser une question sur Addness LiveNotre équipe répond à vos questions d’utilisation en direct sur YouTube (24 h/24, 7 j/7, en japonais)Questions sur AddnessUtilisation, bugs et demandes de fonctionnalitésAccompagnement gratuit au déploiementUn conseiller vous aide gratuitement à démarrer en organisation et à adapter l’utilisation à votre nombre d’utilisateurs
Ouvrir Addness

API des intégrations externes (lecture seule)

Une API pour lire les membres et les tâches du jour de votre organisation depuis vos propres systèmes. Clés, requêtes, limites et erreurs.

Dernière mise à jour : 2026-11-02

Ce contenu n’est pas encore disponible dans votre langue.

外部のシステムが、サーバー間でAddnessの組織の情報を読むためのAPIです。次の2つだけを読めます。

  • 組織のメンバーの一覧
  • メンバー全員の今やるべきToDoと、そのToDoに関係するゴールの階層(日付を指定できます)

書き込み・通知・チャットなど、ほかの情報はこのキーでは読めません。

試験公開中です: このAPIは、Addnessが公開を決めた組織でだけ使えます。公開されていない組織では、APIキーを作る画面に「種類」の欄が出ず、連携用APIキーを作れません。すでにあるキーで呼んでも 403 EXTERNAL_INTEGRATION_FEATURE_DISABLED になります。公開を止めたときもキーは失効せず、再開すると同じキーで読めます。

  • 使うもの: 外部連携APIは自社のシステム(サーバー)から使います。MCP連携はあなたが使うAIエージェントから使います。
  • 名義: 外部連携APIは組織に1つの連携(ボット)になり、組織のメンバーにはなりません。MCP連携はログインしたあなた本人になります。
  • できること: 外部連携APIはメンバーの一覧と今やるべきToDoを読むだけです。MCP連携はあなたの権限の範囲で、ゴールの読み書きなどができます。
  • 認証: 外部連携APIは組織に固定のキー(Authorization: Bearer)を使います。MCP連携はブラウザでのログイン(OAuth)を使います。

AIからAddnessを使うときはMCP連携を使います。連携用APIキーは、MCPでもほかのAPIでも使えません(403 AUTH_API_KEY_RESOURCE_RESTRICTED)。

  1. 組織の管理者が、組織の設定 › 連携の「開発者向け」にある「APIキー」で「新規作成」を押し、「種類」で「連携用APIキー」を選びます。
  2. 名前(100文字まで)とキーの有効期限を入れて、「作成する」を押します。有効期限は30日・90日・365日から選び、無期限は選べません。
  3. キー(sk- で始まる文字列)は、作ったときに1回だけ表示されます。閉じると二度と表示できないので、その場で外部システムに設定してください。

連携用APIキーは組織に1つだけ作れます。作成済みの組織では「連携用APIキー」を選べず、「作成済みです。一覧から更新してください。」と表示されます。APIキーの一覧の「更新」でキーを入れ替えます。キーは作った組織だけで使えます。

  • キーの更新: APIキーの一覧で、連携用APIキーの「更新」を押して新しいキーを発行します。古いキーには「入れ替え中」と期限が表示され、「今の期限」と「更新から7日後」の早い方まで並行して使えます。
  • キーの失効: APIキーの一覧で失効したキーは、すぐに使えなくなります(401)。最後の1本を失効すると、新しくキーを作るまで外部システムは読み取れません。
  • 組織の削除: すべてのキーが使えなくなります。

接続先は https://vt.api.addness.com です。すべての要求で、キーを Authorization ヘッダーに付けます。

curl -H "Authorization: Bearer sk-xxxxxxxx" \
"https://vt.api.addness.com/api/v1/external/organizations/{組織ID}/members"
  • {組織ID} には、キーを作った組織のIDを書きます。別の組織を指定すると 403 AUTH_API_KEY_ORG_MISMATCH になります。
  • X-Organization-ID ヘッダーは不要です。付けるなら同じ組織IDにします。
  • 次の2つの GET だけが使えます。
    • メンバーの一覧: GET /api/v1/external/organizations/{組織ID}/members
    • 今やるべきToDo: GET /api/v1/external/organizations/{組織ID}/today-todos
GET /api/v1/external/organizations/{組織ID}/members?limit=100&cursor=…
引数内容
limit1ページの人数。既定100、最大200
cursor前のページの nextCursor。省略すると最初のページ
{
"members": [
{"memberId": "0b6f0e8e-…", "name": "山田 花子", "isGuest": false, "isExternal": false}
],
"nextCursor": "MGI2ZjBl…"
}
項目意味
memberId組織メンバーのID。今やるべきToDoの memberId と同じ値です
name組織での表示名
isGuestゲストのメンバー
isExternal別の組織から参加しているメンバー(この組織での情報だけを返します)
  • 並びは memberId の順です。
  • 人のメンバーだけを返します。AIエージェントと、組織を抜けたメンバーは含みません。
  • メールアドレス・ユーザーID・アバター・上司・タグは返しません。
GET /api/v1/external/organizations/{組織ID}/today-todos?date=2026-10-05&limit=50&cursor=…
引数内容
date活動日(YYYY-MM-DD)。省略すると今日
limit1ページの人数。既定20、最大50。人数やToDoの量によっては、20人や50人のページでも10秒を超えて 504 になることがあります。504 が出たら limit を小さくして読みます
cursor前のページの nextCursor
{
"activityDate": "2026-10-05",
"timezone": "Asia/Tokyo",
"members": [
{
"memberId": "0b6f0e8e-…",
"todos": [
{"todoId": "7d1c2b0a-…", "kind": "goal", "objectiveId": "c3a0f4c2-…", "createdAt": "2026-10-04T23:30:00Z"}
],
"goals": [
{"id": "9f0a1b2c-…", "parentId": null, "orderNo": 1, "title": "第3四半期の目標", "status": "NONE", "completedAt": null, "isWaitingOnOther": false},
{"id": "c3a0f4c2-…", "parentId": "9f0a1b2c-…", "orderNo": 2, "title": "週次の振り返りを書く", "status": "COMPLETED", "completedAt": "2026-10-05T02:10:00Z", "isWaitingOnOther": false}
]
}
],
"nextCursor": null
}

todos は「誰が何を今やるべきToDoに選んだか」、goals はそのゴールの件名・親子・状態です。ゴールの件名と状態は goals が正本で、todos の行は objectiveId だけを持ちます。

todos には、ゴールから入れた行(kind: "goal")だけが入ります。ゴールに紐づかない自由ToDo(ゴールのToDoを1回だけ実行する行と、繰り返しの予定の実績も含みます)は返しません。

項目意味
kind常に goal(ゴールから入れた行)
objectiveIdゴールのID。goals[].id と突き合わせます
createdAt今やるべきToDoに入れた時刻(UTC)
  • メンバーの集合はメンバーの一覧と同じです。ToDoが無いメンバーも、空の todos・goals で返します。
  • 1人の行の並びは、Addnessの画面と同じです(手動の並び順、次に入れた順)。1人あたりのToDoは最大800行です。

goals は、メンバーページの「今やるべきToDo」欄の木を作る材料です。

項目意味
idゴールのID。todos[].objectiveId と突き合わせます
parentId同じ goals の中の親のID。親が無ければ null(木の根)
orderNo兄弟の並び順(昇順)。同じ値なら配列の順を保ちます。過去の日は0から始まるその日の表示順で、非表示のゴールがあれば欠番になります
title件名。当日は今の件名、過去の日はその日に保存された件名
statusNONE・IN_PROGRESS・COMPLETED。当日は現在のゴールの状態(完了日時があれば COMPLETED)。過去の日は、その日の履歴に完了日時があり、今も完了していれば COMPLETED、それ以外は NONE
completedAt完了日時(UTC)。COMPLETED のときだけ
isWaitingOnOther他の担当者の仕事を待っている行(本人のゴールの直下にある、他担当の未完了のゴール)

goals には、その日のToDoのゴールと、その子孫・祖先のうち画面の候補(本人の担当ゴールとその祖先、その日に完了したゴール、他担当の待ち行)に入るものだけが入ります。組織のゴールの木全体は入りません。担当者・説明文・期限・数値は返しません。

goals を全部そのまま並べても「今やるべきToDo」欄にはなりません。画面と同じ木にするには、次の順で組み立てます。

  1. todos の objectiveId を起点にします(同じゴールのToDoが複数あっても木の行は1つ)。起点は goals に必ずあります。画面の候補に入らないゴールは、parentId: null の根として goals の末尾にあります。組織の外か削除済みのゴールだけは goals に無いので、そのToDoは件名無しで扱います。
  2. 起点から parentId を子の方向にたどり、goals の中の子孫を全部足します。
  3. 起点ごとに直上の親を足します。別々の起点の枝が同じ祖先で合流するときは、その共通の祖先と、そこまでの間のゴールも足します。足した祖先は文脈の行(画面では灰色)です。goals に無い親は追わず、その子を根にします。
  4. 兄弟は orderNo の昇順(同じ値は配列の順)で並べ、根から深さ優先で表示します。深さは組み立てた木で数え直します。
  5. 完了した行も同じ位置に残します。isWaitingOnOther の行は、親の下に「待ち」として表示します。

どちらのAPIも、応答の nextCursor を次の要求の cursor に渡し、nextCursor が null になるまで読みます。

  • ページは人数(limit)だけで切ります。ToDoの行数では切りません。
  • cursor の中身には依存しないでください。読めない cursor は 400 INVALID_REQUEST になります。
  • 日は組織のタイムゾーン(応答の timezone。設定が無ければ Asia/Tokyo)の午前4時で切り替わります。
  • 今日(date を省略、または今日の日付): 今の一覧です。未完了の行は、完了するか外すまで日をまたいで残ります。
  • 過去の日: その日に入れた行と、その日に完了した行です。その日に画面に見えていた一覧とは、次の点で一致しません。
    • 前の日から持ち越して未完了のまま残っていた行と、あとで外した(削除した)行は出ません。
    • ゴールの件名・親・並び順(goals)はその日に保存されたものです。status は、その日の履歴に完了日時があり、今も完了していれば COMPLETED、それ以外は NONE になります。保存が無い日は goals が空になります。
  • 未来の日: 指定できません(400 INVALID_REQUEST)。
  • 時刻(createdAt・completedAt)はすべてUTCです。
対象上限
キー1本6,000回/時(一時的に2,000回まで超えられます。サーバー1台あたりの目安)
連携1つ200回/分
今やるべきToDoの頻度組織ごとに120回/時(一時的に20回まで超えられます。サーバー1台あたり)
今やるべきToDoの同時数組織で2本(サーバー1台あたり4本)
今やるべきToDoの1ページ10秒
  • 上限を超えると 429(1ページの時間切れは 504)を返します。コードは下の「エラー」を見てください。
  • 拒否された要求も同じ枠を使います。
  • 429・504 のときは、Retry-After(秒)のあとで再試行します。504 のときは limit を小さくします。
  • 並列の要求は2本以下にします。1巡の要求数は「人数÷limit(切り上げ)」ページ分で、limit を小さくすると1巡のページ数は増えます。
  • 1時間の要求(1巡のページ数×巡回数)が120回に収まるよう、人数と limit に合わせて間隔を延ばします。たとえば limit を50にしたとき、120人なら1巡3回なので5分に1回程度(1時間36回)で収まります。600人なら1巡12回なので、5分に1回では1時間144回になって上限を超えます。6分より長い間隔にしてください。再試行も回数に入るので、余裕を持たせます。

エラーの本文は {"error": "理由", "code": "コード"} です。判定には code を使います。

400

  • INVALID_REQUEST: limit が範囲外、cursor が読めない、date の形式が違う、未来の日
  • AUTH_ORGANIZATION_ID_INVALID: path の組織IDがUUIDでない

401

  • AUTH_INVALID_API_KEY など: キーが無い・無効・失効・期限切れ(連携や組織の削除を含む)

403

  • AUTH_API_KEY_ORG_MISMATCH: 別の組織を指定した
  • AUTH_API_KEY_RESOURCE_RESTRICTED: 連携用APIキーでないキーで呼んだ。または連携用APIキーでこの2本以外を呼んだ
  • AUTH_EXTERNAL_INTEGRATION_KEY_REQUIRED: ログインのセッションで呼んだ
  • EXTERNAL_INTEGRATION_FEATURE_DISABLED: 組織でこのAPIが公開されていない(キーは有効なまま)
  • EXTERNAL_INTEGRATION_INACTIVE: 最後のキーの失効などで、連携が削除されている

429(Retry-After 秒のあとで再試行)

  • API_KEY_RATE_LIMIT_EXCEEDED・RATE_LIMIT_EXCEEDED: キー・連携のレート制限を超えた
  • EXTERNAL_READ_BUSY: 今やるべきToDoの同時数の上限に当たった
  • EXTERNAL_GOALS_RATE_LIMITED: 今やるべきToDoの頻度の上限(組織ごとに120回/時)に当たった

504(Retry-After 秒のあとで、limit を小さくして再試行)

  • EXTERNAL_READ_TIMEOUT: 今やるべきToDoの1ページが10秒に収まらなかった

Cet article vous a-t-il été utile ?

Demander à l’IA

Écrivez votre question et choisissez votre IA. Elle lira cette aide et vous répondra.