WA Lobbying & PDC Enforcement - Who Pays to Lobby avatar

WA Lobbying & PDC Enforcement - Who Pays to Lobby

Pricing

from $0.03 / 1,000 lobby filing records

Go to Apify Store
WA Lobbying & PDC Enforcement - Who Pays to Lobby

WA Lobbying & PDC Enforcement - Who Pays to Lobby

Washington lobbying money (332k filings, current to this month): who pays whom to lobby Olympia. Search by client, lobbyist, year, min compensation; aggregate top client spenders or top lobbying firms. Plus PDC campaign-finance/lobbying enforcement cases with penalties, status and amounts.

Pricing

from $0.03 / 1,000 lobby filing records

Rating

0.0

(0)

Developer

Wenhao Yang

Wenhao Yang

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

WA Lobbying & PDC Enforcement (wa-lobbying)

Pull Washington's lobbying money - ~336,000 filings, current to this month (from the state's free public open data) - showing who pays whom to lobby the legislature, with compensation amounts per filing period. Plus PDC enforcement cases (campaign-finance / lobbying violations) with penalties.

This is the money-flow layer of WA politics that no one else packages: every retainer a law firm or government-affairs shop collects to lobby Olympia, attributed to the client that paid it.

Built for government-relations teams, associations, law firms, PR agencies, lobbyists, journalists and market-intelligence users who need the B2G angle on WA - "who's spending what to shape state policy".

Two modes

lobbying (default) - Lobbyist Compensation

Each record is one client paying a lobbyist/firm for one filing period:

FieldMeaning
lobbyistNameThe lobbyist or lobbying firm
clientNameThe organization paying (funding source / employer)
period / yearFiling period (monthly) and year
typeEmployer = client-attributable row (default); Lobbyist = self summary
compensation / netCompensationWhat the client paid the lobbyist that period
netTotalCompensation + expenses for the period
sourceUrlLink to the PDC filing

enforcement - PDC cases

Each record is one Public Disclosure Commission case (alleged campaign-finance or lobbying violation):

FieldMeaning
case / openedCase number and opened date
respondentThe person/organization under review
subjectThe alleged violation (statute cited)
statuse.g. Assessment of Facts, Violation Found by Commission, Closed
totalPenalties / totalPaid / balanceDueMoney outcomes

Typical questions it answers

  • Who spends the most lobbying Olympia? Aggregate by client -> Puget Sound Energy, Amazon, Boeing, Microsoft, associations (year to date, all years).
  • What does a given company pay for lobbying? Filter clientName=Boeing -> every firm it retains and the monthly amounts.
  • Which lobbying firm earns the most? Aggregate by lobbyist -> Gordon Thomas Honeywell, Insight Strategic, McBride...
  • A retainer-scale search - clientName=Microsoft + minCompensation=10000.
  • Who's been cited for campaign violations? mode=enforcement + status=Violation Found, or status=Assessment of Facts for cases in review.

Aggregate mode (lobbying only)

Turn on aggregate and it rolls up compensation over the whole ~336k-row corpus instantly:

Output fieldMeaning
keyThe client or lobbyist
compensationTotal compensation paid (all matched filings)
filingsNumber of filings in that group

Group by client (top spenders) or lobbyist (top earners). Aggregation runs on Employer records only, so a client's compensation is never double-counted against the lobbyist's self row.

Inputs (all optional)

InputModeWhat it does
clientNamelobbyingOrganization paying for lobbying - substring ("Boeing", "Microsoft", "Puget Sound Energy")
lobbyistNamelobbyingLobbyist or firm - substring ("Gordon Thomas Honeywell", "McBride")
lobbyistTypelobbyingEmployer (client-attributable, default) / Lobbyist / both. The default applies to every lobbying query - so a lobbyistName search returns that firm's employer-attributable rows; set both to add the lobbyist's own self-summary rows
aggregate + groupBylobbyingRoll up by client / lobbyist -> total compensation + filings
respondentenforcementPerson/organization cited
subjectenforcementText of the alleged violation
statusenforcementCase status keyword ("Violation Found", "Closed")
yearFrom / yearTobothFiling-period / opened-date year range
minCompensationlobbyingOnly filings at or above this compensation
minPenaltyenforcementOnly cases with penalties at least this amount
maxResultsbothCap records (default 50)

Example inputs

What one company pays for lobbying - clientName is a substring; the default Employer view is client-attributable.

{ "clientName": "Boeing", "maxResults": 10 }

Retainer-scale payments only - minCompensation sets a floor on the filing amount.

{ "clientName": "Microsoft", "minCompensation": 10000, "maxResults": 10 }

Cases where a violation was found - switch to mode=enforcement and screen by status.

{ "mode": "enforcement", "status": "Violation Found", "maxResults": 10 }

Which firms earn the most - aggregate rolls compensation up by lobbyist.

{ "aggregate": true, "groupBy": "lobbyist", "maxResults": 10 }

Low cost

$0.00005 per record, down to $0.00003 at Gold - and each record is metered individually.

This couples Washington's lobbying-disclosure corpus (~336k filings) with the PDC enforcement docket (campaign-finance & lobbying penalties) behind one query surface. The money data is trickier than it reads: a single lobbying payment can be reported twice - once by the employer paying and once by the lobbyist self-reporting - so spend aggregates are pinned to the employer-side filings to keep a dollar from being counted two times. Client names are as-messy-as-you'd-expect in the source (1-800 CONTACTS (Bill Clarke)), so matching spans both the funding-source and employer fields. You query one money-flow surface - filings and penalties - where a client's spend is never double-counted; the dedup and messy-name matching stay on our side. An unfiltered run returns the newest month's filings.

Example output

One lobbying filing - clientName="Union Pacific" returns records like this one:

{
"platform": "wa-lobbying",
"source": "lobbyist-compensation",
"type": "Employer",
"period": "2026-09",
"year": "2026",
"lobbyistName": "Aaron Hunt",
"lobbyistId": "29492",
"clientName": "UNION PACIFIC RAILROAD CO",
"clientId": "17004",
"employmentType": "Direct",
"compensation": 1000,
"netCompensation": 1000,
"totalExpenses": 0,
"netTotal": 1000,
"sourceUrl": "https://my.pdc.wa.gov/lobbyist/public/-/#/public/l2-report/2071470"
}

aggregate=true, groupBy=client - one summary row per client (key, compensation, filings), rolled up over the Employer records so a dollar is counted once.

Data source & freshness

  • Sources: data.wa.gov - Lobbyist Compensation by Source (9nnw-c693, ~336k rows) and PDC Enforcement (a4ma-dq6s, 8k rows), via the Socrata SODA API (free public, no login).
  • Update cadence: lobbying filings are monthly (data runs through the latest filing month); enforcement cases open continuously.
  • Coverage: registered lobbyist compensation in WA from 2016 to present, and PDC campaign-finance/lobbying enforcement actions.