Corporate Lobbying Dataset
Track corporate lobbying activity from US Senate Lobbying Disclosure Act (LDA) filings. See which companies spend on lobbying, which firms represent them, what policy issues they target, and which government entities they engage.
What’s Included
Section titled “What’s Included”The Corporate Lobbying dataset provides:
- Filing Details: Date, filing year, quarter, and unique filing identifier
- Registrant Information: Lobbying firm name and client company
- Financial Data: Income and expenses reported per filing
- Issue Codes: Policy areas lobbied on (e.g., TAX, TRD, COM)
- Government Entities: Bodies engaged (e.g., Senate, House)
Coverage
Section titled “Coverage”| Source | Description | Update Frequency |
|---|---|---|
| US Senate LDA | Lobbying Disclosure Act filings | Quarterly |
Quick Start
Section titled “Quick Start”from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
df = fb.corporate_lobbying.ticker("AAPL", as_dataframe=True)print(df)import requests
API_KEY = "YOUR_API_KEY"BASE_URL = "https://api.finbrain.tech/v2"
response = requests.get( f"{BASE_URL}/lobbying/AAPL", headers={"Authorization": f"Bearer {API_KEY}"})
data = response.json()for filing in data["data"]["filings"]: print(f"{filing['date']} Q{filing['quarter']}: {filing['registrantName']} " f"- ${filing['income']:,.0f} income, ${filing['expenses']:,.0f} expenses")For complete code examples in Python, JavaScript, C++, Rust, and cURL, see the API Reference.
Key Fields
Section titled “Key Fields”| Field | Description | Example |
|---|---|---|
clientName | Company being represented | Apple Inc. |
registrantName | Lobbying firm hired | Lobbying Firm LLC |
income | Income reported by registrant (USD) | 50000 |
expenses | Expenses reported by registrant (USD) | 75000 |
issueCodes | Policy areas lobbied on | [“TAX”, “TRD”, “COM”] |
governmentEntities | Government bodies engaged | [“Senate”, “House”] |
quarter | Filing quarter | Q3 |
filingYear | Filing year | 2025 |
Common Issue Codes
Section titled “Common Issue Codes”| Code | Policy Area |
|---|---|
| TAX | Taxation/Internal Revenue Code |
| TRD | Trade (Domestic and Foreign) |
| COM | Communications/Broadcasting/Radio/TV |
| CPT | Computer Industry |
| ENV | Environmental/Superfund |
| HCR | Health Issues |
| DEF | Defense |
| FIN | Financial Institutions/Investments/Securities |
| IMM | Immigration |
| TEC | Telecommunications |
Use Cases
Section titled “Use Cases”Top Lobbying Spenders
Section titled “Top Lobbying Spenders”Scan a list of tickers to find companies with the highest lobbying spend:
from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
def scan_lobbying_spend(symbols): """Find companies with the highest lobbying spend""" results = []
for symbol in symbols: try: df = fb.corporate_lobbying.ticker(symbol, as_dataframe=True)
total_spend = df["income"].sum() + df["expenses"].sum() results.append({ "symbol": symbol, "filings": len(df), "total_spend": total_spend }) except Exception: continue
return sorted(results, key=lambda x: x["total_spend"], reverse=True)
tech_symbols = ["AAPL", "MSFT", "GOOGL", "AMZN", "META"]spenders = scan_lobbying_spend(tech_symbols)
for s in spenders: print(f"{s['symbol']}: {s['filings']} filings, ${s['total_spend']:,.0f} total spend")Quarterly Spend Trend
Section titled “Quarterly Spend Trend”Track how a company’s lobbying spend changes quarter over quarter:
from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
def quarterly_lobbying_trend(symbol): """Analyze lobbying spend by quarter""" df = fb.corporate_lobbying.ticker(symbol, as_dataframe=True)
df["period"] = df["filingYear"].astype(str) + "-" + df["quarter"] df["total_spend"] = df["income"] + df["expenses"]
quarterly = df.groupby("period").agg( filings=("total_spend", "count"), total_spend=("total_spend", "sum"), registrants=("registrantName", "nunique") ).sort_index()
return quarterly
trend = quarterly_lobbying_trend("AAPL")for period, row in trend.iterrows(): print(f"{period}: ${row['total_spend']:,.0f} across {row['registrants']} firms " f"({row['filings']} filings)")Issue Code Analysis
Section titled “Issue Code Analysis”Discover which policy areas a company focuses its lobbying efforts on:
from finbrain import FinBrainClient
fb = FinBrainClient(api_key="YOUR_API_KEY")
def analyze_issue_codes(symbol): """Break down lobbying by policy area""" df = fb.corporate_lobbying.ticker(symbol, as_dataframe=True)
# Explode issueCodes list into individual rows exploded = df.explode("issueCodes")
issue_counts = exploded.groupby("issueCodes").agg( filings=("issueCodes", "count"), total_income=("income", "sum") ).sort_values("filings", ascending=False)
return issue_counts
issues = analyze_issue_codes("AAPL")for code, row in issues.iterrows(): print(f"{code}: {row['filings']} filings, ${row['total_income']:,.0f} income")Related Resources
Section titled “Related Resources”- Corporate Lobbying API Reference - Endpoint details, parameters, and response schema
- Insider Transactions Dataset - Track executive trades
- House Trades Dataset - Congressional trading activity
- Senate Trades Dataset - Senate trading activity