Loomion käyttäjän API:n dokumentaatio
/api/b2 on käyttäjille tarkoitettu API Loomio-integraatioita varten. Se käyttää käyttäjätilin API-avainta, ja jokainen toiminto suoritetaan kyseisenä käyttäjänä.
Ryhmiin kohdistuvat toiminnot käyttävät API-avaimen käyttäjän jäsenyyksiä ja ryhmäkohtaisia käyttöoikeuksia. Loomio-asennuksen ylläpitäjän asema ei laajenna API-avaimen pääsyä ryhmiin tai sisältöön. Käytä palvelimen API:a asennustason hallintaan.
Käytä sen Loomio-käyttäjätilin API-avainta, joka suorittaa toiminnot. Erillinen bottitili on hyödyllinen, kun integraatiota ei pidä kutsua kyselyihin tai sen ei pidä saada ilmoituksia.
Kirjautuneet käyttäjät löytävät API-avaimensa ja ryhmien tunnukset API-käyttöoikeuksien sivulta.
Lähetä API-avain Authorization: Bearer -otsakkeessa. Kyselymerkkijonoissa olevat API-avaimet hylätään, koska URL-osoitteet voivat tallentua välityspalvelimiin ja käyttölokeihin.
Todennuksen muutos
API-avain hyväksyttiin aiemmin URL-osoitteen api_key-parametrina. Pyynnöt, joissa käytetään ?api_key=YOUR_API_KEY, eivät enää toimi. Käytä sen sijaan HTTP:n Authorization-otsaketta:
Authorization: Bearer YOUR_API_KEY
Esimerkeissä käytetään arvoja YOUR_API_KEY, ryhmän tunnusta 123 ja osoitetta https://www.loomio.com/. Korvaa ne omalla API-avaimellasi, ryhmän tunnuksella ja Loomio-asennuksesi URL-osoitteella.
Vastauksen koko ja liittyvät tietueet
Käyttäjän API:n vastaukset käyttävät yhdistelmämuotoa: ensisijaisten tietueiden mukana palautetaan liittyviä tietueita, kuten aiheita, ryhmiä, käyttäjiä, kyselyjä ja reaktioita. Näin asiakasohjelma voi täyttää paikallisen tietuevaraston yhdellä pyynnöllä, mutta vastaus voi sisältää enemmän tietoa kuin yksinkertainen integraatio tarvitsee.
Anna compact=1, jos haluat jättää pois paljon 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 hallita poissulkemista tarkemmin, anna exclude_types ja 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. Poissulkeminen koskee liittyviä tietueita, ei rajapintapisteeltä pyydettyä ensisijaista resurssia.
Kokoelmavastaukset sisältävät kentän meta.total, kun kokoelman tarkka koko on määritelty. Kokonaismäärä lasketaan ennen parametrien limit ja offset soveltamista. Rajapintapisteet, kuten haku, jotka palauttavat tarkoituksella rajatun tulosjoukon, jättävät kentän meta.total pois sen sijaan, että palauttaisivat arvon null.
Rajapintapisteiden yhteenveto
| Metodi | Rajapintapiste | Tarkoitus |
|---|---|---|
GET |
/api/b2/groups |
Listaa API-avaimen käyttäjän ryhmät |
GET |
/api/b2/groups/:id_or_key_or_handle |
Hae näkyvissä oleva ryhmä |
GET |
/api/b2/reports |
Luo osallistumisraportti |
GET |
/api/b2/search |
Hae näkyvissä olevia keskusteluja, kommentteja, kyselyjä, ääniä ja johtopäätöksiä |
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 säilyttäen sen tietue |
GET |
/api/b2/threads |
Listaa näkyvissä olevat keskusteluketjut ja itsenäisten kyselyjen 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 säilyttäen sen tietue |
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 säilyttäen sen tietue |
GET |
/api/b2/memberships |
Listaa ryhmän jäsenyydet |
POST |
/api/b2/memberships |
Lisää jäseniä ja poista halutessasi 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
Palauttaa 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 hakuehtoja vastaavat tietueet sivuttamattomassa groups-taulukossa. Mukana ovat pääryhmät ja alaryhmät, myös ryhmät, joiden tilaus ei ole tällä hetkellä aktiivinen. Tarkista enabled-kenttä, kun integraation pitää toimia vain käytössä olevissa ryhmissä.
Keskeisiä ryhmän kenttiä ovat:
| Kenttä | Kuvaus |
|---|---|
id |
Ryhmän numeerinen tunnus, jota muut käyttäjän API:n rajapintapisteet käyttävät |
key |
Pysyvä lyhyt avain, jota käytetään Loomion URL-osoitteissa |
handle |
Ryhmän helppolukuinen tunniste |
name |
Ryhmän nimi |
full_name |
Ryhmän nimi pääryhmän konteksti mukaan lukien |
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 kyselyjen määrä |
subgroups_count |
Alaryhmien määrä |
Vastaus voi sisältää myös muita ryhmän asetuksia, liittyviä pääryhmän tietueita ja API-käyttäjän jäsenyyksiä. Asiakasohjelmien tulee jättää huomiotta kentät, joita ne eivät käytä.
Hae ryhmä
Palauttaa yhden API-avaimen käyttäjälle näkyvän ryhmän.
GET /api/b2/groups/:id_or_key_or_handle
Tunniste voi olla ryhmän numeerinen tunnus, avain tai helppolukuinen tunniste.
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 listauksen rajapintapiste. Jos pyyntö koskee ryhmää, johon API-avaimen käyttäjällä ei ole pääsyä, palautetaan käyttöoikeusvirhe.
Webhookit
Käyttäjän API perustuu pyyntöihin: integraatio kutsuu Loomiota, kun se haluaa lukea tai muuttaa tietoja. Ryhmän webhook mahdollistaa tiedon lähettämisen toiseen suuntaan. Loomio lähettää valitut ryhmän tapahtumat rajapintapisteeseesi niiden tapahtuessa, joten integraation ei tarvitse kysellä muutoksia REST API:sta.
Webhookit määritetään ryhmäkohtaisesti, ja niiden hallinta vaatii 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 viestimuodon rajapintapisteesi hyväksyy. Käytä yleiskäyttöiselle rajapintapisteelle Mattermost/Markdown-muotoa.
- Anna nimi ja kohteen URL-osoite.
- Valitse tapahtumat, jotka Loomion tulee 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ä kohde ratkeaa julkiseksi osoitteeksi, ja estää pyynnöt paikallisiin tai yksityisiin verkko-osoitteisiin.
Agentit ja muut integraatiot voivat myös hallita webhookeja alla kuvattujen chatbot-rajapintapisteiden kautta käyttäen Bearer-todennusta. Resurssin nimi on chatbots, jotta se on yhteensopiva Loomion chat-integraatioiden kanssa, mutta se kattaa myös yleiset lähtevät webhookit.
Listaa webhookit
Palauttaa 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ää ryhmän tavallisille 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 nämä kentät:
| Kenttä | Kuvaus |
|---|---|
id |
Integraation tunnus, jota käytetään päivityksiin ja poistamiseen |
group_id |
Tapahtumat vastaanottava ryhmä |
name |
Integraation hallinnollinen nimi |
kind |
webhook lähtevälle webhookille tai matrix Matrix-integraatiolle |
webhook_kind |
Viestimuoto: 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-arvon määrittämän ryhmän ylläpitäjä. Ennen tallentamista tarkistetaan, että kohde on julkinen URL-osoite.
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-arvoa.
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ä Markdown-yhteensopiva testiviesti kohteeseen ennen sen 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 toimitukset. Se ei poista mitään Loomio-ryhmän sisältöä.
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 sulkemisaika lähestyy |
poll_expired |
Kyselyn sulkemisaika saavutetaan |
poll_closed_by_user |
Henkilö sulkee kyselyn manuaalisesti |
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 tilaamansa tapahtumat kyseisestä ryhmästä. Ihmiset voivat myös valita integraation erikseen jakaessaan sisältöä tai lähettäessään tiettyjä ilmoituksia, vaikka vastaavaa automaattista tapahtumaa ei olisi valittu.
HTTP-toimitus
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, mukaan lukien 204 No Content, tulkitaan onnistuneeksi. Webhookin vastaanottajan tulee vastata nopeasti, käsitellä pidempään kestävät tehtävät asynkronisesti ja sietää päällekkäisiä tai väärässä järjestyksessä saapuvia toimituksia.
Loomio ei tällä hetkellä lisää webhook-allekirjoitusta, jaetun salaisuuden sisältävää otsaketta, tapahtumatunnusta tai toimitustunnusta. Käsittele koko kohde-URL-osoitetta tunnistetietona, älä paljasta sitä julkisesti ja sisällytä URL-osoitteeseen tunniste, jota ei voi arvata, jos vastaanottava palvelu tukee sitä. Jos tarvitset vakaan koneluettavan tapahtumarakenteen tai allekirjoitetun toimituksen, käytä webhookia muutosilmoituksena ja hae ajantasaiset tietueet käyttäjän API:n kautta todennettuna.
Viestisisällön muodot
Webhookien viestisisällöt on tarkoitettu chat-palveluissa esitettäviksi viesteiksi. Ne eivät ole täydellisiä sarjallistettuja Loomio-tietueita. Viestin linkit yksilöivät Loomio-sisällön, jota tapahtuma koskee. Integraatio voi hakea lisätietoja käyttäjän API:n kautta, kun se tarvitsee ajantasaisen tilan rakenteisessa muodossa.
| Integraation muoto | Keskeiset JSON-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 yleinen Markdown-muoto lähettää seuraavan rakenteisen viestirungon:
{
"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 lähettämistä koskevasta asetuksesta ja Loomion versiosta. Vastaanottajan tulee käyttää valitun muodon dokumentoituja ylimmän tason kenttiä sen sijaan, että se jäsentäisi lauseiden sanamuotoja.
Haku
Hae API-avaimen käyttäjälle näkyviä keskusteluja, kommentteja, kyselyitä, ääniä ja johtopäätöksiä. Hakutulokset sisältävät julkista sisältöä myös silloin, kun käyttäjä ei ole kyseisen ryhmän jäsen. Yksityiseen sisältöön sovelletaan ketjun tavallisia näkyvyyssääntöjä.
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ä arvoa 0 suorille keskusteluille |
type |
Rajaa tulokset yhteen tyyppiin: Discussion, Comment, Poll, Stance tai Outcome |
types |
Pilkuilla erotettu luettelo hakutulosten tyypeistä |
tag |
Rajaa tulokset ketjuihin, joilla on tämä tunniste |
author_id |
Rajaa tulokset yhden tekijän sisältöön. Ilman query-parametria palauttaa kyseisen tekijän viimeaikaisen näkyvän toiminnan |
order |
Aseta arvoksi authored_at_desc, jos haluat järjestää hakua vastaavan sisällön luomisajan 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 hakutulos yksilöi hakua vastaavan tietueen ja sen näkyvän kontekstin kentillä, joihin kuuluvat searchable_type, searchable_id, highlight, group_id, group_name, discussion_key, poll_key, author_id, author_name, authored_at ja tags. Kentät, jotka eivät koske kyseistä hakutulosta, saavat arvon null.
Osallistumisraportti
Palauttaa 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 henkilökohtaisten toimintatietojen hakemiseen |
group_scope |
custom tai my. Vanha arvo all käsitellään arvona my, koska käyttäjän API-avaimet eivät koskaan anna koko instanssin kattavaa käyttöoikeutta |
group_ids |
Pilkuilla erotetut ryhmätunnukset, kun group_scope=custom. Sellaisten ryhmien tunnukset ohitetaan, joihin API-käyttäjä ei kuulu |
start_month |
Ensimmäinen mukaan otettava kuukausi muodossa YYYY-MM. Oletuksena 12 kuukautta sitten |
end_month |
Viimeinen mukaan otettava kuukausi muodossa YYYY-MM. Oletuksena kuluva kuukausi |
interval |
base-osion aikaväli: day, week, month tai year |
member_type |
Aseta arvoksi delegate, kun section=users, jos haluat palauttaa vain nykyiset edustajat |
Henkilö on edustaja, jos hänellä on aktiivinen edustajajäsenyys jossakin valituista ryhmistä. Hänen toimintansa määrät lasketaan yhteen kaikista valituista ryhmistä. Edustajien rivit palautetaan myös silloin, kun kaikki toimintamäärät ovat nollia. Määrät kattavat ketjut, kommentit, kyselyt, äänet, johtopäätökset ja reaktiot. Ne eivät ole äänestämisen osallistumisasteita. Käyttäjärivit sisältävät myös tunnistettujen äänestyslippujen määrät: myönnetyt, käytetyt ja käyttämättä jääneet. Anonyymit kyselyt jätetään pois kaikista henkilökohtaisista äänestysmääristä. all_votes_cast on tosi vain, kun vähintään yksi äänestyslippu on myönnetty ja kaikki myönnetyt äänestysliput on käytetty.
API soveltaa samoja ryhmien näkyvyyssääntöjä kuin sovelluksen 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äydelliset toimintatietorivit:
{
"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 ketju luodaan |
title |
Ketjun otsikko, pakollinen |
description |
Ketjun konteksti, valinnainen |
description_format |
Joko md tai html, valinnainen, oletuksena md |
recipient_audience |
group tai null. Jos arvo on group, koko ryhmälle ilmoitetaan uudesta ketjusta |
recipient_user_ids |
Taulukko niiden käyttäjien tunnuksista, joille ilmoitetaan ketjusta tai jotka kutsutaan siihen |
recipient_emails |
Taulukko ketjuun kutsuttavien henkilöiden sähköpostiosoitteista |
recipient_message |
Sähköpostikutsuun sisällytettä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
Näytä keskustelu
Hae keskustelu käyttämällä keskustelun tunnusta (kokonaisluku) tai avainta (merkkijono).
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 näkyvät API-avaimen käyttäjälle. Julkisesti näkyvän ryhmän julkiset keskustelut voi listata myös käyttäjä, joka ei ole ryhmän jäsen. Yksityiset keskustelut näkyvät vain käyttäjille, joilla on oikeus lukea niitä 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. Sivutuksessa ohitettavien tietueiden määrä |
Vanhojen versioiden yhteensopivuus: per ja from hyväksytään parametrien limit ja offset vaihtoehtoisina niminä, ja ne toimivat jatkossakin.
Esimerkki
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/discussions?group_id=123'
Listaa ketjut
Listaa API-avaimen käyttäjälle näkyvät keskustelu- ja kyselyketjut viimeisimmän toiminnan mukaan järjestettyinä. Ketjun tunnus on sen topic_id.
GET /api/b2/threads
Parametrit
| Nimi | Kuvaus |
|---|---|
limit |
Kokonaisluku, valinnainen, oletus 50. Sivun koko |
offset |
Kokonaisluku, valinnainen, oletus 0. Sivutuksessa ohitettavien tietueiden määrä |
Esimerkki
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/threads?limit=50&offset=0'
Lue ketju
Lue ketju, sen järjestetty tapahtumavirta tai sen koko näkyvä sisältö Markdown-dokumenttina.
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-päätepiste palauttaa järjestetyn tapahtumavirran, joka sisältää näkyvät kommentit, kyselyt, äänet ja johtopäätökset. markdown-päätepiste palauttaa koko näkyvän ketjun yhtenä Markdown-dokumenttina. Äänten perustelut sisällytetään vain, jos ne näkyvät API-avaimen käyttäjälle.
Kaikki ketjujen päätepisteet noudattavat samoja käyttöoikeuksia kuin Loomion käyttöliittymä. API-avain ei anna pääsyä ketjuun, 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äivitetty konteksti |
description_format |
Joko md tai html, valinnainen, oletus md |
recipient_audience |
group tai null. Jos arvo on group, koko ryhmälle ilmoitetaan muokkauksesta |
recipient_user_ids |
Taulukko niiden käyttäjien tunnuksista, joille ilmoitetaan tai jotka kutsutaan ketjuun |
recipient_emails |
Taulukko ketjuun kutsuttavien henkilöiden sähköpostiosoitteista |
recipient_message |
Sähköpostikutsuun sisällytettä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 säilyttäen tietue
Poista keskustelu API-avaimen käyttäjänä. Tämä poistaa keskustelun käytöstä mutta säilyttää keskustelun tietueen.
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. Kommentoitavan keskustelun tunniste |
body |
Kommentin sisältö, pakollinen, ellei mukana ole liitettä |
body_format |
Joko 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 sisältö |
body_format |
Joko 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 säilyttäen tietue
Poista kommentti API-avaimen käyttäjänä. Tämä poistaa kommentin käytöstä, piilottaa sen sisällön ja säilyttää kommentin tietueen.
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, oletus null. Kyselyn ryhmän tunniste. Jos discussion_id annetaan, group_id jätetään huomiotta |
discussion_id |
Kokonaisluku, valinnainen, oletus null. Keskusteluketjun tunniste, 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 leipäteksti |
details_format |
Merkkijono, valinnainen, oletus md. Arvot: md tai html |
options |
Merkkijonotaulukko. Jos poll_type on proposal, kelvolliset arvot ovat agree, disagree, abstain, block. Jos poll_type on meeting, anna päivämäärät tai päivämäärät ja kellonajat ISO 8601 -muotoisina merkkijonoina. Muissa kyselytyypeissä mikä tahansa merkkijono kelpaa |
closing_at |
ISO 8601 -muotoinen merkkijono tai null, oletus 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, oletus false. Jos arvo on true, vain määritetyt henkilöt voivat äänestää. Jos arvo on false, kaikki ryhmän jäsenet kutsutaan äänestämään |
hide_results |
Merkkijono, valinnainen, oletus off. Arvot: off, until_vote, until_closed |
shuffle_options |
Totuusarvo, oletus false. Näytä vaihtoehdot äänestäjille satunnaisessa järjestyksessä |
anonymous |
Totuusarvo, valinnainen, oletus false. Piilota äänestäjien henkilöllisyydet |
recipient_audience |
group tai null, valinnainen, oletus null. Jos arvo on group, koko ryhmälle lähetetään ilmoitus |
notify_on_closing_soon |
Merkkijono, valinnainen, oletus nobody. Arvot: nobody, author, undecided_voters, voters |
recipient_user_ids |
Taulukko niiden käyttäjien tunnisteista, joille lähetetään ilmoitus tai kutsu |
recipient_emails |
Taulukko äänestämään kutsuttavien henkilöiden sähköpostiosoitteista |
recipient_message |
Sähköpostikutsuun sisällytettävä viesti |
notify_recipients |
Totuusarvo, oletus false. Jos arvo on false, lisää henkilöt lähettämättä ilmoituksia. Jos arvo on true, kaikki tässä pyynnössä kutsutut saavat sähköposti-ilmoituksen |
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 kokonaislukumuotoisella tunnisteella 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 ole ryhmän jäsen. Yksityiset kyselyt näkyvät vain käyttäjille, jotka voivat lukea niitä Loomiossa. Vastaus sisältää kunkin näkyvän kyselyn nykyisen johtopäätöksen, joten voit listata ratkaistut ehdotukset parametrilla status=closed.
GET /api/b2/polls
Parametrit
| Nimi | Kuvaus |
|---|---|
group_id |
Kokonaisluku, pakollinen. Sen ryhmän tunniste, jonka kyselyt listataan |
status |
Merkkijono, valinnainen, oletus active. Arvot: active, closed, all |
limit |
Kokonaisluku, valinnainen, oletus 50. Sivun koko |
offset |
Kokonaisluku, valinnainen, oletus 0. Sivutuksessa ohitettavien tietueiden määrä |
Vanhojen parametrien tuki: per ja from hyväksytään parametrien limit ja offset vaihtoehtoisina niminä, ja ne toimivat jatkossakin.
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äivitetyt kyselyn tiedot |
details_format |
Joko md tai html, valinnainen, oletus md |
options |
Päivitetyt vaihtoehtojen nimet. Vaihtoehtojen muuttaminen voi vaikuttaa annettuihin ääniin kyselyn tilasta riippuen |
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 |
Taulukko niiden käyttäjien tunnisteista, joille lähetetään ilmoitus tai kutsu |
recipient_emails |
Taulukko äänestämään kutsuttavien henkilöiden sähköpostiosoitteista |
recipient_message |
Sähköpostikutsuun sisällytettä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 loogisesti
Poista kysely loogisesti API-avaimen käyttäjänä. Tämä merkitsee kyselyn poistetuksi mutta säilyttää sen tietueen.
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 API-avaimen käyttäjälle näkyvät jäsenyydet. Ryhmän jäsenet voivat lukea jäsenten nimet, tunnisteet, nimikkeet ja roolit. Sähköpostiosoitteet sisältyvät tietoihin vain API-avaimen käyttäjän oman tilin osalta 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 tunniste, jonka jäsenyydet listataan |
Esimerkki
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/memberships?group_id=123'
Hallitse jäsenyyksiä
Lähetä luettelo sähköpostiosoitteista. Kaikki uudet sähköpostiosoitteet 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 tunniste, jonka jäsenyyksiä hallitaan |
emails |
Merkkijonotaulukko, pakollinen. Ryhmään kutsuttavien henkilöiden sähköpostiosoitteet |
remove_absent |
Totuusarvo. Jos arvo on true, poista ryhmästä 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 parametrin remove_absent=1, kaikki ryhmän jäsenet, jotka eivät ole luettelossa, poistetaan ryhmästä. Ole varovainen, sillä saatat poistaa kaikki ryhmäsi 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
Tämä palauttaa objektin, jonka sisältö on {added_emails: ["person@added.com"], removed_emails: ["person@removed.com"]}.