LoomioユーザーAPIドキュメント

/api/b2は、Loomioとの連携に使用するユーザー向けAPIです。ユーザーアカウントのAPIキーを使用し、すべての操作はそのユーザーとして実行されます。

グループに対する操作には、APIキーのユーザーのメンバー登録とグループ権限が適用されます。インスタンス管理者であっても、APIキーでアクセスできるグループやコンテンツの範囲は広がりません。インスタンス全体の管理にはサーバーAPIを使用してください。

操作を実行するLoomioユーザーアカウントのAPIキーを使用してください。連携用のアカウントをアンケートに招待したり、通知を送信したりする必要がない場合は、専用のボットアカウントが役立ちます。

ログインしているユーザーは、APIアクセスページでAPIキーとグループIDを確認できます。

APIキーはAuthorization: Bearerヘッダーで送信してください。URLはプロキシやアクセスログに記録される可能性があるため、クエリ文字列に含まれるAPIキーは拒否されます。

認証方法の変更

以前は、URLパラメーターのapi_keyでAPIキーを指定できました。現在、?api_key=YOUR_API_KEYを使用するリクエストは機能しません。代わりにHTTPのAuthorizationヘッダーを使用してください。

Authorization: Bearer YOUR_API_KEY

例では、YOUR_API_KEY、グループIDの123、https://www.loomio.com/を使用しています。これらを、使用するAPIキー、グループID、Loomioの設置先URLに置き換えてください。

ユーザーAPIのレスポンスは複合形式を使用します。主要レコードに加えて、トピック、グループ、ユーザー、アンケート、リアクションなどの関連レコードが含まれます。これにより、クライアントは1回のリクエストでローカルのレコードストアにデータを格納できますが、単純な連携に必要な量を超えるデータが含まれる場合があります。

compact=1を指定すると、データ量の多い関連トピック、グループ、親グループ、メンバーシップ、リアクション、タグ、翻訳を省略できます。主要レコードと、その内容を解釈するために必要な関連レコードは引き続き含まれます。

curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/threads/123/items?compact=1'

省略する種類を直接指定するには、単数形のレコード種別をスペースで区切ってexclude_typesに指定します。例えば、exclude_types=group reactionは関連するグループとリアクションを省略します。よく使われる値は、topic、group、parent、membership、reaction、tag、translation、user、discussion、poll、poll_option、stance、stance_choice、outcome(結論)、topic_itemです。除外は関連レコードに適用され、エンドポイントで要求した主要リソースには適用されません。

コレクションのレスポンスには、正確な件数が定義されている場合にmeta.totalが含まれます。合計件数は、limitとoffsetを適用する前に計算されます。検索など、意図的に件数を制限した結果を返すエンドポイントでは、nullを返す代わりにmeta.totalを省略します。

エンドポイント一覧

メソッド エンドポイント 用途
GET /api/b2/groups APIキーのユーザーのグループを一覧表示します
GET /api/b2/groups/:id_or_key_or_handle 閲覧できるグループを取得します
GET /api/b2/reports 参加状況レポートを生成します
GET /api/b2/search 閲覧できるディスカッション、コメント、アンケート、投票、結論を検索します
POST /api/b2/discussions ディスカッションを作成します
GET /api/b2/discussions/:id ディスカッションを取得します
GET /api/b2/discussions グループ内のディスカッションを一覧表示します
PATCH /api/b2/discussions/:id ディスカッションを編集します
DELETE /api/b2/discussions/:id ディスカッションを論理削除します
GET /api/b2/threads 閲覧できるディスカッションのスレッドと単独のアンケートのスレッドを一覧表示します
GET /api/b2/threads/:topic_id スレッドを取得します
GET /api/b2/threads/:topic_id/items スレッド内の項目を順序付きで取得します
GET /api/b2/threads/:topic_id/markdown スレッド全体をMarkdownで取得します
POST /api/b2/comments コメントまたは返信を作成します
PATCH /api/b2/comments/:id コメントを編集します
DELETE /api/b2/comments/:id コメントを論理削除します
POST /api/b2/polls アンケートを作成します
GET /api/b2/polls/:id アンケートを取得します
GET /api/b2/polls グループ内のアンケートを一覧表示します
PATCH /api/b2/polls/:id アンケートを編集します
DELETE /api/b2/polls/:id アンケートを論理削除します
GET /api/b2/memberships グループのメンバー登録を一覧表示します
POST /api/b2/memberships メンバーを追加し、必要に応じてリストに含まれないメンバーを削除します
GET /api/b2/chatbots グループのチャット連携とWebhookを一覧表示します
POST /api/b2/chatbots チャット連携またはWebhookを作成します
PATCH /api/b2/chatbots/:id チャット連携またはWebhookを更新します
DELETE /api/b2/chatbots/:id チャット連携またはWebhookを削除します
POST /api/b2/chatbots/check Webhookの接続テストを送信します

グループ

グループの一覧取得

APIキーのユーザーが有効なメンバー登録を持つグループを返します。

GET /api/b2/groups

curl -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/groups

レスポンスには、条件に一致するすべてのレコードが、ページ分割されないgroups配列に含まれます。親グループとサブグループが含まれ、現在サブスクリプションが有効でないグループも含まれます。有効なグループだけを連携の対象にする場合は、enabledフィールドを確認してください。

主なグループフィールドは次のとおりです。

フィールド 説明
id 他のユーザーAPIエンドポイントで使用する数値のグループIDです
key LoomioのURLで使用する、変わらない短いキーです
handle 人が読みやすいグループのハンドル名です
name グループ名です
full_name 親グループの情報を含むグループ名です
parent_id サブグループの場合は数値の親グループID、それ以外はnullです
enabled グループとそのサブスクリプションが有効かどうかを示します
memberships_count 有効なメンバー登録と承認待ちのメンバー登録の合計件数です
accepted_memberships_count 承認済みのメンバー登録の件数です
pending_memberships_count 承認待ちの招待の件数です
admin_memberships_count グループ管理者の人数です
delegates_count 代表者の人数です
discussions_count グループ直下のディスカッションの件数です
polls_count グループ直下のアンケートの件数です
subgroups_count サブグループの件数です

レスポンスには、追加のグループ設定、関連する親グループのレコード、APIユーザーのメンバー登録が含まれる場合があります。クライアントでは、使用しないフィールドを無視してください。

グループの取得

APIキーのユーザーが閲覧できるグループを1件返します。

GET /api/b2/groups/:id_or_key_or_handle

識別子には、グループの数値ID、キー、ハンドル名を使用できます。

curl -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/groups/123
curl -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/groups/example-group

レスポンスには、一覧取得エンドポイントと同じフィールドを持つグループがgroups配列に含まれます。APIキーのユーザーがアクセスできないグループを要求すると、権限エラーが返されます。

Webhook

ユーザーAPIはリクエストに基づいて動作します。連携システムは、データを読み取ったり変更したりするときにLoomioを呼び出します。グループのWebhookでは、Loomioから連携システムへデータを送信できます。選択したグループのイベントが発生すると、Loomioが指定のエンドポイントに送信するため、連携システムが変更を確認するためにREST APIを繰り返し呼び出す必要はありません。

Webhookはグループごとに設定し、設定にはグループ管理者の権限が必要です。Loomioの画面から次の手順で管理できます。

  1. グループを開きます。
  2. グループメニューを開き、チャット連携を選択します。
  3. エンドポイントが受け付けるペイロード形式に合う連携を追加します。汎用のエンドポイントには、Mattermost/Markdown形式を使用してください。
  4. 名前と送信先URLを入力します。
  5. Loomioが自動送信するイベントを選択します。
  6. 連携を保存し、テスト接続でテストメッセージを送信します。

推測できないURLを持つHTTPSの送信先を使用してください。Loomioでは、送信先が公開アドレスに名前解決される必要があり、ローカルまたはプライベートネットワークのアドレスへのリクエストはブロックされます。

エージェントやその他の連携システムでは、代わりに、以下で説明するBearer認証のチャットボットエンドポイントを通じてWebhookを管理できます。このリソースは、Loomioのチャット連携との互換性のためにchatbotsという名前になっていますが、一般的な送信用Webhookも表します。

Webhookの一覧取得

グループに設定されているチャット連携を返します。APIキーのユーザーは、そのグループの管理者である必要があります。レスポンスには送信先URLが含まれるため、一般のグループメンバーに公開してはいけません。

GET /api/b2/chatbots?group_id=123

curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/chatbots?group_id=123'

レスポンスには、次のフィールドを持つchatbots配列が含まれます。

フィールド 説明
id 更新と削除に使用する連携IDです
group_id イベントの対象となるグループです
name 連携の管理用の名前です
kind 送信用Webhookの場合はwebhook、Matrix連携の場合はmatrixです
webhook_kind ペイロード形式です。markdown、slack、discord、microsoft、webexのいずれかです
server 送信先URLです
event_kinds 自動送信するイベントです
notification_only メッセージに通知の見出しだけを含めるかどうかを示します

Webhookの作成

POST /api/b2/chatbots

curl -X POST \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "group_id": 123,
    "name": "Planning system",
    "kind": "webhook",
    "webhook_kind": "markdown",
    "server": "https://hooks.example.org/loomio/unguessable-token",
    "event_kinds": ["new_discussion", "new_comment", "poll_created", "outcome_created"],
    "notification_only": false
  }' \
  https://www.loomio.com/api/b2/chatbots

APIキーのユーザーは、group_idで指定したグループの管理者である必要があります。送信先は、保存される前に公開URLであることが検証されます。

Webhookの更新

PATCH /api/b2/chatbots/:id

変更するフィールドを送信してください。group_idを変更してWebhookを別のグループに移すことはできません。

curl -X PATCH \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"name":"Planning events","event_kinds":["new_discussion","outcome_created"]}' \
  https://www.loomio.com/api/b2/chatbots/456

Webhook送信先のテスト

設定を保存する前または保存した後に、Markdownに対応したテストメッセージを送信先へ送信します。

POST /api/b2/chatbots/check

curl -X POST \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"group_id":123,"server":"https://hooks.example.org/loomio/unguessable-token"}' \
  https://www.loomio.com/api/b2/chatbots/check

Webhookの削除

DELETE /api/b2/chatbots/:id

curl -X DELETE -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/chatbots/456

設定を削除すると、以後の配信が停止します。Loomioのグループ内のコンテンツは削除されません。

イベントの種類

Webhookでは、次の種類のイベントを受信するよう設定できます。

イベント 送信されるタイミング
new_discussion ディスカッションが開始されたとき
discussion_edited ディスカッションが編集されたとき
new_comment コメントが作成されたとき
poll_created アンケートが開始されたとき
poll_edited アンケートが編集されたとき
poll_closing_soon アンケートの締め切り時刻が近づいたとき
poll_expired アンケートの締め切り時刻になったとき
poll_closed_by_user アンケートが手動で締め切られたとき
poll_reopened アンケートが再開されたとき
outcome_created 結論が公開されたとき
outcome_updated 結論が更新されたとき
outcome_review_due 結論の見直し期限になったとき
stance_created 投票が行われたとき
stance_updated 投票が変更されたとき

Webhookは1つのグループに属し、そのグループで受信対象に設定したイベントを受信します。対応する自動送信イベントが選択されていない場合でも、共有や一部の通知の送信時に、連携先を明示的に選択できます。

HTTP配信

Loomioは、次のヘッダーを付けて、設定されたURLに非同期のHTTP POSTを送信します。

Content-Type: application/json; charset=utf-8

リクエストのタイムアウトは5秒です。204 No Contentを含む2xxレスポンスは成功として扱われます。Webhookの受信側は速やかに応答し、時間のかかる処理は非同期で実行してください。また、配信の重複や順序の入れ替わりに対応できるようにしてください。

現在、LoomioはWebhookの署名、共有シークレットのヘッダー、イベントID、配信IDを付加しません。送信先URL全体を認証情報として扱い、公開しないでください。受信側のサービスが対応している場合は、推測できないトークンをURLに含めてください。安定した機械可読のイベントスキーマや署名付き配信が必要な場合は、Webhookを変更通知として使い、認証付きのユーザーAPIから現在のレコードを取得してください。

ペイロードの形式

Webhookのペイロードは、チャットサービスでの表示を目的としたメッセージです。Loomioのレコードを完全にシリアライズしたものではありません。メッセージ内のリンクは、対象のLoomioコンテンツを示します。連携先で構造化された現在の状態が必要な場合は、ユーザーAPIから追加で取得できます。

連携形式 主なJSONフィールド
Mattermost/Markdown text, icon_url, username
Slack text
Discord content。約1,900文字に制限されます
Microsoft Teams @type, @context, themeColor, text, sections
Webex markdown

例えば、汎用のMarkdown形式では、次のような構造の本文を送信します。

{
  "text": "Ada started a discussion: [Quarterly planning](https://example.loomio.org/d/example)",
  "icon_url": "https://example.loomio.org/path/to/group-logo.png",
  "username": "Loomio"
}

実際のメッセージの文面は、イベント、グループの言語設定、通知のみの設定、Loomioのバージョンによって異なります。受信側では、文面を解析するのではなく、選択した形式のドキュメントに記載された最上位のフィールドを使用してください。

APIキーのユーザーが閲覧できるディスカッション、コメント、アンケート、投票、結論を検索します。グループのメンバーでなくても、そのグループの公開コンテンツは結果に含まれます。非公開コンテンツには、通常のトピックの閲覧権限が適用されます。

GET /api/b2/search

パラメーター

名前 説明
query 検索するテキストです。完全一致とあいまい一致に対応しています
group_id 結果を閲覧可能な1つのグループに限定します
org_id 結果を閲覧可能な親グループと、その閲覧可能なサブグループに限定します。ダイレクトディスカッションには0を使用します
type 結果をDiscussion、Comment、Poll、Stance、Outcomeのいずれか1種類に限定します
types 結果の種類をカンマ区切りで指定します
tag 結果をこのタグが付いたトピックに限定します
author_id 結果を1人の作成者によるコンテンツに限定します。queryを指定しない場合は、その作成者の最近の活動のうち閲覧可能なものを返します
order authored_at_descに設定すると、一致するコンテンツを作成日時順に並べます
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/search?query=quarterly+planning&type=Discussion'

レスポンスにはsearch_results配列が含まれます。各結果は、searchable_type、searchable_id、highlight、group_id、group_name、discussion_key、poll_key、author_id、author_name、authored_at、tagsなどのフィールドで、一致したレコードと、その閲覧可能な関連情報を示します。その結果に該当しないフィールドはnullになります。

参加状況レポート

Loomioの参加状況レポートで使用されるものと同じ、集計済みの参加データを返します。

GET /api/b2/reports

パラメーター

名前 説明
section レポートのセクションです。base、users、countriesのいずれかを指定します。個人別の活動にはusersを使用します
group_scope customまたはmyです。ユーザーAPIキーにはインスタンス全体へのアクセス権が付与されないため、旧形式の値allはmyとして扱われます
group_ids group_scope=customの場合に、グループIDをカンマ区切りで指定します。APIユーザーがメンバーとして所属していないグループのIDは無視されます
start_month 集計対象の最初の月をYYYY-MM形式で指定します。既定値は12か月前です
end_month 集計対象の最後の月をYYYY-MM形式で指定します。既定値は今月です
interval baseセクションの集計間隔です。day、week、month、yearのいずれかを指定します
member_type section=usersとともにdelegateを指定すると、現在の代表者のみを返します

選択したグループのいずれかで、有効な代表者のメンバー資格を持つ人を代表者として扱います。件数は、選択したすべてのグループを通じて集計されます。すべての活動件数がゼロでも、代表者の行は返されます。集計対象はスレッド、コメント、アンケート、投票、結論、リアクションの件数であり、投票参加率ではありません。ユーザーの行には、記名式の投票について、投票権が付与された件数、投票済みの件数、未投票の件数も含まれます。匿名アンケートは、個人別のすべての投票件数から除外されます。all_votes_castがtrueになるのは、少なくとも1件の投票権が付与され、付与されたすべての投票権について投票済みの場合のみです。

APIには、アプリ内のレポートと同じグループの閲覧権限が適用されます。ユーザーAPIキーでは、そのユーザーがアクセスできないグループのレポートデータを取得できません。

例

curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/reports?section=users&group_scope=custom&group_ids=123&member_type=delegate&start_month=2026-01&end_month=2026-09'

users配列には、活動データの全項目を含む行が格納されます。

{
  "users": [
    {
      "id": 456,
      "name": "Ada Lovelace",
      "country": "NZ",
      "delegate": true,
      "threads": 2,
      "comments": 8,
      "polls": 1,
      "votes": 5,
      "votes_cast": 5,
      "votes_issued": 6,
      "votes_missed": 1,
      "all_votes_cast": false,
      "outcomes": 1,
      "reactions": 4
    }
  ]
}

ディスカッションの作成

APIキーのユーザーとしてディスカッションを作成します。

POST /api/b2/discussions

パラメーター

名前 説明
group_id スレッドを作成するグループです
title スレッドのタイトルです。必須です
description スレッドの背景説明です。任意です
description_format mdまたはhtmlです。任意で、既定値はmdです
recipient_audience groupまたはnullです。groupの場合は、新しいスレッドについてグループ全体に通知します
recipient_user_ids 通知するユーザー、またはスレッドに招待するユーザーのIDの配列です
recipient_emails スレッドに招待する人のメールアドレスの配列です
recipient_message 招待メールに含めるメッセージです

例

curl -H 'Authorization: Bearer YOUR_API_KEY' -X POST -H 'Content-Type: application/json' -d '{"group_id": 123, "title":"example thread", "recipient_emails":["person@example.com"]}' https://www.loomio.com/api/b2/discussions

ディスカッションの取得

整数のディスカッションID、または文字列のキーを使ってディスカッションを取得します。

GET /api/b2/discussions/:id

例

curl -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/discussions/abc123

ディスカッションの一覧取得

グループ内でAPIキーのユーザーが閲覧できるディスカッションの一覧を取得します。公開グループでは、メンバーでなくても公開ディスカッションの一覧を取得できます。非公開ディスカッションは、Loomioでその内容を閲覧できるユーザーのみが取得できます。

GET /api/b2/discussions

パラメーター

名前 説明
group_id 整数、必須。ディスカッションの一覧を取得するグループのID
status 文字列、省略可能、既定値はopen。値:open、closed、all
limit 整数、省略可能、既定値は50。1ページあたりの件数
offset 整数、省略可能、既定値は0。ページ分割のオフセット

従来のパラメーター:perとfromは、それぞれlimitとoffsetの別名として受け付けられ、引き続き使用できます。

例

curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/discussions?group_id=123'

スレッドの一覧取得

APIキーのユーザーが閲覧できるディスカッションのスレッドとアンケートのスレッドの一覧を、最新のアクティビティ順に取得します。スレッドのIDは、そのスレッドのtopic_idです。

GET /api/b2/threads

パラメーター

名前 説明
limit 整数、省略可能、既定値は50。1ページあたりの件数
offset 整数、省略可能、既定値は0。ページ分割のオフセット

例

curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/threads?limit=50&offset=0'

スレッドの取得

スレッド、順序付けられたイベントストリーム、または閲覧可能な内容全体を含むMarkdown文書を取得します。

GET /api/b2/threads/:topic_id

GET /api/b2/threads/:topic_id/items

GET /api/b2/threads/:topic_id/markdown

例

GET https://www.loomio.com/api/b2/threads/<topic_id>
GET https://www.loomio.com/api/b2/threads/<topic_id>/items
GET https://www.loomio.com/api/b2/threads/<topic_id>/markdown

itemsエンドポイントは、閲覧可能なコメント、アンケート、投票、結論を含む、順序付けられたイベントストリームを返します。markdownエンドポイントは、スレッドの閲覧可能な内容全体を1つのMarkdown文書として返します。投票の理由は、APIキーのユーザーが閲覧できる場合にのみ含まれます。

すべてのスレッドエンドポイントには、Loomioの画面と同じ権限が適用されます。APIキーを使っても、そのユーザーが通常開けないスレッドにはアクセスできません。

ディスカッションの編集

APIキーのユーザーとしてディスカッションを編集します。Loomioと同じ権限が適用されるため、そのディスカッションを編集する権限が必要です。

PATCH /api/b2/discussions/:id

パラメーター

名前 説明
title 更新後のタイトル
description 更新後の背景説明
description_format mdまたはhtml、省略可能、既定値はmd
recipient_audience groupまたはnull。groupの場合、編集についてグループ全体に通知します
recipient_user_ids 通知を送る、またはスレッドに招待するユーザーのIDの配列
recipient_emails スレッドに招待する人のメールアドレスの配列
recipient_message 招待メールに含めるメッセージ

例

curl -H 'Authorization: Bearer YOUR_API_KEY' -X PATCH -H 'Content-Type: application/json' -d '{"title":"updated thread title", "description":"updated context", "description_format":"md"}' https://www.loomio.com/api/b2/discussions/123

ディスカッションの論理削除

APIキーのユーザーとしてディスカッションを論理削除します。ディスカッションは削除済みになりますが、レコードは保持されます。

DELETE /api/b2/discussions/:id

例

curl -H 'Authorization: Bearer YOUR_API_KEY' -X DELETE https://www.loomio.com/api/b2/discussions/123

コメントの作成

APIキーのユーザーとしてディスカッションにコメントを作成します。

POST /api/b2/comments

パラメーター

名前 説明
discussion_id 整数、必須。コメントを投稿するディスカッションのIDです
body コメントの本文です。添付ファイルがない場合は必須です
body_format md または html、任意。既定値は md です

例

curl -H 'Authorization: Bearer YOUR_API_KEY' -X POST -H 'Content-Type: application/json' -d '{"discussion_id": 123, "body":"example comment", "body_format":"md"}' https://www.loomio.com/api/b2/comments

コメントの編集

APIキーのユーザーとしてコメントを編集します。Loomioと同じ権限が適用されるため、そのユーザーには対象のコメントを編集する権限が必要です。

PATCH /api/b2/comments/:id

パラメーター

名前 説明
body 更新後のコメント本文です
body_format md または html、任意。既定値は md です

例

curl -H 'Authorization: Bearer YOUR_API_KEY' -X PATCH -H 'Content-Type: application/json' -d '{"body":"updated comment", "body_format":"md"}' https://www.loomio.com/api/b2/comments/123

コメントの論理削除

APIキーのユーザーとしてコメントを論理削除します。コメントは削除済みになり、本文は非表示になりますが、レコードは保持されます。

DELETE /api/b2/comments/:id

例

curl -H 'Authorization: Bearer YOUR_API_KEY' -X DELETE https://www.loomio.com/api/b2/comments/123

アンケートの作成

APIキーのユーザーとしてアンケートを作成します。

POST /api/b2/polls

パラメーター

名前 説明
group_id 整数、省略可能、既定値は null。アンケートが属するグループのIDです。discussion_id を指定した場合、group_id は無視されます
discussion_id 整数、省略可能、既定値は null。このアンケートを追加するディスカッションのスレッドのIDです
title 文字列、必須。アンケートのタイトルです
poll_type 文字列、必須。値:proposal、poll、count、score、ranked_choice、meeting、dot_vote
details 文字列、省略可能。アンケートの本文です
details_format 文字列、省略可能、既定値は md。値:md または html
options 文字列の配列。poll_type が proposal の場合、有効な値は agree、disagree、abstain、block です。poll_type が meeting の場合、ISO 8601形式の日付または日時の文字列を指定します。その他のアンケートの種類では、任意の文字列が有効です
closing_at ISO 8601形式の文字列または null、既定値は null。例:2026-09-01T12:00:00Z。null の場合、投票は無効になり、アンケートは作成中として扱われます
specified_voters_only 真偽値、省略可能、既定値は false。true の場合、指定された人だけが投票できます。false の場合、グループの全員が投票に招待されます
hide_results 文字列、省略可能、既定値は off。値:off、until_vote、until_closed
shuffle_options 真偽値、既定値は false。投票者に選択肢をランダムな順序で表示します
anonymous 真偽値、省略可能、既定値は false。投票者が誰であるかを非表示にします
recipient_audience group または null、省略可能、既定値は null。group の場合、グループ全体に通知されます
notify_on_closing_soon 文字列、省略可能、既定値は nobody。値:nobody、author、undecided_voters、voters
recipient_user_ids 通知または招待するユーザーのIDの配列です
recipient_emails 投票に招待する人のメールアドレスの配列です
recipient_message 招待メールに含めるメッセージです
notify_recipients 真偽値、既定値は false。false の場合、通知を送信せずに人を追加します。true の場合、このリクエストで招待された全員に通知メールが送信されます

例

curl -H 'Authorization: Bearer YOUR_API_KEY' -X POST -H 'Content-Type: application/json' -d '{"group_id": 123, "title":"example poll", "poll_type": "proposal", "options": ["agree", "disagree"], "closing_at": "2026-09-01T12:00:00Z", "recipient_emails":["person@example.com"]}' https://www.loomio.com/api/b2/polls

アンケートの取得

整数のアンケートID、または文字列のキーを使用してアンケートを取得します。

GET /api/b2/polls/:id

例

curl -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/polls/abc123

アンケートの一覧取得

グループ内でAPIキーのユーザーが閲覧できるアンケートの一覧を取得します。公開されているグループでは、メンバーでなくても公開アンケートの一覧を取得できます。非公開アンケートは、Loomioで閲覧権限を持つユーザーだけが取得できます。レスポンスには、閲覧可能な各アンケートの現在の結論が含まれるため、status=closed を使用すると、決定済みの提案の一覧を取得できます。

GET /api/b2/polls

パラメーター

名前 説明
group_id 整数、必須。アンケートの一覧を取得するグループのIDです
status 文字列、省略可能、既定値は active。値:active、closed、all
limit 整数、省略可能、既定値は 50。1ページあたりの件数です
offset 整数、省略可能、既定値は 0。ページ分割のためのオフセットです

従来のパラメーター:per と from はそれぞれ limit と offset の別名として受け付けられ、引き続き使用できます。

例

curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/polls?group_id=123'

アンケートの編集

APIキーのユーザーとしてアンケートを編集します。Loomioと同じ権限が適用されるため、そのユーザーには対象のアンケートを編集する権限が必要です。

PATCH /api/b2/polls/:id

パラメーター

名前 説明
title 更新後のタイトルです
details 更新後のアンケートの詳細です
details_format md または html、省略可能、既定値は md
options 更新後の選択肢の名前です。選択肢を変更すると、アンケートの状態によっては既存の投票に影響する場合があります
closing_at ISO 8601形式の文字列または null
recipient_audience group または null。group の場合、グループ全体に通知されます
recipient_user_ids 通知または招待するユーザーのIDの配列です
recipient_emails 投票に招待する人のメールアドレスの配列です
recipient_message 招待メールに含めるメッセージです

例

curl -H 'Authorization: Bearer YOUR_API_KEY' -X PATCH -H 'Content-Type: application/json' -d '{"title":"updated poll title", "details":"updated details", "details_format":"md"}' https://www.loomio.com/api/b2/polls/123

アンケートの論理削除

APIキーのユーザーとしてアンケートを論理削除します。アンケートを削除済みとして扱い、アンケートのレコードは保持します。

DELETE /api/b2/polls/:id

例

curl -H 'Authorization: Bearer YOUR_API_KEY' -X DELETE https://www.loomio.com/api/b2/polls/123

メンバー登録の一覧取得

APIキーのユーザーが閲覧できるメンバー登録を一覧で取得します。グループのメンバーは、メンバーの名前、ID、肩書き、役割を閲覧できます。メールアドレスは、APIキーのユーザー自身のアカウントの場合、またはAPIキーのユーザーがグループ管理者の場合にのみ含まれます。

GET /api/b2/memberships

パラメーター

名前 説明
group_id 整数、必須。メンバー登録を一覧で取得するグループのID

例

curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/memberships?group_id=123'

メンバー登録の管理

メールアドレスのリストを送信します。新しいメールアドレスすべてにグループへの招待を送ります。メンバー登録の一覧取得とは異なり、この操作にはグループ管理者の権限が必要です。

POST /api/b2/memberships

パラメーター

名前 説明
group_id 整数、必須。メンバー登録を管理するグループのID
emails 文字列の配列、必須。グループに招待する人のメールアドレス
remove_absent 真偽値。trueの場合、メールアドレスがリストに含まれていない人をグループから削除します

例

curl -H 'Authorization: Bearer YOUR_API_KEY' -X POST -H 'Content-Type: application/json' -d '{"group_id": 123, "emails":["person@example.com"]}' https://www.loomio.com/api/b2/memberships

remove_absent=1を指定すると、リストに含まれていないグループのメンバーはすべてグループから削除されます。グループの全メンバーを削除する可能性があるため、注意してください。

curl -H 'Authorization: Bearer YOUR_API_KEY' -X POST -H 'Content-Type: application/json' -d '{"group_id": 123, "emails":["person@example.com"], "remove_absent": 1}' https://www.loomio.com/api/b2/memberships

この操作は、{added_emails: ["person@added.com"], removed_emails: ["person@removed.com"]}を含むオブジェクトを返します。

このページは機械翻訳されています。誤った言葉やわかりにくい表現がありましたら、contact@loomio.org までメールでお知らせください。修正します。