get_lobbying_filings
Returns Lobbying Disclosure Act (LDA) filings — quarterly LD-2 reports filed by registered lobbyist firms with the Senate Office of Public Records. Each record covers one (registrant, client, quarter) tuple, listing income paid, issues lobbied on, and government entities contacted. Use this when the user asks about: who's paying lobbyists, what issues a company is lobbying on, which senators or agencies a firm is contacting, lobbying spend by industry or sector, or to cross lobbying activity against congressional trades or federal contracts for political-influence analysis. Each filing has a lobbying_activities array (one entry per issue area worked on) plus three flattened summary arrays at top level: - general_issue_codes: 3-char codes (DEF, HEA, TRA, ENV, FIN, ...) - government_entities: agencies/branches contacted - lobbyist_names: lobbyists who worked the issue Top-level arrays support indexed queries; the nested array carries issue-level descriptions and lobbyist position info. general_issue_codes filter is OR-semantic — pass an array, match any filing containing AT LEAST ONE of those codes (max 30, per Firestore array-contains-any). Examples: ['DEF'] for defense, ['HEA','MMM'] for health + Medicare/Medicaid, ['TAX','FIN'] for tax + financial services. Income vs expenses (IMPORTANT for ranking by spend): the LDA mandates a hard split. Third-party lobbying firms report income (what the client paid them); in-house corporate lobbying departments report expenses (what they spent). The two fields are mutually exclusive — any given filing has one or the other, not both. In practice ~30% of filings have income, ~70% have expenses, with a small population reporting neither (administrative registrations). So sort_by=income ranks the third-party-firm subset; for an actual top-spenders leaderboard, agents should fetch both populations and sum income + expenses per filing client-side. v1.1 polish will add a derived total_lobbying_spend field that does this sum server-side for indexed queries. client_is_government is true when the client is a government body (US states often hire lobbyists). Activity descriptions are truncated at 5000 chars during ingestion to stay under Firestore's per-doc cap; agents can fetch the full filing via filing_document_url for the unbounded prose.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum records to return. Default 50, max 500. | |
| since | No | ISO date (YYYY-MM-DD). Only records on or after this date, using sort_by as the date field. | |
| until | No | ISO date (YYYY-MM-DD). Only records on or before this date. | |
| sort_by | No | Field used for ordering and for since/until filters. Default: dt_posted (when the filing was submitted). | |
| min_income | No | Filter to filings with income >= this amount (USD). Use to focus on big-dollar lobbying spend. | |
| sort_order | No | Default: desc (most recent / largest first). | |
| client_name | No | Substring match against the paying client's name (case-insensitive). E.g., 'Pfizer', 'Lockheed Martin', 'STATE OF CALIFORNIA'. | |
| filing_year | No | Calendar year of the reporting period (NOT the filing date). | |
| filing_period | No | Reporting period within filing_year. Quarters for LD-2; mid_year/year_end for LD-203 contributions windows. | |
| registrant_name | No | Substring match against the lobbying firm's name (case-insensitive). E.g., 'Akin Gump', 'Brownstein'. | |
| government_entity | No | Substring match against any government entity contacted. E.g., 'SENATE', 'Treasury', 'FDA', 'Defense, Dept of'. | |
| general_issue_codes | No | Array of 3-char issue codes (OR semantics). E.g., ['DEF'] for defense, ['HEA','MMM'] for health+Medicare. Max 30 codes per query. |