New Jersey State Payroll - Every State Employee Payment
Pricing
from $0.03 / 1,000 new jersey payroll records
New Jersey State Payroll - Every State Employee Payment
Every payment New Jersey's state government made to its own workforce (public open data, 2.84M rows, 2010-today): employee, agency and section, job title, bargaining group, salary rate, and paid amounts by type. Filter by name, agency, title, year or amount.
Pricing
from $0.03 / 1,000 new jersey payroll records
Rating
0.0
(0)
Developer
Wenhao Yang
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Every payment the State of New Jersey made to its own workforce, straight from the State's payroll register. 2.84 million rows - about two per employee per reporting year (a salary record and a payments record) - from calendar 2010 through the latest reporting year.
Low cost
From $0.00005 per record, down to $0.00003 at Gold. Pay only for the records you actually receive - the whole register stays queryable, you are never billed for the scan behind it.
What you get
One row per employee (an annual snapshot), with the pay attached to it:
- Who - employee name (last, first, middle initial), and the payroll id
- Where - the employing department/agency and the section inside it
- What job - the job title and the employee-relations (bargaining) group
- How paid - annual salary, hourly, part-time or per-diem
- How much - the paid amounts broken down by type: regular pay, overtime, supplemental, one-time, retroactive, lump sum, and clothing
Two record types, one register
The State publishes each employee in two rows, and the two carry different money columns:
recordType: "MASTER"- the salary rate (salaryHourlyRate), the original hire date (present on ~5% of MASTER rows), and the year-to-date totals (masterYtdRegularPay,masterYtdOvertime,masterYtdOther,masterYtdEarnings).recordType: "DETAIL"- the amounts paid in the reporting period, broken out by type (regularPay,overtimePayments,retroactivePay,lumpSumPay, ) and the year-to-dateytdEarnings.
Neither row shows the whole picture on its own - that is how the State
publishes it. Both are returned by default; set recordType to read one. A
row leaves the other type's fields empty rather than dropping the keys, so the
shape never changes under you.
Filter it
- Name -
lastName="Smith", orfullName="Smith, John". - Agency and section -
department="Corrections",section="State Police". - Job -
title="Trooper",title="Nurse". 44 named agencies, 280 sections and 40 bargaining groups in total. - Record type - MASTER or DETAIL (see above).
- Year -
calendarYear=2025. 2010-2026 are present. - Amount -
minAmount=100000for six-figure year-to-date earnings. - Date range and last-N-days on the snapshot date.
Example inputs
One employee by name - lastName is a substring match.
{ "lastName": "SMITH", "recordType": "DETAIL", "maxResults": 25 }
One agency's payroll - combine the agency with a job title.
{ "department": "CORRECTIONS", "title": "OFFICER", "maxResults": 50 }
Top earners this year - year-to-date earnings at or above a threshold.
{ "calendarYear": 2026, "minAmount": 150000, "maxResults": 50 }
Where the payroll is - mode=aggregate returns one count row per agency;
every group comes back.
{ "mode": "aggregate", "groupBy": "department" }
Or roll it up
Set mode=aggregate and get a rolled-up count by department,
section, bargaining group, compensation method, calendar year
or record type. Every group comes back - this mode is not cut off by
maxResults.
Then follow the money
- Headcount and payroll size by agency, and how they move year over year.
- Every person the State has paid, and what they earned in each reporting year.
- Overtime vs. regular pay by agency or bargaining unit.
- The public payroll of one agency or one job title, line by line.
Example output
One detail row - department=CORRECTIONS, recordType=DETAIL:
{"platform": "nj-payroll","source": "new-jersey-state-payroll","mode": "rows","groupKey": "","groupCount": "","groupBy": "","calendarYear": "2026","calendarQuarter": "2","asOfDate": "2026-06-30T00:00:00.000","payrollId": "231480","lastName": "COOPER","firstName": "RUSSELL","middleInitial": "S","fullName": "COOPER, RUSSELL S","masterDepartment": "CORRECTIONS","masterSection": "BAYSIDE STATE PRISON","masterTitle": "STRKPR 2","bargainingGroup": "ADMINISTRATIVE AND CLERICAL SERVICES (CWA) - UNIT A","compensationMethod": "ANNUAL SALARY","regularPay": "11199.65","supplementalPay": "0","oneTimePayments": "0","ytdEarnings": "11199.65","recordType": "DETAIL","sourceUpdatedAt": "2026-08-28"}
mode=aggregate, groupBy=department - one count row per agency:
HUMAN SERVICES 408,968JUDICIARY 352,296CORRECTIONS 307,183LAW AND PUBLIC SAFETY 267,418CHILDREN AND FAMILIES 249,243ENVIRONMENTAL PROTECTION 177,273
Notes on the data, from the source
- Two rows per employee per year, not one. See the record-type section above: a MASTER row and a DETAIL row, with non-overlapping money columns.
- The register is effectively annual - the State publishes one snapshot per
reporting year (the current year is a partial snapshot). The newest data can be
up to a year behind.
sourceUpdatedAtcarries the dataset's own refresh date. - A few rows carry adjustments. 17 of the 2.84 million rows are negative
(the lowest is -$43,896.87) - real accounting entries, returned as they stand.
Set
minAmount=0.01for a positive-only query. - 23,706 rows carry no department. The State writes the literal string
"null"there; it is returned as empty, not as an agency named "null". - Job titles and sections are free text as the State types them, so a substring match is the right way to search them.