Government Data API

Legislation and elections, in one API.

Bills, roll-call votes, sponsors, and full text across Congress and all 50 states, plus the 2026 races, ballot measures, and official results as states report them.

request
curl "https://api.delilahusa.com/v1/bills\
     ?state=FL&q=school+safety&limit=1" \
  -H "X-API-Key: dk_live_…"
response
{
  "data": [
    {
      "bill_id": "9090003809",
      "bill_number": "S0052",
      "state_abbr": "FL",
      "title": "Security Services at Places of Worship",
      "status_id": 8,
      "status_date": "2026-04-24"
    }
  ],
  "pagination": { "limit": 1, "offset": 0, "returned": 1 }
}

Congress + 50 states

Every U.S. legislature, plus D.C. — one schema.

280,000+ bills

Status, sponsors, subjects, history, and full text.

Every recorded vote

Roll calls with individual member positions.

2026 elections

Races, candidates, ballot measures, and official results as states report them.

The data

Everything you can pull.

One schema across every legislature. Figures are rounded down from live counts and grow with each session; call /v1/coverage for exact per-state numbers.

Legislation

280,000+

Bills

Every measure with its number, title, status, chamber, and session — one schema across all 52 jurisdictions.

700,000+

Text versions

The cleaned plain text of every version as filed, engrossed, and enrolled, plus computed diffs between any two.

2.1M

Action history

Every recorded step a bill takes, dated and attributed to a chamber.

480,000+

Subject tags

The categories legislatures assign, mapped to a curated topic taxonomy.

390,000+

Committee referrals

Which committee a bill went to, and when.

139,000+

Fiscal notes and analyses

Staff analyses and fiscal impact statements where the state publishes them.

136,000+

Companion bills

Same-as and similar-to links across chambers and across states.

95,000+

Amendments

Offered, adopted, and failed amendments attached to their bill.

Votes

320,000+

Roll calls

Motion, chamber, date, and the yea/nay/absent tally for each recorded vote.

13.7M

Individual member positions

How every named legislator voted on every roll call — not just the tally.

People and committees

21,000+

Legislators

Party, chamber, district, and identifiers that cross-walk to Bioguide and FEC records.

1.5M

Sponsorship records

Primary sponsors and cosponsors, in filing order, for every bill.

6,300+

Committees

Rosters with roles, plus the bills referred to each.

500,000+

Hearings and calendar events

Scheduled meetings with date, time, location, and committee.

Elections

4,900+

Races

4,100 state-legislative, 681 federal, and 169 statewide-executive contests for the 2026 cycle, each with its primary, runoff, and general as separate contests.

18,000+

Candidates

Party, office, district, and cycle, with an FEC filer id on 5,800 of them for federal campaign-finance joins.

133

Statewide ballot measures

Full text, summary, and the official Secretary of State source for each, across 38 states.

9,900+

Reported results

Vote counts with precincts reporting, from 45 official state election-office feeds across 44 states and D.C. Every row carries the source URL it came from.

Search and discovery

1.1M

Full-text embeddings

Vector chunks over complete bill text, so plain-English search returns bills by meaning rather than keyword.

52

Jurisdictions

All 50 states, the District of Columbia, and the federal Congress.

139

Legislative sessions

Regular and special sessions from 2021 through 2027, with convening and sine die dates.

How deep it goes

98%

of bills carry at least one sponsor

94%

of bills carry at least one text version

34%

of bills carry a recorded roll call

Read that last figure as a fact about legislatures rather than a gap in the data. Most bills die in committee without a recorded vote ever being taken, so no source can show a roll call that does not exist. Where a vote happened, we carry every member's individual position, not just the tally.

Elections

The 2026 cycle, from filing to returns.

The same API carries the races those bills are being run on. One call returns a state's entire slate — every contest, every candidate, every measure — and the official vote counts underneath them.

The whole slate in one call

/v1/midterms?state=FL returns every congressional, statewide-executive, and state-legislative race, each with its primary, runoff, and general kept as separate contests so a primary margin is never mistaken for a general-election result.

Official results underneath

Vote counts flow from 45 state election-office feeds across 44 states and D.C., with precincts reporting and a capture timestamp. Every row carries the official source URL, so any number on your screen can be traced back to the state that published it.

Ballot measures in full

Statewide measures across 38 states with ballot title, full text, summary, and the Secretary of State page they came from — enough to render a voter guide without a second source.

Districts as geometry

Congressional, state senate, and state house districts with boundaries as GeoJSON on request, simplified to the tolerance you ask for. Enough to draw a live results map from this API alone.

Request
curl "https://api.delilahusa.com/v1/midterms    ?state=GA&q=Governor"   -H "X-API-Key: dk_live_…"
Response
"live_results": [
  {
    "contest": "runoff:REP",
    "election_date": "2026-06-16",
    "precincts_reporting": 159,
    "precincts_total": 159,
    "source": "official:GA:enhanced-voting",
    "source_url": "https://results.sos.ga.gov/…",
    "results": [
      { "name": "Rick Jackson",
        "votes": 373543, "vote_pct": 52.65 },
      { "name": "Burt Jones",
        "votes": 336011, "vote_pct": 47.36 }
    ]
  }
]

Counts, never calls

We report what the official source reports: vote totals, the share of precincts reporting, and the timestamp it was captured. We do not call races, project winners, or publish a forecast. If you need a call, that is a decision your product makes on top of numbers you can audit — every result row carries the state URL it came from.

Model Context Protocol

Bring Delilah to your AI assistant.

Our MCP server drops the entire legislative corpus into Claude, Cursor, and any MCP-compatible client — search bills, pull roll-call votes, and read full text in plain language, with your own API key.

Set up the MCP server
claude · cursor
{
  "mcpServers": {
    "delilah": {
      "command": "npx",
      "args": ["-y", "delilah-legislation-mcp"],
      "env": { "DELILAH_API_KEY": "dk_live_…" }
    }
  }
}

Live in three steps.

01

Request a key

Tell us what you’re building. Keys are approved within one business day.

02

Call the API

One header, clean REST, an OpenAPI spec. Bills, votes, legislators, committees, and full text.

03

Build

Power a product, a dashboard, an alerting pipeline — or hand it straight to an AI assistant.

Start building with Delilah.

Tell us what you’re building and we’ll get you a key — usually within a business day.