Documentatie van de Loomio Gebruikers-API
/api/b2 is de gebruikersgerichte API voor integraties met Loomio. Deze gebruikt de API-sleutel van een gebruikersaccount, en elke actie wordt uitgevoerd als die gebruiker.
Groepsbewerkingen gebruiken de lidmaatschappen en groepsrechten van de gebruiker van de API-sleutel. De status van instantiebeheerder geeft een API-sleutel geen ruimere toegang tot groepen of inhoud; gebruik de Server-API voor beheer op instantieniveau.
Gebruik de API-sleutel van het Loomio-gebruikersaccount dat de acties zal uitvoeren. Een apart botaccount is handig als een integratie geen uitnodigingen voor peilingen of meldingen moet ontvangen.
Ingelogde gebruikers kunnen hun API-sleutel en groeps-ID's vinden op de pagina voor API-toegang.
Stuur de API-sleutel mee in een Authorization: Bearer-header. API-sleutels in querystrings worden geweigerd omdat URL's kunnen worden vastgelegd door proxy's en toegangslogboeken.
Wijziging in authenticatie
De API-sleutel werd voorheen geaccepteerd als URL-parameter api_key. Verzoeken met ?api_key=YOUR_API_KEY werken niet meer. Gebruik in plaats daarvan de HTTP-header Authorization:
Authorization: Bearer YOUR_API_KEY
De voorbeelden gebruiken YOUR_API_KEY, groeps-ID 123 en https://www.loomio.com/. Vervang deze door jouw API-sleutel, groeps-ID en de URL van jouw Loomio-installatie.
Responsgrootte en gerelateerde records
Responsen van de Gebruikers-API gebruiken een samengesteld formaat: de primaire records worden aangevuld met gerelateerde records zoals topics, groepen, gebruikers, peilingen en emoji-reacties. Hiermee kan een client met één verzoek een lokale recordopslag vullen, maar de respons kan meer gegevens bevatten dan een eenvoudige integratie nodig heeft.
Geef compact=1 mee om omvangrijke gerelateerde topics, groepen, hoofdgroepen, lidmaatschappen, emoji-reacties, labels en vertalingen weg te laten. Primaire records en de gerelateerde records die nodig zijn om hun inhoud te interpreteren, blijven aanwezig.
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/threads/123/items?compact=1'
Voor directe controle geef je exclude_types mee met recordtypen in het enkelvoud, gescheiden door spaties. Zo laat exclude_types=group reaction gerelateerde groepen en emoji-reacties weg. Veelgebruikte waarden zijn topic, group, parent, membership, reaction, tag, translation, user, discussion, poll, poll_option, stance, stance_choice, outcome en topic_item. Uitsluitingen gelden voor gerelateerde records, niet voor de primaire resource die via het endpoint wordt opgevraagd.
Responsen met collecties bevatten meta.total wanneer een exacte collectiegrootte is gedefinieerd. Het totaal wordt berekend voordat limit en offset worden toegepast. Endpoints zoals zoeken, die bewust een begrensde verzameling resultaten teruggeven, laten meta.total weg in plaats van null terug te geven.
Overzicht van endpoints
| Methode | Endpoint | Doel |
|---|---|---|
GET |
/api/b2/groups |
Groepen van de gebruiker van de API-sleutel opvragen |
GET |
/api/b2/groups/:id_or_key_or_handle |
Een zichtbare groep ophalen |
GET |
/api/b2/reports |
Een participatierapport genereren |
GET |
/api/b2/search |
Zichtbare discussies, reacties, peilingen, stemmen en conclusies doorzoeken |
POST |
/api/b2/discussions |
Een discussie aanmaken |
GET |
/api/b2/discussions/:id |
Een discussie ophalen |
GET |
/api/b2/discussions |
Discussies in een groep opvragen |
PATCH |
/api/b2/discussions/:id |
Een discussie bewerken |
DELETE |
/api/b2/discussions/:id |
Een discussie verwijderen met behoud van het record |
GET |
/api/b2/threads |
Zichtbare discussiethreads en threads met zelfstandige peilingen opvragen |
GET |
/api/b2/threads/:topic_id |
Een thread ophalen |
GET |
/api/b2/threads/:topic_id/items |
De items in een thread in volgorde ophalen |
GET |
/api/b2/threads/:topic_id/markdown |
Een volledige thread als Markdown ophalen |
POST |
/api/b2/comments |
Een reactie of antwoord aanmaken |
PATCH |
/api/b2/comments/:id |
Een reactie bewerken |
DELETE |
/api/b2/comments/:id |
Een reactie verwijderen met behoud van het record |
POST |
/api/b2/polls |
Een peiling aanmaken |
GET |
/api/b2/polls/:id |
Een peiling ophalen |
GET |
/api/b2/polls |
Peilingen in een groep opvragen |
PATCH |
/api/b2/polls/:id |
Een peiling bewerken |
DELETE |
/api/b2/polls/:id |
Een peiling verwijderen met behoud van het record |
GET |
/api/b2/memberships |
Lidmaatschappen van een groep opvragen |
POST |
/api/b2/memberships |
Leden toevoegen en desgewenst leden verwijderen die niet in de lijst staan |
GET |
/api/b2/chatbots |
Chatintegraties en webhooks van een groep opvragen |
POST |
/api/b2/chatbots |
Een chatintegratie of webhook aanmaken |
PATCH |
/api/b2/chatbots/:id |
Een chatintegratie of webhook bijwerken |
DELETE |
/api/b2/chatbots/:id |
Een chatintegratie of webhook verwijderen |
POST |
/api/b2/chatbots/check |
Een verbindingstest voor een webhook versturen |
Groepen
Groepen opvragen
Geeft de groepen terug waarin de gebruiker van de API-sleutel een actief lidmaatschap heeft.
GET /api/b2/groups
curl -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/groups
De respons bevat alle overeenkomende records in een groups-array zonder paginering. Deze bevat hoofdgroepen en subgroepen, ook groepen waarvan het abonnement momenteel niet actief is. Controleer het veld enabled als een integratie alleen met ingeschakelde groepen moet werken.
Belangrijke groepsvelden zijn:
| Veld | Beschrijving |
|---|---|
id |
Numerieke groeps-ID die andere endpoints van de Gebruikers-API gebruiken |
key |
Vaste korte sleutel die in Loomio-URL's wordt gebruikt |
handle |
Leesbare identificatienaam van de groep |
name |
Groepsnaam |
full_name |
Groepsnaam inclusief de context van de hoofdgroep |
parent_id |
Numerieke ID van de hoofdgroep voor een subgroep, anders null |
enabled |
Of de groep en het abonnement actief zijn |
memberships_count |
Aantal actieve en nog niet geaccepteerde lidmaatschappen |
accepted_memberships_count |
Aantal geaccepteerde lidmaatschappen |
pending_memberships_count |
Aantal nog niet geaccepteerde uitnodigingen |
admin_memberships_count |
Aantal groepsbeheerders |
delegates_count |
Aantal afgevaardigden |
discussions_count |
Aantal discussies rechtstreeks in de groep |
polls_count |
Aantal peilingen rechtstreeks in de groep |
subgroups_count |
Aantal subgroepen |
De respons kan aanvullende groepsinstellingen, gerelateerde records van hoofdgroepen en de lidmaatschappen van de API-gebruiker bevatten. Clients moeten velden die ze niet gebruiken negeren.
Een groep ophalen
Geeft één groep terug die zichtbaar is voor de gebruiker van de API-sleutel.
GET /api/b2/groups/:id_or_key_or_handle
De identificatie kan de numerieke ID, sleutel of identificatienaam van de groep zijn.
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
De respons bevat de groep in de groups-array en gebruikt dezelfde velden als het endpoint voor het opvragen van groepen. Een verzoek voor een groep waartoe de gebruiker van de API-sleutel geen toegang heeft, geeft een fout wegens onvoldoende rechten terug.
Webhooks
De Gebruikers-API werkt met verzoeken: een integratie roept Loomio aan wanneer deze gegevens wil lezen of wijzigen. Een groepswebhook zorgt voor verzending in de andere richting. Loomio stuurt geselecteerde groepsgebeurtenissen naar jouw endpoint zodra ze plaatsvinden, zodat een integratie de REST-API niet herhaaldelijk hoeft op te vragen om wijzigingen te vinden.
Webhooks worden per groep ingesteld en vereisen groepsbeheerdersrechten. Je kunt ze beheren via de Loomio-interface:
- Open de groep.
- Open het groepsmenu en selecteer Chatintegraties.
- Voeg de integratie toe die overeenkomt met het payloadformaat dat jouw endpoint accepteert. Gebruik het Mattermost/Markdown-formaat voor een algemeen endpoint.
- Voer een naam en de bestemmings-URL in.
- Selecteer de gebeurtenissen die Loomio automatisch moet versturen.
- Sla de integratie op en gebruik Test verbinding om een testbericht te versturen.
Gebruik een HTTPS-bestemming met een URL die niet te raden is. Loomio vereist dat de bestemming naar een openbaar adres verwijst en blokkeert verzoeken naar lokale of private netwerkadressen.
Agents en andere integraties kunnen webhooks ook beheren via de hieronder beschreven chatbot-endpoints met Bearer-authenticatie. De resource heet chatbots voor compatibiliteit met de chatintegraties van Loomio, maar vertegenwoordigt ook algemene uitgaande webhooks.
Webhooks opvragen
Geeft de chatintegraties terug die voor een groep zijn ingesteld. De gebruiker van de API-sleutel moet beheerder van die groep zijn. De respons bevat bestemmings-URL's en mag daarom niet toegankelijk worden gemaakt voor gewone groepsleden.
GET /api/b2/chatbots?group_id=123
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/chatbots?group_id=123'
De respons bevat een chatbots-array met deze velden:
| Veld | Beschrijving |
|---|---|
id |
Integratie-ID die wordt gebruikt voor bijwerken en verwijderen |
group_id |
Groep die de gebeurtenissen ontvangt |
name |
Naam voor het beheer van de integratie |
kind |
webhook voor een uitgaande webhook of matrix voor een Matrix-integratie |
webhook_kind |
Payloadformaat: markdown, slack, discord, microsoft of webex |
server |
Bestemmings-URL |
event_kinds |
Gebeurtenissen die automatisch worden verstuurd |
notification_only |
Of berichten alleen de titel van de melding bevatten |
Een webhook aanmaken
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
De gebruiker van de API-sleutel moet beheerder zijn van group_id. Voordat de bestemming wordt opgeslagen, wordt gecontroleerd of deze een openbare URL is.
Een webhook bijwerken
PATCH /api/b2/chatbots/:id
Stuur alle velden mee die moeten veranderen. Je kunt de webhook niet naar een andere groep verplaatsen door group_id te wijzigen.
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
Een webhookbestemming testen
Stuur een testbericht dat compatibel is met Markdown naar een bestemming voordat of nadat je de configuratie opslaat.
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
Een webhook verwijderen
DELETE /api/b2/chatbots/:id
curl -X DELETE -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/chatbots/456
Als je de configuratie verwijdert, worden er geen berichten meer afgeleverd. Er wordt geen inhoud uit de Loomio-groep verwijderd.
Gebeurtenistypen
Een webhook kan zich abonneren op deze gebeurtenistypen:
| Gebeurtenis | Wanneer deze wordt verzonden |
|---|---|
new_discussion |
Een discussie wordt gestart |
discussion_edited |
Een discussie wordt bewerkt |
new_comment |
Een reactie wordt geplaatst |
poll_created |
Een peiling wordt gestart |
poll_edited |
Een peiling wordt bewerkt |
poll_closing_soon |
Een peiling nadert het sluitingstijdstip |
poll_expired |
Een peiling bereikt het sluitingstijdstip |
poll_closed_by_user |
Iemand sluit een peiling handmatig |
poll_reopened |
Een peiling wordt heropend |
outcome_created |
Een conclusie wordt gepubliceerd |
outcome_updated |
Een conclusie wordt bijgewerkt |
outcome_review_due |
Het is tijd om een conclusie te evalueren |
stance_created |
Een stem wordt uitgebracht |
stance_updated |
Een stem wordt gewijzigd |
De webhook hoort bij één groep en ontvangt de gebeurtenissen uit die groep waarop hij is geabonneerd. Mensen kunnen de integratie ook expliciet selecteren bij het delen of verzenden van bepaalde meldingen, zelfs als de bijbehorende automatische gebeurtenis niet is geselecteerd.
HTTP-aflevering
Loomio verstuurt een asynchrone HTTP POST naar de ingestelde URL met deze header:
Content-Type: application/json; charset=utf-8
De time-out voor het verzoek is vijf seconden. Een 2xx-antwoord, inclusief 204 No Content, geldt als geslaagd. Diensten die webhooks ontvangen, moeten snel antwoorden, langer durend werk asynchroon verwerken en dubbele afleveringen of afleveringen in een andere volgorde kunnen verwerken.
Loomio voegt momenteel geen webhookhandtekening, header met een gedeeld geheim, gebeurtenis-ID of afleverings-ID toe. Behandel de volledige bestemmings-URL als een toegangsgegeven, maak deze niet openbaar en neem een niet te raden token op in de URL als de ontvangende dienst dat ondersteunt. Als je een stabiel, machineleesbaar gebeurtenisschema of ondertekende aflevering nodig hebt, gebruik de webhook dan als melding van een wijziging en haal de actuele records op via de geauthenticeerde Gebruikers-API.
Payloadformaten
Webhookpayloads zijn berichten die zijn opgemaakt voor weergave in chatdiensten. Het zijn geen volledige geserialiseerde Loomio-records. Links in het bericht verwijzen naar de betreffende Loomio-inhoud; een integratie kan vervolgens de Gebruikers-API gebruiken als deze gestructureerde gegevens over de actuele toestand nodig heeft.
| Integratieformaat | Belangrijkste JSON-velden |
|---|---|
| Mattermost/Markdown | text, icon_url, username |
| Slack | text |
| Discord | content, beperkt tot ongeveer 1.900 tekens |
| Microsoft Teams | @type, @context, themeColor, text, sections |
| Webex | markdown |
Het algemene Markdown-formaat verstuurt bijvoorbeeld een berichtinhoud met deze structuur:
{
"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"
}
De exacte berichttekst hangt af van de gebeurtenis, de taalinstelling van de groep, de instelling om alleen de melding te versturen en de Loomio-versie. Ontvangende diensten moeten uitgaan van de gedocumenteerde velden op het hoogste niveau van het gekozen formaat, in plaats van de formulering van zinnen te ontleden.
Zoeken
Zoek discussies, reacties, peilingen, stemmen en conclusies die zichtbaar zijn voor de gebruiker van de API-sleutel. De zoekresultaten bevatten openbare inhoud, ook als de gebruiker geen lid is van de bijbehorende groep; voor privé-inhoud blijven de normale zichtbaarheidsregels voor topics gelden.
GET /api/b2/search
Parameters
| Naam | Beschrijving |
|---|---|
query |
Zoektekst. Exacte en benaderende overeenkomsten worden ondersteund |
group_id |
Beperk de zoekresultaten tot één zichtbare groep |
org_id |
Beperk de zoekresultaten tot een zichtbare hoofdgroep en de zichtbare subgroepen daarvan. Gebruik 0 voor directe discussies |
type |
Beperk de zoekresultaten tot één type: Discussion, Comment, Poll, Stance of Outcome |
types |
Door komma's gescheiden lijst van resultaattypen |
tag |
Beperk de zoekresultaten tot topics met dit label |
author_id |
Beperk de zoekresultaten tot inhoud van één auteur. Zonder query wordt de recente zichtbare activiteit van die auteur teruggegeven |
order |
Stel in op authored_at_desc om overeenkomende inhoud te sorteren op het tijdstip waarop deze is geschreven |
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/search?query=quarterly+planning&type=Discussion'
Het antwoord bevat een search_results-array. Elk zoekresultaat identificeert het overeenkomende record en de zichtbare context ervan met onder andere de velden searchable_type, searchable_id, highlight, group_id, group_name, discussion_key, poll_key, author_id, author_name, authored_at en tags. Velden die niet van toepassing zijn op een zoekresultaat, zijn null.
Deelnameverslag
Geef dezelfde samengevoegde deelnamegegevens terug die Loomio gebruikt voor het deelnameverslag.
GET /api/b2/reports
Parameters
| Naam | Beschrijving |
|---|---|
section |
Onderdeel van het verslag: base, users of countries. Gebruik users voor activiteit per persoon |
group_scope |
custom of my. De oude waarde all wordt behandeld als my, omdat sleutels voor de Gebruikers-API nooit toegang tot de hele instantie krijgen |
group_ids |
Door komma's gescheiden groeps-ID's wanneer group_scope=custom. ID's van groepen waarvan de API-gebruiker geen lid is, worden genegeerd |
start_month |
Eerste maand die wordt opgenomen, in het formaat YYYY-MM; standaard 12 maanden geleden |
end_month |
Laatste maand die wordt opgenomen, in het formaat YYYY-MM; standaard de huidige maand |
interval |
Interval voor het onderdeel base: day, week, month of year |
member_type |
Stel in op delegate met section=users om alleen huidige afgevaardigden terug te geven |
Iemand is een afgevaardigde als die persoon in minstens één geselecteerde groep een actief lidmaatschap als afgevaardigde heeft. De aantallen voor die persoon worden over alle geselecteerde groepen samengevoegd. Rijen voor afgevaardigden worden ook teruggegeven als alle activiteitsaantallen nul zijn. De aantallen omvatten threads, reacties, peilingen, stemmen, conclusies en emoji-reacties; het zijn geen deelnamepercentages voor stemmen. Gebruikersrijen bevatten ook aantallen verstrekte, uitgebrachte en gemiste stembiljetten waarbij de identiteit van de stemmer bekend is. Anonieme peilingen worden uitgesloten van alle stemaantallen per persoon. all_votes_cast is alleen waar als er minstens één stembiljet is verstrekt en elk verstrekt stembiljet is uitgebracht.
De API past dezelfde zichtbaarheidsregels voor groepen toe als het verslag in de applicatie. Een API-sleutel van een gebruiker kan geen verslaggegevens beschikbaar maken uit groepen waartoe die gebruiker geen toegang heeft.
Voorbeeld
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'
De users-array bevat volledige activiteitsrijen:
{
"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
}
]
}
Discussie aanmaken
Maak een discussie aan als de gebruiker van de API-sleutel.
POST /api/b2/discussions
Parameters
| Naam | Beschrijving |
|---|---|
group_id |
Groep waarin de thread komt te staan |
title |
Titel van de thread, verplicht |
description |
Context voor de thread, optioneel |
description_format |
md of html, optioneel, standaard md |
recipient_audience |
group of null. Bij group krijgt de hele groep een melding over de nieuwe thread |
recipient_user_ids |
Array van gebruikers-ID's van mensen die een melding of uitnodiging voor de thread moeten krijgen |
recipient_emails |
Array van e-mailadressen van mensen die je wilt uitnodigen voor de thread |
recipient_message |
Bericht dat wordt opgenomen in de uitnodiging per e-mail |
Voorbeeld
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
Discussie ophalen
Haal een discussie op met het discussie-ID, een geheel getal, of de sleutel, een tekenreeks.
GET /api/b2/discussions/:id
Voorbeeld
curl -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/discussions/abc123
Discussies weergeven
Geef de discussies in een groep weer die zichtbaar zijn voor de gebruiker van de API-sleutel. Bij een openbaar zichtbare groep kan iemand die geen lid is de openbare discussies weergeven; privédiscussies blijven alleen toegankelijk voor gebruikers die ze in Loomio kunnen lezen.
GET /api/b2/discussions
Parameters
| Naam | Beschrijving |
|---|---|
group_id |
Geheel getal, verplicht. ID van de groep waarvan je de discussies wilt weergeven |
status |
Tekenreeks, optioneel, standaard open. Waarden: open, closed, all |
limit |
Geheel getal, optioneel, standaard 50. Aantal records per pagina |
offset |
Geheel getal, optioneel, standaard 0. Aantal records om over te slaan bij paginering |
Voor compatibiliteit met oudere integraties worden per en from geaccepteerd als aliassen voor limit en offset. Ze blijven werken.
Voorbeeld
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/discussions?group_id=123'
Threads weergeven
Geef de discussie- en peilingthreads weer die zichtbaar zijn voor de gebruiker van de API-sleutel, gesorteerd op meest recente activiteit. Het ID van een thread is het bijbehorende topic_id.
GET /api/b2/threads
Parameters
| Naam | Beschrijving |
|---|---|
limit |
Geheel getal, optioneel, standaard 50. Aantal records per pagina |
offset |
Geheel getal, optioneel, standaard 0. Aantal records om over te slaan bij paginering |
Voorbeeld
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/threads?limit=50&offset=0'
Thread lezen
Lees een thread, de bijbehorende geordende stroom van gebeurtenissen of het volledige zichtbare Markdown-document.
GET /api/b2/threads/:topic_id
GET /api/b2/threads/:topic_id/items
GET /api/b2/threads/:topic_id/markdown
Voorbeeld
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
Het endpoint items retourneert de geordende stroom van gebeurtenissen, inclusief zichtbare reacties, peilingen, stemmen en conclusies. Het endpoint markdown retourneert de volledige zichtbare thread als één Markdown-document. Redenen bij stemmen worden alleen opgenomen wanneer ze zichtbaar zijn voor de gebruiker van de API-sleutel.
Alle thread-endpoints handhaven dezelfde rechten als de Loomio-interface. De API-sleutel geeft geen toegang tot een thread die de gebruiker normaal gesproken niet kan openen.
Discussie bewerken
Bewerk een discussie als de gebruiker van de API-sleutel. Dezelfde rechten gelden als in Loomio: de gebruiker moet die discussie mogen bewerken.
PATCH /api/b2/discussions/:id
Parameters
| Naam | Beschrijving |
|---|---|
title |
Bijgewerkte titel |
description |
Bijgewerkte context |
description_format |
md of html, optioneel, standaard md |
recipient_audience |
group of null. Bij group krijgt de hele groep een melding over de bewerking |
recipient_user_ids |
Array van gebruikers-ID's van mensen die een melding of uitnodiging voor de thread moeten krijgen |
recipient_emails |
Array van e-mailadressen van mensen die je wilt uitnodigen voor de thread |
recipient_message |
Bericht om op te nemen in de uitnodiging per e-mail |
Voorbeeld
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
Discussie logisch verwijderen
Verwijder een discussie logisch als de gebruiker van de API-sleutel. Hiermee wordt de discussie verwijderd, maar blijft het discussierecord bewaard.
DELETE /api/b2/discussions/:id
Voorbeeld
curl -H 'Authorization: Bearer YOUR_API_KEY' -X DELETE https://www.loomio.com/api/b2/discussions/123
Reactie aanmaken
Maak een reactie aan in een discussie als de gebruiker van de API-sleutel.
POST /api/b2/comments
Parameters
| Naam | Beschrijving |
|---|---|
discussion_id |
Geheel getal, verplicht. ID van de discussie waarop je wilt reageren |
body |
Tekst van de reactie, verplicht tenzij een bijlage wordt meegestuurd |
body_format |
md of html, optioneel, standaard md |
Voorbeeld
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
Reactie bewerken
Bewerk een reactie als de gebruiker van de API-sleutel. Dezelfde rechten gelden als in Loomio: de gebruiker moet toestemming hebben om die reactie te bewerken.
PATCH /api/b2/comments/:id
Parameters
| Naam | Beschrijving |
|---|---|
body |
Bijgewerkte tekst van de reactie |
body_format |
md of html, optioneel, standaard md |
Voorbeeld
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
Reactie logisch verwijderen
Verwijder een reactie logisch als de gebruiker van de API-sleutel. Hiermee wordt de reactie verwijderd en de tekst verborgen, maar blijft het reactierecord bewaard.
DELETE /api/b2/comments/:id
Voorbeeld
curl -H 'Authorization: Bearer YOUR_API_KEY' -X DELETE https://www.loomio.com/api/b2/comments/123
Peiling aanmaken
Maak een peiling aan als de gebruiker van de API-sleutel.
POST /api/b2/polls
Parameters
| Naam | Beschrijving |
|---|---|
group_id |
Geheel getal, optioneel, standaard null. ID van de groep voor de peiling. Als discussion_id wordt meegegeven, wordt group_id genegeerd |
discussion_id |
Geheel getal, optioneel, standaard null. ID van de discussiethread waaraan deze peiling wordt toegevoegd |
title |
String, verplicht. Titel van de peiling |
poll_type |
String, verplicht. Waarden: proposal, poll, count, score, ranked_choice, meeting, dot_vote |
details |
String, optioneel. De tekst van de peiling |
details_format |
String, optioneel, standaard md. Waarden: md of html |
options |
Array van strings. Als poll_type gelijk is aan proposal, zijn de geldige waarden agree, disagree, abstain, block. Als poll_type gelijk is aan meeting, geef dan strings met datums of datums en tijden in ISO 8601-formaat mee. Voor alle andere peilingtypen is elke string geldig |
closing_at |
ISO 8601-string of null, standaard null. Voorbeeld: 2026-09-01T12:00:00Z. Bij null is stemmen uitgeschakeld en wordt de peiling als concept beschouwd |
specified_voters_only |
Boolean, optioneel, standaard false. Bij true kunnen alleen opgegeven personen stemmen. Bij false wordt iedereen in de groep uitgenodigd om te stemmen |
hide_results |
String, optioneel, standaard off. Waarden: off, until_vote, until_closed |
shuffle_options |
Boolean, standaard false. Toon opties aan kiezers in willekeurige volgorde |
anonymous |
Boolean, optioneel, standaard false. Verberg de identiteit van kiezers |
recipient_audience |
group of null, optioneel, standaard null. Bij group ontvangt de hele groep een melding |
notify_on_closing_soon |
String, optioneel, standaard nobody. Waarden: nobody, author, undecided_voters, voters |
recipient_user_ids |
Array van gebruikers-ID's van personen die een melding of uitnodiging moeten ontvangen |
recipient_emails |
Array van e-mailadressen van personen die worden uitgenodigd om te stemmen |
recipient_message |
Bericht dat wordt opgenomen in de uitnodiging per e-mail |
notify_recipients |
Boolean, standaard false. Voeg bij false personen toe zonder meldingen te versturen. Bij true ontvangt iedereen die via dit verzoek wordt uitgenodigd een melding per e-mail |
Voorbeeld
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
Peiling ophalen
Haal een peiling op met het peiling-ID, een geheel getal, of de sleutel, een string.
GET /api/b2/polls/:id
Voorbeeld
curl -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/polls/abc123
Peilingen weergeven
Geef de peilingen in een groep weer die zichtbaar zijn voor de gebruiker van de API-sleutel. Bij een openbaar zichtbare groep kan iemand die geen lid is de openbare peilingen weergeven; privépeilingen blijven alleen toegankelijk voor gebruikers die ze in Loomio kunnen lezen. Het antwoord bevat de huidige conclusie van elke zichtbare peiling, zodat je met status=closed voorstellen kunt weergeven waarover een besluit is genomen.
GET /api/b2/polls
Parameters
| Naam | Beschrijving |
|---|---|
group_id |
Geheel getal, verplicht. ID van de groep waarvan de peilingen worden weergegeven |
status |
String, optioneel, standaard active. Waarden: active, closed, all |
limit |
Geheel getal, optioneel, standaard 50. Paginagrootte |
offset |
Geheel getal, optioneel, standaard 0. Startpositie voor paginering |
Voor achterwaartse compatibiliteit worden per en from geaccepteerd als aliassen voor limit en offset. Ze blijven werken.
Voorbeeld
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/polls?group_id=123'
Peiling bewerken
Bewerk een peiling als de gebruiker van de API-sleutel. Dezelfde rechten gelden als in Loomio: de gebruiker moet die peiling mogen bewerken.
PATCH /api/b2/polls/:id
Parameters
| Naam | Beschrijving |
|---|---|
title |
Bijgewerkte titel |
details |
Bijgewerkte peilingtekst |
details_format |
md of html, optioneel, standaard md |
options |
Bijgewerkte optienamen. Het wijzigen van opties kan bestaande stemmen beïnvloeden, afhankelijk van de status van de peiling |
closing_at |
ISO 8601-string of null |
recipient_audience |
group of null. Bij group ontvangt de hele groep een melding |
recipient_user_ids |
Array van gebruikers-ID's van personen die een melding of uitnodiging moeten ontvangen |
recipient_emails |
Array van e-mailadressen van personen die worden uitgenodigd om te stemmen |
recipient_message |
Bericht dat wordt opgenomen in de uitnodiging per e-mail |
Voorbeeld
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
Peiling logisch verwijderen
Verwijder een peiling logisch als de gebruiker van de API-sleutel. Hiermee wordt de peiling als verwijderd gemarkeerd en blijft het peilingrecord bewaard.
DELETE /api/b2/polls/:id
Voorbeeld
curl -H 'Authorization: Bearer YOUR_API_KEY' -X DELETE https://www.loomio.com/api/b2/polls/123
Lidmaatschappen weergeven
Geef de lidmaatschappen weer die zichtbaar zijn voor de gebruiker van de API-sleutel. Groepsleden kunnen de namen, ID's, titels en rollen van leden lezen. E-mailadressen worden alleen opgenomen voor het eigen account van de gebruiker van de API-sleutel of wanneer die gebruiker een groepsbeheerder is.
GET /api/b2/memberships
Parameters
| Naam | Beschrijving |
|---|---|
group_id |
Geheel getal, verplicht. ID van de groep waarvan de lidmaatschappen worden weergegeven |
Voorbeeld
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/memberships?group_id=123'
Lidmaatschappen beheren
Stuur een lijst met e-mailadressen. Alle nieuwe e-mailadressen worden uitgenodigd voor de groep. Anders dan bij het weergeven van lidmaatschappen zijn voor deze handeling groepsbeheerdersrechten vereist.
POST /api/b2/memberships
Parameters
| Naam | Beschrijving |
|---|---|
group_id |
Geheel getal, verplicht. ID van de groep waarvan de lidmaatschappen worden beheerd |
emails |
Array van strings, verplicht. E-mailadressen van mensen die je voor de groep wilt uitnodigen |
remove_absent |
Boolean. Als de waarde true is, wordt iedereen van wie het e-mailadres niet in de lijst staat uit de groep verwijderd |
Voorbeeld
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
Als je remove_absent=1 meegeeft, worden alle leden van de groep die niet in de lijst staan uit de groep verwijderd. Let op: hiermee kun je iedereen uit jouw groep verwijderen.
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
Dit retourneert een object met {added_emails: ["person@added.com"], removed_emails: ["person@removed.com"]}.