Senate Lobbying Disclosure Search avatar

Senate Lobbying Disclosure Search

Pricing

$30.00 / 1,000 result returneds

Go to Apify Store
Senate Lobbying Disclosure Search

Senate Lobbying Disclosure Search

Search **25+ years of federal lobbying disclosure filings** from the US Senate LDA database. Find out who is lobbying Congress, on behalf of which clients, on what policy issues, how much money is involved, and which lobbyists have revolving-door government connections.

Pricing

$30.00 / 1,000 result returneds

Rating

0.0

(0)

Developer

Ryan Clinton

Ryan Clinton

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

9 days ago

Last modified

Categories

Share

Find what's moving in federal lobbying

Search 25+ years of federal lobbying disclosure filings from the US Senate LDA database. Find out who is lobbying Congress, on behalf of which clients, on what policy issues, how much money is involved, and which lobbyists have revolving-door government connections.

No API key required.

What you get

Lobbying filings + influence-risk scores + emerging issues + revolving-door intelligence + competitive benchmarks + relationship graphs + watchlist monitoring — from one keyless source.

Why this is different

Most lobbying tools return filings. This one returns filings plus the influence intelligence on top of them — spend shocks, emerging issues, revolving-door hiring, influence rankings, committee targeting, and regulatory heat maps. So instead of reading hundreds of filings, you start with the handful that matter.

Run searchMode: "pulse" and the actor tells you what's moving, before you even name a company. Illustrative feedEvent / momentum records (shape, with example values):

{ "recordType": "feedEvent", "importance": 94, "eventType": "spendShock", "headline": "OpenAI increased lobbying spend 420%" }
{ "recordType": "feedEvent", "importance": 91, "eventType": "revolvingDoorHire", "headline": "Meta hired 4 former Senate staffers" }
{ "recordType": "feedEvent", "importance": 80, "eventType": "issueCrossover", "headline": "AI lobbying surpassed telecom lobbying in 2026" }
{ "recordType": "momentum", "rank": 1, "client": "OpenAI", "momentumScore": 97 }

Every headline is a deterministic template filled from the filing data — the events are real computations over the LDA dataset, the specific numbers above are illustrative.

Raw filings in, ranked shortlist out

Research jobs

Pick the job, not the feature. Each maps to one searchMode (or a flag).

Your jobHow
See what's moving right now, without naming a companysearchMode: "pulse" — an importance-ranked feed of spend shocks, new entrants, revolving-door hires, and issue crossovers
Monitor a specific company over timesearchMode: "competitive" for peer context, or set a watchlistName and schedule it for NEW / UPDATED / new-influence alerts
Discover emerging issues in a policy areasearchMode: "intelligence" with an issueAreaCode or activityKeywords — emerging issues, heat map, momentum
Track revolving-door influencefilter with minRevolvingDoorScore, or watch the revolvingDoorHire feed events
Build influence graphsincludeGraphEdges: true for edge records, plus networkInsight records in intelligence mode
Find the top spenders / most-lobbied issuessearchMode: "rankings"
Rank entities by overall cloutincludeProfiles: true and sort by influenceIndex

What each job returns

JobKey output fields
Score & triage filingsinfluenceRiskScore, riskTier, notabilityFactors, revolvingDoor, hasForeignEntities
Pulse / what's movingfeedEvent.eventType, feedEvent.importance, feedEvent.headline, momentum.momentumScore
Rankingsranking.rankingType, ranking.rank, ranking.name, ranking.value
Revolving doorrevolvingDoorScore, governmentBranches, highestOfficeHeld, revolvingDoorLobbyists
Foreign influencehasForeignEntities, foreignCountries, foreignEntities[]
TrendstrendSummary.year, trendSummary.totalIncomeUsd, incomeChangePctVsPriorYear, emergingIssue
Entity profilesinfluenceIndex, networkStrengthScore, totalSpendUsd, spendRank, issueConcentrationScore
Relationship graphedge.from, edge.to, edge.relationship, edge.weight, relationshipYears

What changed since last run

Ready-to-run examples

One-click published tasks — each opens with a preset for a specific job (edit the inputs and run):

See all on the examples page.

Common questions this actor answers

Who are the biggest lobbying spenders? Run searchMode: "rankings" — it returns leaderboards of top clients and firms by spend.

Which companies increased their lobbying spend the most? Run searchMode: "pulse"spendShock feed events surface the biggest quarter-over-quarter jumps.

Which former government officials became lobbyists? Filter by minRevolvingDoorScore, or watch revolvingDoorHire events; each filing carries highestOfficeHeld and governmentBranches.

What policy issues are growing fastest? Run searchMode: "intelligence" and read the regulatoryHeat records and emergingIssue records.

Which committees and agencies are being targeted? Intelligence mode emits committeeInfluence and agencyInfluence records mapping each to the companies lobbying it.

How do I compare two companies' lobbying? Run searchMode: "competitive" with a clientName for spend rank, peer list, and issue overlap.

Questions this actor answers

The Senate LDA website lets you browse filings one page at a time, 25 results per page, with no bulk export. Extracting data for analysis means clicking through dozens of pages and copying by hand. This actor handles pagination, flattens the deeply nested JSON, and layers deterministic intelligence on top.

JobGeneric LDA scraperThis actor
Find filings
Detect spend spikes
Track new lobbying firms
Monitor revolving-door hires
Build influence graphs
Identify emerging issues
Rank entities by clout

Ready-made research tasks

Features

Influence Risk, pulse feed, graph intelligence, watchlist monitoring

  • Filter by client, firm, lobbyist, issue area, period, or industry — partial name matching, 77 issue categories, any year from 1999 on; flattened records with stable lobbyistIds and convenience strings.
  • Activity keyword & bill filtering — adds the full-text activity search the Senate API lacks. Pass activityKeywords (any / all / phrase); every filing also carries mentionedBillNumbers, mentionedAgencies, mentionedCommittees.
  • Quality filtersminIncome, minNotability, minRevolvingDoorScore narrow to what matters.

Intelligence

  • Influence Risk score + Influence Index — per-filing influenceRiskScore (0-100) + riskTier, and a per-entity headline influenceIndex (breadth + spend + persistence).
  • Pulse / Intelligence feed (searchMode: "pulse" / "intelligence") — an importance-ranked feed of what changed (spend shocks, new entrants, new issues, revolving-door hires, issue crossovers) + momentum leaderboard + regulatory heat map. Sector-wide or focused.
  • Rankings, Competitive, Trend (searchMode) — leaderboards; same-industry peer benchmark; per-year rollups with emerging issues.
  • Revolving-door intelligencerevolvingDoorScore, governmentBranches, highestOfficeHeld.

Monitoring

  • WatchlistswatchlistName tracks a search across runs; filings tag NEW / SEEN / UPDATED (with changedFields).
  • New-influence detectioninfluenceChange records fire when a tracked client adds a new firm, lobbyist, issue, agency, committee, or foreign entity, or spikes spend.
  • Anomaly flags — deterministic per-filing triggers for scheduled alerts.

Network analysis

  • Relationship graph edges (includeGraphEdges) — edge records for Gephi / Neo4j, with relationship longevity on client→firm links.
  • Committee & agency influence maps — who lobbies each committee and agency.
  • Network insights — most connected firm, most connected lobbyist, most-targeted committee, fastest-growing network.

Fastest-growing lobbying clients by momentum

How to Use

  1. Enter search criteria — provide at least one filter: client name, lobbying firm name, lobbyist name, issue area, or filing period. You can combine multiple filters.

  2. Select the year — choose the filing year (1999–2026). Defaults to 2024.

  3. Set income threshold — optionally set a minimum income/expense amount to filter out small engagements.

  4. Run and download — click "Start" and wait for the run to complete (typically 5–30 seconds). Download the structured JSON dataset.

Input Parameters

ParameterTypeRequiredDefaultDescription
searchModeSelectNofilingsfilings, trend, rankings, competitive, intelligence (influence feed), or pulse (zero-config sector-wide feed)
presetSelectNoOne-click intent (company-intelligence, firm-portfolio, foreign-influence-watch, revolving-door-watch, issue-area-scan, quarterly-monitor)
clientNameStringNo*Client/organization paying for lobbying (partial match, e.g., "Amazon")
registrantNameStringNo*Lobbying firm name (partial match, e.g., "Akin Gump")
lobbyistNameStringNoIndividual lobbyist name (partial match)
filingYearIntegerNo2024Filing year (1999–2026), filings mode
yearStart / yearEndIntegerNoend−5 / currentYear range for trend mode
filingPeriodSelectNoAllQ1–Q4 reports, Registration, Miscellaneous Amendment, or Termination
issueAreaCodeSelectNoAllPolicy issue area (77 categories)
industryStringNoOnly return filings whose client is classified into this industry (e.g. "Technology", "Defense & Aerospace")
activityKeywordsArrayNoKeyword/bill filter over activity descriptions, e.g. ["AI", "H.R. 815"]
activityKeywordModeSelectNoanyany / all / phrase matching for activityKeywords
minIncomeNumberNoMinimum income/expense amount in USD
minNotabilityIntegerNoOnly return filings with an influence-risk score at or above this value (0–100). Try 45 for high-attention filings only
minRevolvingDoorScoreIntegerNoOnly return filings with a revolving-door score at or above this value (0–100)
includeProfilesBooleanNofalseAlso emit aggregate client / firm / lobbyist profile records
includeGraphEdgesBooleanNofalseAlso emit relationship edge records for graph tools
dedupeStrategySelectNoallFilingslatestPerEngagement collapses re-files to the latest per client + firm + period
maxResultsIntegerNo100Maximum filings to return (1–5,000)
watchlistNameStringNoTrack this exact search across runs; filings are tagged NEW / SEEN / UPDATED versus prior runs
changeModeSelectNonewAndUpdatedWatchlist: newAndUpdated flags changed filings as UPDATED; newOnly only NEW vs SEEN

*At least one name-based or keyword search parameter is recommended for meaningful results.

Input Examples

Find all Amazon lobbying in 2024:

{
"clientName": "Amazon",
"filingYear": 2024,
"maxResults": 200
}

Top defense industry lobbying firms in Q4 2024:

{
"issueAreaCode": "DEF",
"filingYear": 2024,
"filingPeriod": "Q4",
"minIncome": 100000,
"maxResults": 100
}

Track a specific lobbying firm's client portfolio:

{
"registrantName": "Akin Gump",
"filingYear": 2024,
"maxResults": 500
}

Healthcare lobbying activity above $50K:

{
"issueAreaCode": "HCR",
"filingYear": 2024,
"minIncome": 50000,
"maxResults": 200
}

Foreign-connected lobbying registrations:

{
"filingPeriod": "RR",
"filingYear": 2024,
"maxResults": 500
}

Disambiguate lobbyists by ID and career history (Portman example):

{
"clientName": "",
"lobbyistName": "Portman",
"filingYear": 2024,
"maxResults": 100
}

The structured lobbyists[] array on each filing carries lobbyistId (Senate LDA stable ID) and coveredPosition (full career history as filed). For Rachel Portman (lobbyistId: 145585), coveredPosition reads "Deputy Health Policy Director, Committee on Senate Health, Education, Labor and Pensions; Health Policy Assistant, Sen. Richard Burr; Intern, Rep. Robert Portman" — clearly distinguishing her from filings naming Sen. Robert Portman directly. Group results by lobbyistId to deduplicate across filings.

Input Tips

  • Client and registrant name searches use partial matching — "Amazon" matches "Amazon.com Services LLC", "Amazon Web Services", "Amazon.com Inc.", etc.
  • Use issue area codes for the most targeted policy searches. Common codes: DEF (Defense), HCR (Health), TAX (Taxation), TEC (Telecommunications), ENV (Environment).
  • Registrations (RR) reveal new lobbying relationships but don't include financial data. Quarterly reports (Q1–Q4) contain income/expense figures.
  • The minIncome filter is applied client-side to ensure numeric accuracy. The actor fetches extra pages to compensate for filtered results.
  • Combine clientName with issueAreaCode to see what a specific company is lobbying on in a particular policy area.

Output

{
"recordType": "filing",
"schemaVersion": "2.0.0",
"filingId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"filingType": "Q4",
"filingTypeDisplay": "4th Quarter Report",
"filingYear": 2024,
"filingPeriod": "Q4",
"filingDate": "2025-01-22",
"filingDocumentUrl": "https://lda.senate.gov/filings/public/filing/a1b2c3d4.../print/",
"clientName": "Amazon.com Services LLC",
"clientDescription": "Internet retailer, cloud computing, AI, devices, entertainment",
"clientState": "WA",
"clientCountry": "US",
"registrantName": "AKIN GUMP STRAUSS HAUER & FELD",
"registrantDescription": "Law and lobbying firm",
"registrantCity": "Washington",
"registrantState": "DC",
"registrantCountry": "US",
"registrantContactName": "John Doe",
"income": 250000,
"expenses": null,
"expensesMethod": "",
"postedByName": "Senate Filing Clerk",
"terminationDate": "",
"lobbyingActivities": [
{
"issueCode": "TEC",
"issueArea": "Telecommunications",
"description": "Issues related to AI regulation, data privacy, Section 230, and broadband deployment",
"lobbyists": [
{
"lobbyistId": 48217,
"firstName": "Jane",
"lastName": "Smith",
"suffix": "",
"coveredPosition": "Former Chief of Staff, Senate Commerce Committee",
"newLobbyist": false
}
],
"foreignEntityIssues": ""
}
],
"lobbyists": [
{
"lobbyistId": 48217,
"name": "Jane Smith",
"coveredPosition": "Former Chief of Staff, Senate Commerce Committee"
},
{
"lobbyistId": 51904,
"name": "Robert Johnson",
"coveredPosition": ""
}
],
"lobbyistNames": "Jane Smith, Robert Johnson",
"issueAreas": "Telecommunications, Taxation/Internal Revenue Code",
"foreignEntities": [],
"convictionDisclosures": [],
"revolvingDoor": true,
"revolvingDoorLobbyists": ["Jane Smith"],
"revolvingDoorScore": 65,
"highestOfficeHeld": "Former Chief of Staff, Senate Commerce Committee",
"governmentBranches": ["Senate"],
"clientIndustry": "Technology",
"anomalyFlags": [],
"hasForeignEntities": false,
"foreignCountries": [],
"hasConvictionDisclosures": false,
"newLobbyistCount": 0,
"influenceRiskScore": 62,
"riskTier": "HIGH",
"notabilityScore": 62,
"notabilityTier": "high",
"notabilityFactors": [
"Significant lobbying spend ($250,000)",
"Revolving door: 1 lobbyist(s) with prior government roles"
],
"summary": "Amazon.com Services LLC → AKIN GUMP STRAUSS HAUER & FELD; Q4 2024; $250,000 income; on Telecommunications, Taxation/Internal Revenue Code [1 former official(s)]"
}

Sample output table

Output schema reference

The headline fields are covered above (intelligence fields, record types, views). The tables below are the complete per-field reference for API and agent consumers — most buyers never need them.

Filing metadata:

FieldTypeDescription
filingIdStringUnique filing UUID
filingTypeStringFiling type code (Q1–Q4, RR, MA, TA)
filingTypeDisplayStringHuman-readable filing type
filingYearIntegerFiling year
filingPeriodStringFiling period (Q1–Q4, RR, MA, TA)
filingDateStringDate the filing was submitted
filingDocumentUrlStringDirect URL to the filing document on Senate website

Client fields:

FieldTypeDescription
clientNameStringOrganization paying for lobbying
clientDescriptionStringClient business description
clientStateStringClient state (US states or "DC")
clientCountryStringClient country code

Registrant (lobbying firm) fields:

FieldTypeDescription
registrantNameStringLobbying firm or self-filing organization
registrantDescriptionStringFirm description
registrantCityStringFirm city
registrantStateStringFirm state
registrantCountryStringFirm country code
registrantContactNameStringPrimary contact person

Financial fields:

FieldTypeDescription
incomeNumber / nullIncome reported by outside lobbying firms (what they were paid)
expensesNumber / nullExpenses reported by in-house lobbyists (what they spent)
expensesMethodStringHow in-house expenses were calculated

Activity fields:

FieldTypeDescription
lobbyingActivities[]ArrayDetailed lobbying activities (see nested fields below)
lobbyists[]ArrayTop-level deduplicated lobbyists across the filing (see nested fields below)
lobbyistNamesStringComma-separated list of all lobbyists on the filing (convenience field)
issueAreasStringComma-separated unique issue areas (convenience field)

Lobbying activity nested fields:

FieldTypeDescription
lobbyingActivities[].issueCodeStringThree-letter issue area code (DEF, HCR, TAX, etc.)
lobbyingActivities[].issueAreaStringFull issue area name
lobbyingActivities[].descriptionStringSpecific bills, regulations, and issues lobbied on
lobbyingActivities[].lobbyists[]ArrayIndividual lobbyists working on this issue
lobbyingActivities[].lobbyists[].lobbyistIdInteger / nullSenate LDA stable lobbyist ID (use as join key when grouping by lobbyist)
lobbyingActivities[].lobbyists[].firstNameStringLobbyist first name
lobbyingActivities[].lobbyists[].lastNameStringLobbyist last name
lobbyingActivities[].lobbyists[].coveredPositionStringFull career history of former government roles as recorded on this filing
lobbyingActivities[].lobbyists[].newLobbyistBooleanWhether this is a newly registered lobbyist

Top-level lobbyists fields:

FieldTypeDescription
lobbyists[].lobbyistIdInteger / nullSenate LDA stable lobbyist ID
lobbyists[].nameStringFull name (firstName lastName)
lobbyists[].coveredPositionStringFull career history of former government roles

Foreign entity fields:

FieldTypeDescription
foreignEntities[]ArrayForeign organizations connected to the lobbying
foreignEntities[].nameStringForeign entity name
foreignEntities[].countryStringForeign entity country
foreignEntities[].contributionNumber / nullFinancial contribution amount
foreignEntities[].ownershipPercentageNumber / nullOwnership stake percentage

Derived intelligence fields (computed deterministically from the filing, no LLM):

FieldTypeDescription
recordTypeStringfiling for data rows; the final record is summary; empty searches return no-results; a handled error returns error
schemaVersionStringOutput-contract version; branch on this if the shape changes
influenceRiskScoreIntegerHeadline triage score 0–100. Rises with lobbying spend, foreign-entity involvement, revolving-door lobbyists, and conviction disclosures
riskTierStringBanded influence risk: CRITICAL (≥70), HIGH (≥45), MODERATE (≥20), LOW
notabilityScore / notabilityTierInteger / StringDeprecated aliases of influenceRiskScore / riskTier (identical values; retained so existing consumers don't break)
notabilityFactorsArrayPlain-English reasons that drove the score
revolvingDoorBooleanTrue when any lobbyist on the filing held a prior covered government position
revolvingDoorLobbyistsArrayNames of those former officials
revolvingDoorScoreInteger0–100 intensity of revolving-door influence (seniority + headcount + branch breadth)
highestOfficeHeldStringThe most senior prior government position among the filing's lobbyists
governmentBranchesArrayBranches those officials came from: Senate / House / Executive / Judicial / Agency
revolvingDoorSeniorityStringHighest seniority of those prior roles: senior-official / congressional-staff / agency-official / other / none
clientIndustryStringIndustry classified from the client name + business description (null when unmatched)
anomalyFlagsArrayDeterministic single-filing anomalies (unusuallyLargeLobbyistCount, manyIssueAreas, foreignAndConviction, largeValueAmendment)
hasForeignEntitiesBooleanTrue when the filing names foreign principals
foreignCountriesArrayCountries of the named foreign entities
hasConvictionDisclosuresBooleanTrue when a named lobbyist carries a conviction disclosure
newLobbyistCountIntegerCount of lobbyists newly registered on this filing
isAmendmentBooleanTrue when the filing is an amendment (from filing type)
filingFreshnessDaysIntegerDays between the filing date and the run
mentionedBillNumbersArrayBill numbers (e.g. H.R. 815) found in the activity descriptions
mentionedAgenciesArrayFederal agencies named in the activity descriptions
matchedKeywords / activityMatchCountArray / IntegerActivity keywords matched (only when activityKeywords is set)
summaryStringPaste-ready one-line description of the filing (≤280 chars)
changeFlagStringWatchlist mode only: NEW, SEEN, or UPDATED
changedFieldsArrayWatchlist mode only: the fields that changed on an UPDATED filing
firstSeenAt / runsSeenString / IntegerWatchlist mode only: when the filing was first seen and how many runs it has appeared in

Other record types

Beyond filing and the run summary, the dataset can also contain (each tagged by recordType):

  • trendSummary (trend mode) — one per year for the searched entity: year, filings, totalIncomeUsd, incomeChangePctVsPriorYear, uniqueRegistrants, uniqueLobbyists, revolvingDoorFilings, foreignInfluenceFilings, topIssueAreas, newIssueAreas, droppedIssueAreas.
  • clientProfile / registrantProfile / lobbyistProfile (includeProfiles) — entity, yearsCovered, filings, totalSpendUsd, issueConcentrationScore, spendRank, spendRankPercentile, topRegistrants / topClients, topIssueAreas, revolvingDoorLobbyists, foreignConnections. Counts cover the run's result set, not all-time.
  • edge (includeGraphEdges) — from, fromType, to, toType, relationship (paid_lobbying / employs_lobbyist / lobbied_issue / held_position), amountUsd, weight, year. The paid_lobbying (client → firm) edges also carry relationship-longevity: firstSeenYear, lastSeenYear, relationshipYears, quartersActive, totalSpendUsd. Drops into Gephi / Neo4j / Cytoscape.
  • ranking (rankings mode) — rankingType (topClientsBySpend / topRegistrantsBySpend / topLobbyistsByFilings / topLobbyistsByClients / topIssueAreas / topForeignCountries / topRevolvingDoorLobbyists), rank, name, value, metric.
  • emergingIssue (trend mode) — name, filingsPriorPeriod, filingsRecentPeriod, growthPercent, periodLabel: issue areas whose filing count grew between the two most recent years.
  • influenceChange (watchlist mode) — client, changeType (newFirm / newLobbyist / newIssue / newAgency / newCommittee / foreignEntityAdded / spendIncrease), detail, value, percentChange.
  • competitive (competitive mode) — client, industry, spendUsd, spendRank, peerCount, industryPeers, issueOverlap, note (peers and ranks are computed within the year scanned, not all-time).
  • feedEvent (intelligence mode) — eventType (spendShock / newEntrant / newIssue / newFirm / revolvingDoorHire / foreignEntityAdded), importance (0-100), headline (paste-ready), client, value, percentChange, year. The importance-ranked influence feed.
  • momentum (intelligence mode) — rank, client, momentumScore (0-100), spendGrowthPct, filingGrowthPct, newFirms, newLobbyists, newIssues. The fastest-growing lobbying actors.
  • committeeInfluence (intelligence mode) — committee, companies, filings: which clients target a committee, extracted from covered positions.
  • agencyInfluence (intelligence mode) — agency, companies, filings: which agencies are lobbied, extracted from activity descriptions.
  • regulatoryHeat (intelligence mode) — issueArea, companies, filings, totalSpendUsd, growthPercent: the heat map of what's hot, growing, or fading.
  • networkInsight (intelligence mode) — insightType, insight (paste-ready headline), entity, value: graph superlatives (most connected firm / lobbyist, most-targeted committee, fastest-growing network).

The entity-profile records carry both influenceIndex (0-100, the headline clout measure) and its networkStrengthScore component (structural breadth: firms + lobbyists + revolving-door intensity + branch/agency/committee breadth). Every filing carries mentionedCommittees (congressional committees named in its lobbyists' covered positions). The feedEvent stream also includes issueCrossover events ("AI lobbying surpassed telecom lobbying").

The Output tab carries dedicated views for Influence Feed, Trend (by year), Entity Profiles, Relationship Edges, Lobbyists (one row each), and Alerts (changes) alongside the filing views.

Run summary record

The last record pushed to the dataset is the run summary (recordType: "summary"), also written to the SUMMARY key-value store key for dashboards and agents:

FieldDescription
filingsReturned / totalMatchingFilings returned vs total matching the search on the Senate API
uniqueClients / uniqueRegistrants / uniqueLobbyistsDistinct entity counts across the result set
totalIncomeUsd / totalExpensesUsdSummed lobbying spend
foreignInfluenceFilings / revolvingDoorFilings / convictionFilingsHow many returned filings carry each signal
notabilityDistributionCount of filings per notability tier
topClientsByIncome / topRegistrantsByIncome / topIssueAreasThe biggest spenders and most-lobbied issues in the result set
newFilings / baselineRunWatchlist mode: how many filings are new since the last run (baselineRun: true on the first run)
truncated / truncatedReasontrue when a cap (maxResults or charge limit) stopped the run short of all matching filings, with the reason — so you know to narrow the search or raise maxResults
ppeChargedResultsNumber of results actually billed on this run (null on free/owner runs)

Dataset views

The Output tab opens on the Lobbying Filings view (notability tier first, so the highest-attention filings are obvious). Two focused views are also available: Foreign Influence (filings naming foreign entities) and Revolving Door (filings with former government officials).

Understanding the Financial Data

  • Income — reported by outside lobbying firms (the registrant is a hired K Street firm). Represents what they were paid by the client for lobbying services during the quarter.
  • Expenses — reported by in-house lobbyists (the registrant IS the client or part of the client organization). Represents what they spent on their own lobbying activities.
  • A single filing will have either income OR expenses, never both.
  • Quarterly reports (Q1–Q4) contain financial data. Registrations (RR), amendments (MA), and terminations (TA) generally do not.
  • Income/expenses are reported in ranges for small amounts: under $5,000 may be reported as a range rather than an exact figure.

The Revolving Door

The coveredPosition field on individual lobbyists reveals former government roles — a key indicator of revolving-door lobbying. Examples:

  • "Former Chief of Staff, Senate Armed Services Committee"
  • "Former Deputy Assistant Secretary, Department of Defense"
  • "Former Senior Advisor, White House National Economic Council"

These individuals are subject to cooling-off periods under federal law. The LDA requires disclosure of covered positions held within the past 20 years.

Disambiguating same-surname lobbyists

The Senate LDA stores covered_position on the per-filing-per-lobbyist join, not on the lobbyist record. For current filings, coveredPosition already contains the lobbyist's full career history of former government roles. Combine that with the stable lobbyistId to disambiguate.

Example: a search for lobbyistName: "Portman" against 2024 filings returns Rachel Portman (lobbyistId: 145585) with coveredPosition: "Deputy Health Policy Director, Committee on Senate Health, Education, Labor and Pensions; Health Policy Assistant, Sen. Richard Burr; Intern, Rep. Robert Portman". The career string and the ID together separate her from any filing referencing Sen. Robert Portman directly.

Older filings (pre-2010) sometimes carry coveredPosition: "N/A" or empty strings — the disclosure standard tightened over time. Use lobbyistId as the canonical join key across years.

Use Cases

  • Political intelligence analysts tracking which companies and industries are lobbying on specific bills and regulations, and identifying emerging policy trends from shifts in lobbying spending
  • Corporate government affairs teams benchmarking their lobbying spend against competitors, identifying the most active firms in their policy areas, and finding lobbyists with relevant Hill experience
  • Investigative journalists following the money trail from corporate interests through K Street firms to policy outcomes, and cross-referencing lobbying data with campaign contributions and legislative votes
  • Compliance officers verifying that lobbying activities are properly disclosed, checking for foreign entity connections, and monitoring revolving-door movements
  • Policy researchers analyzing the relationship between lobbying spending and legislative outcomes across industries and issue areas
  • Venture capital and private equity firms assessing regulatory risk for portfolio companies by monitoring lobbying activity in their target sectors
  • Foreign policy analysts tracking foreign-connected lobbying activity to understand foreign influence on US policy

How to Use the API

Python

import requests
import time
run = requests.post(
"https://api.apify.com/v2/acts/ryanclinton~senate-lobbying-search/runs",
params={"token": "YOUR_APIFY_TOKEN"},
json={
"clientName": "Amazon",
"filingYear": 2024,
"maxResults": 200
},
timeout=30,
).json()
run_id = run["data"]["id"]
while True:
status = requests.get(
f"https://api.apify.com/v2/actor-runs/{run_id}",
params={"token": "YOUR_APIFY_TOKEN"},
timeout=10,
).json()
if status["data"]["status"] in ("SUCCEEDED", "FAILED", "ABORTED"):
break
time.sleep(3)
dataset_id = status["data"]["defaultDatasetId"]
items = requests.get(
f"https://api.apify.com/v2/datasets/{dataset_id}/items",
params={"token": "YOUR_APIFY_TOKEN"},
timeout=30,
).json()
total_income = sum(i["income"] or 0 for i in items)
print(f"Total lobbying income: ${total_income:,.0f}")
for item in items:
print(f"${item['income'] or 0:>10,.0f} | {item['registrantName']} | {item['issueAreas']}")

JavaScript

const response = await fetch(
"https://api.apify.com/v2/acts/ryanclinton~senate-lobbying-search/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
clientName: "Amazon",
filingYear: 2024,
maxResults: 200,
}),
}
);
const filings = await response.json();
const total = filings.reduce((sum, f) => sum + (f.income || 0), 0);
console.log(`Total lobbying income: $${total.toLocaleString()}`);
filings.forEach(f =>
console.log(`$${f.income || 0} | ${f.registrantName} | ${f.issueAreas}`)
);

cURL

curl -X POST "https://api.apify.com/v2/acts/ryanclinton~senate-lobbying-search/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"clientName": "Amazon",
"filingYear": 2024,
"maxResults": 200
}'

How It Works

The intelligence stack: filings to influence feed

The actor queries the Senate LDA REST API, paginates the results (25 per page) up to maxResults, flattens the deeply nested filing JSON into clean records, and computes the deterministic intelligence layer (scores, classifications, aggregates, feed events) over the fetched data before streaming it to the dataset. No browser, no API key.

Data Sources

SourceAPI EndpointAuth Required
US Senate LDAhttps://lda.senate.gov/api/v1/filings/No

Common Issue Area Codes

CodeIssue AreaCodeIssue Area
DEFDefenseHCRHealth Issues
TAXTaxationENEEnergy/Nuclear
TECTelecommunicationsENVEnvironment
TRDTradeFINFinancial Institutions
BUDBudget/AppropriationsIMMImmigration
TRATransportationAGRAgriculture
EDUEducationHOMHomeland Security
LBRLabor IssuesINSInsurance
FORForeign RelationsCOMCommunications
MEDMedical/DiseaseCPTComputers/IT
PHAPharmacyFUEFuel/Gas/Oil

77 issue area codes available in the input dropdown. See the Senate LDA website for the complete list.

How Much Does It Cost?

ScenarioResultsEst. TimeEst. Cost
Single company lookup (100 filings)10010 sec< $0.01
Issue area + income filter (200 filings)20015 sec~$0.01
Full year scan, single firm (500 filings)50030 sec~$0.02
Broad issue area search (5,000 filings)5,0003 min~$0.10

The actor uses 256 MB memory and makes lightweight API calls with no browser rendering. The Apify free tier covers hundreds of runs per month.

Tips

  • Search by issue area for industry analysis — filtering by DEF (Defense), HCR (Health), or TAX (Taxation) reveals which companies and firms are most active in each policy domain.
  • Check coveredPosition for revolving door — lobbyists with former government roles in the same policy area they're lobbying on are especially influential. Filter results for non-empty coveredPosition strings.
  • Use minIncome to surface big spenders — set minIncome: 100000 to focus on the highest-value lobbying engagements and filter out nominal filings.
  • Cross-reference with campaign finance — combine lobbying data with the FEC Campaign Finance Search actor to see both lobbying spending and political contribution patterns for the same companies.
  • Track registrations for new relationships — filing period "RR" (Registration) reveals new client-lobbyist relationships being formed.
  • Batch by year for trend analysis — run the actor once per year for the same client to track lobbying spending trends over time.

Limitations

  • Senate API pagination — the API returns 25 results per page, requiring many sequential requests for large result sets. Fetching 5,000 results requires 200 API calls.
  • No House-side data — this actor searches the Senate LDA database. House of Representatives lobbying data uses a different system.
  • Income rounding — small lobbying engagements may be reported as income ranges rather than exact figures. The API returns the reported amount.
  • Name matching is partial — searching "Smith" in lobbyist name will match all Smiths. Provide more specific names for precision.
  • Keyword search is client-side — the Senate API itself has no full-text activity search, so activityKeywords filters the activity descriptions after fetching. It works within the result set the search returns (bounded by maxResults), not across the entire database. Pair keywords with a client/registrant/issue filter for the most complete coverage.
  • No amendment chain — the LDA API does not link an amendment to the original filing, so the actor flags isAmendment but cannot reconstruct the amendment history. dedupeStrategy: "latestPerEngagement" collapses re-files to the latest per engagement as a practical substitute.
  • Registration filings lack financial data — RR (Registration) filings establish the lobbying relationship but don't include income/expense figures. Only quarterly reports (Q1–Q4) have financial data.
  • Foreign entity data is self-reported — contribution amounts and ownership percentages are disclosed by the filing party and may be incomplete.

Responsible Use

  • All data is public — lobbying disclosure filings are published by the US Senate under the Lobbying Disclosure Act and are freely available for public inspection.
  • Respect Senate API rate limits — the actor paginates through results sequentially. Avoid launching excessive concurrent runs.
  • Use for legitimate purposes — this tool is designed for policy analysis, competitive intelligence, investigative journalism, compliance monitoring, and academic research.
  • Lobbying is legal — lobbying is a constitutionally protected activity. The LDA requires transparency, not prohibition.

FAQ

Is an API key required? No. The Senate LDA REST API is free and does not require authentication.

How current is the data? Lobbying filings are due 45 days after the end of each quarter. Q4 2024 filings were due by February 14, 2025. New filings appear in the database as they are processed by the Senate.

What is the difference between income and expenses? Income is reported by outside lobbying firms (K Street firms hired by clients). Expenses are reported by organizations that lobby on their own behalf (in-house lobbyists). A filing will have one or the other, never both.

Can I find lobbying connected to foreign governments? Yes. The foreignEntities array in each filing discloses foreign organizations or governments connected to the lobbying activity, including their country and financial contribution.

How do I identify revolving-door lobbyists? Check the coveredPosition field on individual lobbyists within the lobbyingActivities array (or the deduplicated top-level lobbyists[]). Non-empty values indicate former government roles — for current filings the field carries the lobbyist's full career history (e.g., "Former Chief of Staff, Senate Commerce Committee; Senior Counsel, Department of Justice").

How do I tell two lobbyists with the same surname apart? Group results by lobbyistId (the Senate LDA stable ID) — each lobbyist has a unique ID regardless of name collisions. The coveredPosition career string is your second-line check: it shows the actual roles each ID held, separating Sen. Robert Portman from junior associates with the same surname.

Can I search for lobbying on a specific bill? Not directly through this actor's input parameters. However, bill references appear in the lobbyingActivities[].description field. Search for a broad issue area (e.g., HCR for health) and then filter the results for specific bill numbers.

Why do some filings show $0 income? Some quarterly reports are filed as amendments or corrections with zero income. Additionally, termination filings (TA type) and miscellaneous amendments (MA type) typically don't include financial data.

How far back does the data go? The Senate LDA database contains filings from 1999 to present — over 25 years of federal lobbying disclosure data.

Use in Dify

Drop this actor into Dify workflows via the Apify plugin's Run Actor node. Every filing returns scored and classified as structured JSON — a notabilityTier (critical / high / medium / low) plus the revolvingDoor, hasForeignEntities, and hasConvictionDisclosures booleans your downstream if/else node branches on. A generic scraper pointed at the Senate LDA site returns rows you still have to read; this returns the filings worth reading and why.

  • Actor ID: ryanclinton/senate-lobbying-search
  • Sample input (surface only the high-attention filings for a company):
{
"clientName": "Pfizer",
"filingYear": 2024,
"minNotability": 45,
"maxResults": 200
}
  • Branching example — a Dify if/else node routes on the stable enum and booleans without parsing prose:

    • notabilityTier is critical OR hasForeignEntities is true → send to the analyst review branch
    • revolvingDoor is true → tag as a former-official engagement and notify
    • else → log to the dataset and continue
  • Opt-in monitoring: set watchlistName and schedule the run. Each filing then carries changeFlag (NEW / SEEN), so a Dify workflow branches on changeFlag == "NEW" to alert only on filings that appeared since the last run.

  • The notabilityFactors[] array is plain-English and usable verbatim in a Slack message, email, or LLM prompt — no rewriting. The run-level summary record (also at the SUMMARY key-value store key) gives a Dify aggregation node the totals and top spenders in one object.

Integrations

  • Apify API — trigger runs programmatically for automated lobbying monitoring dashboards
  • Zapier — automatically run lobbying searches when policy-relevant events occur
  • Make (Integromat) — build workflows that track lobbying activity around specific legislative issues
  • Google Sheets — export lobbying data for policy research teams and compliance reporting
  • Webhooks — receive lobbying data as soon as the run completes for real-time policy intelligence
  • Scheduled Runs — run quarterly after each filing deadline to keep your lobbying database current
ActorWhat it doesUse with Senate Lobbying Search
FEC Campaign Finance SearchFederal campaign contributionsCross-reference lobbying with political donations from the same companies
Congress Bill SearchCongressional legislationFind the bills being lobbied on by matching issue descriptions
Congress Stock TrackerCongressional stock tradesCompare lobbying activity with congressional investment patterns
Federal Register SearchFederal regulationsTrack the regulatory outcomes of lobbying campaigns
FARA Foreign AgentsForeign agent registrationsCompanion database for foreign-connected influence activity
CMS Open PaymentsPharma payments to physiciansCompare pharma lobbying spending with physician payment patterns