# US Lobbying Disclosure Scraper - Firms, Clients & Lobbyists (`scrapers_lat/us-lobbying-disclosures-scraper`) Actor

Scrape US federal lobbying disclosures: lobbying firm name, address, contact person and phone, the client hiring them, fees paid, every lobbyist with the government post they used to hold, issues lobbied, agencies contacted, foreign entities behind the client and political contributions.

- **URL**: https://apify.com/scrapers\_lat/us-lobbying-disclosures-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Lead generation, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## US Lobbying Disclosure Scraper - Firms, Clients & Lobbyists

Every organisation that lobbies the US Congress or the executive branch has to disclose it. Those disclosures name **the lobbying firm, the client paying it, the exact fee, every individual lobbyist, the government job each lobbyist used to hold, the bills and issues worked, the agencies contacted, and any foreign interest standing behind the client**.

This actor turns that public record into a clean, filterable dataset, and it also covers the separate reports where lobbyists and firms disclose their **political contributions**.

### What you get

#### Lobbying reports

**The lobbying firm (lead-grade contact data)**

- Firm name, its own description of its business, and registration identifiers
- Full street address, city, state, ZIP and country
- **Named contact person and their direct telephone number**
- Flag for in-house lobbying, so you can separate outside firms from companies lobbying for themselves

**The client paying for it**

- Client name and what the organisation does
- State, country, and principal place of business
- Whether the client is a state or local government body
- Date the engagement took effect, and the termination date when it ends

**The money**

- Fees the firm received for the client, in USD
- Expenses reported by organisations lobbying for themselves
- A single `amountReported` figure so you can sort and filter without branching

**The people, including the revolving door**

- Every named lobbyist on the report
- **The government position each one previously held**, for example "Staff Director, Ways and Means Select Revenue Measures Subcommittee" or "Deputy Chief of Staff to Rep. Carol Miller"
- A ready-made `revolvingDoorLobbyists` list plus counts, so ex-government hires are one filter away
- Whether each lobbyist is new to the engagement

**What was lobbied, and whom**

- General issue codes and issue areas (Defense, Taxation, Health, Trade, and more)
- **The specific bills, programmes and policy issues described in the filer's own words**
- Chambers, departments and agencies contacted, for example U.S. Senate, Dept of Defense

**Ownership and disclosure flags**

- **Foreign governments, companies and interests behind the client**, with country, ownership percentage and contribution amount
- Affiliated organisations that fund or direct the lobbying
- Criminal convictions disclosed for named lobbyists
- Direct link to the original report

#### Political contribution reports

- Filer type, the lobbyist or firm the report belongs to, and their contact details
- **Every itemised donation: contributor, payee, honoree, amount and date**
- Total donated across the report and the number of entries
- Connected political action committees
- A flag for the many "no contributions to report" filings, so you can skip them

### Filters that do the work for you

- **Years** covered, back to 1999, and **reporting period** (quarter, mid-year, year-end)
- **Report type**: new registrations, quarterly reports, amendments, terminations
- **Client name** and **lobbying firm name**
- **Lobbyist name**
- **Former government position contains**, for example `Senator`, `Chief of Staff`, `Department of Defense`
- **Issue text contains**, for example `artificial intelligence`, `tariffs`, `Medicare reimbursement`
- **Client state**, **client country** and **firm country**
- **Minimum reported amount**, to isolate the big-money engagements
- **Posted on or after / before**
- Only reports with **ex-government lobbyists**
- Only reports naming a **foreign entity**
- Only reports with a **contact phone number**
- **Exclude in-house lobbying**, keeping outside firms and their clients
- Contribution reports: skip filings with no donations

### What people use it for

- **Sales prospecting** - lobbying firms and their contact phone numbers, or newly registered clients with a Washington budget
- **Policy and competitive intelligence** - who is lobbying on your issue, for which client, at what fee, and which agencies they are hitting
- **Revolving-door research** - former officials now lobbying, and the offices they came from
- **Foreign influence tracking** - foreign governments and corporations disclosed behind US lobbying campaigns
- **Journalism and watchdog work** - money flows, contribution patterns and conviction disclosures
- **Compliance and diligence** - screen a counterparty's lobbying footprint and political giving
- **Recruiting** - identify practising lobbyists by issue area and former government post

### Example input

Find outside firms working artificial-intelligence policy with former government staff on the team:

```json
{
  "dataset": "filings",
  "filingYears": ["2026"],
  "issueText": "artificial intelligence",
  "onlyRevolvingDoor": true,
  "excludeInHouse": true,
  "maxResults": 100
}
```

Track big-money engagements with a reachable contact:

```json
{
  "dataset": "filings",
  "filingYears": ["2025"],
  "filingType": "Q3",
  "minAmount": 500000,
  "onlyWithContactPhone": true,
  "maxResults": 200
}
```

Surface foreign-backed lobbying:

```json
{
  "dataset": "filings",
  "filingYears": ["2025"],
  "clientCountry": "JP",
  "onlyWithForeignEntities": true,
  "maxResults": 100
}
```

Pull political contributions:

```json
{
  "dataset": "contributions",
  "filingYears": ["2025"],
  "onlyWithContributions": true,
  "maxResults": 200
}
```

### Example output (trimmed)

```json
{
  "recordType": "lobbying_report",
  "filingType": "1st Quarter - Report",
  "filingYear": 2026,
  "filingPeriod": "1st Quarter (Jan 1 - Mar 31)",
  "amountReported": 500000,
  "income": 500000,
  "registrantName": "THE WASHINGTON TAX & PUBLIC POLICY GROUP",
  "registrantAddress": "505 9th Street NW, Suite 830",
  "registrantCity": "Washington",
  "registrantState": "DC",
  "registrantZip": "20004",
  "registrantContactName": "GREGORY NICKERSON",
  "registrantContactPhone": "+1 202-534-4949",
  "isInHouseLobbying": false,
  "clientName": "ALLIANCE FOR BIOPHARMACEUTICAL COMPETITIVENESS AND INNOVATION",
  "clientDescription": "Biopharmaceutical industry",
  "clientState": "DC",
  "clientEffectiveDate": "2016-01-12",
  "lobbyistCount": 3,
  "revolvingDoorCount": 3,
  "revolvingDoorLobbyists": [
    {
      "name": "GREGORY NICKERSON",
      "formerGovernmentPosition": "Tax Counsel, Ways and Means Committee; Staff Director, Ways and Means Select Revenue Measures Subcommittee"
    },
    {
      "name": "ZACHARY AUSTIN PRICE",
      "formerGovernmentPosition": "Staff Assistant to Sen. Coats"
    }
  ],
  "issueCodes": ["TAX"],
  "issueAreas": ["Taxation/Internal Revenue Code"],
  "issueDescriptions": ["Issues related to tax treatment of biopharmaceutical research"],
  "governmentEntities": ["SENATE", "HOUSE OF REPRESENTATIVES"],
  "hasForeignEntity": false,
  "sourceUrl": "https://lda.gov/filings/public/filing/f85b5557-dc26-4b1e-b877-0e174629fd7d/print/"
}
```

A foreign-entity disclosure looks like this:

```json
{
  "clientName": "YAZAKI NORTH AMERICA",
  "hasForeignEntity": true,
  "foreignEntities": [
    {
      "name": "YAZAKI CORPORATION",
      "country": "JP",
      "countryName": "Japan",
      "city": "Shizuoka",
      "ownershipPercentage": 100,
      "contributionAmount": 0
    }
  ]
}
```

### Notes

- Public regulatory disclosures only. Read-only, no account or credentials needed.
- Filers type their reports into a web form, so the raw text arrives escaped and sometimes double-encoded. Every text field is repaired before it reaches you, so names and descriptions come out as clean readable text.
- New registrations report no fee and usually no agency list, which is normal for that report type. Quarterly reports carry the money and the agencies contacted.
- Amounts are reported by the filer in USD bands or exact figures as filed; `amountReported` is null when the report type does not require one.
- You are charged per disclosure returned. Failed runs return no billable results.
- Free Apify plans are capped at 10 results per run.

***

> This actor is an independent tool with no affiliation to the US Congress or any government body. It only accesses disclosures that are published for the public record.

# Actor input Schema

## `dataset` (type: `string`):

Lobbying reports (who lobbies for whom, for how much, on what) or the separate political-contribution reports that lobbyists and firms must file twice a year.

## `filingYears` (type: `array`):

Years to cover. Disclosures go back to 1999. Leave empty to use the current year.

## `filingPeriod` (type: `string`):

Restrict to one quarter (lobbying reports) or half-year (contribution reports).

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

Optional report-type code, e.g. RR (new registration), Q1/Q2/Q3/Q4 (quarterly report), Q1A (amended quarterly), RT (termination), MM / YY (contribution reports).

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

The organisation that hired the lobbyists, e.g. "Boeing", "Pfizer", "OpenAI".

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

The registered lobbying firm or in-house filer, e.g. "Akin Gump", "Brownstein".

## `lobbyistName` (type: `string`):

Find every report naming a particular lobbyist.

## `coveredPosition` (type: `string`):

Revolving-door search: match the government job a lobbyist previously held, e.g. "Senator", "Chief of Staff", "Department of Defense".

## `issueText` (type: `string`):

Free-text search across the specific issues described in the reports, e.g. "artificial intelligence", "tariffs", "Medicare reimbursement".

## `clientState` (type: `string`):

Two-letter US state code of the client, e.g. CA.

## `clientCountry` (type: `string`):

Two-letter country code of the client, e.g. JP - useful to surface foreign-backed lobbying.

## `registrantCountry` (type: `string`):

Two-letter country code of the registered filer, e.g. US.

## `minAmount` (type: `integer`):

Only reports with income or expenses at or above this figure - a fast way to isolate the big-money engagements.

## `postedAfter` (type: `string`):

Only reports posted on or after this date (YYYY-MM-DD).

## `postedBefore` (type: `string`):

Only reports posted on or before this date (YYYY-MM-DD).

## `onlyRevolvingDoor` (type: `boolean`):

Keep only reports where at least one named lobbyist previously held a covered government position.

## `onlyWithForeignEntities` (type: `boolean`):

Keep only reports that disclose a foreign government, company or interest behind the client.

## `onlyWithContactPhone` (type: `boolean`):

Keep only reports where the filer published a contact person's telephone number.

## `excludeInHouse` (type: `boolean`):

Drop reports where a company lobbies for itself, keeping only outside lobbying firms and their clients.

## `onlyWithContributions` (type: `boolean`):

Contribution reports only: skip the many "no contributions to report" filings.

## `maxResults` (type: `integer`):

How many records to return. Free Apify plans are capped at 10 per run.

## Actor input object example

```json
{
  "dataset": "filings",
  "filingYears": [
    "2026"
  ],
  "filingPeriod": "",
  "filingType": "RR",
  "clientName": "Boeing",
  "registrantName": "Akin Gump",
  "onlyRevolvingDoor": false,
  "onlyWithForeignEntities": false,
  "onlyWithContactPhone": false,
  "excludeInHouse": false,
  "onlyWithContributions": false,
  "maxResults": 100
}
```

# 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 = {
    "filingYears": [
        "2026"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/us-lobbying-disclosures-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 = { "filingYears": ["2026"] }

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/us-lobbying-disclosures-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 '{
  "filingYears": [
    "2026"
  ]
}' |
apify call scrapers_lat/us-lobbying-disclosures-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapers_lat/us-lobbying-disclosures-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/JeW2JYfRSyN6ZgJkU/builds/NfcRn5LruoztyE6RT/openapi.json
