Documentatie voor de Loomio Gebruikers-API

/api/b2 is de API voor integraties met Loomio die namens een gebruiker werken. De API gebruikt de API-sleutel van een gebruikersaccount en voert elke handeling uit als die gebruiker.

Voor groepshandelingen gelden de lidmaatschappen en groepsrechten van de gebruiker bij de API-sleutel. Beheerdersrechten voor de installatie geven een API-sleutel geen extra toegang tot groepen of inhoud. Gebruik de Server API voor beheer op installatieniveau.

Gebruik de API-sleutel van het Loomio-account waarmee de handelingen moeten worden uitgevoerd. Een apart botaccount is handig als de integratie geen uitnodigingen voor peilingen of meldingen moet ontvangen.

Als je bent ingelogd, vind je jouw API-sleutel en groeps-ID's op de pagina voor API-toegang.

Stuur de API-sleutel mee in een Authorization: Bearer-header. API-sleutels in querystrings worden geweigerd, omdat proxyservers en toegangslogboeken URL's kunnen vastleggen.

Wijziging in authenticatie

Voorheen werd de API-sleutel 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.

Antwoorden van de Gebruikers-API hebben een samengesteld formaat: de hoofdrecords worden geleverd met gerelateerde records, zoals onderwerpen, groepen, gebruikers, peilingen en reacties. Zo kan een client met één verzoek een lokale verzameling records vullen. Het antwoord kan daardoor meer gegevens bevatten dan een eenvoudige integratie nodig heeft.

Geef compact=1 mee om omvangrijke gerelateerde onderwerpen, groepen, bovenliggende groepen, lidmaatschappen, reacties, tags en vertalingen weg te laten. De hoofdrecords en de gerelateerde records die nodig zijn om hun inhoud te begrijpen, blijven aanwezig.

curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/threads/123/items?compact=1'

Voor meer controle geef je exclude_types mee met enkelvoudige recordtypen, gescheiden door spaties. Met exclude_types=group reaction laat je bijvoorbeeld gerelateerde groepen en 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 hoofdresource die je via het endpoint opvraagt.

Antwoorden met verzamelingen bevatten meta.total wanneer de exacte omvang van de verzameling is gedefinieerd. Het totaal wordt berekend voordat limit en offset worden toegepast. Endpoints zoals zoeken, die bewust een begrensde reeks 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 bij de API-sleutel tonen
GET /api/b2/groups/:id_or_key_or_handle Een zichtbare groep ophalen
GET /api/b2/reports Een deelnamerapport maken
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 tonen
PATCH /api/b2/discussions/:id Een discussie bewerken
DELETE /api/b2/discussions/:id Een discussie zacht verwijderen
GET /api/b2/threads Zichtbare discussiedraden en zelfstandige peilingsdraden tonen
GET /api/b2/threads/:topic_id Een discussiedraad ophalen
GET /api/b2/threads/:topic_id/items De items in een discussiedraad in volgorde ophalen
GET /api/b2/threads/:topic_id/markdown Een volledige discussiedraad 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 zacht verwijderen
POST /api/b2/polls Een peiling aanmaken
GET /api/b2/polls/:id Een peiling ophalen
GET /api/b2/polls Peilingen in een groep tonen
PATCH /api/b2/polls/:id Een peiling bewerken
DELETE /api/b2/polls/:id Een peiling zacht verwijderen
GET /api/b2/memberships Lidmaatschappen van een groep tonen
POST /api/b2/memberships Leden toevoegen en eventueel ontbrekende leden verwijderen
GET /api/b2/chatbots Chatintegraties en webhooks van een groep tonen
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 testbericht naar een webhook sturen

Groepen

Groepen tonen

Geef de groepen terug waarvan de gebruiker bij de API-sleutel actief lid is.

GET /api/b2/groups

curl -H 'Authorization: Bearer YOUR_API_KEY' https://www.loomio.com/api/b2/groups

Het antwoord bevat alle overeenkomende records in een groups-array zonder paginering. Deze omvat bovenliggende groepen en subgroepen, ook als hun abonnement momenteel niet actief is. Controleer het veld enabled als een integratie alleen voor ingeschakelde groepen mag werken.

Belangrijke groepsvelden zijn:

Veld Beschrijving
id Numerieke groeps-ID die door andere endpoints van de Gebruikers-API wordt gebruikt
key Vaste korte sleutel die in Loomio-URL's wordt gebruikt
handle Leesbare aanduiding van de groep
name Groepsnaam
full_name Groepsnaam met de context van de bovenliggende groep
parent_id Numerieke ID van de bovenliggende groep voor een subgroep, anders null
enabled Of de groep en het abonnement actief zijn
memberships_count Aantal actieve en aangevraagde lidmaatschappen
accepted_memberships_count Aantal geaccepteerde lidmaatschappen
pending_memberships_count Aantal openstaande uitnodigingen
admin_memberships_count Aantal groepsbeheerders
delegates_count Aantal afgevaardigden
discussions_count Aantal discussies direct in de groep
polls_count Aantal peilingen direct in de groep
subgroups_count Aantal subgroepen

Het antwoord kan aanvullende groepsinstellingen, gerelateerde records van bovenliggende groepen en de lidmaatschappen van de API-gebruiker bevatten. Clients kunnen velden die ze niet gebruiken negeren.

Een groep ophalen

Geef één groep terug die zichtbaar is voor de gebruiker bij de API-sleutel.

GET /api/b2/groups/:id_or_key_or_handle

Als identificatie kun je de numerieke ID, sleutel of aanduiding van de groep gebruiken.

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

Het antwoord bevat de groep in de groups-array en gebruikt dezelfde velden als het endpoint voor de groepslijst. Een verzoek om een groep waartoe de gebruiker bij de API-sleutel geen toegang heeft, geeft een rechtenfout.

Webhooks

De Gebruikers-API werkt op basis van verzoeken: een integratie roept Loomio aan wanneer ze gegevens wil lezen of wijzigen. Met een groepswebhook stuurt Loomio gegevens de andere kant op. Loomio stuurt geselecteerde groepsgebeurtenissen naar jouw endpoint zodra ze plaatsvinden. Daardoor hoeft een integratie de REST API niet regelmatig op wijzigingen te controleren.

Webhooks worden per groep ingesteld en vereisen beheerdersrechten voor die groep. Je kunt ze beheren via de Loomio-interface:

  1. Open de groep.
  2. Open het groepsmenu en selecteer Chatintegraties.
  3. Voeg de integratie toe waarvan jouw endpoint het gegevensformaat accepteert. Gebruik voor een algemeen endpoint het formaat Mattermost/Markdown.
  4. Voer een naam en de doel-URL in.
  5. Selecteer de gebeurtenissen die Loomio automatisch moet versturen.
  6. 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 privénetwerkadressen.

Agents en andere integraties kunnen webhooks ook beheren via de hieronder beschreven chatbot-endpoints met Bearer-authenticatie. De resource heet chatbots vanwege de compatibiliteit met de chatintegraties van Loomio, maar omvat ook algemene uitgaande webhooks.

Webhooks tonen

Geef de chatintegraties terug die voor een groep zijn ingesteld. De gebruiker bij de API-sleutel moet beheerder van die groep zijn. Het antwoord bevat doel-URL's en mag daarom niet toegankelijk zijn 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'

Het antwoord bevat een chatbots-array met deze velden:

Veld Beschrijving
id ID van de integratie voor updates en verwijdering
group_id Groep die de gebeurtenissen ontvangt
name Beheerdersnaam 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 Doel-URL
event_kinds Gebeurtenissen die automatisch worden verzonden
notification_only Of berichten alleen de kop van de melding bevatten

Een webhook maken

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 doel-URL wordt opgeslagen, wordt gecontroleerd of deze openbaar is.

Een webhook bijwerken

PATCH /api/b2/chatbots/:id

Stuur de velden die je wilt wijzigen. 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 geschikt is voor Markdown naar de 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 nieuwe berichten meer afgeleverd. Inhoud van de Loomio-groep blijft behouden.

Gebeurtenistypen

Een webhook kan zich op deze gebeurtenistypen abonneren:

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 De sluitingstijd van een peiling nadert
poll_expired Een peiling bereikt de sluitingstijd
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 Een conclusie moet worden geëvalueerd
stance_created Er wordt een stem 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 kiezen bij het delen of verzenden van bepaalde meldingen, zelfs als de bijbehorende automatische gebeurtenis niet is geselecteerd.

HTTP-aflevering

Loomio verstuurt asynchroon een 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, waaronder 204 No Content, geldt als geslaagd. Ontvangers van webhooks moeten snel antwoorden, langer durend werk asynchroon verwerken en kunnen omgaan met dubbele of in een andere volgorde afgeleverde berichten.

Loomio voegt momenteel geen webhookhandtekening, header met een gedeeld geheim, gebeurtenis-ID of afleverings-ID toe. Behandel de volledige doel-URL als een toegangsmiddel en maak deze niet openbaar. Neem een niet te raden token op in de URL als de ontvangende dienst dat ondersteunt. Als je een stabiel, machineleesbaar gebeurtenisformaat of ondertekende aflevering nodig hebt, gebruik de webhook dan als melding van een wijziging en haal de actuele gegevens op via de geauthenticeerde gebruikers-API.

Payloadformaten

Webhookpayloads zijn berichten voor chatdiensten. Ze bevatten geen volledige geserialiseerde Loomio-gegevens. De links in een bericht verwijzen naar de betrokken inhoud in Loomio. Een integratie kan daarna via de gebruikers-API de actuele gegevens in gestructureerde vorm ophalen.

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 bericht 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 voor alleen meldingen en de Loomio-versie. Gebruik als ontvanger de gedocumenteerde velden op het hoogste niveau van het gekozen formaat. Leid gegevens niet af uit de formulering van zinnen.

Zoek in discussies, reacties, peilingen, stemmen en conclusies die zichtbaar zijn voor de gebruiker van de API-sleutel. De resultaten bevatten ook openbare inhoud van groepen waarvan de gebruiker geen lid is. Voor privé-inhoud gelden de normale zichtbaarheidregels voor topics.

GET /api/b2/search

Parameters

Naam Beschrijving
query Zoektekst. Exacte en benaderende overeenkomsten worden ondersteund
group_id Beperk de resultaten tot één zichtbare groep
org_id Beperk de resultaten tot een zichtbare hoofdgroep en de zichtbare subgroepen daarvan. Gebruik 0 voor directe discussies
type Beperk de resultaten tot één type: Discussion, Comment, Poll, Stance of Outcome
types Lijst met resultaattypen, gescheiden door komma's
tag Beperk de resultaten tot topics met dit label
author_id Beperk de resultaten tot inhoud van één auteur. Zonder query wordt de recente zichtbare activiteit van die auteur geretourneerd
order Stel in op authored_at_desc om overeenkomende inhoud te sorteren op aanmaaktijd
curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/search?query=quarterly+planning&type=Discussion'

Het antwoord bevat een array met search_results. Elk resultaat vermeldt het gevonden record en de zichtbare context ervan, met onder meer 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 resultaat, hebben de waarde null.

Deelnameverslag

Geeft dezelfde samengevoegde deelnamegegevens terug die Loomio in het deelnameverslag gebruikt.

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 verouderde waarde all wordt behandeld als my, omdat sleutels voor de gebruikers-API nooit toegang tot de hele instantie geven
group_ids Groeps-ID's, gescheiden door komma's, wanneer group_scope=custom. ID's van groepen waarvan de API-gebruiker geen lid is, worden genegeerd
start_month Eerste maand in de notatie YYYY-MM; standaard 12 maanden geleden
end_month Laatste maand in de notatie 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 krijgen

Iemand is een afgevaardigde als die persoon in een van de geselecteerde groepen een actief lidmaatschap als afgevaardigde heeft. De aantallen worden over alle geselecteerde groepen samengevoegd. Afgevaardigden worden ook getoond als alle activiteitsaantallen nul zijn. De aantallen omvatten discussies, reacties, peilingen, stemmen, conclusies en emoji-reacties. Het zijn geen percentages voor deelname aan stemmingen. De rijen per gebruiker bevatten ook aantallen toegewezen, uitgebrachte en gemiste stemmen bij niet-anonieme stemmingen. Anonieme peilingen tellen niet mee in de stemtotalen per persoon. all_votes_cast is alleen waar als minstens één stem is toegewezen en alle toegewezen stemmen zijn uitgebracht.

De API past dezelfde regels voor groepszichtbaarheid toe als het verslag in Loomio. Een sleutel voor de gebruikers-API kan geen verslaggegevens tonen van groepen waartoe de 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 array users bevat volledige rijen met activiteitsgegevens:

{
  "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 namens de gebruiker van de API-sleutel.

POST /api/b2/discussions

Parameters

Naam Beschrijving
group_id Groep waarin de thread wordt aangemaakt
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 Lijst met gebruikers-ID's van mensen die een melding krijgen of worden uitgenodigd voor de thread
recipient_emails Lijst met e-mailadressen van mensen die worden uitgenodigd voor de thread
recipient_message Bericht voor 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 de numerieke discussie-ID of de sleutel als 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 ook iemand die geen lid is de openbare discussies weergeven. Privédiscussies blijven alleen zichtbaar 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 resultaten per pagina
offset Geheel getal, optioneel, standaard 0. Beginpositie voor paginering

Voor compatibiliteit blijven per en from werken als alternatieve namen voor limit en offset.

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 recentste activiteit. De ID van een thread is de topic_id.

GET /api/b2/threads

Parameters

Naam Beschrijving
limit Geheel getal, optioneel, standaard 50. Aantal resultaten per pagina
offset Geheel getal, optioneel, standaard 0. Beginpositie voor 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 gebeurtenissen in volgorde 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 items-endpoint geeft de gebeurtenissen in volgorde terug, waaronder zichtbare reacties, peilingen, stemmen en conclusies. Het markdown-endpoint geeft de volledige zichtbare thread terug als één Markdown-document. Redenen voor stemmen worden alleen opgenomen als ze zichtbaar zijn voor de gebruiker van de API-sleutel.

Voor alle thread-endpoints gelden dezelfde toegangsrechten als in Loomio. Een API-sleutel geeft geen toegang tot een thread die de gebruiker normaal niet kan openen.

Discussie bewerken

Bewerk een discussie namens de gebruiker van de API-sleutel. Dezelfde toegangsrechten gelden als in Loomio: de gebruiker moet deze 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 Lijst met gebruikers-ID's van mensen die een melding krijgen of worden uitgenodigd voor de thread
recipient_emails Lijst met e-mailadressen van mensen die worden uitgenodigd voor de thread
recipient_message Bericht voor 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 voorlopig verwijderen

Verwijder een discussie voorlopig namens de gebruiker van de API-sleutel. De discussie wordt weggehaald, maar het discussierecord blijft 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

Plaats een reactie in een discussie namens 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 je een bijlage toevoegt
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 namens de gebruiker van de API-sleutel. Dezelfde toegangsrechten gelden als in Loomio: de gebruiker moet deze reactie mogen 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 voorlopig verwijderen

Verwijder een reactie voorlopig namens de gebruiker van de API-sleutel. De reactie wordt weggehaald en de tekst wordt verborgen, maar het reactierecord blijft 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 maken

Maak een peiling aan namens 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 is opgegeven, wordt group_id genegeerd
discussion_id Geheel getal, optioneel, standaard null. ID van de discussiedraad waaraan de peiling wordt toegevoegd
title Tekst, verplicht. Titel van de peiling
poll_type Tekst, verplicht. Mogelijke waarden: proposal, poll, count, score, ranked_choice, meeting, dot_vote
details Tekst, optioneel. De inhoud van de peiling
details_format Tekst, optioneel, standaard md. Mogelijke waarden: md of html
options Lijst met teksten. Als poll_type gelijk is aan proposal, zijn agree, disagree, abstain en block geldige waarden. Als poll_type gelijk is aan meeting, geef dan datums of datum-tijdwaarden in ISO 8601-formaat op. Voor alle andere peilingtypen is elke tekst geldig
closing_at Tekst in ISO 8601-formaat of null, standaard null. Voorbeeld: 2026-09-01T12:00:00Z. Bij null is stemmen uitgeschakeld en wordt de peiling beschouwd als werk in uitvoering
specified_voters_only Booleaanse waarde, optioneel, standaard false. Bij true kunnen alleen opgegeven personen stemmen. Bij false wordt iedereen in de groep uitgenodigd om te stemmen
hide_results Tekst, optioneel, standaard off. Mogelijke waarden: off, until_vote, until_closed
shuffle_options Booleaanse waarde, standaard false. Toon de opties in willekeurige volgorde aan stemmers
anonymous Booleaanse waarde, optioneel, standaard false. Verberg de identiteit van stemmers
recipient_audience group of null, optioneel, standaard null. Bij group krijgt de hele groep een melding
notify_on_closing_soon Tekst, optioneel, standaard nobody. Mogelijke waarden: nobody, author, undecided_voters, voters
recipient_user_ids Lijst met gebruikers-ID's van personen die een melding of uitnodiging krijgen
recipient_emails Lijst met e-mailadressen van personen die worden uitgenodigd om te stemmen
recipient_message Bericht voor de uitnodiging per e-mail
notify_recipients Booleaanse waarde, standaard false. Bij false worden personen toegevoegd zonder meldingen te versturen. Bij true krijgt iedereen die via dit verzoek wordt uitgenodigd een e-mailmelding

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 numerieke peiling-ID of de sleutel als tekst.

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 de gebruiker van de API-sleutel kan zien. Bij een openbaar zichtbare groep kunnen ook niet-leden de openbare peilingen weergeven. Privépeilingen blijven beperkt tot gebruikers die ze in Loomio kunnen lezen. Het antwoord bevat de huidige conclusie van elke zichtbare peiling. Gebruik status=closed om voorstellen met een conclusie weer te geven.

GET /api/b2/polls

Parameters

Naam Beschrijving
group_id Geheel getal, verplicht. ID van de groep waarvan de peilingen worden weergegeven
status Tekst, optioneel, standaard active. Mogelijke waarden: active, closed, all
limit Geheel getal, optioneel, standaard 50. Aantal resultaten per pagina
offset Geheel getal, optioneel, standaard 0. Verschuiving voor paginering

Voor compatibiliteit blijven per en from werken als alternatieve namen voor limit en offset.

Voorbeeld

curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://www.loomio.com/api/b2/polls?group_id=123'

Peiling bewerken

Bewerk een peiling namens de gebruiker van de API-sleutel. Dezelfde rechten gelden als in Loomio: de gebruiker moet de peiling mogen bewerken.

PATCH /api/b2/polls/:id

Parameters

Naam Beschrijving
title Bijgewerkte titel
details Bijgewerkte details van de peiling
details_format md of html, optioneel, standaard md
options Bijgewerkte optienamen. Afhankelijk van de status van de peiling kan het wijzigen van opties bestaande stemmen beïnvloeden
closing_at Tekst in ISO 8601-formaat of null
recipient_audience group of null. Bij group krijgt de hele groep een melding
recipient_user_ids Lijst met gebruikers-ID's van personen die een melding of uitnodiging krijgen
recipient_emails Lijst met e-mailadressen van personen die worden uitgenodigd om te stemmen
recipient_message Bericht voor 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 verwijderen zonder het record te wissen

Verwijder een peiling namens de gebruiker van de API-sleutel zonder het record te wissen. De peiling wordt verwijderd, maar het peilingrecord blijft bestaan.

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 de gebruiker van de API-sleutel kan zien. Groepsleden kunnen namen, ID's, titels en rollen van leden lezen. E-mailadressen zijn alleen opgenomen voor het eigen account van de gebruiker van de API-sleutel of wanneer die gebruiker 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

Verstuur een lijst met e-mailadressen. Nieuwe adressen op de lijst krijgen een uitnodiging voor de groep. Hiervoor zijn beheerdersrechten voor de groep vereist.

POST /api/b2/memberships

Parameters

Naam Beschrijving
group_id Geheel getal, verplicht. ID van de groep waarvan de lidmaatschappen worden beheerd
emails Lijst met teksten, verplicht. E-mailadressen van personen die voor de groep worden uitgenodigd
remove_absent Booleaanse waarde. Bij true wordt iedereen van de groep verwijderd van wie het e-mailadres niet op de lijst staat

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 opgeeft, worden alle groepsleden die niet op de lijst staan uit de groep verwijderd. Controleer de lijst zorgvuldig: je kunt hiermee 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 geeft een object terug met {added_emails: ["person@added.com"], removed_emails: ["person@removed.com"]}.