Skip to content

Danish Parliament API Documentation

Logo

Welcome to the comprehensive documentation for Denmark's Parliamentary Open Data API (oda.ft.dk) - the world's gold standard for government transparency APIs.

🏛️ API Highlights

  • Universal Access: No authentication required
  • Massive Dataset: 96,538+ cases, 18,139+ actors, 74+ years of data
  • Real-Time Updates: Parliamentary activity reflected within hours
  • Complete Transparency: Every vote, document, and relationship tracked
  • 50 Entities: Comprehensive parliamentary process modeling
  • Exceptional Performance: 85ms-2s response times

🚀 Quick Start

Your First API Call

curl "https://oda.ft.dk/api/Sag?%24top=5"

Critical: URL Encoding

Always use %24 instead of $ in OData parameters. This is the most common mistake developers make.

Recent Parliamentary Activity

# Get today's case updates
curl "https://oda.ft.dk/api/Sag?%24filter=opdateringsdato%20gt%20datetime'2025-09-09T00:00:00'&%24top=10"

📊 Live API Status Dashboard

Danish Parliament API

Checking status...

Uptime: --

-- ms Response Time

📄 Core Data

96,538 Cases (Sag)
18,139 Actors (Aktør)
-- Votes (Stemme)
-- Documents

🔄 Recent Activity

-- Updates Today
-- Last Update

⚡ Performance

API Response
Excellent
Data Freshness
Real-time
Primary Endpoint Checking...
OData Service Checking...
Metadata Checking...

Entity counts updated every 15 minutes

Response time measured from Copenhagen, Denmark

Uptime calculated over 30-day rolling window

Last checked: --

🎯 Common Use Cases

Track individual politician voting records and patterns

# Get all votes by specific politician
api_client.get_voting_records("Frank Aaen")

Monitor bill progress through parliamentary process

# Track climate legislation
api_client.get_cases(filter="substringof('klima', titel)")

Monitor parliamentary activity as it happens

# Get recent changes
api_client.get_recent_changes(hours_back=4)

📚 Documentation Structure

⭐ What Makes This Documentation Special

This documentation is based on the most comprehensive technical investigation ever conducted on a parliamentary API:

  • 30 Investigation Phases: Every aspect tested and documented
  • Real-World Testing: All examples tested against live API
  • Production Experience: Includes error patterns and optimization strategies
  • Complete Coverage: 50 entities, 200+ status types, 100+ role types documented

🤝 Contributing

This documentation is open source. Contributions, corrections, and improvements are welcome!


Built with ❤️ for democratic transparency