# US Lobbying Disclosure Scraper - Senate LDA, No API Key (`flash_scraper/lobbying-disclosure-scraper`) Actor

Lobbying disclosure scraper for US federal filings from the official Senate LDA API. One clean row per filing: registrant, client, spend, issues, lobbyists and agencies targeted. Flags revolving-door lobbyists plus a 0-100 influence score. Filter by year, registrant, client or issue.

- **URL**: https://apify.com/flash\_scraper/lobbying-disclosure-scraper.md
- **Developed by:** [Flash Scrape](https://apify.com/flash_scraper) (community)
- **Categories:** News, Lead generation, Business
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Lobbying Disclosure Scraper - US Senate LDA, No API Key

A **lobbying filings scraper** for the US Senate LDA database: registrants, their clients, the issues lobbied and the amounts reported, quarter by quarter.

Turn the official **US Senate Lobbying Disclosure Act (LDA)** database into a clean, filterable lead feed of who's lobbying whom, for how much, and — the part no other scraper does — **which lobbyists previously held a government job (revolving door)**. **$5 per 1,000 filings**, pay only for results delivered.

### What does it do?

This actor pulls federal **lobbying disclosure filings** straight from the official Senate LDA API and flattens the deeply nested JSON into one row per filing: the **registrant** (lobbying firm), the **client** who paid, filing type/year/period, **income and expenses**, the **issues lobbied**, the **named lobbyists**, and the **government entities targeted**. Every filing is scored with an explainable **0-100 influence score** and flagged for **revolving-door lobbyists** — people who moved from a covered government position straight into lobbying — plus **foreign ties** and prior **conviction disclosures**. It's built to replace manual digging through lda.senate.gov or a $10k+/year subscription to FiscalNote or Quorum.

### Why use it / who's it for

- **Investigative journalists & oppo researchers** who need to answer "who lobbied for this bill, for which client, and did any of the lobbyists used to work in government" without reading hundreds of PDFs.
- **Public-affairs and PR firms** tracking competitors' or clients' lobbying footprint — spend, issues, and agencies targeted — over a quarter or year.
- **Policy researchers & think tanks** mapping which industries are spending the most on which issue codes (tax, healthcare, defense, tech).
- **Compliance and government-affairs teams** monitoring their own registrants, clients, and lobbyist rosters for accuracy and disclosure gaps.
- **Anyone replacing an enterprise lobbying-intelligence subscription** ($10k+/year tools) with pay-per-result access to the same underlying public data.

### How to use it

1. Optionally set a **filing year** (e.g. `2024`) — leave blank for the most recent filings.
2. Optionally filter by **registrant name** (lobbying firm), **client name** (who paid), or **issue code** (`TAX`, `HCR`, `DEF`, `TEC`, etc.) — all partial-match.
3. Turn on **`revolvingDoorOnly`** to keep only filings naming a lobbyist who previously held a covered government position — the core investigative angle.
4. Optionally set **`minInfluenceScore`** (0-100) to filter out small/routine filings and surface only the heaviest lobbying efforts.
5. Set **`maxItems`** and run. Export the dataset to CSV, JSON, or Excel, or pull it via API/MCP into your own pipeline.

### Output fields

| Field | Description |
|---|---|
| `filing_uuid` | Unique filing identifier |
| `filing_year`, `filing_period`, `filing_type` | When the filing covers and what type it is (registration / Q1-Q4 report) |
| `influence_score` | Explainable 0-100 score (spend + lobbyist headcount + issues + agencies + revolving door + foreign ties) |
| `influence_breakdown` | Point-by-point breakdown of the score above |
| `revolving_door` | `true` if any named lobbyist previously held a covered government position |
| `revolving_door_lobbyists` | List of `{name, former_position}` for each revolving-door lobbyist |
| `registrant`, `registrant_city`, `registrant_state` | The lobbying firm and its location |
| `registrant_contact`, `registrant_phone` | Registrant's listed contact person and phone |
| `client`, `client_state`, `client_description` | The organization paying for lobbying |
| `amount_usd`, `income_usd`, `expenses_usd` | Reported lobbying spend (income for hired firms, expenses for in-house lobbying) |
| `issues`, `issue_count` | Issue areas lobbied (e.g. Telecommunications, Taxation) |
| `lobbyists`, `lobbyist_count` | Named individual lobbyists on the filing |
| `government_entities` | Agencies and chambers targeted (e.g. U.S. Senate, FCC) |
| `foreign_entities` | Foreign entities with an interest in the filing, with country & ownership % |
| `has_foreign_ties` | Boolean flag for quick filtering |
| `affiliated_organizations` | Organizations affiliated with the client, with state/country |
| `conviction_disclosures`, `has_conviction_disclosure` | Any disclosed lobbyist convictions |
| `termination_date`, `posted_date` | Filing lifecycle dates |
| `filing_url`, `document_url` | Links to the LDA API record and source PDF |

#### Example output

A real sample from a live run:

| registrant | client | filing\_year | filing\_type | issues | influence\_score |
|---|---|---|---|---|---|
| RWE OFFSHORE WIND HOLDINGS, LLC | RWE OFFSHORE WIND HOLDINGS, LLC | 2024 | Registration | Budget/Appropriations, Energy/Nuclear... | 37 |
| VENN STRATEGIES | INVENERGY LLC | 2024 | Registration | Energy/Nuclear | 33 |
| ALSTON & BIRD LLP | TRAUMA CENTER ASSOCIATION OF AMERICA | 2024 | Registration | Health Issues, Medicare/Medicaid | 41 |
| REACT19 | REACT19 | 2024 | Registration | Health Issues, Medical/Disease Resear... | 6 |

### Input example

```json
{
  "filingYear": 2024,
  "issueCode": "TEC",
  "revolvingDoorOnly": true,
  "minInfluenceScore": 40,
  "maxItems": 500
}
```

Every field is optional — running with no input pulls the most recent filings across all registrants and clients.

### How much does it cost?

This actor uses **pay-per-event pricing: $0.005 per result ($5 per 1,000 filings)**, effective 2026-07-16. You're charged only for filings actually returned — no subscription, no charge for empty runs. New Apify accounts get roughly **1,000 free results per month** on the platform's free tier, enough to test revolving-door detection and influence scoring on a real issue area before paying anything. A 5,000-filing research pull costs $25; a 20,000-filing year-long sweep costs $100 — a fraction of a FiscalNote or Quorum seat.

### FAQ

#### Is it legal to scrape lobbying disclosure data?

Yes. This actor only reads the **official public Senate LDA API** (lda.senate.gov) — the same disclosure data lobbying firms and clients are legally required to file. There's no login, no paywall bypass, and no private data involved.

#### How fresh is the data?

Filings come from a **live query to the Senate LDA API** at run time, so results reflect whatever has been posted to lda.senate.gov as of the run — typically within a day of the official filing. Re-run periodically (or schedule via Make/n8n/Zapier) to catch new filings for a client, registrant, or issue.

#### What exactly counts as "revolving door"?

A filing is flagged `revolving_door: true` when at least one named lobbyist has a `covered_position` on record — meaning they previously held a government position covered by the Lobbying Disclosure Act (e.g. congressional staff, executive-branch role) before becoming a registered lobbyist. The former role is included in `revolving_door_lobbyists`.

#### Do I need an API key?

No. It runs on the public LDA endpoint with no key required. You can optionally add a free Senate LDA API key (from lda.senate.gov/api/register) only if you're running very large or frequent pulls and hit rate limits.

#### Can I filter for the biggest or most sensitive lobbying efforts only?

Yes — set `minInfluenceScore` to skip routine, low-spend filings and keep only the heaviest efforts, or combine it with `revolvingDoorOnly` to surface high-influence filings with a former-government lobbyist attached — the exact combination investigative teams look for first.

### Other Flash Scrape lead tools

- [Bulk Email Verifier](https://apify.com/flash_scraper/email-verifier) — verify and score every email address before you send a campaign
- [Company & Domain Enricher](https://apify.com/flash_scraper/company-domain-enricher) — turn a domain list into full company records with tech stack and socials
- [Local Business Leads Scraper](https://apify.com/flash_scraper/local-business-leads) — any local business category, by city, with website platform detection
- [Google Maps Leads Scraper](https://apify.com/flash_scraper/google-maps-leads-opener) — Google Maps business leads with AI-written cold-email openers

***

### More from Flash Scrape

Same publisher, same rules: no API keys, pay per row, filters run before billing.

- [Multi Job Board Scraper](https://apify.com/flash_scraper/multi-jobboard-scraper) - LinkedIn, Indeed, Glassdoor and 9 more boards in one deduplicated table
- [Local Business Leads Scraper](https://apify.com/flash_scraper/local-business-leads) - local businesses in any category and city with MX-verified emails, phones and socials
- [Remote Jobs Aggregator](https://apify.com/flash_scraper/remote-job-aggregator) - 10 remote job boards in one feed, only-new-jobs monitoring
- [Creator Leads Scraper](https://apify.com/flash_scraper/creator-leads-scraper) - YouTube, TikTok and Instagram creator emails in one run

# Actor input Schema

## `filingYear` (type: `integer`):

Year of the lobbying filings to pull (e.g. 2024).

## `registrantName` (type: `string`):

Filter by the registrant / lobbying firm name (optional, partial match).

## `clientName` (type: `string`):

Filter by the client (the company/org paying for lobbying) name (optional, partial match).

## `issueCode` (type: `string`):

Filter by lobbying issue, e.g. 'TAX', 'HCR' (health), 'DEF' (defense), 'TEC' (tech). Optional.

## `filingType` (type: `string`):

Filter by filing type code: 'Q1'-'Q4' quarterly activity reports (contain income/expense amounts), 'RR' registrations (no amounts). Prefilled to Q1 so demo rows include dollar amounts. Clear to fetch all types.

## `revolvingDoorOnly` (type: `boolean`):

Return only filings that name at least one lobbyist who previously held a covered government position (a revolving-door signal).

## `minInfluenceScore` (type: `integer`):

Only return filings with a computed influence score (0-100) at or above this. 0 = no filter.

## `maxItems` (type: `integer`):

Maximum number of lobbying filings to return.

## `apiKey` (type: `string`):

A free LDA API key (lda.senate.gov/api/register) raises the rate limit for large runs. Not required for normal use.

## Actor input object example

```json
{
  "filingYear": 2024,
  "filingType": "Q1",
  "revolvingDoorOnly": false,
  "minInfluenceScore": 0,
  "maxItems": 200
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "filingYear": 2024,
    "filingType": "Q1"
};

// Run the Actor and wait for it to finish
const run = await client.actor("flash_scraper/lobbying-disclosure-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "filingYear": 2024,
    "filingType": "Q1",
}

# Run the Actor and wait for it to finish
run = client.actor("flash_scraper/lobbying-disclosure-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "filingYear": 2024,
  "filingType": "Q1"
}' |
apify call flash_scraper/lobbying-disclosure-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,flash_scraper/lobbying-disclosure-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/davqmShVRHF46LgCv/builds/Sj645oCcSNRe72hQk/openapi.json
