Discover/OpenTheBooks API
live

OpenTheBooks APIopenthebooks.com

Search Nevada state employee salary records by job title, employer, year, and name. Returns annual wages, titles, and employer data via a single endpoint.

This API takes change requests — .
Endpoint health
verified 2d ago
search_salaries_by_title
1/1 passing latest checkself-healing
Endpoints
1
Updated
16d ago

What is the OpenTheBooks API?

The OpenTheBooks Nevada Salaries API exposes one endpoint — search_salaries_by_title — that returns up to 100 salary records per page from Nevada's public employee compensation database. Each record includes the employee's name, job title, employer, annual wages, and reporting year. You can filter server-side by employer, year, and last name, with an additional title keyword match applied across results.

This call costs1 credit / call— charged only on success
Try it
Employee last name (optionally followed by first name, no comma) for server-side filtering.
Upstream page number (1-based). Each page has up to 100 upstream records, of which zero or more may match the title filter.
Year to filter by (e.g. '2024'). Omit or leave empty for all years.
Keyword to match in the employee title field (case-insensitive substring). Titles typically contain academic department names (e.g. 'economics', 'nursing', 'computer science').
Employer name for server-side filtering. Must match a value from the site's employer dropdown (e.g. 'University of Nevada, Reno', 'University of Nevada, Las Vegas').
api.parse.bot/scraper/2ca9c77c-aac9-405d-9a55-fbfa7662e0d1/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/2ca9c77c-aac9-405d-9a55-fbfa7662e0d1/search_salaries_by_title?page=8&year=2024&title=economics&employer=University+of+Nevada%2C+Reno' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace openthebooks-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: OpenTheBooks SDK — bounded, re-runnable; every call capped."""
from parse_apis.openthebooks_com_api import OpenTheBooks, TitleRequired

client = OpenTheBooks()

# Search for economics department at UNR, 2024
for record in client.salary_search_results.search(
    title="economics", employer="University of Nevada, Reno", year="2024", limit=3
):
    print(record.name, record.title, record.annual_wages)

# Take a single result for a broader search
result = client.salary_search_results.search(
    title="football", employer="University of Nevada, Reno", limit=1
).first()
if result:
    print(result.name, result.title, result.year)

# Typed error: title is required
try:
    client.salary_search_results.search(title="nursing", year="2024", limit=1).first()
except TitleRequired as e:
    print("error:", e)

print("exercised: salary_search_results.search")
All endpoints · 1 totalmissing one? ·

Search Nevada state employee salary records by title/department keyword. The title filter is applied client-side (case-insensitive substring match) against server-paginated results sorted by annual wages descending. Each page contains up to 100 upstream records; matches_on_page reports how many matched the title filter. Use employer and year filters to narrow the server-side result set before title filtering. Results are auto-iterated across upstream pages.

Input
ParamTypeDescription
namestringEmployee last name (optionally followed by first name, no comma) for server-side filtering.
pageintegerUpstream page number (1-based). Each page has up to 100 upstream records, of which zero or more may match the title filter.
yearstringYear to filter by (e.g. '2024'). Omit or leave empty for all years.
titlerequiredstringKeyword to match in the employee title field (case-insensitive substring). Titles typically contain academic department names (e.g. 'economics', 'nursing', 'computer science').
employerstringEmployer name for server-side filtering. Must match a value from the site's employer dropdown (e.g. 'University of Nevada, Reno', 'University of Nevada, Las Vegas').
Response
{
  "type": "object",
  "fields": {
    "page": "integer — current upstream page number",
    "records": "array of matching salary records with year, employer, name, title, annual_wages, source",
    "year_filter": "string or null — the year filter applied",
    "title_filter": "string — the title keyword that was applied",
    "has_next_page": "boolean — whether more upstream pages exist",
    "employer_filter": "string or null — the employer filter applied",
    "matches_on_page": "integer — how many records matched the title filter",
    "records_on_page": "integer — total upstream records on this page (up to 100)"
  },
  "sample": {
    "data": {
      "page": 8,
      "records": [
        {
          "name": "Sokolova Anna",
          "year": "2024",
          "title": "Associate Professor Economics",
          "source": "University of Nevada, Reno",
          "employer": "University of Nevada, Reno",
          "annual_wages": "$124,978.54"
        },
        {
          "name": "Pram Kym",
          "year": "2024",
          "title": "Assistant Professor Economics",
          "source": "University of Nevada, Reno",
          "employer": "University of Nevada, Reno",
          "annual_wages": "$118,205.20"
        }
      ],
      "year_filter": "2024",
      "title_filter": "economics",
      "has_next_page": true,
      "employer_filter": "University of Nevada, Reno",
      "matches_on_page": 2,
      "records_on_page": 100
    },
    "status": "success"
  }
}

About the OpenTheBooks API

What the API Returns

The search_salaries_by_title endpoint queries Nevada state employee salary records and returns structured compensation data. Each record in the records array contains the employee's name, title, employer, annual_wages, year, and a source reference. Results are sorted by annual wages in descending order, so the highest-paid matches surface first.

Filtering and Pagination

The endpoint accepts four optional server-side filters: employer (must match a value from the source's employer list, e.g. 'University of Nevada, Reno'), year (e.g. '2024'), and name (employee last name, optionally followed by first name). The required title parameter applies a case-insensitive substring match against the employee title field — useful for finding all employees with titles containing terms like 'engineer', 'director', or 'professor'.

Pagination is controlled by the page parameter (1-based). Each upstream page holds up to 100 records (records_on_page), but only the subset that matches the title keyword is returned in records (matches_on_page). The has_next_page boolean tells you whether additional pages exist, so you can walk through the full result set incrementally.

Coverage and Scope

Data covers Nevada state employees across multiple employers including state agencies and university systems. Year coverage depends on what OpenTheBooks has published for Nevada; omitting the year filter returns records across all available years. The employer_filter and year_filter fields in the response confirm which filters were applied, helping you validate that your query parameters were recognized correctly.

Reliability & maintenanceVerified

The OpenTheBooks API is a managed, monitored endpoint for openthebooks.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when openthebooks.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official openthebooks.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2d ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a salary comparison tool for Nevada public sector job titles like 'nurse' or 'engineer'
  • Track year-over-year compensation changes for a specific Nevada state agency by filtering on employer and year
  • Identify the highest-paid employees in a department by retrieving the first page of results sorted by annual_wages descending
  • Look up a specific employee's compensation history by filtering on their last name across multiple years
  • Analyze wage distribution across Nevada university system roles using the title keyword and employer filters
  • Export a dataset of all records for a given employer and year for offline analysis or reporting
  • Cross-reference job title keywords across different state employers to compare compensation levels
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does OpenTheBooks have an official developer API?+
OpenTheBooks does not publish a documented public developer API. The data on the site is intended for human browsing rather than programmatic access.
What does the title parameter actually filter, and how precise does it need to be?+
The title parameter performs a case-insensitive substring match against the employee's job title field. You don't need an exact match — passing 'director' will return records with titles like 'Director of Finance' or 'Associate Director'. The filter is applied after server-side pagination, so matches_on_page may be lower than records_on_page on any given page.
Why might matches_on_page be zero on some pages even when results exist on other pages?+
The upstream data is paginated server-side in batches of up to 100 records sorted by annual wages. The title keyword filter is applied to whatever records appear on each page. If none of those 100 records contain your keyword, matches_on_page will be zero for that page even though matching records may exist on later pages. You need to iterate through all pages using has_next_page to guarantee complete coverage.
Does the API cover other states besides Nevada?+
Not currently. This API covers Nevada state employee salary records only. OpenTheBooks publishes salary data for many other states and the federal government. You can fork it on Parse and revise it to add endpoints targeting other state pages on the same domain.
Can I retrieve individual employee benefit or pension data beyond annual wages?+
Not currently. Each record exposes annual_wages, title, employer, name, year, and source — there are no fields for benefits, pensions, overtime, or other compensation components. You can fork it on Parse and revise it to add an endpoint that targets any additional compensation detail available on the source site.
Page content last updated . Spec covers 1 endpoint from openthebooks.com.
Related APIs in Government PublicSee all →
indeed.com API
Search and discover job opportunities on Indeed while accessing detailed job descriptions, company profiles, and salary insights all in one place. Get comprehensive career information including specific compensation data to help you find and evaluate the right job opportunity for you.
nvidia.wd5.myworkdayjobs.com API
Search and browse current NVIDIA job openings by title, location, and department, then retrieve detailed information about specific positions including requirements and application details. Provides real-time access to available roles across the company.
nav.no API
Search and browse job listings from Norway's official job board with detailed filtering by location, sector, education level, and other criteria. Get comprehensive job details and explore available opportunities across the Norwegian labor market.
caljobs.ca.gov API
Search and discover job listings from California's official CalJOBS database, with the ability to filter results by posting date and specific employers to find opportunities that match your needs. View detailed information about individual positions to learn more about roles that interest you.
levels.fyi API
Access real compensation data, benefits packages, and salary trends across tech companies and job levels. Retrieve internship pay, H-1B visa salary records, company profiles, and detailed breakdowns by role and level.
sco.ca.gov API
Access data from sco.ca.gov.
salarydr.com API
Compare physician and dentist salaries across specialties and states using real submission data and aggregated benchmarks. Search salary ranges by location, specialty, and recent market data to inform compensation decisions.
usajobs.gov API
Search federal job openings and view detailed job announcements from USAJobs.gov, plus access historical job data and reference codes to help you find the right government position. Filter and explore thousands of federal career opportunities with comprehensive job details all in one place.