DEV Community

Ava Torres
Ava Torres

Posted on

How to Search US Lobbying Disclosure Data Programmatically (Senate LDA Database)

If you work in competitive intelligence, political research, journalism, or government affairs, lobbying disclosure data is one of the most underused public datasets available. Every company that lobbies Congress has to file quarterly reports showing how much they spent, which firms they hired, what issues they lobbied on, and which government agencies they targeted.

The data lives in the Senate's Lobbying Disclosure Act (LDA) database at lda.senate.gov. It covers every federally registered lobbying activity since 1999. The problem is that the site's search interface is clunky, pagination is manual, and there's no obvious way to export results programmatically for analysis.

What the data contains

Each lobbying filing includes:

  • Registrant -- the lobbying firm or in-house lobbying operation (e.g., Akin Gump, Boeing's government affairs team)
  • Client -- the entity paying for the lobbying (e.g., Meta, Lockheed Martin, Pharmaceutical Research and Manufacturers of America)
  • Income and expenses -- reported dollar amounts for the filing period
  • Issue area codes -- standardized categories like TAX, DEF (defense), HCR (health care), TRD (trade), ENV (environment), TEC (technology), BNK (banking)
  • Filing metadata -- year, quarter, filing type, posting date, and a direct URL to the full filing document

Who uses this

Competitive intelligence teams track which competitors are actively lobbying and on what issues. If a rival suddenly starts spending on defense appropriations lobbying, that tells you something about their pipeline.

Journalists and researchers use it to investigate corporate influence on legislation. You can answer questions like "How much did tech companies spend lobbying on AI regulation in 2024?" with a single query.

Government affairs professionals use it for compliance -- verifying that their own filings are consistent and monitoring the lobbying landscape around their issues.

Sales teams targeting government contractors use lobbying data as a signal. Companies that spend millions on federal lobbying are actively engaged with government and often have budget for related services.

Searching via API

I built an Apify actor that wraps the LDA database and returns clean, structured JSON. You can search by registrant, client, lobbyist name, year, quarter, and issue area code.

Here's how to run it from Python:

import requests

API_TOKEN = "your_apify_token"

# Find all Boeing lobbying filings from 2025
run = requests.post(
    f"https://api.apify.com/v2/acts/pink_comic~lobbying-disclosure-search/runs?token={API_TOKEN}",
    json={
        "registrantName": "Boeing",
        "filingYear": 2025,
        "maxResults": 50
    }
).json()

print(f"Run started: {run['data']['id']}")
Enter fullscreen mode Exit fullscreen mode

Once the run completes, fetch the results:

dataset_id = run["data"]["defaultDatasetId"]
items = requests.get(
    f"https://api.apify.com/v2/datasets/{dataset_id}/items?token={API_TOKEN}"
).json()

for filing in items:
    print(f"{filing['filingYear']} Q{filing['filingPeriod']} | "
          f"{filing['registrantName']} -> {filing['clientName']} | "
          f"Income: {filing['income']} | Expenses: {filing['expenses']}")
Enter fullscreen mode Exit fullscreen mode

Example queries

Track all tech lobbying on AI regulation:

{
    "issueCode": "TEC",
    "filingYear": 2025,
    "maxResults": 200
}
Enter fullscreen mode Exit fullscreen mode

Find which clients a specific lobbying firm represents:

{
    "registrantName": "Akin Gump",
    "filingYear": 2024,
    "maxResults": 100
}
Enter fullscreen mode Exit fullscreen mode

Search by client to see all firms a company has hired:

{
    "clientName": "Meta",
    "filingYear": 2025,
    "maxResults": 50
}
Enter fullscreen mode Exit fullscreen mode

Each result includes a documentUrl linking directly to the full filing on the Senate website, so you can drill into the details when needed.

Data source

All data comes from the official US Senate LDA database. No scraping -- this hits a public API. No API key required on the data source side. Filings are updated daily as new disclosures are posted.

The actor is here: US Lobbying Disclosure Search

It's part of a broader collection of government data actors covering SEC filings, federal contracts, campaign finance, business registrations, and more. If you're building workflows around public government data, there's probably something useful in there.

Top comments (0)