תיעוד ה־API למשתמש של Loomio
/api/b2 הוא ה־API המיועד למשתמשים לצורך אינטגרציות עם Loomio. הוא משתמש במפתח ה־API של חשבון משתמש, וכל פעולה מתבצעת בשם אותו חשבון.
פעולות בקבוצות משתמשות בחברויות ובהרשאות הקבוצה של החשבון שמפתח ה־API שייך לו. הרשאת ניהול של מופע Loomio אינה מרחיבה את הגישה של מפתח API לקבוצות או לתוכן; לניהול ברמת המופע יש להשתמש ב־API לשרת.
יש להשתמש במפתח ה־API של חשבון המשתמש ב־Loomio שיבצע את הפעולות. חשבון בוט ייעודי שימושי כאשר אין צורך להזמין את האינטגרציה לסקרים או לשלוח לה התראות.
לאחר כניסה לחשבון, ניתן למצוא את מפתח ה־API ואת מזהי הקבוצות בעמוד הגישה ל־API.
יש לשלוח את מפתח ה־API בכותרת Authorization: Bearer. מפתחות API במחרוזות שאילתה נדחים, מכיוון שכתובות URL עשויות להירשם בשרתי פרוקסי וביומני גישה.
שינוי באימות
בעבר ניתן היה להעביר את מפתח ה־API כפרמטר api_key בכתובת URL. בקשות המשתמשות ב־?api_key=YOUR_API_KEY אינן פועלות עוד. יש להשתמש במקום זאת בכותרת HTTP בשם Authorization:
Authorization: Bearer YOUR_API_KEY
הדוגמאות משתמשות ב־YOUR_API_KEY, במזהה הקבוצה 123 ובכתובת https://www.loomio.com/. יש להחליף אותם במפתח ה־API, במזהה הקבוצה ובכתובת התקנת Loomio המתאימים.
גודל התשובה ורשומות קשורות
תשובות ה־API למשתמש משתמשות במבנה מורכב: לצד הרשומות הראשיות נכללות רשומות קשורות, כגון נושאים, קבוצות, משתמשים, סקרים ותגובות אימוג׳י. כך יישום לקוח יכול למלא מאגר רשומות מקומי באמצעות בקשה אחת, אך התשובה עשויה לכלול יותר נתונים מהנדרש לאינטגרציה פשוטה.
יש להעביר 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. נקודות קצה כגון חיפוש, שמחזירות במכוון מספר מוגבל של תוצאות, משמיטות את meta.total במקום להחזיר null.
סיכום נקודות הקצה
| שיטה | נקודת קצה | מטרה |
|---|---|---|
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 |
הצגת רשימת אינטגרציות הצ'אט וה־webhooks של קבוצה |
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 למשתמש |
key |
מפתח קצר וקבוע המשמש בכתובות URL של Loomio |
handle |
כינוי קריא של הקבוצה |
name |
שם הקבוצה |
full_name |
שם הקבוצה הכולל את ההקשר של קבוצת האם שלה |
parent_id |
מזהה מספרי של קבוצת האם עבור תת־קבוצה, ואחרת null |
enabled |
האם הקבוצה והמינוי שלה פעילים |
memberships_count |
מספר החברויות הפעילות והממתינות |
accepted_memberships_count |
מספר החברויות שאושרו |
pending_memberships_count |
מספר ההזמנות הממתינות |
admin_memberships_count |
מספר מנהלי הקבוצה |
delegates_count |
מספר הנציגים |
discussions_count |
מספר הדיונים הנמצאים ישירות בקבוצה |
polls_count |
מספר הסקרים הנמצאים ישירות בקבוצה |
subgroups_count |
מספר תת־הקבוצות |
התשובה עשויה לכלול הגדרות נוספות של הקבוצה, רשומות קשורות של קבוצת האם ואת החברויות של החשבון המשתמש ב־API. יישומי לקוח צריכים להתעלם משדות שאינם משתמשים בהם.
קבלת קבוצה
החזרת קבוצה אחת שהחשבון שמפתח ה־API שייך לו יכול לצפות בה.
GET /api/b2/groups/:id_or_key_or_handle
המזהה יכול להיות המזהה המספרי, המפתח או הכינוי של הקבוצה.
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 שייך לו אינו יכול לגשת אליה מחזירה שגיאת הרשאה.
Webhooks
ה־API למשתמש מבוסס על בקשות: אינטגרציה פונה ל־Loomio כשנדרש לקרוא או לשנות נתונים. webhook של קבוצה מאפשר שליחת נתונים בכיוון ההפוך. Loomio שולחת אירועים נבחרים של הקבוצה לנקודת הקצה שהוגדרה בזמן התרחשותם, כך שאין צורך שהאינטגרציה תבדוק שוב ושוב את ה־REST API כדי לזהות שינויים.
Webhooks מוגדרים לכל קבוצה בנפרד ודורשים הרשאת ניהול של הקבוצה. ניתן לנהל אותם דרך הממשק של Loomio:
- יש לפתוח את הקבוצה.
- יש לפתוח את תפריט הקבוצה ולבחור אינטגרציות צ'אט.
- יש להוסיף את האינטגרציה המתאימה לפורמט הנתונים שנקודת הקצה מקבלת. לנקודת קצה לשימוש כללי, יש להשתמש בפורמט Mattermost/Markdown.
- יש להזין שם ואת כתובת ה־URL של היעד.
- יש לבחור את האירועים ש־Loomio תשלח אוטומטית.
- יש לשמור את האינטגרציה ולהשתמש ב־בדיקת חיבור כדי לשלוח הודעת בדיקה.
יש להשתמש ביעד HTTPS עם כתובת URL שלא ניתן לנחש. Loomio דורשת שכתובת היעד תיפתר לכתובת ציבורית, וחוסמת בקשות לכתובות מקומיות או לכתובות ברשתות פרטיות.
סוכנים ואינטגרציות אחרות יכולים לנהל webhooks גם דרך נקודות הקצה של chatbots המתוארות בהמשך, באמצעות אימות Bearer. המשאב נקרא chatbots לצורך תאימות לאינטגרציות הצ'אט של Loomio, אך הוא מייצג גם webhooks יוצאים לשימוש כללי.
הצגת רשימת webhooks
החזרת אינטגרציות הצ'אט המוגדרות לקבוצה. לחשבון שמפתח ה־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 |
מזהה האינטגרציה המשמש לעדכון ולמחיקה |
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
יש לשלוח את השדות שיש לשנות. לא ניתן להעביר את ה־webhook לקבוצה אחרת באמצעות שינוי group_id.
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 שייך לקבוצה אחת ומקבל ממנה את האירועים שנבחרו. ניתן גם לבחור במפורש באינטגרציה בעת שיתוף או שליחת התראות מסוימות, גם אם האירוע האוטומטי המתאים לא נבחר.
שליחה באמצעות HTTP
Loomio שולח בקשת HTTP POST באופן אסינכרוני לכתובת שהוגדרה, עם הכותרת הבאה:
Content-Type: application/json; charset=utf-8
זמן ההמתנה המרבי לבקשה הוא חמש שניות. תשובת 2xx, לרבות 204 No Content, נחשבת להצלחה. שירותים המקבלים הודעות webhook צריכים להשיב במהירות, לבצע עיבוד ממושך באופן אסינכרוני, ולתמוך בקבלת הודעות כפולות או הודעות המגיעות שלא לפי הסדר.
Loomio אינו מוסיף כרגע חתימת webhook, כותרת עם סוד משותף, מזהה אירוע או מזהה שליחה. יש להתייחס לכתובת היעד המלאה כאל פרט אימות, להימנע מחשיפתה לציבור ולכלול בכתובת אסימון שלא ניתן לנחש כאשר השירות המקבל תומך בכך. אם נדרשת סכמת אירועים יציבה הניתנת לקריאה ממוחשבת או שליחה חתומה, יש להשתמש ב־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 |
הגבלת התוצאות לקבוצה גלויה אחת |
org_id |
הגבלת התוצאות לקבוצת אם גלויה ולתת־הקבוצות הגלויות שלה. יש להשתמש ב־0 עבור דיונים ישירים |
type |
הגבלת התוצאות לסוג אחד: Discussion, Comment, Poll, Stance או Outcome |
types |
רשימת סוגי תוצאות המופרדים בפסיקים |
tag |
הגבלת התוצאות לשרשורים עם תגית זו |
author_id |
הגבלת התוצאות לתוכן שנכתב בחשבון אחד. ללא 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. הערך הישן all מטופל כמו my, משום שמפתחות API למשתמש לעולם אינם מקבלים גישה לכלל המופע |
group_ids |
מזהי קבוצות המופרדים בפסיקים כאשר group_scope=custom. המערכת מתעלמת ממזהי קבוצות שהחשבון המשתמש ב־API אינו חבר בהן |
start_month |
החודש הראשון שיש לכלול, בפורמט YYYY-MM; ברירת המחדל היא לפני 12 חודשים |
end_month |
החודש האחרון שיש לכלול, בפורמט YYYY-MM; ברירת המחדל היא החודש הנוכחי |
interval |
מרווח הזמן בחלק base: day, week, month או year |
member_type |
יש להגדיר delegate יחד עם section=users כדי להחזיר רק נציגים מכהנים |
מעמד נציג נקבע לפי חברות פעילה בתפקיד נציג באחת מהקבוצות שנבחרו. הספירות לכל אדם מצטברות מכל הקבוצות שנבחרו. שורות הנציגים מוחזרות גם כאשר כל ספירות הפעילות הן אפס. הספירות כוללות שרשורים, תגובות, סקרים, הצבעות, מסקנות ותגובות אימוג׳י; הן אינן שיעורי השתתפות בהצבעה. שורות המשתמשים כוללות גם מספרי פתקי הצבעה מזוהים שהונפקו, שמולאו ושלא מולאו. סקרים אנונימיים אינם נכללים באף אחת מספירות ההצבעה לפי אדם. הערך של all_votes_cast הוא true רק כאשר הונפק לפחות פתק הצבעה אחד וכל פתקי ההצבעה שהונפקו מולאו.
ה־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 |
מערך מזהי משתמשים לשליחת התראה או הזמנה לשרשור |
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
הצגת דיון
שליפת דיון באמצעות מזהה הדיון, שהוא מספר שלם, או מפתח, שהוא מחרוזת.
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 |
מספר שלם, חובה. מזהה הקבוצה שממנה יש להציג את רשימת הדיונים |
status |
מחרוזת, רשות, ברירת המחדל היא open. ערכים: open, closed, all |
limit |
מספר שלם, רשות, ברירת המחדל היא 50. גודל העמוד |
offset |
מספר שלם, רשות, ברירת המחדל היא 0. היסט לצורך חלוקה לעמודים |
תאימות לאחור: per ו-from מתקבלים כשמות חלופיים ל-limit ול-offset וימשיכו לפעול.
דוגמה
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/discussions?group_id=123'
רשימת שרשורים
הצגת רשימת שרשורי הדיון והסקר הנגישים לחשבון שמפתח ה-API שייך אליו, לפי סדר הפעילות האחרונה. מזהה השרשור הוא ה-topic_id שלו.
GET /api/b2/threads
פרמטרים
| שם | תיאור |
|---|---|
limit |
מספר שלם, רשות, ברירת המחדל היא 50. גודל העמוד |
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 מחזירה את כל התוכן הנגיש בשרשור כמסמך 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 |
מערך של מזהי משתמשים שיש לשלוח להם הודעה או להזמין לשרשור |
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 |
מספר שלם, חובה. מזהה הדיון שבו תפורסם התגובה |
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. מזהה הקבוצה של הסקר. אם מועבר discussion_id, המערכת מתעלמת מ־group_id |
discussion_id |
מספר שלם, לא חובה, ברירת המחדל היא null. מזהה שרשור הדיון שאליו יש להוסיף את הסקר |
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 |
מערך מזהי משתמשים לשליחת התראה או הזמנה |
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
הצגת סקר
אחזור סקר באמצעות מזהה הסקר, שהוא מספר שלם, או מפתח, שהוא מחרוזת.
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 |
מספר שלם, חובה. מזהה הקבוצה שממנה יש להציג את רשימת הסקרים |
status |
מחרוזת, לא חובה, ברירת המחדל היא active. ערכים: active, closed, all |
limit |
מספר שלם, לא חובה, ברירת המחדל היא 50. גודל העמוד |
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 |
מערך מזהי משתמשים לשליחת התראה או הזמנה |
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. חברי הקבוצה יכולים לקרוא את שמות החברים, המזהים, התארים והתפקידים שלהם. כתובות דוא״ל נכללות רק עבור החשבון המשויך למפתח ה־API עצמו, או כאשר לחשבון זה יש הרשאת ניהול בקבוצה.
GET /api/b2/memberships
פרמטרים
| שם | תיאור |
|---|---|
group_id |
מספר שלם, חובה. מזהה הקבוצה שהחברויות בה יוצגו ברשימה |
דוגמה
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/memberships?group_id=123'
ניהול חברויות
יש לשלוח רשימה של כתובות דוא״ל. לכל הכתובות החדשות תישלח הזמנה לקבוצה. בניגוד להצגת רשימת חברויות, פעולה זו דורשת הרשאת ניהול בקבוצה.
POST /api/b2/memberships
פרמטרים
| שם | תיאור |
|---|---|
group_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"]}.