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.

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ä:

  1. Avaa ryhmä.
  2. Avaa ryhmän valikko ja valitse Chat-integraatiot.
  3. Lisää integraatio, jonka viestimuodon rajapintapisteesi hyväksyy. Käytä yleiskäyttöiselle rajapintapisteelle Mattermost/Markdown-muotoa.
  4. Anna nimi ja kohteen URL-osoite.
  5. Valitse tapahtumat, jotka Loomion tulee lähettää automaattisesti.
  6. 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.

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"]}.

Tämä sivu on konekäännetty. Jos jokin sana on väärä tai epäselvä, lähetä sähköpostia osoitteeseen contact@loomio.org, niin korjaamme sen.