canonical: https://jentic.com/apis/congress.gov/congress-gov

# Congress.gov API

Jentic publishes the only available OpenAPI specification for Congress.gov API, keeping it validated and agent-ready. The Congress.gov API is the official U.S. Library of Congress feed of federal legislative data, covering bills, amendments, members, committees, nominations, treaties, congressional records, and committee reports. The 60 endpoints expose lookups by congress number, bill type and number, member ID, committee, and amendment, with sub-resources for actions, cosponsors, summaries, subjects, titles, and full text versions. It is the canonical source for tracking U.S. federal legislation.

## For AI agents

Look up U.S. bills, amendments, members of Congress, committees, nominations, and treaties. Useful for agents that monitor legislation, brief policy teams, or build civic-tech tools.

## Scope

Does not handle state legislatures, executive-branch regulations, or full document hosting (PDF storage) - use for U.S. federal legislative metadata only.

## Capabilities

- Look up a specific bill by congress, bill type, and bill number to read its current status
- Pull all actions on a bill to track its passage through committee, floor, and conference
- List cosponsors of a bill to identify member alignment on a topic
- Fetch official summaries and full text versions of a bill for briefing or analysis
- Look up a member of Congress and read their committee assignments and sponsored bills
- List nominations awaiting Senate confirmation and read their actions
- Pull committee reports, congressional record entries, and treaty documents

## Use cases

### Legislative Tracking Dashboard

Build a dashboard that tracks specific bills through the legislative process. The agent calls GET /bill/{congress}/{billType}/{billNumber}/actions on a schedule, stores new actions in a database, and notifies subscribers when a tracked bill advances. Sub-resources for cosponsors, committees, and text versions are pulled on demand to surface the latest status. This replaces ad-hoc scraping with a reliable structured feed.

Example prompt: Call GET /bill/118/hr/1/actions every 15 minutes, diff against the last cached response, and post new action_date and text entries to the legislation Slack channel.

### Member Voting Profile Reports

Generate a profile for a specific member of Congress that includes sponsored bills, cosponsored bills, and committee assignments. The agent calls GET /member/{bioguideId} and supporting endpoints, then composes a Markdown brief. This is useful for press secretaries, advocacy groups, and policy researchers who want a current snapshot without a manual trawl through congress.gov.

Example prompt: Fetch member B001230 via GET /member/{bioguideId} and combine with their sponsored and cosponsored bills to produce a one-page Markdown profile for the policy team.

### AI Policy Research Assistant

Power a research assistant that can answer factual questions about U.S. legislation. When a user asks what is in H.R. 1 of the 118th Congress, the agent calls GET /bill/118/hr/1/summaries for the official summary and GET /bill/118/hr/1/text for the latest text version, then produces a grounded response. Because the data comes from the official Library of Congress feed, hallucination risk drops sharply.

Example prompt: On the question what is in H.R. 1?, call GET /bill/118/hr/1/summaries and GET /bill/118/hr/1/text, then return a citation-backed summary referencing both endpoints.

### AI Agent Civic-Tech Integration via Jentic

Expose Congress.gov data inside an agent without managing the API key in prompts. The agent searches Jentic for find a us bill, loads the GET /bill/{congress}/{billType}/{billNumber} schema, and executes it with the api_key parameter populated server-side from your Jentic One instance. The same wrapper covers members, amendments, and committee reports for civic-tech assistants.

Example prompt: Through Jentic, search find a us bill, load the GET /bill/{congress}/{billType}/{billNumber} schema, and execute it for congress 118, billType hr, billNumber 1.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /bill/{congress}/{billType}/{billNumber} | Get a specific bill |
| GET | /bill/{congress}/{billType}/{billNumber}/actions | Get actions on a bill |
| GET | /bill/{congress}/{billType}/{billNumber}/text | Get text versions of a bill |
| GET | /bill/{congress}/{billType}/{billNumber}/cosponsors | Get cosponsors of a bill |
| GET | /bill/{congress}/{billType}/{billNumber}/summaries | Get official summaries of a bill |
| GET | /amendment/{congress}/{amendmentType}/{amendmentNumber} | Get a specific amendment |

## Key resources

- **Bill** — List and look up bills with sub-resources for actions, cosponsors, committees, text, summaries, and subjects
- **Amendment** — List amendments and read actions, cosponsors, and amendment-on-amendment chains
- **Member** — Look up a member of Congress and their sponsored or cosponsored bills
- **Committee** — List committees and read their referred bills, reports, and meetings
- **CommitteeReport** — Fetch committee report documents associated with bills
- **Nomination** — List Senate nominations and their actions
- **Treaty** — List treaties and read their actions and committee history
- **CongressionalRecord** — Fetch congressional record issues and entries
- **Law** — Look up enacted public and private laws

## Why Jentic

- **Setup:** Wiring the Congress.gov API by hand means registering for an api_key, appending it as a query parameter on every request, and building the paging over bills, amendments, and their sub-collections yourself. Through Jentic you install once, import the Congress.gov API from the API Directory, store the api_key once, and your agent calls it.
- **Permission scoping:** The Congress.gov API is read-only over U.S. federal legislative metadata, so you limit the agent to the GET operations it needs, such as fetching a bill or its actions and cosponsors, and it can retrieve nothing beyond that set. Because every operation only reads public legislative data, there is nothing for the agent to modify or delete.
- **Credential handling:** Your Congress.gov api_key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'get the text of a bill' or 'list a bill's cosponsors', and Jentic returns the matching Congress.gov operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **GovInfo API** — GovInfo provides full-text access to congressional and federal government documents
- **data.gov API** — data.gov is the umbrella catalog for U.S. federal open datasets
- **GovInfo Federal Register** — GovInfo also covers regulatory and executive-branch publications outside the legislative branch

## FAQ

### Why is there no official OpenAPI spec for Congress.gov API?

The Library of Congress publishes Swagger-style docs but not a maintained OpenAPI 3 specification suitable for agent tooling. Jentic generates and maintains this spec so that AI agents and developers can call Congress.gov API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Congress.gov API use?

It uses an API key passed as the api_key query parameter on every request. Keys are issued for free at api.congress.gov via api.data.gov. Through Jentic the key is held in the vault and inserted server-side, so the raw key never enters the agent's prompt.

### Can I get the full text of a bill through this API?

Yes. GET /bill/{congress}/{billType}/{billNumber}/text returns links to all available text versions of a bill (introduced, engrossed, enrolled) along with format options. You then fetch the format you need (XML, PDF, or HTML) from the returned URL.

### What are the rate limits for the Congress.gov API?

The API is gated behind api.data.gov, which applies a rolling-hour limit per API key (commonly 5,000 requests per hour). When the limit is reached the response is HTTP 429, so an agent should back off and retry on the next hour boundary.

### Can I look up a specific member of Congress?

Yes. GET /member/{bioguideId} returns a member's profile including chamber, party, state, and current term. Combine with the sponsored and cosponsored bill endpoints under /member to build a complete legislative profile.

### How do I track a bill through Jentic?

Run pip install jentic, then await client.search('get actions on a us bill'), load the matching operation schema, and execute it. The underlying call is GET /bill/{congress}/{billType}/{billNumber}/actions with the bill identifiers you supply at runtime.

### Can I limit what my agent is allowed to do with the Congress.gov API?

Yes. Jentic One is self-hosted, so your own rules decide which operations and credentials your agent may use, and you can restrict it to only the GET operations it needs, such as fetching a bill or its actions and cosponsors. The Congress.gov API is read-only over U.S. federal legislative metadata, so there is nothing for the agent to modify or delete, and it can retrieve nothing beyond the endpoints you allow. Your api_key is injected server-side at execution time by your own instance, so the agent never sees the raw credential.
