Loading CIV.IQ
Preparing your civic information dashboard
Preparing your civic information dashboard
Free civic data for developers, journalists, researchers, and AI agents.
No API key. No account. No tracking. Every endpoint, dataset, and protocol on this page is free and open under the MIT license.
No API key, no registration. Paste this into a terminal:
curl https://civdotiq.org/api/v1/representatives?state=MI&chamber=house
npm install @civiq/sdk
import { CivIQ } from '@civiq/sdk';
const civiq = new CivIQ();
const reps = await civiq.representatives.list({ state: 'MI', chamber: 'house' });{
"data": [
{
"bioguideId": "S000770",
"name": "Debbie Stabenow",
"party": "Democrat",
"state": "MI",
"district": null,
"chamber": "Senate",
"title": "Senator",
"phone": "(202) 224-4822",
"website": "https://stabenow.senate.gov",
"yearsInOffice": 24,
"nextElection": "2026"
}
],
"pagination": { "total": 13, "limit": 100, "offset": 0, "hasMore": false },
"meta": {
"apiVersion": "v1",
"timestamp": "2026-03-25T14:32:15.894Z",
"source": "congress-legislators",
"license": "MIT",
"documentation": "https://civdotiq.org/docs/api"
}
}Returns JSON. No authentication required. Cached for 1 hour.
All endpoints are rate-limited per IP using a sliding window. No API key required — but respect the limits so the service stays free for everyone.
| Endpoint | Limit |
|---|---|
| /api/v1/* | 60 requests / minute |
| /api/feed/* | 60 requests / minute |
| /api/representatives | 60 requests / minute |
| /api/district-map | 30 requests / minute |
| /api/* (other) | 100 requests / minute |
| Default | 200 requests / minute |
Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. If you hit the limit, you'll receive a 429 response. Need higher limits? Open an issue.
Six ways to access civic data, from REST to AI-native protocols.
Public JSON endpoints for representatives, bills, votes, and districts.
181 endpoints, no authConnect AI agents to live civic data via the Model Context Protocol.
54 tools, 9 domainsTyped client for all CIV.IQ endpoints. Node.js, Deno, and browser.
9 resource classesDrop-in iframes for live civic data on any website.
3 widget typesSubscribe to legislative updates in any RSS/Atom reader.
8 feed typesDownload complete datasets. No account required.
7 datasets, CSV/JSONConnect AI agents to live civic data via the Model Context Protocol. 54 tools across 9 domains, plus resources and prompt templates.
{
"mcpServers": {
"civiq": {
"url": "https://civdotiq.org/api/mcp"
}
}
}| Domain | Example Tools |
|---|---|
| Representatives | get_representative_profile, search_representatives |
| Legislation | get_bill_details, search_bills, get_voting_history |
| Finance | get_campaign_finance, search_lobbying |
| Intelligence | analyze_vote_prediction, get_influence_chain |
| Civic | get_district_info, lookup_address_district |
| Environment | search_epa_facilities, get_district_environmental_profile |
| Health | search_hospitals, search_open_payments, search_fda_recalls |
| Safety | search_fema_disasters, search_consumer_complaints |
| Economy | get_state_energy_profile, search_fdic_institutions |
| civiq://legislators/{bioguideId} |
| civiq://bills/{congress}/{type}/{number} |
| civiq://districts/{state}/{district} |
| civiq://districts/{state}/{district}/environment |
| civiq://districts/{state}/{district}/health |
| civiq://districts/{state}/{district}/safety |
| civiq://districts/{state}/{district}/economy |
legislator_accountabilityAccountability analysis combining finance, votes, and lobbying |
bill_impact_analysisBill analysis with sponsor funding and industry alignment |
policy_comparisonCompare legislators on votes, funding, and policy |
district_deep_diveCross-domain district analysis (12 data sources) |
industry_investigationIndustry sector across regulatory, lobbying, and political dimensions |
environmental_justiceEnvironmental justice analysis for a congressional district |
Typed client for all CIV.IQ endpoints. Works in Node.js, Deno, and the browser.
import { CivIQ } from '@civiq/sdk';
const civiq = new CivIQ();
const reps = await civiq.representatives.list({ state: 'MI' });
const bill = await civiq.legislation.getBill('hr1-119');
const prediction = await civiq.intelligence.votePrediction('B001230', 'hr1-119');civiq.representativesciviq.legislationciviq.financeciviq.intelligenceciviq.civicciviq.environmentciviq.healthciviq.safetyciviq.economySubscribe to civic updates in any RSS/Atom reader. All feeds return application/atom+xml.
| Feed | Description |
|---|---|
| /api/feed/bills/latest | Latest bills introduced in Congress |
| /api/feed/member/{bioguideId} | Per-member activity feed |
| /api/feed/bill/{billId} | Status updates for a specific bill |
| /api/feed/committee/{committeeId} | Committee activity feed |
| /api/feed/district/{districtId} | District activity feed |
| /feeds/floor | House and Senate floor activity |
| /api/feed/state/{state}/bills | State legislation feed |
| /api/feed/state/{state}/legislator/{id} | State legislator activity |
Download complete datasets as CSV or JSON. Updated hourly from official government sources. No account required.
All current members of the 119th Congress with party, state, district, and contact info.
Congressional committees and their members with roles and seniority.
The 250 most recently updated bills in the 119th Congress.
The 20 most recent roll-call vote summaries from both chambers.
Individual member voting positions for recent roll-call votes.
Campaign finance totals for all members of Congress from FEC.gov.
curl -O https://civdotiq.org/api/download/congress-members?format=csv
Catalog endpoint: GET /api/download
Machine-readable specs and AI-optimized content for LLMs, agents, and crawlers.
| MCP Server | /api/mcp |
| OpenAPI 3.0 | /openapi.json |
| llms.txt | /llms.txt |
| llms-full.txt | /llms-full.txt |
CIV.IQ publishes to decentralized networks so civic records exist independently of this website.
Standalone packages you can use in your own civic tech projects. All MIT licensed.
Typed TypeScript client for all 181 CIV.IQ API endpoints. Covers representatives, bills, votes, committees, districts, intelligence, search, states, and the civic graph. Works in Node.js, Deno, and browsers.
npm install @civiq/sdk
Statistical utilities tuned for civic data — correlation analysis, peer comparison, confidence scoring, anomaly detection, and significance testing with civic-domain defaults and minimum sample sizes.
npm install @civiq/civic-statistics
Entity resolution for civic data — committee and agency alias matching, industry taxonomy classification, ticker-to-sector resolution, FEC contributor deduplication, and lobbying issue-to-policy mapping.
npm install @civiq/entity-resolution
Every data point on CIV.IQ comes from an official government source. We never fabricate or estimate data. If a source is unavailable, we return empty results — not guesses.
API responses are cached using Incremental Static Regeneration (ISR). The cache automatically refreshes at these intervals from the upstream government sources:
| Update Frequency | Data Types |
|---|---|
| 5 minutes | News, trending bills, search results |
| 1 hour | Votes, bills, campaign finance, lobbying |
| 24 hours | Representatives, committees, districts, demographics |
| 30 days | Geocoding results, address lookups |
| 6 months | Historical voting records |
We believe in being transparent about what our data covers and where gaps exist.
The public API is currently v1. We follow semantic versioning: breaking changes will only ship in a new major version with at least 90 days notice. Non-breaking additions (new fields, new endpoints) ship continuously.
View API ChangelogCIV.IQ is open source and community-supported. Here's how to get help:
Using CIV.IQ data? We appreciate a link back. Copy this HTML:
<a href="https://civdotiq.org" rel="dofollow">Powered by CIV.IQ</a>
All data is sourced from official government APIs. CIV.IQ is MIT licensed.