# Senate Lobbying Disclosure (LDA) Scraper — Lobbying Data (`compute-edge/senate-lobbying-disclosure-scraper`) Actor

Extract US Senate Lobbying Disclosure Act (LDA) filings with registrant, client, and income/expense data. Filter by year, registrant name, client name, or issue code. High-value lobbying intelligence for compliance, research, and business development.

- **URL**: https://apify.com/compute-edge/senate-lobbying-disclosure-scraper.md
- **Developed by:** [Compute Edge](https://apify.com/compute-edge) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Senate Lobbying Disclosure (LDA) Scraper

Extract **US Senate Lobbying Disclosure Act (LDA) filings** with complete registrant, client, and financial data. This actor scrapes the official Senate LDA API to deliver structured lobbying intelligence for compliance, research, government affairs, and business development.

### Features

- **Comprehensive Lobbying Data**: Extract registrant names, client information, income/expense data, issue codes, and filing dates
- **Advanced Filtering**: Filter by filing year, registrant name, client name, or specific lobbying issue codes
- **Rate-Limited Access**: Respects Senate API rate limits with automatic retry on throttling
- **Structured Output**: JSON records with 14 fields per filing, ready for analysis and database import
- **High-Volume Capable**: Fetch up to 2000+ filings per run with automatic pagination
- **No Authentication Required**: Scrapes public API data — no Senate account needed

### Output Fields

| Field | Type | Description |
|-------|------|-------------|
| `filingUuid` | string | Unique identifier for the filing |
| `filingType` | string | Filing type (e.g., "Registration", "Amendment", "Termination") |
| `filingYear` | number | Year of the filing (e.g., 2025) |
| `filingPeriod` | string | Filing period (e.g., "1st Quarter", "2nd Quarter") |
| `registrantName` | string | Lobbying firm or individual registrant name |
| `registrantState` | string | Registrant state abbreviation (e.g., "NY", "CA") |
| `clientName` | string | Client company/organization name |
| `clientState` | string | Client state abbreviation |
| `clientDescription` | string | Client industry or business description |
| `income` | number | Total lobbying income reported (USD, null if not reported) |
| `expenses` | number | Total lobbying expenses reported (USD, null if not reported) |
| `datePosted` | string | Filing submission date (ISO 8601 format) |
| `issueCodes` | array | Array of lobbying issue codes (e.g., "BUD", "TAX", "ENV") |
| `filingUrl` | string | Direct link to the official Senate filing document |

### How to scrape US Senate LDA filings

#### Step 1: Access the Actor

Navigate to this actor in the Apify Store and click **Run**.

#### Step 2: Configure Your Search

In the **Input** tab, set your search parameters:

- **Filing Year** (required): Year of filings to extract. Default: 2025. Range: 2000–2100.
- **Registrant Name Filter** (optional): Partial match on lobbying firm name (e.g., `"Lobbying Associates LLC"`).
- **Client Name Filter** (optional): Partial match on client name (e.g., `"Microsoft"` or `"Apple"`).
- **Issue Code Filter** (optional): Specific lobbying issue code (e.g., `"BUD"` for Budget/Appropriations).
- **Max Results** (optional): Maximum filings to return. Default: 250 (safe for rate limits). Set to 0 for up to 2000 filings.

#### Step 3: Run the Actor

Click **Run** and monitor the execution:

- Actor logs show total filings available and pagination progress.
- Rate limiting is automatic — the actor waits if throttled (HTTP 429) and retries.
- Typical run time: 2–10 minutes depending on result count.

#### Step 4: Download Your Data

Once the run completes, download the results:

- **JSON** format for integration with databases, BI tools, or LLMs.
- **CSV** export for Excel or Google Sheets analysis.
- Results include all 14 fields per record.

#### Example Input

```json
{
  "filingYear": 2025,
  "registrantFilter": "Jones Consulting",
  "clientFilter": "Microsoft",
  "issueCode": "TAX",
  "maxResults": 500
}
````

#### Example Output

```json
{
  "filingUuid": "4f33e46d-4018-4899-8926-c03bb9977ae2",
  "filingType": "Registration",
  "filingYear": 2025,
  "filingPeriod": "1st Quarter (Jan 1 - Mar 31)",
  "registrantName": "COVENANT GOVERNMENT AFFAIRS, LLC",
  "registrantState": "FL",
  "clientName": "FUSE INTEGRATION, INC.",
  "clientState": "CA",
  "clientDescription": "Manufacturing communications systems",
  "income": null,
  "expenses": null,
  "datePosted": "2025-01-01T12:03:08-05:00",
  "issueCodes": ["BUD", "DFS"],
  "filingUrl": "https://lda.senate.gov/filings/public/filing/4f33e46d-4018-4899-8926-c03bb9977ae2/print/"
}
```

### Pricing

**$0.003 per record** — Charged only for successfully extracted filings. A typical run of 250 filings costs ~$0.75 in actor compute units (plus Apify platform fees).

Cost estimation:

- 100 filings × $0.003 = $0.30
- 500 filings × $0.003 = $1.50
- 1000 filings × $0.003 = $3.00

### Rate Limits & Performance

The Senate LDA API allows approximately **15 requests per minute** for anonymous access. This actor:

- Automatically throttles requests to ~4.5 seconds per page
- Handles HTTP 429 (rate limit) responses by waiting 30 seconds and retrying
- Fetches 25 filings per request (page\_size=25) for efficiency

**Expected timing**:

- 250 filings: ~2–3 minutes
- 500 filings: ~4–5 minutes
- 1000 filings: ~8–10 minutes

### Data Freshness

Filings are typically posted to the Senate LDA website within 24 hours of submission. This actor queries the live API, so all data reflects the most recent filings available.

### Other scrapers

Looking for more government and regulatory data?

- **[FARA Foreign Agents Scraper](https://apify.com/marketplace/fara-foreign-agents-scraper)** — Extract US Department of Justice FARA (Foreign Agents Registration Act) filings with agent and client data.
- **[FEC Candidates Finance Scraper](https://apify.com/marketplace/fec-candidates-finance-scraper)** — Scrape FEC candidate financial disclosures, contributions, and expenditure data.

### FAQ

**Q: Do I need a Senate account to use this?**
A: No. This actor queries the public Senate LDA API. No authentication is required.

**Q: What is the data latency?**
A: Filings are typically posted within 24 hours. This actor uses the live API, so data is current.

**Q: Can I filter by multiple criteria at once?**
A: Yes. Combine `registrantFilter`, `clientFilter`, and `issueCode` in the same run. Filters use partial matching (case-insensitive).

**Q: What happens if I hit a rate limit?**
A: The actor automatically waits 30 seconds and retries. You should not encounter blocking errors under normal usage.

**Q: Can I export to CSV or Excel?**
A: Yes. Use Apify's built-in export feature to download results as CSV, JSON, or Excel after the run completes.

**Q: Why are some income/expense fields null?**
A: Initial registrations (RR filings) may not include financial data. Amendments (AM) and terminations (TR) may also be null if the registrant had zero reportable activity.

**Q: How far back can I query?**
A: The API contains filings back to 2007 (earliest LDA disclosures). Set `filingYear` to any year from 2000–2100.

### Legal Disclaimer

This actor scrapes data from the **public US Senate Lobbying Disclosure Act (LDA) database** at [lda.senate.gov](https://lda.senate.gov/). All extracted data is publicly available government information subject to the public domain.

Use of this actor and its extracted data must comply with all applicable laws and regulations, including:

- The Lobbying Disclosure Act of 1995 (2 U.S.C. § 1601 et seq.)
- Terms of service of the Senate LDA website
- Applicable privacy and data protection laws

This actor is provided for informational and research purposes only. The publisher assumes no liability for misuse or unlawful application of extracted data. Users are solely responsible for compliance with all legal requirements.

# Actor input Schema

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

The year of LDA filings to extract. Example: 2025.

## `registrantFilter` (type: `string`):

Filter by registrant name (case-insensitive partial match). Example: 'Lobbying Associates LLC'.

## `clientFilter` (type: `string`):

Filter by client name (case-insensitive partial match). Example: 'Microsoft', 'Apple'.

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

Filter by lobbying issue code (optional). Leave blank to include all issues.

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

Maximum number of filings to return. Set to 0 for up to 2000 filings (respects rate limits). Default 250 is safe for rate limits.

## Actor input object example

```json
{
  "filingYear": 2025,
  "registrantFilter": "",
  "clientFilter": "",
  "issueCode": "",
  "maxResults": 250
}
```

# Actor output Schema

## `dataset` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("compute-edge/senate-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 = {}

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

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

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

```

## CLI example

```bash
echo '{}' |
apify call compute-edge/senate-lobbying-disclosure-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=compute-edge/senate-lobbying-disclosure-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Senate Lobbying Disclosure (LDA) Scraper — Lobbying Data",
        "description": "Extract US Senate Lobbying Disclosure Act (LDA) filings with registrant, client, and income/expense data. Filter by year, registrant name, client name, or issue code. High-value lobbying intelligence for compliance, research, and business development.",
        "version": "0.1",
        "x-build-id": "lmyY5I1pBToohiRxP"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/compute-edge~senate-lobbying-disclosure-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-compute-edge-senate-lobbying-disclosure-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/compute-edge~senate-lobbying-disclosure-scraper/runs": {
            "post": {
                "operationId": "runs-sync-compute-edge-senate-lobbying-disclosure-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/compute-edge~senate-lobbying-disclosure-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-compute-edge-senate-lobbying-disclosure-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "filingYear": {
                        "title": "Filing Year",
                        "minimum": 2000,
                        "maximum": 2100,
                        "type": "integer",
                        "description": "The year of LDA filings to extract. Example: 2025.",
                        "default": 2025
                    },
                    "registrantFilter": {
                        "title": "Registrant Name Filter",
                        "type": "string",
                        "description": "Filter by registrant name (case-insensitive partial match). Example: 'Lobbying Associates LLC'.",
                        "default": ""
                    },
                    "clientFilter": {
                        "title": "Client Name Filter",
                        "type": "string",
                        "description": "Filter by client name (case-insensitive partial match). Example: 'Microsoft', 'Apple'.",
                        "default": ""
                    },
                    "issueCode": {
                        "title": "Issue Code Filter",
                        "type": "string",
                        "description": "Filter by lobbying issue code (optional). Leave blank to include all issues.",
                        "default": ""
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of filings to return. Set to 0 for up to 2000 filings (respects rate limits). Default 250 is safe for rate limits.",
                        "default": 250
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
