Data source: Stortinget (data.stortinget.no)
https://context.gnist.ai/rest/stortinget/
AuthenticationAll requests require a Gnist-API-Key header (or api_key query parameter).
Free tier: 100 calls/day. Get your API key.
Tools (10)
list_sessionsget_current_representativesget_representativeslist_partieslist_committeesget_casesget_caseget_voteslist_topicsreport_feedback
list_sessionsList all parliamentary sessions in the Norwegian Storting.
Returns sessions from 1986-87 to the current session, each identified by
a session ID like '2024-2025'. Use the session ID with other tools
(get_cases, list_committees) to query data within a specific session.
Returns:
Dict with 'count' and 'sessions' list. Each session has id, from, to dates.
{
"query": "example"
}get_current_representativesGet all current members of the Norwegian Parliament (Stortinget).
Returns the full list of sitting representatives, including their party,
county, committee assignments, and contact information.
Returns:
Dict with 'count' and 'representatives' list. Each has id, name, party,
county, committees, email, gender, and date_of_birth.
{
"query": "example"
}get_representativesGet representatives for a specific parliamentary period.
Parliamentary periods span four years (e.g. '2021-2025', '2017-2021').
Use list_sessions to find valid period IDs.
Args:
period_id: Parliamentary period (e.g. '2021-2025').
Returns:
Dict with 'count' and 'representatives' list.
| Parameter | Type | Required | Description |
|---|---|---|---|
period_id | string | required | Parliamentary period (e.g. '2021-2025'). |
{
"period_id": "example"
}list_partiesList political parties in the Norwegian Parliament.
Without a session_id, returns all parties (historical and current).
With a session_id, returns only parties represented in that session.
Args:
session_id: Optional session (e.g. '2024-2025'). Omit for all parties.
Returns:
Dict with 'count' and 'parties' list. Each has id and name.
| Parameter | Type | Required | Description |
|---|---|---|---|
session_id | any | optional | Optional session (e.g. '2024-2025'). Omit for all parties. |
{
"query": "example"
}list_committeesList parliamentary committees for a given session.
Committees handle specific policy areas: finance, justice, health, energy, etc.
Each session typically has 15-18 standing committees.
Args:
session_id: Parliamentary session (e.g. '2024-2025').
Returns:
Dict with 'count' and 'committees' list. Each has id and name.
| Parameter | Type | Required | Description |
|---|---|---|---|
session_id | string | required | Parliamentary session (e.g. '2024-2025'). |
{
"session_id": "example"
}get_casesGet all cases (bills, propositions, questions) for a parliamentary session.
Returns all cases processed during the session, including their committee
assignment, topics, and status. Use the case ID with get_case for full
details or get_votes for voting results.
Args:
session_id: Parliamentary session (e.g. '2024-2025').
Returns:
Dict with 'count' and 'cases' list. Each has id, title, committee,
topics, and status.
| Parameter | Type | Required | Description |
|---|---|---|---|
session_id | string | required | Parliamentary session (e.g. '2024-2025'). |
{
"session_id": "example"
}get_caseGet detailed information about a specific parliamentary case.
Returns full case details including proposers, rapporteurs, committee,
topics, and reference information.
Args:
case_id: Numeric case ID (e.g. 103839).
Returns:
Full case details with proposers, rapporteurs, topics, and committee info.
| Parameter | Type | Required | Description |
|---|---|---|---|
case_id | integer | required | Numeric case ID (e.g. 103839). |
{
"case_id": 1
}get_votesGet voting results for a parliamentary case.
Returns all votes taken on the case, including for/against counts,
whether it passed, and the specific motion being voted on.
Args:
case_id: Numeric case ID (e.g. 103839).
Returns:
Dict with 'count' and 'votes' list. Each vote has for/against/absent
counts, passed status, and the motion topic.
| Parameter | Type | Required | Description |
|---|---|---|---|
case_id | integer | required | Numeric case ID (e.g. 103839). |
{
"case_id": 1
}list_topicsList the parliamentary topic taxonomy.
Returns the two-level hierarchy of policy topics used to classify cases.
Main topics include areas like Energy, Finance, Defense, Education, Health.
Each main topic has subtopics for more specific classification.
Returns:
Dict with 'count' and 'topics' list. Each has id, name, is_main_topic,
and a subtopics list.
{
"query": "example"
}report_feedbackReport 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'.
| Parameter | Type | Required | Description |
|---|---|---|---|
feedback | string | required | |
feedback_type | string | optional | (default: "general") |
{
"feedback": "example"
}Quick Start
curl -X POST "https://context.gnist.ai/rest/stortinget/get_representatives" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"period_id": "example"}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/rest/stortinget/get_representatives",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={
"period_id": "example"
},
)
print(resp.json())