Skip to content

Riksdagen Documents Scraper

Try for free

Collect Swedish parliamentary documents from the Riksdagen open data service: motions, bills, committee reports, written questions, interpellations, chamber minutes, speeches and votes, with full text, authors, parties, committees, dates and PDF links. No login needed.

🏛️ Riksdagen Documents Scraper

Collect documents from the Swedish Parliament's open data service as clean rows: motions, government bills, committee reports, written questions and answers, interpellations, chamber minutes, speeches and votes, each with its full text, authors and parties, committee, dates, status and PDF link. Filter by date, search words, party, committee or parliamentary year, and schedule it to stay current. No login needed. $17.85 per 1,000 results on the Free plan, less on paid plans.

✨ Why use Riksdagen Documents Scraper?

  • 📄 Full text included — every document comes with its text, ready for search, analysis or AI pipelines, plus the PDF and Word links the Riksdag publishes.
  • 🗳️ Speeches and votes too — speeches in the chamber with the speaker, party and text, and votes with yes / no / abstain / absent totals per party (every member's vote on request).
  • 🧭 Rich metadata — designation (e.g. 2026/27:MJU4), riksmöte, authors with party and member id, addressed minister, committee, status, decision and debate dates, the motion's proposals and the committee's proposals.
  • ⏱️ Kept current — a relative date such as 2 days turns a daily schedule into a feed of every new document.
  • 🔎 Targeted — search words over the official full-text index, party and committee filters, parliamentary years.
  • ✅ Straight from the source — data comes from the Riksdag's public open data service; nothing is estimated.

🎯 Use cases

  • 🤖 Policy research and AI products — build a corpus of Swedish parliamentary documents with full text and metadata, refreshed every day.
  • 📰 Journalism — follow new motions, questions and interpellations on a topic or from a party.
  • 🏢 Public affairs and monitoring — track committee reports, decisions and votes in your field.
  • 🎓 Political science — analyse speeches, voting behaviour per party and the life cycle of proposals.

🚀 How to use

  1. Choose one or more document types (for example Motions and Written questions).
  2. Set Date from (a day like 2026-10-01, or 30 days) and optionally search words, parties or committees.
  3. Set Max results per type and search term (0 = everything that matches) and click Start.
  4. Open the Documents, Speeches or Votes view, or export the data as JSON, CSV or Excel.

To keep a collection current, create a schedule (for example daily) with Date from set to 2 days.

📥 Input

FieldWhat it does
documentTypesmot motions, prop bills, bet committee reports, fr written questions, frs answers, ip interpellations, prot chamber minutes, anforande speeches, votering votes, yttr, skr, rskr, sou, ds, dir
maxItemsResults per type and search term (default 20, 0 = all)
dateFrom / dateToDate range: YYYY-MM-DD or relative (7 days, 3 months)
searchTermsWords to search for, one search per line
committeesCommittee codes such as FiU, MJU, KU
partiesParty codes such as S, M, SD, C, V, KD, L, MP
riksmotenParliamentary years such as 2025/26
includeFullTextAdd full text and details (default on)
includeRepliesSpeeches: include short replies (default on)
includeMemberVotesVotes: add every member's vote (default off)
{
  "documentTypes": ["mot", "bet", "votering"],
  "dateFrom": "30 days",
  "searchTerms": ["klimat"],
  "maxItems": 50
}

📤 Output

One row per document, speech or vote. Main fields:

FieldMeaning
idDocument id (HE02518), speech id or vote id
type, typeName, subtypeDocument type code and name
designation, riksmote, numberOfficial designation such as 2026/27:518
title, subtitle, summaryTitle and short summary
date, publishedAt, updatedAtDocument date, publication and last update
authors, partiesSigners with party, role and member id
addressedTo, answeredByMinister a question is put to and who answered
committee, statusCommittee code and processing status
text, textLengthFull text
proposals, committeeProposals, activitiesMotion proposals, committee proposals with decisions, document history
url, htmlUrl, pdfUrl, attachmentsLinks to the page, the HTML and the files
Speeches: speakerName, party, debateType, isReply, protocolIdSpeaker and debate
Votes: yes, no, abstain, absent, outcome, partyVotes, memberVotesVote results
{
  "id": "HE02518",
  "type": "mot",
  "typeName": "Motion",
  "subtype": "Enskild motion",
  "riksmote": "2026/27",
  "designation": "2026/27:518",
  "title": "En fungerande telekommunikation i hela landet",
  "date": "2026-11-12",
  "status": "Inkommen",
  "authors": [{"name": "Thomas Ragnarsson", "party": "M", "role": "undertecknare", "memberId": "071293048118"}],
  "parties": ["M"],
  "proposals": [{"number": 1, "text": "Riksdagen ställer sig bakom det som anförs i motionen om att säkerställa att landets teleoperatörer inte stänger ner fungerande mobilnät, innan ny teknik finns på plats och tillkännager detta för regeringen."}],
  "url": "https://www.riksdagen.se/sv/dokument-och-lagar/dokument/motion/motion_HE02518/",
  "pdfUrl": "https://data.riksdagen.se/fil/73083DB7-8B8A-4F49-8010-F45BA6CD0EDB",
  "text": "Motion till riksdagen\n\n2026/27:518\n\nav Thomas Ragnarsson (M)\n\nEn fungerande telekommunikation i hela landet\n\nFörslag till riksdagsbeslut ...",
  "textLength": 1709,
  "source": "Sveriges riksdag"
}
{
  "id": "A4FFC05D-04B4-4139-A9EB-A0ED698B0443",
  "type": "votering",
  "designation": "2026/27:KU9",
  "proposalPoint": 1,
  "date": "2026-11-11",
  "committee": "KU",
  "yes": 292, "no": 51, "abstain": 0, "absent": 6,
  "outcome": "yes",
  "partyVotes": [{"party": "MP", "yes": 0, "no": 21, "abstain": 0, "absent": 1}, {"party": "S", "yes": 99, "no": 0, "abstain": 0, "absent": 0}]
}

💰 Pricing

You pay per result saved (document, speech or vote); platform usage (compute, proxies) is included.

EventFreeStarterScaleBusiness
Document, speech or vote$17.85 / 1,000$17.28 / 1,000$16.72 / 1,000$16.15 / 1,000

Examples: 100 motions with full text cost $1.79 on the Free plan and $1.62 on Business. 1,000 documents cost $17.85 on Free and $16.15 on Business.

❓ FAQ

Is it legal? The actor reads the Riksdag's public open data service, which the Riksdag publishes for reuse with the source given as "Källa: Sveriges riksdag". Every row carries that source. This actor is an independent tool and is not provided by the Riksdag.

Do I need a login or an API key? No.

How many results can I get? As many as match: set maxItems to 0. The service lists up to 200 documents per page and the actor pages through all of them.

Why is a field empty? The Riksdag fills fields per document type: questions have an addressed minister, reports a committee, motions proposals. Older scanned documents may have short or imperfect text; their PDF is the exact version.

Can I schedule it or use the API? Yes. Schedule it with a relative dateFrom such as 2 days, or start runs through the Scrape.ly API and read the dataset.

What do the vote numbers mean? yes, no, abstain and absent count the members' votes on one proposal point; outcome is the side with more votes.

⚠️ Limits

  • Speeches can be filtered by date, party and search words, not by committee; votes always list every party.
  • Search words for speeches and votes are matched on their title and text, not through the Riksdag's search index.
  • The text comes from the Riksdag's HTML version of each document; some very old documents only exist as scans.

Related actors

//From the blog\\

Latest articles

All articles

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes.

No credit card. No setup calls.