A Loomio felhasználói API dokumentációja
A /api/b2 a Loomióval való integrációkhoz készült felhasználói API. Egy felhasználói fiók API-kulcsát használja, és minden műveletet az adott felhasználó nevében hajt végre.
A csoportműveleteknél az API-kulcs tulajdonosának tagságai és csoportjogosultságai érvényesek. A példányadminisztrátori szerepkör nem ad az API-kulcsnak további hozzáférést csoportokhoz vagy tartalmakhoz. A példány szintű adminisztrációhoz használd a Server API-t.
Annak a Loomio-fióknak az API-kulcsát használd, amelynek nevében a műveleteket végre szeretnéd hajtani. Külön botfiók hasznos, ha az integrációt nem szeretnéd szavazásokra meghívni, vagy nem szeretnéd, hogy értesítéseket kapjon.
Bejelentkezés után az API-kulcsodat és a csoportazonosítókat az API-hozzáférési oldalon találod.
Az API-kulcsot az Authorization: Bearer fejlécben küldd el. A lekérdezési karakterláncban megadott API-kulcsokat a rendszer elutasítja, mert az URL-eket a proxyk és a hozzáférési naplók rögzíthetik.
A hitelesítés változása
Korábban az API-kulcsot api_key URL-paraméterként is meg lehetett adni. A ?api_key=YOUR_API_KEY paramétert használó kérések már nem működnek. Helyette a HTTP Authorization fejlécet használd:
Authorization: Bearer YOUR_API_KEY
A példákban a YOUR_API_KEY API-kulcs, a 123 csoportazonosító és a https://www.loomio.com/ URL szerepel. Cseréld ki ezeket a saját API-kulcsodra, csoportazonosítódra és a Loomio-telepítésed URL-jére.
Válaszméret és kapcsolódó rekordok
A felhasználói API válaszai összetett formátumúak: az elsődleges rekordok mellett kapcsolódó rekordokat is tartalmaznak, például témákat, csoportokat, felhasználókat, szavazásokat és reakciókat. Így a kliens egyetlen kérésből feltöltheti a helyi rekordtárát, de a válasz több adatot tartalmazhat, mint amennyire egy egyszerű integrációnak szüksége van.
A compact=1 paraméterrel kihagyhatod a nagy méretű kapcsolódó témákat, csoportokat, szülőcsoportokat, tagságokat, reakciókat, címkéket és fordításokat. Az elsődleges rekordok és a tartalmuk értelmezéséhez szükséges kapcsolódó rekordok megmaradnak.
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/threads/123/items?compact=1'
Ha pontosan szeretnéd szabályozni a választ, add meg az exclude_types paraméterben az egyes számú rekordtípusokat szóközzel elválasztva. Például az exclude_types=group reaction kihagyja a kapcsolódó csoportokat és reakciókat. Gyakori értékek: topic, group, parent, membership, reaction, tag, translation, user, discussion, poll, poll_option, stance, stance_choice, outcome és topic_item. A kizárás a kapcsolódó rekordokra vonatkozik, nem a végponttól kért elsődleges erőforrásra.
A gyűjteményt visszaadó válaszok tartalmazzák a meta.total értéket, ha a gyűjtemény pontos mérete meghatározható. Az összesítést a limit és az offset alkalmazása előtt számítja ki a rendszer. Azok a végpontok, például a keresés, amelyek szándékosan korlátozott eredményhalmazt adnak vissza, kihagyják a meta.total mezőt ahelyett, hogy null értéket adnának vissza.
Végpontok áttekintése
| Metódus | Végpont | Cél |
|---|---|---|
GET |
/api/b2/groups |
Az API-kulcs tulajdonosához tartozó csoportok listázása |
GET |
/api/b2/groups/:id_or_key_or_handle |
Egy látható csoport lekérése |
GET |
/api/b2/reports |
Részvételi jelentés készítése |
GET |
/api/b2/search |
Keresés a látható beszélgetések, hozzászólások, szavazások, leadott szavazatok és következtetések között |
POST |
/api/b2/discussions |
Beszélgetés létrehozása |
GET |
/api/b2/discussions/:id |
Beszélgetés lekérése |
GET |
/api/b2/discussions |
Egy csoport beszélgetéseinek listázása |
PATCH |
/api/b2/discussions/:id |
Beszélgetés szerkesztése |
DELETE |
/api/b2/discussions/:id |
Beszélgetés logikai törlése |
GET |
/api/b2/threads |
Látható beszélgetésszálak és önálló szavazási szálak listázása |
GET |
/api/b2/threads/:topic_id |
Szál lekérése |
GET |
/api/b2/threads/:topic_id/items |
Egy szál elemeinek lekérése sorrendben |
GET |
/api/b2/threads/:topic_id/markdown |
Teljes szál lekérése Markdown-formátumban |
POST |
/api/b2/comments |
Hozzászólás vagy válasz létrehozása |
PATCH |
/api/b2/comments/:id |
Hozzászólás szerkesztése |
DELETE |
/api/b2/comments/:id |
Hozzászólás logikai törlése |
POST |
/api/b2/polls |
Szavazás létrehozása |
GET |
/api/b2/polls/:id |
Szavazás lekérése |
GET |
/api/b2/polls |
Egy csoport szavazásainak listázása |
PATCH |
/api/b2/polls/:id |
Szavazás szerkesztése |
DELETE |
/api/b2/polls/:id |
Szavazás logikai törlése |
GET |
/api/b2/memberships |
Egy csoport tagságainak listázása |
POST |
/api/b2/memberships |
Tagok hozzáadása és szükség esetén a listából hiányzó tagok eltávolítása |
GET |
/api/b2/chatbots |
Egy csoport csevegési integrációinak és webhookjainak listázása |
POST |
/api/b2/chatbots |
Csevegési integráció vagy webhook létrehozása |
PATCH |
/api/b2/chatbots/:id |
Csevegési integráció vagy webhook frissítése |
DELETE |
/api/b2/chatbots/:id |
Csevegési integráció vagy webhook törlése |
POST |
/api/b2/chatbots/check |
Webhook-kapcsolat tesztelése |
Csoportok
Csoportok listázása
Azoknak a csoportoknak a lekérése, amelyekben az API-kulcs tulajdonosának aktív tagsága van.
GET /api/b2/groups
curl -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/groups
A válasz az összes megfelelő rekordot tartalmazza egy lapozás nélküli groups tömbben. Szülőcsoportok és alcsoportok is szerepelnek benne, köztük olyan csoportok is, amelyek előfizetése jelenleg nem aktív. Ellenőrizd az enabled mezőt, ha az integrációnak csak aktív csoportokkal szabad működnie.
A fontosabb csoportmezők:
| Mező | Leírás |
|---|---|
id |
Más felhasználói API-végpontok által használt numerikus csoportazonosító |
key |
A Loomio URL-jeiben használt állandó rövid kulcs |
handle |
A csoport ember által olvasható azonosítója |
name |
A csoport neve |
full_name |
A csoport neve a szülőcsoport megjelölésével |
parent_id |
Alcsoport esetén a szülőcsoport numerikus azonosítója, egyébként null |
enabled |
Aktív-e a csoport és az előfizetése |
memberships_count |
Az aktív és függőben lévő tagságok száma |
accepted_memberships_count |
Az elfogadott tagságok száma |
pending_memberships_count |
A függőben lévő meghívások száma |
admin_memberships_count |
A csoportadminisztrátorok száma |
delegates_count |
A küldöttek száma |
discussions_count |
A közvetlenül a csoporthoz tartozó beszélgetések száma |
polls_count |
A közvetlenül a csoporthoz tartozó szavazások száma |
subgroups_count |
Az alcsoportok száma |
A válasz további csoportbeállításokat, kapcsolódó szülőcsoport-rekordokat és az API-felhasználó tagságait is tartalmazhatja. A kliensek hagyják figyelmen kívül a nem használt mezőket.
Csoport lekérése
Az API-kulcs tulajdonosa számára látható csoport lekérése.
GET /api/b2/groups/:id_or_key_or_handle
Az azonosító lehet a csoport numerikus azonosítója, kulcsa vagy olvasható azonosítója.
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
A válasz a groups tömbben tartalmazza a csoportot, ugyanazokkal a mezőkkel, mint a listázó végpont. Ha az API-kulcs tulajdonosa nem fér hozzá a kért csoporthoz, a kérés jogosultsági hibát ad vissza.
Webhookok
A felhasználói API kérésekre válaszol: az integráció akkor hívja meg a Loomiót, amikor adatot szeretne olvasni vagy módosítani. A csoport webhookja az ellenkező irányban továbbít adatot. A Loomio a kiválasztott csoporteseményeket az előfordulásukkor elküldi a végpontodra, így az integrációnak nem kell rendszeresen lekérdeznie a REST API-t a változásokért.
A webhookokat csoportonként kell beállítani, és kezelésükhöz csoportadminisztrátori jogosultság szükséges. A Loomio felületén így kezelheted őket:
- Nyisd meg a csoportot.
- Nyisd meg a csoport menüjét, és válaszd a Csevegési integrációk lehetőséget.
- Add hozzá azt az integrációt, amelynek adatformátumát a végpontod fogadni tudja. Általános célú végponthoz használd a Mattermost/Markdown formátumot.
- Adj meg egy nevet és a cél URL-t.
- Válaszd ki azokat az eseményeket, amelyeket a Loomio automatikusan elküldjön.
- Mentsd az integrációt, majd a Kapcsolat tesztelése lehetőséggel küldj tesztüzenetet.
Olyan HTTPS-címet használj célként, amelynek URL-je nem található ki könnyen. A Loomio megköveteli, hogy a cél nyilvános címre mutasson, és blokkolja a helyi vagy magánhálózati címekre irányuló kéréseket.
Az ügynökök és más integrációk az alább ismertetett, Bearer-hitelesítést használó chatbotvégpontokon keresztül is kezelhetik a webhookokat. Az erőforrás neve chatbots, hogy kompatibilis legyen a Loomio csevegési integrációival, de általános kimenő webhookokat is jelöl.
Webhookok listázása
Egy csoporthoz beállított csevegési integrációk lekérése. Az API-kulcs tulajdonosának a csoport adminisztrátorának kell lennie. A válasz tartalmazza a cél URL-eket, ezért nem szabad elérhetővé tenni a csoport többi tagja számára.
GET /api/b2/chatbots?group_id=123
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/chatbots?group_id=123'
A válasz egy chatbots tömböt tartalmaz a következő mezőkkel:
| Mező | Leírás |
|---|---|
id |
Az integráció frissítéséhez és törléséhez használt azonosító |
group_id |
Az eseményekhez tartozó csoport |
name |
Az integráció adminisztrációs neve |
kind |
Kimenő webhook esetén webhook, Matrix-integráció esetén matrix |
webhook_kind |
Az adat formátuma: markdown, slack, discord, microsoft vagy webex |
server |
Cél-URL |
event_kinds |
Automatikusan elküldött események |
notification_only |
Az üzenetek csak az értesítés címét tartalmazzák-e |
Webhook létrehozása
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
Az API-kulcshoz tartozó felhasználónak a group_id által jelölt csoport adminisztrátorának kell lennie. Mentés előtt a rendszer ellenőrzi, hogy a cél nyilvánosan elérhető URL-e.
Webhook frissítése
PATCH /api/b2/chatbots/:id
Küldd el a módosítani kívánt mezőket. A group_id módosításával nem helyezheted át a webhookot másik csoportba.
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 céljának tesztelése
A beállítások mentése előtt vagy után küldj a cél címére egy Markdown-kompatibilis tesztüzenetet.
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 törlése
DELETE /api/b2/chatbots/:id
curl -X DELETE -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/chatbots/456
A beállítás törlése leállítja a későbbi kézbesítéseket. A Loomio-csoport tartalmát nem törli.
Eseménytípusok
A webhook ezekre az eseménytípusokra iratkozhat fel:
| Esemény | Mikor küldi el a rendszer |
|---|---|
new_discussion |
Beszélgetés indul |
discussion_edited |
Szerkesztenek egy beszélgetést |
new_comment |
Hozzászólás születik |
poll_created |
Szavazás indul |
poll_edited |
Szerkesztenek egy szavazást |
poll_closing_soon |
Közeledik egy szavazás lezárási ideje |
poll_expired |
Egy szavazás eléri a lezárási idejét |
poll_closed_by_user |
Valaki kézzel lezár egy szavazást |
poll_reopened |
Újra megnyitnak egy szavazást |
outcome_created |
Közzétesznek egy következtetést |
outcome_updated |
Frissítenek egy következtetést |
outcome_review_due |
Esedékessé válik egy következtetés felülvizsgálata |
stance_created |
Valaki leadja a szavazatát |
stance_updated |
Valaki módosítja a szavazatát |
A webhook egy csoporthoz tartozik, és annak feliratkozott eseményeit fogadja. Az integrációt az emberek egyes értesítések megosztásakor vagy küldésekor külön is kiválaszthatják, akkor is, ha a megfelelő automatikus esemény nincs kiválasztva.
HTTP-kézbesítés
A Loomio aszinkron HTTP POST kérést küld a beállított URL-re ezzel a fejléccel:
Content-Type: application/json; charset=utf-8
A kérés időkorlátja öt másodperc. A rendszer minden 2xx választ sikeresnek tekint, beleértve a 204 No Content választ is. A webhookot fogadó szolgáltatás válaszoljon gyorsan, a hosszabb feladatokat dolgozza fel aszinkron módon, és kezelje a többször vagy eltérő sorrendben érkező kézbesítéseket.
A Loomio jelenleg nem ad a webhookhoz aláírást, közös titkot tartalmazó fejlécet, eseményazonosítót vagy kézbesítési azonosítót. A teljes cél-URL-t kezeld hozzáférési adatként, ne tedd nyilvánossá, és használj benne nehezen kitalálható tokent, ha a fogadó szolgáltatás ezt támogatja. Ha állandó, géppel feldolgozható eseménysémára vagy aláírt kézbesítésre van szükséged, használd a webhookot változásjelzésként, majd kérd le az aktuális rekordokat a hitelesített felhasználói API-n keresztül.
Adatformátumok
A webhookok csevegőszolgáltatásoknak szánt üzeneteket küldenek. Ezek nem teljes Loomio-rekordok. Az üzenetben lévő hivatkozások megmutatják, melyik Loomio-tartalmat érinti az esemény. Ha az integrációnak strukturált, aktuális adatokra van szüksége, lekérheti őket a felhasználói API-n keresztül.
| Integráció formátuma | Fő JSON-mezők |
|---|---|
| Mattermost/Markdown | text, icon_url, username |
| Slack | text |
| Discord | content, körülbelül 1900 karakterre korlátozva |
| Microsoft Teams | @type, @context, themeColor, text, sections |
| Webex | markdown |
Az általános Markdown-formátum például ilyen szerkezetű üzenettörzset küld:
{
"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"
}
Az üzenet pontos szövege az eseménytől, a csoport nyelvi beállításától, a csak értesítést tartalmazó beállítástól és a Loomio verziójától függ. Az üzenetet fogadó szolgáltatás a választott formátum dokumentált felső szintű mezőire támaszkodjon az egyes mondatok elemzése helyett.
Keresés
Keress az API-kulcshoz tartozó felhasználó számára látható beszélgetések, hozzászólások, szavazások, leadott szavazatok és következtetések között. A találatok között nyilvános tartalom is szerepelhet olyan csoportból, amelynek a felhasználó nem tagja. A privát tartalmakra a témák szokásos láthatósági szabályai vonatkoznak.
GET /api/b2/search
Paraméterek
| Név | Leírás |
|---|---|
query |
Keresett szöveg. Pontos és közelítő egyezések is támogatottak |
group_id |
A találatokat egy látható csoportra korlátozza |
org_id |
A találatokat egy látható szülőcsoportra és annak látható alcsoportjaira korlátozza. Közvetlen beszélgetésekhez használd a 0 értéket |
type |
A találatokat egy típusra korlátozza: Discussion, Comment, Poll, Stance vagy Outcome |
types |
A találattípusok vesszővel elválasztott listája |
tag |
A találatokat az ezzel a címkével ellátott témákra korlátozza |
author_id |
A találatokat egy szerző tartalmaira korlátozza. query nélkül a szerző közelmúltbeli, látható tevékenységét adja vissza |
order |
Állítsd authored_at_desc értékre, hogy az egyező tartalmakat a létrehozásuk ideje szerint rendezze |
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/search?query=quarterly+planning&type=Discussion'
A válasz egy search_results tömböt tartalmaz. Minden találat azonosítja az egyező rekordot és annak látható környezetét. A mezők között szerepel a searchable_type, searchable_id, highlight, group_id, group_name, discussion_key, poll_key, author_id, author_name, authored_at és tags. Az adott találatra nem vonatkozó mezők értéke null.
Részvételi jelentés
A Loomio Részvételi jelentésében használt összesített részvételi adatokat adja vissza.
GET /api/b2/reports
Paraméterek
| Név | Leírás |
|---|---|
section |
A jelentés része: base, users vagy countries. Személyenkénti tevékenységhez használd a users értéket |
group_scope |
custom vagy my. A régi all értéket a rendszer my értékként kezeli, mert a felhasználói API-kulcsok nem adnak hozzáférést a teljes példányhoz |
group_ids |
Vesszővel elválasztott csoportazonosítók, ha group_scope=custom. A rendszer figyelmen kívül hagyja azokat az azonosítókat, amelyekhez az API-felhasználó nem rendelkezik tagsággal |
start_month |
Az első szerepeltetendő hónap YYYY-MM formátumban; alapértelmezés szerint 12 hónappal ezelőtt |
end_month |
Az utolsó szerepeltetendő hónap YYYY-MM formátumban; alapértelmezés szerint az aktuális hónap |
interval |
A base rész időköze: day, week, month vagy year |
member_type |
Állítsd delegate értékre a section=users mellett, hogy csak a jelenlegi küldöttek jelenjenek meg |
Valaki akkor küldött, ha a kiválasztott csoportok bármelyikében aktív küldötti tagsága van. A rendszer az összes kiválasztott csoportból összesíti az adatait. A küldöttek akkor is szerepelnek a jelentésben, ha minden tevékenységi számuk nulla. A számok a témákat, hozzászólásokat, szavazásokat, leadott szavazatokat, következtetéseket és reakciókat fedik le; nem a szavazási részvételi arányt mutatják. A felhasználói sorok a névhez kötött szavazólapok kiadott, leadott és elmulasztott számát is tartalmazzák. Az anonim szavazások minden személyenkénti szavazatszámból kimaradnak. Az all_votes_cast csak akkor igaz, ha legalább egy szavazólapot kiadtak, és mindegyiket leadták.
Az API ugyanazokat a csoportláthatósági szabályokat alkalmazza, mint a Loomio felületén elérhető jelentés. A felhasználói API-kulcs nem teszi elérhetővé azoknak a csoportoknak a jelentésadatait, amelyekhez a felhasználó nem fér hozzá.
Példa
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'
A users tömb teljes tevékenységi sorokat tartalmaz:
{
"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
}
]
}
Beszélgetés létrehozása
Hozz létre egy beszélgetést az API-kulcshoz tartozó felhasználóként.
POST /api/b2/discussions
Paraméterek
| Név | Leírás |
|---|---|
group_id |
A csoport, amelyben a téma létrejön |
title |
A téma címe, kötelező |
description |
A téma leírása, nem kötelező |
description_format |
md vagy html, nem kötelező, alapértelmezett értéke md |
recipient_audience |
group vagy null. Ha group, a teljes csoport értesítést kap az új témáról |
recipient_user_ids |
Az értesítendő vagy a témába meghívandó felhasználók azonosítóinak tömbje |
recipient_emails |
A témába meghívandó személyek e-mail-címeinek tömbje |
recipient_message |
Az e-mailes meghívóban szereplő üzenet |
Példa
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
Beszélgetés lekérése
Kérj le egy beszélgetést a számmal megadott azonosítója vagy a szöveges kulcsa alapján.
GET /api/b2/discussions/:id
Példa
curl -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/discussions/abc123
Beszélgetések listázása
Listázd az API-kulcshoz tartozó felhasználó számára látható beszélgetéseket egy csoportban. Nyilvánosan látható csoport esetén a csoporton kívüli felhasználó is listázhatja a nyilvános beszélgetéseket. A privát beszélgetéseket csak azok érhetik el, akik a Loomióban is olvashatják őket.
GET /api/b2/discussions
Paraméterek
| Név | Leírás |
|---|---|
group_id |
Egész szám, kötelező. Annak a csoportnak az azonosítója, amelynek a beszélgetéseit listázni szeretnéd |
status |
Szöveg, nem kötelező, alapértelmezett értéke open. Értékek: open, closed, all |
limit |
Egész szám, nem kötelező, alapértelmezett értéke 50. Az oldal mérete |
offset |
Egész szám, nem kötelező, alapértelmezett értéke 0. A lapozás kezdőpozíciója |
Korábbi paraméterek: a per és a from továbbra is használható a limit, illetve az offset helyett.
Példa
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/discussions?group_id=123'
Témák listázása
Listázd az API-kulcshoz tartozó felhasználó számára látható beszélgetések és szavazások témáit, a legutóbbi aktivitás szerint rendezve. A téma azonosítója a topic_id.
GET /api/b2/threads
Paraméterek
| Név | Leírás |
|---|---|
limit |
Egész szám, nem kötelező, alapértelmezett értéke 50. Az oldal mérete |
offset |
Egész szám, nem kötelező, alapértelmezett értéke 0. A lapozás kezdőpozíciója |
Példa
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/threads?limit=50&offset=0'
Téma olvasása
Olvasd el a témát, az eseményeinek rendezett sorát vagy a teljes látható tartalmát Markdown-dokumentumként.
GET /api/b2/threads/:topic_id
GET /api/b2/threads/:topic_id/items
GET /api/b2/threads/:topic_id/markdown
Példa
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
Az items végpont az eseményeket sorrendben adja vissza, beleértve a látható hozzászólásokat, szavazásokat, leadott szavazatokat és következtetéseket. A markdown végpont a téma teljes látható tartalmát egyetlen Markdown-dokumentumként adja vissza. A szavazatok indoklása csak akkor szerepel benne, ha látható az API-kulcshoz tartozó felhasználó számára.
Minden témához tartozó végpont ugyanazokat a jogosultságokat érvényesíti, mint a Loomio felülete. Az API-kulcs nem ad hozzáférést olyan témához, amelyet a felhasználó egyébként nem nyithat meg.
Beszélgetés szerkesztése
Szerkessz egy beszélgetést az API-kulcshoz tartozó felhasználóként. Ugyanazok a jogosultságok érvényesek, mint a Loomióban: a felhasználónak jogosultnak kell lennie a beszélgetés szerkesztésére.
PATCH /api/b2/discussions/:id
Paraméterek
| Név | Leírás |
|---|---|
title |
Az új cím |
description |
Az új leírás |
description_format |
md vagy html, nem kötelező, alapértelmezett értéke md |
recipient_audience |
group vagy null. Ha group, a teljes csoport értesítést kap a módosításról |
recipient_user_ids |
Az értesítendő vagy a témába meghívandó felhasználók azonosítóinak tömbje |
recipient_emails |
A témába meghívandó személyek e-mail-címeinek tömbje |
recipient_message |
Az e-mailes meghívóban szereplő üzenet |
Példa
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
Beszélgetés logikai törlése
Törölj logikailag egy beszélgetést az API-kulcshoz tartozó felhasználóként. A beszélgetés törölt állapotba kerül, de a rekordja megmarad.
DELETE /api/b2/discussions/:id
Példa
curl -H 'Authorization: Bearer YOUR_API_KEY' -X DELETE https://www.loomio.com/api/b2/discussions/123
Hozzászólás létrehozása
Hozz létre egy hozzászólást egy beszélgetésben az API-kulcshoz tartozó felhasználóként.
POST /api/b2/comments
Paraméterek
| Név | Leírás |
|---|---|
discussion_id |
Egész szám, kötelező. Annak a beszélgetésnek az azonosítója, amelyhez hozzászólsz |
body |
A hozzászólás szövege, kötelező, kivéve ha mellékletet adsz meg |
body_format |
md vagy html, nem kötelező, alapértelmezett értéke md |
Példa
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
Hozzászólás szerkesztése
Szerkessz egy hozzászólást az API-kulcshoz tartozó felhasználóként. Ugyanazok a jogosultságok érvényesek, mint a Loomióban: a felhasználónak jogosultnak kell lennie a hozzászólás szerkesztésére.
PATCH /api/b2/comments/:id
Paraméterek
| Név | Leírás |
|---|---|
body |
A hozzászólás új szövege |
body_format |
md vagy html, nem kötelező, alapértelmezett értéke md |
Példa
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
Hozzászólás logikai törlése
Törölj logikailag egy hozzászólást az API-kulcshoz tartozó felhasználóként. A hozzászólás szövege rejtetté válik, de a rekordja megmarad.
DELETE /api/b2/comments/:id
Példa
curl -H 'Authorization: Bearer YOUR_API_KEY' -X DELETE https://www.loomio.com/api/b2/comments/123
Szavazás létrehozása
Hozz létre szavazást az API-kulcshoz tartozó felhasználóként.
POST /api/b2/polls
Paraméterek
| Név | Leírás |
|---|---|
group_id |
Egész szám, nem kötelező, alapértelmezés szerint null. A szavazás csoportjának azonosítója. Ha megadod a discussion_id értékét, a rendszer figyelmen kívül hagyja a group_id értékét |
discussion_id |
Egész szám, nem kötelező, alapértelmezés szerint null. Annak a beszélgetésnek az azonosítója, amelyhez hozzáadod a szavazást |
title |
Szöveg, kötelező. A szavazás címe |
poll_type |
Szöveg, kötelező. Lehetséges értékek: proposal, poll, count, score, ranked_choice, meeting, dot_vote |
details |
Szöveg, nem kötelező. A szavazás leírása |
details_format |
Szöveg, nem kötelező, alapértelmezés szerint md. Lehetséges értékek: md vagy html |
options |
Szövegek tömbje. Ha a poll_type értéke proposal, az érvényes értékek: agree, disagree, abstain, block. Ha a poll_type értéke meeting, ISO 8601 formátumú dátumokat vagy dátumokat és időpontokat adj meg. Minden más szavazástípusnál bármilyen szöveg megadható |
closing_at |
ISO 8601 formátumú szöveg vagy null, alapértelmezés szerint null. Példa: 2026-09-01T12:00:00Z. Ha null, a szavazás le van tiltva, és a szavazás előkészítés alatt áll |
specified_voters_only |
Logikai érték, nem kötelező, alapértelmezés szerint false. Ha true, csak a megadott személyek szavazhatnak. Ha false, a csoport minden tagja meghívást kap a szavazásra |
hide_results |
Szöveg, nem kötelező, alapértelmezés szerint off. Lehetséges értékek: off, until_vote, until_closed |
shuffle_options |
Logikai érték, alapértelmezés szerint false. A lehetőségeket véletlenszerű sorrendben jeleníti meg a szavazóknak |
anonymous |
Logikai érték, nem kötelező, alapértelmezés szerint false. Elrejti a szavazók személyazonosságát |
recipient_audience |
group vagy null, nem kötelező, alapértelmezés szerint null. Ha group, a teljes csoport értesítést kap |
notify_on_closing_soon |
Szöveg, nem kötelező, alapértelmezés szerint nobody. Lehetséges értékek: nobody, author, undecided_voters, voters |
recipient_user_ids |
Az értesítendő vagy meghívandó felhasználók azonosítóinak tömbje |
recipient_emails |
A szavazásra meghívandó személyek e-mail-címeinek tömbje |
recipient_message |
Az e-mailes meghívóban szereplő üzenet |
notify_recipients |
Logikai érték, alapértelmezés szerint false. Ha false, a személyek értesítés nélkül kerülnek hozzáadásra. Ha true, a kéréssel meghívott minden személy értesítő e-mailt kap |
Példa
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
Szavazás megtekintése
Kérj le egy szavazást a számmal megadott azonosítója vagy a szöveges kulcsa alapján.
GET /api/b2/polls/:id
Példa
curl -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/polls/abc123
Szavazások listázása
Listázd azokat a csoportbeli szavazásokat, amelyeket az API-kulcshoz tartozó felhasználó láthat. Nyilvánosan látható csoport esetén egy nem tag felhasználó is listázhatja a nyilvános szavazásokat. A privát szavazásokat csak azok érhetik el, akik a Loomióban is megtekinthetik őket. A válasz minden látható szavazás aktuális következtetését tartalmazza, így a status=closed használatával listázhatod a lezárt javaslatokat.
GET /api/b2/polls
Paraméterek
| Név | Leírás |
|---|---|
group_id |
Egész szám, kötelező. Annak a csoportnak az azonosítója, amelynek a szavazásait listázni szeretnéd |
status |
Szöveg, nem kötelező, alapértelmezés szerint active. Lehetséges értékek: active, closed, all |
limit |
Egész szám, nem kötelező, alapértelmezés szerint 50. Az oldal mérete |
offset |
Egész szám, nem kötelező, alapértelmezés szerint 0. A lapozáshoz használt eltolás |
Korábbi paraméterek: a per és a from továbbra is használható a limit, illetve az offset helyett.
Példa
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/polls?group_id=123'
Szavazás szerkesztése
Szerkessz egy szavazást az API-kulcshoz tartozó felhasználóként. Ugyanazok a jogosultságok érvényesek, mint a Loomióban: a felhasználónak jogosultnak kell lennie a szavazás szerkesztésére.
PATCH /api/b2/polls/:id
Paraméterek
| Név | Leírás |
|---|---|
title |
Módosított cím |
details |
A szavazás módosított leírása |
details_format |
md vagy html, nem kötelező, alapértelmezés szerint md |
options |
A lehetőségek módosított nevei. A lehetőségek megváltoztatása a szavazás állapotától függően hatással lehet a már leadott szavazatokra |
closing_at |
ISO 8601 formátumú szöveg vagy null |
recipient_audience |
group vagy null. Ha group, a teljes csoport értesítést kap |
recipient_user_ids |
Az értesítendő vagy meghívandó felhasználók azonosítóinak tömbje |
recipient_emails |
A szavazásra meghívandó személyek e-mail-címeinek tömbje |
recipient_message |
Az e-mailes meghívóban szereplő üzenet |
Példa
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
Szavazás törlése visszaállítási lehetőséggel
Törölj egy szavazást visszaállítási lehetőséggel az API-kulcshoz tartozó felhasználóként. A szavazás kikerül a használatból, de a rekordja megmarad.
DELETE /api/b2/polls/:id
Példa
curl -H 'Authorization: Bearer YOUR_API_KEY' -X DELETE https://www.loomio.com/api/b2/polls/123
Tagságok listázása
Listázd az API-kulcshoz tartozó felhasználó számára látható tagságokat. A csoporttagok láthatják a tagok nevét, azonosítóját, beosztását és szerepkörét. Az e-mail-címek csak az API-kulcshoz tartozó felhasználó saját fiókjánál jelennek meg, vagy akkor, ha a felhasználó a csoport adminisztrátora.
GET /api/b2/memberships
Paraméterek
| Név | Leírás |
|---|---|
group_id |
Egész szám, kötelező. Annak a csoportnak az azonosítója, amelynek a tagságait listázni szeretnéd |
Példa
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/memberships?group_id=123'
Tagságok kezelése
Küldj el egy e-mail-címeket tartalmazó listát. Az új címek tulajdonosai meghívást kapnak a csoportba. A tagságok listázásával ellentétben ehhez a művelethez csoportadminisztrátori jogosultság szükséges.
POST /api/b2/memberships
Paraméterek
| Név | Leírás |
|---|---|
group_id |
Egész szám, kötelező. Annak a csoportnak az azonosítója, amelynek a tagságait kezelni szeretnéd |
emails |
Szövegek tömbje, kötelező. A csoportba meghívandó személyek e-mail-címei |
remove_absent |
Logikai érték. Ha true, eltávolítja a csoportból azokat, akiknek az e-mail-címe nem szerepel a listán |
Példa
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
Ha megadod a remove_absent=1 értéket, a rendszer eltávolítja a csoportból azokat a tagokat, akik nem szerepelnek a listán. Légy óvatos: akár a csoport összes tagját is eltávolíthatod.
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
A válasz egy objektum: {added_emails: ["person@added.com"], removed_emails: ["person@removed.com"]}.