Returns congressional bill metadata from api.congress.gov

Returns congressional bill metadata from api.congress.gov. Use this when the user asks about: bills introduced this Congress, the status of a specific bill, House vs Senate bill volume, what bills mention a topic, or to bridge from a roll-call vote (legislation_type + legislation_number) to the underlying bill. Source: api.congress.gov v3 (Library of Congress). Covers ALL bill types: HR (House Bill), S (Senate Bill), HRES (House Simple Resolution), SRES (Senate Simple Resolution), HJRES (House Joint Resolution), SJRES (Senate Joint Resolution), HCONRES (House Concurrent Resolution), SCONRES (Senate Concurrent Resolution). v1A returns metadata only: title, type + number, originating chamber, latest action (date + text), and links. Sponsors, cosponsors, full action history, bill text, and CRS summaries live at api_url (structured JSON) and congress_gov_url (public HTML). Agents follow those for prose detail. Bill identifiers are stable composite keys formatted as {congress}-{TYPE}-{number}, e.g., '119-HR-134', '119-S-1234', '118-HJRES-5'. Use bill_id for the fastest direct lookup. Pure-publisher posture: KeyVex returns what's in the public record. No legislative outcome predictions, no 'likely to pass' signals.

get/v1/bills

Request

  • Base URL: https://api.keyvex.com
  • URL: https://api.keyvex.com/v1/bills
  • Auth: API key in header x-api-key

Query parameters

bill_idstring

Composite bill identifier ('{congress}-{TYPE}-{number}', e.g., '119-HR-134'). Direct doc lookup, fastest path.

congressinteger

Congress number (e.g., 119 = January 2025 onward; 118 = January 2023 - January 2025).

bill_type'HR' | 'S' | 'HRES' | 'SRES' | 'HJRES' | 'SJRES' | 'HCONRES' | 'SCONRES'

Type code. HR/S are bills; HRES/SRES are simple resolutions (single-chamber, non-binding); HJRES/SJRES are joint resolutions (both chambers, can become law); HCONRES/SCONRES are concurrent resolutions (both chambers, non-binding).

titlestring

Case-insensitive substring against bill title. Useful for topic searches ('artificial intelligence', 'border security', etc.).

origin_chamber'House' | 'Senate'

Filter to bills originating in one chamber.

sincestring

Latest-action date lower bound (ISO YYYY-MM-DD inclusive). Useful for 'what's moved recently'. NOTE: this filters the most-recent floor/committee action, which can move with activity even on a bill introduced a year ago. For 'introduced in the last N months' questions, use introduced_since instead.

untilstring

Latest-action date upper bound (ISO YYYY-MM-DD inclusive).

introduced_sincestring

Introduction-date lower bound (ISO YYYY-MM-DD inclusive). The right filter for 'bills introduced in the last N months' — distinct from since/until, which track latest action. Older bill records may have an empty introduction_date if they were ingested before that field was added; those will be excluded from introduced_since/introduced_until results until the bill is re-scraped.

introduced_untilstring

Introduction-date upper bound (ISO YYYY-MM-DD inclusive).

sort_by'latest_action_date' | 'update_date' | 'introduction_date'

Sort key. Default: latest_action_date (most recently active first). Use introduction_date to sort by when the bill was originally introduced.

sort_order'asc' | 'desc'

Default: desc.

limitinteger

Maximum bills to return. Default 50, max 500.

Response

JSON envelope: { results: [...], count, has_more }.

Changes

No recorded changes to this operation across all 1 revision of this API.