GnistAI GnistAI
Log in

Riksdagen (Swedish Parliament)

Swedish Parliament data — document search, committee reports, bills, motions, vote records, and member profiles.

Overview   |   MCP   |   REST API   |   OpenAPI   |   CLI   |   Tutorial   |   Toolkits   |   Home
status: healthy status status healthy healthy tools: 7 tools tools 7 7 type: api wrapper type type api wrapper api wrapper lifecycle: maintained lifecycle lifecycle maintained maintained Government

Data source: Riksdagen (data.riksdagen.se)

MCP Endpoint (Streamable HTTP) https://context.gnist.ai/mcp/riksdagen/
Authentication

All requests require a Gnist-API-Key header (or api_key query parameter).

Free tier: 100 calls/day. Get your API key.

Tools (7)

search_documents

Search Swedish parliamentary documents — bills, motions, committee reports, and more.

Query the Riksdagen (Swedish Parliament) document archive with full-text search
and structured filters. The archive contains 600K+ documents dating back decades.

Returns:
Dict with 'count', 'total', 'page', 'pages', and 'documents' list.

ParameterTypeRequiredDescription
queryanyoptionalFree-text search term
doc_typeanyoptionalDocument type code: 'prop' (proposition/bill), 'mot' (motion), 'bet' (committee report), 'skr' (government communication), 'sou' (inquiry report)
committeeanyoptionalCommittee code: 'FiU' (Finance), 'AU' (Labour), 'JuU' (Justice), 'SoU' (Social), 'UU' (Foreign Affairs), etc.
sessionanyoptionalParliament session, e.g. '2025/26'. Format: YYYY/YY
pageintegeroptionalPage number (default 1) (default: 1)
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "search_documents",
    "arguments": {}
  }
}
get_document

Get full details for a specific Swedish parliamentary document.

Retrieves the complete document including metadata and (where available) HTML content.

Returns:
Document detail dict, or error if not found.

ParameterTypeRequiredDescription
dok_idstringrequiredDocument ID from search results (e.g. 'HD01FiU1')
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "get_document",
    "arguments": {
      "dok_id": "example"
    }
  }
}
list_votes

List parliamentary votes in the Swedish Riksdagen.

Each record represents one member's vote on one ballot point.
Filter by session and/or document to narrow results.

Returns:
Dict with 'count' and 'votes' list containing individual member votes.

ParameterTypeRequiredDescription
sessionanyoptionalParliament session, e.g. '2025/26'. Format: YYYY/YY
doc_idanyoptionalFilter votes for a specific document designation (e.g. 'FiU1')
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "list_votes",
    "arguments": {}
  }
}
get_vote_detail

Get full voting detail with individual member votes for a specific ballot.

Returns the document context and every member's vote (Ja/Nej/Avstår/Frånvarande).

Returns:
Dict with document info and 'votes' list, or error if not found.

ParameterTypeRequiredDescription
votering_idstringrequiredVote ID from vote list (e.g. '2025/26:FiU1:1')
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "get_vote_detail",
    "arguments": {
      "votering_id": "example"
    }
  }
}
search_members

Search members of the Swedish Parliament (Riksdagen).

Returns current members by default. Use status='samtliga' to include
all historical members (2700+ total).

Returns:
Dict with 'count', 'total', and 'members' list with party, constituency, assignments.

ParameterTypeRequiredDescription
statusanyoptionalMember status: omit for current members, 'samtliga' for all historical members
partyanyoptionalParty code: 'S' (Social Democrats), 'M' (Moderates), 'SD' (Sweden Democrats), 'C' (Centre), 'V' (Left), 'KD' (Christian Democrats), 'L' (Liberals), 'MP' (Green)
limitintegeroptionalMax results to return (default 50) (default: 50)
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "search_members",
    "arguments": {}
  }
}
get_member

Get full details for a specific member of the Swedish Parliament.

Returns personal information, party affiliation, constituency,
and complete assignment history (committee roles, etc.).

Returns:
Member detail dict, or error if not found.

ParameterTypeRequiredDescription
person_idstringrequiredMember source ID from search results
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "get_member",
    "arguments": {
      "person_id": "example"
    }
  }
}
report_feedback

Report a bug, feature request, or general feedback for this data source.

Use this when something doesn't work as expected, when you'd like
a new feature, or when you have suggestions for improvement.

Args:
feedback: Describe the issue or suggestion.
feedback_type: One of 'bug', 'feature_request', or 'general'.

ParameterTypeRequiredDescription
feedbackstringrequired
feedback_typestringoptional (default: "general")
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "report_feedback",
    "arguments": {
      "feedback": "example"
    }
  }
}

Quick Start

Shell
curl -X POST "https://context.gnist.ai/mcp/riksdagen/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_document", "arguments": {"dok_id": "example"}}}'
Python
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/riksdagen/",
    headers={"Gnist-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
    json={
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "get_document",
    "arguments": {
      "dok_id": "example"
    }
  }
},
)
print(resp.json())

Related Toolkits (Government)

Resources