תיעוד ה־API למשתמש של Loomio
/api/b2 הוא ה־API למשתמש עבור אינטגרציות עם Loomio. הוא משתמש במפתח ה־API של חשבון משתמש, וכל פעולה מתבצעת בשם החשבון הזה.
פעולות בקבוצות כפופות לחברויות ולהרשאות הקבוצה של החשבון שמפתח ה־API שייך לו. הרשאת ניהול של המערכת אינה מרחיבה את הגישה של מפתח ה־API לקבוצות או לתוכן. לניהול ברמת המערכת יש להשתמש ב־Server API.
יש להשתמש במפתח ה־API של חשבון Loomio שיבצע את הפעולות. חשבון בוט ייעודי מועיל כאשר אין צורך להזמין את האינטגרציה להשתתף במשאלים או לשלוח לה התראות.
לאחר כניסה לחשבון, ניתן למצוא את מפתח ה־API ואת מזהי הקבוצות בדף הגישה ל־API.
יש לשלוח את מפתח ה־API בכותרת Authorization: Bearer. מפתחות API שנשלחים בפרמטרים של כתובת URL נדחים, משום ששרתי תיווך ויומני גישה עשויים לתעד כתובות URL.
שינוי באופן האימות
בעבר ניתן היה לשלוח את מפתח ה־API בפרמטר הכתובת api_key. בקשות שמשתמשות ב־?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 להתעלם משדות שאינן משתמשות בהם.
קבלת קבוצה
מחזיר קבוצה אחת שהחשבון שמפתח ה־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 גם באמצעות סוכנים ואינטגרציות אחרות, דרך נקודות הקצה של צ'אטבוטים המאומתות באמצעות 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
יש לשלוח את השדות שיש לשנות. שינוי 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 שייך לקבוצה אחת ומקבל ממנה את האירועים שנבחרו. ניתן גם לבחור במפורש באינטגרציה בעת שיתוף או שליחה של התראות מסוימות, גם אם האירוע האוטומטי המתאים לא נבחר.
משלוח באמצעות HTTP
Loomio שולחת בקשת HTTP מסוג POST באופן אסינכרוני לכתובת ה-URL שהוגדרה, עם הכותרת הבאה:
Content-Type: application/json; charset=utf-8
זמן ההמתנה המרבי לבקשה הוא חמש שניות. תגובת 2xx, כולל 204 No Content, נחשבת להצלחה. שירותים שמקבלים הודעות webhook צריכים להשיב במהירות, לעבד פעולות ממושכות באופן אסינכרוני ולהתמודד עם משלוחים כפולים או משלוחים שמגיעים בסדר שונה.
Loomio אינה מוסיפה כיום חתימת webhook, כותרת עם סוד משותף, מזהה אירוע או מזהה משלוח. יש להתייחס לכתובת ה-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 |
הגבלת התוצאות לקבוצה גלויה אחת |
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 מחיל את אותם כללי נראות של קבוצות שחלים על הדוח ב-Loomio. מפתח 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"]}.