Loomion käyttäjän API:n dokumentaatio
/api/b2 on Loomio-integraatioiden käyttäjäkohtainen API. Se käyttää käyttäjätilin API-avainta, ja kaikki toiminnot tehdään kyseisen käyttäjän nimissä.
Ryhmiä koskevissa toiminnoissa noudatetaan API-avaimen käyttäjän jäsenyyksiä ja ryhmäoikeuksia. Instanssin ylläpitäjän asema ei laajenna API-avaimen pääsyä ryhmiin tai sisältöön. Käytä instanssin hallintaan palvelimen API:a.
Käytä sen Loomio-käyttäjätilin API-avainta, jonka nimissä toiminnot tehdään. Erillinen bottitili on hyödyllinen, jos integraatiota ei pidä kutsua kyselyihin tai sen ei pidä saada ilmoituksia.
Kirjautuneet käyttäjät löytävät API-avaimensa ja ryhmiensä tunnukset API-käyttösivulta.
Lähetä API-avain Authorization: Bearer -otsakkeessa. Kyselymerkkijonossa lähetetyt API-avaimet hylätään, koska välityspalvelimet ja käyttölokit voivat tallentaa URL-osoitteita.
Todennuksen muutos
API-avain hyväksyttiin aiemmin URL-parametrina api_key. Pyynnöt, joissa käytetään parametria ?api_key=YOUR_API_KEY, eivät enää toimi. Käytä sen sijaan HTTP-otsaketta Authorization:
Authorization: Bearer YOUR_API_KEY
Esimerkeissä käytetään arvoja YOUR_API_KEY, ryhmätunnusta 123 ja osoitetta https://www.loomio.com/. Korvaa ne omalla API-avaimellasi, ryhmätunnuksellasi ja Loomio-asennuksesi URL-osoitteella.
Vastauksen koko ja liittyvät tietueet
Käyttäjän API:n vastaukset ovat yhdistelmämuotoisia: ensisijaisten tietueiden mukana tulee niihin liittyviä tietueita, kuten aiheita, ryhmiä, käyttäjiä, kyselyitä ja reaktioita. Näin asiakasohjelma voi täyttää paikallisen tietuevarastonsa yhdellä pyynnöllä, mutta vastaus voi sisältää enemmän tietoa kuin yksinkertainen integraatio tarvitsee.
Anna parametri compact=1, jos haluat jättää pois tilaa vievät liittyvät aiheet, ryhmät, pääryhmät, jäsenyydet, reaktiot, tunnisteet ja käännökset. Ensisijaiset tietueet ja niiden sisällön tulkintaan tarvittavat liittyvät tietueet säilyvät vastauksessa.
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/threads/123/items?compact=1'
Jos haluat valita pois jätettävät tyypit itse, anna parametrille exclude_types välilyönneillä erotetut tietuetyypit yksikkömuodossa. Esimerkiksi exclude_types=group reaction jättää pois liittyvät ryhmät ja reaktiot. Tavallisia arvoja ovat topic, group, parent, membership, reaction, tag, translation, user, discussion, poll, poll_option, stance, stance_choice, outcome ja topic_item. Poisjättö koskee liittyviä tietueita, ei päätepisteestä pyydettyä ensisijaista resurssia.
Kokoelmavastauksissa on meta.total, kun kokoelman tarkka koko on määritetty. Kokonaismäärä lasketaan ennen parametrien limit ja offset käyttöä. Esimerkiksi hakupäätepiste jättää meta.total-kentän pois, kun se palauttaa tarkoituksella rajatun tulosjoukon. Se ei palauta arvoa null.
Päätepisteiden yhteenveto
| Menetelmä | Päätepiste | Tarkoitus |
|---|---|---|
GET |
/api/b2/groups |
Listaa API-avaimen käyttäjän ryhmät |
GET |
/api/b2/groups/:id_or_key_or_handle |
Hae käyttäjälle näkyvä ryhmä |
GET |
/api/b2/reports |
Luo osallistumisraportti |
GET |
/api/b2/search |
Hae näkyvistä keskusteluista, kommenteista, kyselyistä, äänistä ja yhteenvedoista |
POST |
/api/b2/discussions |
Luo keskustelu |
GET |
/api/b2/discussions/:id |
Hae keskustelu |
GET |
/api/b2/discussions |
Listaa ryhmän keskustelut |
PATCH |
/api/b2/discussions/:id |
Muokkaa keskustelua |
DELETE |
/api/b2/discussions/:id |
Poista keskustelu pehmeästi |
GET |
/api/b2/threads |
Listaa näkyvät keskusteluketjut ja erillisten kyselyiden ketjut |
GET |
/api/b2/threads/:topic_id |
Hae ketju |
GET |
/api/b2/threads/:topic_id/items |
Hae ketjun kohteet järjestyksessä |
GET |
/api/b2/threads/:topic_id/markdown |
Hae koko ketju Markdown-muodossa |
POST |
/api/b2/comments |
Luo kommentti tai vastaus |
PATCH |
/api/b2/comments/:id |
Muokkaa kommenttia |
DELETE |
/api/b2/comments/:id |
Poista kommentti pehmeästi |
POST |
/api/b2/polls |
Luo kysely |
GET |
/api/b2/polls/:id |
Hae kysely |
GET |
/api/b2/polls |
Listaa ryhmän kyselyt |
PATCH |
/api/b2/polls/:id |
Muokkaa kyselyä |
DELETE |
/api/b2/polls/:id |
Poista kysely pehmeästi |
GET |
/api/b2/memberships |
Listaa ryhmän jäsenyydet |
POST |
/api/b2/memberships |
Lisää jäseniä ja halutessasi poista luettelosta puuttuvat jäsenet |
GET |
/api/b2/chatbots |
Listaa ryhmän chat-integraatiot ja webhookit |
POST |
/api/b2/chatbots |
Luo chat-integraatio tai webhook |
PATCH |
/api/b2/chatbots/:id |
Päivitä chat-integraatio tai webhook |
DELETE |
/api/b2/chatbots/:id |
Poista chat-integraatio tai webhook |
POST |
/api/b2/chatbots/check |
Lähetä webhookin yhteystesti |
Ryhmät
Listaa ryhmät
Palauta ryhmät, joissa API-avaimen käyttäjällä on aktiivinen jäsenyys.
GET /api/b2/groups
curl -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/groups
Vastaus sisältää kaikki ehdot täyttävät tietueet sivuttamattomassa groups-taulukossa. Mukana ovat pääryhmät ja alaryhmät, myös ryhmät, joiden tilaus ei ole tällä hetkellä voimassa. Tarkista enabled-kenttä, jos integraation pitää käsitellä vain käytössä olevia ryhmiä.
Tärkeitä ryhmän kenttiä ovat:
| Kenttä | Kuvaus |
|---|---|
id |
Numeerinen ryhmätunnus, jota muut käyttäjän API:n päätepisteet käyttävät |
key |
Loomion URL-osoitteissa käytetty pysyvä lyhyt tunnus |
handle |
Ihmiselle luettava ryhmätunniste |
name |
Ryhmän nimi |
full_name |
Ryhmän nimi pääryhmän yhteydessä |
parent_id |
Alaryhmän pääryhmän numeerinen tunnus, muuten null |
enabled |
Ovatko ryhmä ja sen tilaus aktiivisia |
memberships_count |
Aktiivisten ja odottavien jäsenyyksien määrä |
accepted_memberships_count |
Hyväksyttyjen jäsenyyksien määrä |
pending_memberships_count |
Odottavien kutsujen määrä |
admin_memberships_count |
Ryhmän ylläpitäjien määrä |
delegates_count |
Edustajien määrä |
discussions_count |
Suoraan ryhmään kuuluvien keskustelujen määrä |
polls_count |
Suoraan ryhmään kuuluvien kyselyiden määrä |
subgroups_count |
Alaryhmien määrä |
Vastaus voi sisältää myös muita ryhmäasetuksia, liittyviä pääryhmän tietueita ja API-käyttäjän jäsenyyksiä. Asiakasohjelman tulee ohittaa kentät, joita se ei käytä.
Hae ryhmä
Palauta yksi API-avaimen käyttäjälle näkyvä ryhmä.
GET /api/b2/groups/:id_or_key_or_handle
Tunnisteena voi käyttää ryhmän numeerista tunnusta, lyhyttä tunnusta tai ryhmätunnistetta.
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
Vastaus sisältää ryhmän groups-taulukossa ja käyttää samoja kenttiä kuin listauspäätepiste. Jos API-avaimen käyttäjällä ei ole pääsyä pyydettyyn ryhmään, palvelin palauttaa oikeusvirheen.
Webhookit
Käyttäjän API perustuu pyyntöihin: integraatio kutsuu Loomiota, kun se haluaa lukea tai muuttaa tietoja. Ryhmän webhook lähettää tietoa toiseen suuntaan. Loomio lähettää valitut ryhmän tapahtumat päätepisteeseesi niiden tapahtuessa, joten integraation ei tarvitse kysellä muutoksia REST API:sta.
Webhookit määritetään ryhmäkohtaisesti, ja niiden hallintaan tarvitaan ryhmän ylläpitäjän oikeudet. Voit hallita niitä Loomion käyttöliittymässä:
- Avaa ryhmä.
- Avaa ryhmän valikko ja valitse Chat-integraatiot.
- Lisää integraatio, jonka sisältömuoto sopii päätepisteellesi. Yleiskäyttöiselle päätepisteelle sopii Mattermost/Markdown-muoto.
- Anna nimi ja kohteen URL-osoite.
- Valitse tapahtumat, jotka Loomion pitää lähettää automaattisesti.
- Tallenna integraatio ja lähetä testiviesti valitsemalla Testaa yhteys.
Käytä HTTPS-kohdetta, jonka URL-osoitetta ei voi arvata. Loomio edellyttää, että kohdeosoite vastaa julkista osoitetta, ja estää pyynnöt paikallisiin tai yksityisiin verkko-osoitteisiin.
Agentit ja muut integraatiot voivat hallita webhookeja myös alla kuvattujen Bearer-todennettujen chatbot-päätepisteiden kautta. Resurssin nimi on chatbots, jotta se on yhteensopiva Loomion chat-integraatioiden kanssa. Se kattaa myös yleiset lähtevät webhookit.
Listaa webhookit
Palauta ryhmälle määritetyt chat-integraatiot. API-avaimen käyttäjän on oltava kyseisen ryhmän ylläpitäjä. Vastaus sisältää kohteiden URL-osoitteet, joten sitä ei saa näyttää tavallisille ryhmän jäsenille.
GET /api/b2/chatbots?group_id=123
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/chatbots?group_id=123'
Vastaus sisältää chatbots-taulukon, jossa on seuraavat kentät:
| Kenttä | Kuvaus |
|---|---|
id |
Integraation tunnus, jota käytetään päivittämiseen ja poistamiseen |
group_id |
Ryhmä, jonka tapahtumia lähetetään |
name |
Integraation ylläpidossa käytettävä nimi |
kind |
webhook tarkoittaa lähtevää webhookia ja matrix Matrix-integraatiota |
webhook_kind |
Viestin muoto: markdown, slack, discord, microsoft tai webex |
server |
Kohteen URL-osoite |
event_kinds |
Automaattisesti lähetettävät tapahtumat |
notification_only |
Sisältävätkö viestit vain ilmoituksen otsikon |
Luo 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-avaimen käyttäjän on oltava group_id-ryhmän ylläpitäjä. Ennen tallennusta tarkistetaan, että kohteen URL-osoite on julkinen.
Päivitä webhook
PATCH /api/b2/chatbots/:id
Lähetä kentät, joita haluat muuttaa. Webhookia ei voi siirtää toiseen ryhmään muuttamalla group_id-kenttää.
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
Testaa webhookin kohde
Lähetä kohteeseen Markdown-muotoinen testiviesti ennen asetusten tallentamista tai sen jälkeen.
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
Poista webhook
DELETE /api/b2/chatbots/:id
curl -X DELETE -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/chatbots/456
Asetusten poistaminen lopettaa tulevat lähetykset. Se ei poista ryhmän sisältöä Loomiosta.
Tapahtumatyypit
Webhook voi tilata seuraavat tapahtumatyypit:
| Tapahtuma | Milloin se lähetetään |
|---|---|
new_discussion |
Keskustelu aloitetaan |
discussion_edited |
Keskustelua muokataan |
new_comment |
Kommentti luodaan |
poll_created |
Kysely aloitetaan |
poll_edited |
Kyselyä muokataan |
poll_closing_soon |
Kyselyn sulkeutumisaika lähestyy |
poll_expired |
Kyselyn sulkeutumisaika saavutetaan |
poll_closed_by_user |
Käyttäjä sulkee kyselyn käsin |
poll_reopened |
Kysely avataan uudelleen |
outcome_created |
Johtopäätös julkaistaan |
outcome_updated |
Johtopäätöstä päivitetään |
outcome_review_due |
Johtopäätöksen tarkistamisen määräaika koittaa |
stance_created |
Ääni annetaan |
stance_updated |
Ääntä muutetaan |
Webhook kuuluu yhteen ryhmään ja vastaanottaa ryhmästä tilaamansa tapahtumat. Käyttäjät voivat myös valita integraation erikseen jakaessaan sisältöä tai lähettäessään joitakin ilmoituksia, vaikka vastaavaa automaattista tapahtumaa ei olisi valittu.
HTTP-lähetys
Loomio lähettää määritettyyn URL-osoitteeseen asynkronisen HTTP POST -pyynnön, jossa on seuraava otsake:
Content-Type: application/json; charset=utf-8
Pyynnön aikakatkaisu on viisi sekuntia. 2xx-vastaus, myös 204 No Content, tulkitaan onnistumiseksi. Webhookin vastaanottajan kannattaa vastata nopeasti, käsitellä pidemmät tehtävät asynkronisesti ja varautua päällekkäisiin tai väärässä järjestyksessä saapuviin lähetyksiin.
Loomio ei tällä hetkellä lisää webhookin allekirjoitusta, jaetun salaisuuden otsaketta, tapahtumatunnusta eikä lähetystunnusta. Käsittele koko kohteen URL-osoitetta tunnistetietona äläkä julkaise sitä. Lisää URL-osoitteeseen vaikeasti arvattava tunniste, jos vastaanottava palvelu tukee sitä. Jos tarvitset vakaan, koneellisesti luettavan tapahtumamallin tai allekirjoitetun lähetyksen, käytä webhookia muutosilmoituksena ja hae ajantasaiset tietueet tunnistautumista edellyttävän käyttäjän API:n kautta.
Viestien muodot
Webhookin viestit on tarkoitettu näytettäviksi chat-palveluissa. Ne eivät sisällä täydellisiä Loomio-tietueita. Viestin linkit osoittavat sisältöön, jota tapahtuma koskee. Integraatio voi hakea ajantasaiset rakenteiset tiedot käyttäjän API:n kautta.
| Integraation muoto | JSON-pääkentät |
|---|---|
| Mattermost/Markdown | text, icon_url, username |
| Slack | text |
| Discord | content, enintään noin 1 900 merkkiä |
| Microsoft Teams | @type, @context, themeColor, text, sections |
| Webex | markdown |
Esimerkiksi yleisen Markdown-muodon viestin runko on seuraavanlainen:
{
"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"
}
Viestin tarkka teksti riippuu tapahtumasta, ryhmän kieliasetuksesta, pelkän ilmoituksen asetuksesta ja Loomion versiosta. Vastaanottajan kannattaa käyttää valitun muodon dokumentoituja ylimmän tason kenttiä sen sijaan, että se tulkitsisi lauseiden sanamuotoa.
Haku
Hae keskusteluja, kommentteja, kyselyitä, ääniä ja johtopäätöksiä, jotka API-avaimen käyttäjä voi nähdä. Tuloksiin sisältyy julkista sisältöä, vaikka käyttäjä ei olisi ryhmän jäsen. Yksityisen sisällön näkyvyys määräytyy aiheen tavallisten käyttöoikeuksien mukaan.
GET /api/b2/search
Parametrit
| Nimi | Kuvaus |
|---|---|
query |
Hakuteksti. Tukee tarkkoja ja likimääräisiä osumia |
group_id |
Rajaa tulokset yhteen näkyvään ryhmään |
org_id |
Rajaa tulokset näkyvään pääryhmään ja sen näkyviin alaryhmiin. Käytä suorille keskusteluille arvoa 0 |
type |
Rajaa tulokset yhteen tyyppiin: Discussion, Comment, Poll, Stance tai Outcome |
types |
Pilkuilla erotettu luettelo tulostyypeistä |
tag |
Rajaa tulokset aiheisiin, joissa on tämä tunniste |
author_id |
Rajaa tulokset yhden kirjoittajan sisältöön. Ilman query-parametria palauttaa kirjoittajan viimeaikaisen näkyvän toiminnan |
order |
Käytä arvoa authored_at_desc, jos haluat järjestää osumat kirjoitusajan mukaan |
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/search?query=quarterly+planning&type=Discussion'
Vastaus sisältää search_results-taulukon. Jokainen tulos yksilöi löytyneen tietueen ja sen näkyvän asiayhteyden. Kenttiä ovat esimerkiksi searchable_type, searchable_id, highlight, group_id, group_name, discussion_key, poll_key, author_id, author_name, authored_at ja tags. Kentän arvo on null, jos kenttä ei koske tulosta.
Osallistumisraportti
Palauta samat koostetut osallistumistiedot, joita Loomion osallistumisraportti käyttää.
GET /api/b2/reports
Parametrit
| Nimi | Kuvaus |
|---|---|
section |
Raportin osio: base, users tai countries. Käytä arvoa users, kun haluat nähdä toiminnan henkilöittäin |
group_scope |
custom tai my. Vanhaa arvoa all käsitellään arvona my, koska käyttäjän API-avaimet eivät anna pääsyä koko Loomio-asennuksen tietoihin |
group_ids |
Pilkuilla erotetut ryhmätunnukset, kun group_scope=custom. Ryhmät, joiden jäsen API:n käyttäjä ei ole, jätetään huomiotta |
start_month |
Ensimmäinen mukaan otettava kuukausi muodossa YYYY-MM. Oletus on 12 kuukautta sitten |
end_month |
Viimeinen mukaan otettava kuukausi muodossa YYYY-MM. Oletus on nykyinen kuukausi |
interval |
base-osion aikaväli: day, week, month tai year |
member_type |
Käytä arvoa delegate yhdessä arvon section=users kanssa, kun haluat palauttaa vain nykyiset delegaatit |
Henkilö on delegaatti, jos hänellä on aktiivinen delegaatin jäsenyys jossakin valitussa ryhmässä. Hänen lukumääränsä lasketaan yhteen kaikista valituista ryhmistä. Delegaatin rivi palautetaan, vaikka kaikki toiminnan lukumäärät olisivat nollia. Lukumäärät kattavat ketjut, kommentit, kyselyt, äänet, johtopäätökset ja reaktiot. Ne eivät kuvaa äänestysaktiivisuutta. Käyttäjän riveillä näkyvät myös tunnistettujen äänestyslippujen määrät: lähetetyt, annetut ja käyttämättä jääneet. Nimettömät kyselyt eivät sisälly henkilökohtaisiin äänimääriin. all_votes_cast on tosi vain, jos vähintään yksi äänestyslippu on lähetetty ja kaikki lähetetyt äänestysliput on käytetty.
API noudattaa samoja ryhmän näkyvyyssääntöjä kuin Loomion oma raportti. Käyttäjän API-avain ei voi paljastaa raporttitietoja ryhmistä, joihin käyttäjällä ei ole pääsyä.
Esimerkki
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-taulukko sisältää täydet toimintatiedot kullakin rivillä:
{
"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
}
]
}
Luo keskustelu
Luo keskustelu API-avaimen käyttäjänä.
POST /api/b2/discussions
Parametrit
| Nimi | Kuvaus |
|---|---|
group_id |
Ryhmä, johon keskusteluketju luodaan |
title |
Keskusteluketjun otsikko, pakollinen |
description |
Keskusteluketjun taustatiedot, valinnainen |
description_format |
md tai html, valinnainen, oletus md |
recipient_audience |
group tai null. Jos arvo on group, koko ryhmä saa ilmoituksen uudesta keskusteluketjusta |
recipient_user_ids |
Niiden käyttäjien tunnukset taulukkona, joille lähetetään ilmoitus tai kutsu keskusteluketjuun |
recipient_emails |
Keskusteluketjuun kutsuttavien henkilöiden sähköpostiosoitteet taulukkona |
recipient_message |
Sähköpostikutsuun lisättävä viesti |
Esimerkki
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
Hae keskustelu
Hae keskustelu sen numeerisella tunnuksella tai merkkijonomuotoisella avaimella.
GET /api/b2/discussions/:id
Esimerkki
curl -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/discussions/abc123
Listaa keskustelut
Listaa ryhmän keskustelut, jotka API-avaimen käyttäjä näkee. Julkisesti näkyvän ryhmän julkiset keskustelut voi listata myös henkilö, joka ei kuulu ryhmään. Yksityiset keskustelut näkyvät vain käyttäjille, joilla on niihin lukuoikeus Loomiossa.
GET /api/b2/discussions
Parametrit
| Nimi | Kuvaus |
|---|---|
group_id |
Kokonaisluku, pakollinen. Sen ryhmän tunnus, jonka keskustelut listataan |
status |
Merkkijono, valinnainen, oletus open. Arvot: open, closed, all |
limit |
Kokonaisluku, valinnainen, oletus 50. Sivun koko |
offset |
Kokonaisluku, valinnainen, oletus 0. Sivutuksen aloituskohta |
Vanhat parametrit per ja from toimivat edelleen parametrien limit ja offset vaihtoehtoisina niminä.
Esimerkki
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/discussions?group_id=123'
Listaa keskusteluketjut
Listaa API-avaimen käyttäjälle näkyvät keskustelu- ja kyselyketjut viimeisimmän toiminnan mukaan järjestettyinä. Keskusteluketjun tunnus on sen topic_id.
GET /api/b2/threads
Parametrit
| Nimi | Kuvaus |
|---|---|
limit |
Kokonaisluku, valinnainen, oletus 50. Sivun koko |
offset |
Kokonaisluku, valinnainen, oletus 0. Sivutuksen aloituskohta |
Esimerkki
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/threads?limit=50&offset=0'
Lue keskusteluketju
Lue keskusteluketju, sen aikajärjestyksessä olevat tapahtumat tai koko näkyvä Markdown-asiakirja.
GET /api/b2/threads/:topic_id
GET /api/b2/threads/:topic_id/items
GET /api/b2/threads/:topic_id/markdown
Esimerkki
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-rajapinta palauttaa tapahtumat järjestyksessä, mukaan lukien näkyvät kommentit, kyselyt, äänet ja johtopäätökset. markdown-rajapinta palauttaa koko näkyvän keskusteluketjun yhtenä Markdown-asiakirjana. Äänten perustelut sisältyvät vastaukseen vain, jos API-avaimen käyttäjä saa nähdä ne.
Kaikki keskusteluketjujen rajapinnat noudattavat samoja käyttöoikeuksia kuin Loomion käyttöliittymä. API-avain ei anna pääsyä keskusteluketjuun, jota käyttäjä ei normaalisti voi avata.
Muokkaa keskustelua
Muokkaa keskustelua API-avaimen käyttäjänä. Samat käyttöoikeudet pätevät kuin Loomiossa: käyttäjällä on oltava oikeus muokata kyseistä keskustelua.
PATCH /api/b2/discussions/:id
Parametrit
| Nimi | Kuvaus |
|---|---|
title |
Päivitetty otsikko |
description |
Päivitetyt taustatiedot |
description_format |
md tai html, valinnainen, oletus md |
recipient_audience |
group tai null. Jos arvo on group, koko ryhmä saa ilmoituksen muokkauksesta |
recipient_user_ids |
Niiden käyttäjien tunnukset taulukkona, joille lähetetään ilmoitus tai kutsu keskusteluketjuun |
recipient_emails |
Keskusteluketjuun kutsuttavien henkilöiden sähköpostiosoitteet taulukkona |
recipient_message |
Sähköpostikutsuun lisättävä viesti |
Esimerkki
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
Poista keskustelu pehmeästi
Poista keskustelu pehmeästi API-avaimen käyttäjänä. Keskustelu poistuu käytöstä, mutta sen tietue säilyy.
DELETE /api/b2/discussions/:id
Esimerkki
curl -H 'Authorization: Bearer YOUR_API_KEY' -X DELETE https://www.loomio.com/api/b2/discussions/123
Luo kommentti
Luo kommentti keskusteluun API-avaimen käyttäjänä.
POST /api/b2/comments
Parametrit
| Nimi | Kuvaus |
|---|---|
discussion_id |
Kokonaisluku, pakollinen. Sen keskustelun tunnus, johon kommentti lisätään |
body |
Kommentin teksti, pakollinen, ellei liitettä ole annettu |
body_format |
md tai html, valinnainen, oletus md |
Esimerkki
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
Muokkaa kommenttia
Muokkaa kommenttia API-avaimen käyttäjänä. Samat käyttöoikeudet pätevät kuin Loomiossa: käyttäjällä on oltava oikeus muokata kyseistä kommenttia.
PATCH /api/b2/comments/:id
Parametrit
| Nimi | Kuvaus |
|---|---|
body |
Päivitetty kommentin teksti |
body_format |
md tai html, valinnainen, oletus md |
Esimerkki
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
Poista kommentti pehmeästi
Poista kommentti pehmeästi API-avaimen käyttäjänä. Kommentti poistuu käytöstä ja sen teksti piilotetaan, mutta kommentin tietue säilyy.
DELETE /api/b2/comments/:id
Esimerkki
curl -H 'Authorization: Bearer YOUR_API_KEY' -X DELETE https://www.loomio.com/api/b2/comments/123
Luo kysely
Luo kysely API-avaimen käyttäjänä.
POST /api/b2/polls
Parametrit
| Nimi | Kuvaus |
|---|---|
group_id |
Kokonaisluku, valinnainen, oletusarvo null. Sen ryhmän tunnus, johon kysely luodaan. Jos annat discussion_id-arvon, group_id ohitetaan |
discussion_id |
Kokonaisluku, valinnainen, oletusarvo null. Sen keskusteluketjun tunnus, johon kysely lisätään |
title |
Merkkijono, pakollinen. Kyselyn otsikko |
poll_type |
Merkkijono, pakollinen. Arvot: proposal, poll, count, score, ranked_choice, meeting, dot_vote |
details |
Merkkijono, valinnainen. Kyselyn sisältöteksti |
details_format |
Merkkijono, valinnainen, oletusarvo md. Arvot: md tai html |
options |
Merkkijonojen taulukko. Jos poll_type on proposal, kelvolliset arvot ovat agree, disagree, abstain ja block. Jos poll_type on meeting, anna ISO 8601 -muotoisia päivämääriä tai päivämääriä ja kellonaikoja. Muissa kyselytyypeissä mikä tahansa merkkijono kelpaa |
closing_at |
ISO 8601 -muotoinen merkkijono tai null, oletusarvo null. Esimerkki: 2026-09-01T12:00:00Z. Jos arvo on null, äänestäminen on pois käytöstä ja kysely katsotaan keskeneräiseksi |
specified_voters_only |
Totuusarvo, valinnainen, oletusarvo false. Jos arvo on true, vain nimetyt henkilöt voivat äänestää. Jos arvo on false, kaikki ryhmän jäsenet kutsutaan äänestämään |
hide_results |
Merkkijono, valinnainen, oletusarvo off. Arvot: off, until_vote, until_closed |
shuffle_options |
Totuusarvo, oletusarvo false. Näytä vaihtoehdot äänestäjille satunnaisessa järjestyksessä |
anonymous |
Totuusarvo, valinnainen, oletusarvo false. Piilota äänestäjien henkilöllisyydet |
recipient_audience |
group tai null, valinnainen, oletusarvo null. Jos arvo on group, koko ryhmälle lähetetään ilmoitus |
notify_on_closing_soon |
Merkkijono, valinnainen, oletusarvo nobody. Arvot: nobody, author, undecided_voters, voters |
recipient_user_ids |
Ilmoitettavien tai kutsuttavien käyttäjien tunnusten taulukko |
recipient_emails |
Äänestämään kutsuttavien henkilöiden sähköpostiosoitteiden taulukko |
recipient_message |
Sähköpostikutsuun lisättävä viesti |
notify_recipients |
Totuusarvo, oletusarvo false. Jos arvo on false, henkilöt lisätään lähettämättä ilmoituksia. Jos arvo on true, kaikki tällä pyynnöllä kutsutut saavat ilmoituksen sähköpostitse |
Esimerkki
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
Näytä kysely
Hae kysely sen numeerisella tunnuksella tai merkkijonomuotoisella avaimella.
GET /api/b2/polls/:id
Esimerkki
curl -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/polls/abc123
Listaa kyselyt
Listaa ryhmän kyselyt, jotka näkyvät API-avaimen käyttäjälle. Julkisesti näkyvän ryhmän julkiset kyselyt voi listata myös henkilö, joka ei kuulu ryhmään. Yksityiset kyselyt näkyvät vain käyttäjille, joilla on oikeus lukea niitä Loomiossa. Vastaus sisältää kunkin näkyvän kyselyn nykyisen lopputuloksen, joten voit käyttää arvoa status=closed päätettyjen ehdotusten listaamiseen.
GET /api/b2/polls
Parametrit
| Nimi | Kuvaus |
|---|---|
group_id |
Kokonaisluku, pakollinen. Sen ryhmän tunnus, jonka kyselyt listataan |
status |
Merkkijono, valinnainen, oletusarvo active. Arvot: active, closed, all |
limit |
Kokonaisluku, valinnainen, oletusarvo 50. Sivun koko |
offset |
Kokonaisluku, valinnainen, oletusarvo 0. Sivutuksen aloituskohta |
Vanhat parametrit per ja from toimivat edelleen parametrien limit ja offset vaihtoehtoisina niminä.
Esimerkki
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/polls?group_id=123'
Muokkaa kyselyä
Muokkaa kyselyä API-avaimen käyttäjänä. Samat käyttöoikeudet pätevät kuin Loomiossa: käyttäjällä on oltava oikeus muokata kyseistä kyselyä.
PATCH /api/b2/polls/:id
Parametrit
| Nimi | Kuvaus |
|---|---|
title |
Päivitetty otsikko |
details |
Päivitetty kyselyn kuvaus |
details_format |
md tai html, valinnainen, oletusarvo md |
options |
Päivitetyt vaihtoehtojen nimet. Vaihtoehtojen muuttaminen voi vaikuttaa annettuihin ääniin kyselyn tilan mukaan |
closing_at |
ISO 8601 -muotoinen merkkijono tai null |
recipient_audience |
group tai null. Jos arvo on group, koko ryhmälle lähetetään ilmoitus |
recipient_user_ids |
Ilmoitettavien tai kutsuttavien käyttäjien tunnusten taulukko |
recipient_emails |
Äänestämään kutsuttavien henkilöiden sähköpostiosoitteiden taulukko |
recipient_message |
Sähköpostikutsuun lisättävä viesti |
Esimerkki
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
Poista kysely pehmeästi
Poista kysely pehmeästi API-avaimen käyttäjänä. Kysely poistuu käytöstä, mutta sen tietue säilyy.
DELETE /api/b2/polls/:id
Esimerkki
curl -H 'Authorization: Bearer YOUR_API_KEY' -X DELETE https://www.loomio.com/api/b2/polls/123
Listaa jäsenyydet
Listaa jäsenyydet, jotka näkyvät API-avaimen käyttäjälle. Ryhmän jäsenet voivat nähdä jäsenten nimet, tunnukset, tittelit ja roolit. Sähköpostiosoitteet näkyvät vain API-avaimen käyttäjän omalta tililtä tai silloin, kun API-avaimen käyttäjä on ryhmän ylläpitäjä.
GET /api/b2/memberships
Parametrit
| Nimi | Kuvaus |
|---|---|
group_id |
Kokonaisluku, pakollinen. Sen ryhmän tunnus, jonka jäsenyydet listataan |
Esimerkki
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/memberships?group_id=123'
Hallinnoi jäsenyyksiä
Lähetä luettelo sähköpostiosoitteista. Uudet osoitteet kutsutaan ryhmään. Toisin kuin jäsenyyksien listaaminen, tämä toiminto edellyttää ryhmän ylläpitäjän oikeuksia.
POST /api/b2/memberships
Parametrit
| Nimi | Kuvaus |
|---|---|
group_id |
Kokonaisluku, pakollinen. Sen ryhmän tunnus, jonka jäsenyyksiä hallinnoidaan |
emails |
Merkkijonojen taulukko, pakollinen. Ryhmään kutsuttavien henkilöiden sähköpostiosoitteet |
remove_absent |
Totuusarvo. Jos arvo on true, ryhmästä poistetaan kaikki, joiden sähköpostiosoite ei ole luettelossa |
Esimerkki
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
Jos annat arvon remove_absent=1, kaikki ryhmän jäsenet, joita ei ole luettelossa, poistetaan ryhmästä. Ole varovainen: voit poistaa ryhmästäsi kaikki jäsenet.
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
Vastaus on olio, jossa on {added_emails: ["person@added.com"], removed_emails: ["person@removed.com"]}.