optional-skills/research/osint-investigation/references/sources/senate-ld.md
The Senate Office of Public Records publishes lobbying disclosures under the Lobbying Disclosure Act of 1995 (LDA, as amended by HLOGA 2007). LD-1 is registration of a new client-lobbyist relationship; LD-2 is the quarterly activity report.
https://lda.senate.gov/api/v1/ (no auth required for read-only)https://lda.senate.gov/api/v1/filings/?format=csv (paginated)Key fields emitted by fetch_senate_ld.py:
| Column | Type | Description |
|---|---|---|
filing_uuid | str | Unique filing ID |
filing_type | str | LD-1, LD-2, LD-203, etc. |
filing_year | int | Year |
filing_period | str | Q1/Q2/Q3/Q4 or annual |
registrant_name | str | Lobbying firm or organization |
registrant_id | str | Senate-assigned registrant ID |
client_name | str | Client being represented |
client_id | str | Senate-assigned client ID |
client_general_description | str | Client industry / business |
income | float | LD-2 income from client this quarter (USD) |
expenses | float | LD-2 expenses (in-house lobbying) |
lobbyists | str | Semicolon-separated lobbyist names |
issues | str | Semicolon-separated issue areas |
government_entities | str | Agencies/chambers contacted |
filing_date | str | YYYY-MM-DD |
client_name (clients lobbying for contracts)client_name (public companies as lobbying clients)client_name (sanctions screening of lobbying clients)Join key: normalized client_name. registrant_id and client_id are canonical when joining Senate-internal records.
issues and government_entities are free-text — Inconsistent capitalizationPath: scripts/fetch_senate_ld.py
# By client
python3 SKILL_DIR/scripts/fetch_senate_ld.py --client "EXAMPLE CORP" \
--year 2024 --out data/lobbying.csv
# By registrant (lobbying firm)
python3 SKILL_DIR/scripts/fetch_senate_ld.py --registrant "BIG K STREET LLP" \
--year 2024 --out data/lobbying.csv
Set SENATE_LDA_TOKEN env var if you have one (or pass --token).
Defaults to anonymous (120 req/hour).