Decidim Participation Extractor avatar

Decidim Participation Extractor

Pricing

from $0.35 / 1,000 records

Go to Apify Store
Decidim Participation Extractor

Decidim Participation Extractor

Point at ANY Decidim instance and extract participatory-democracy data over its public GraphQL API. Modes: participatory processes, assemblies, proposals, results, meetings. One flat row per object, translated-text fallback, Relay pagination.

Pricing

from $0.35 / 1,000 records

Rating

0.0

(0)

Developer

Datamule

Datamule

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Point at any Decidim instance and extract its participatory‑democracy data over the public, read‑only GraphQL API. Decidim is the open‑source platform behind ~400 government deployments — Barcelona, Helsinki, the Catalan government, the European Commission, dozens of French métropoles and more. Every instance speaks the same GraphQL contract, so this one actor reads them all: give it an instance root, pick a mode, get back clean structured rows.

What you get

One flat JSON row per participatory object. Five modes:

ModeWhat it returnsLevel
participatoryProcessesParticipatory processes (budgets, plans, consultations)Space
assembliesAssemblies / councilsSpace
proposalsCitizen proposals (with state + vote count)Component
resultsAccountability results (with progress %)Component
meetingsMeetings (with times + address)Component

Space modes emit one row per space. Component modes discover every matching component across all participatory processes and paginate each one, emitting one row per leaf object.

Input

{
"decidimUrl": "https://www.decidim.barcelona",
"mode": "participatoryProcesses",
"locale": "en",
"maxRecords": 2000
}
FieldTypeDefaultNotes
decidimUrlstring (required)Instance root or full /api URL.
modeenumparticipatoryProcessesOne of the five modes above.
withComponentsbooleanfalseSpace modes: expand each space's component list into the row.
localestringenPreferred locale for translated text (see below).
maxRecordsinteger2000Stop after this many rows.
pageSizeinteger50Relay page size for component modes (Decidim caps ~100).

Key behaviours (things the Decidim API decides)

  • Translated text with fallback. title / subtitle / body are translated objects, not strings. On a Catalan or Finnish instance en is often null, so the actor falls back to the first available translation and tells you which locale it used in titleLocale. Rows are keyed on the always‑present id.
  • Components are reached through inline fragments. proposals / results / meetings are components of a participatory process, not root fields — the actor discovers them and walks each component's Relay cursor connection.
  • Not every host is Decidim. The actor first probes { decidim { version } }; a host that is unreachable, Cloudflare‑gated (403 / HTML), or a different platform (e.g. CONSUL) fails fast and never emits a fabricated empty result.

Output (example — a proposal)

{
"decidimUrl": "https://www.decidim.barcelona",
"mode": "proposals",
"id": "3",
"reference": "BCN-PROP-2016-01-3",
"state": "acceptada",
"voteCount": 30,
"title": "Sensibilitzar sobre la diversitat funcional",
"titleLocale": "ca",
"createdAt": "2016-01-22T13:06:40+01:00",
"processId": "1",
"processSlug": "pam",
"componentId": "1"
}

Pricing

Pay‑per‑event: you are billed per record (one participatory process, proposal, result, assembly, or meeting emitted).

Use cases

Civic‑transparency dashboards · participatory‑budgeting analytics · policy research · govtech monitoring · journalism on public participation · comparative studies across the ~400‑instance Decidim ecosystem.