Discover/Ca API
live

Ca APIsco.ca.gov

Access California state personnel office contacts via the CPOD API. Retrieve department lists and staff names, titles, phone numbers, and emails for all state agencies.

This API takes change requests — .
Endpoint health
verified 2h ago
get_department_personnel
list_departments
1/2 passing latest checkself-healing
Endpoints
2
Updated
2h ago

What is the Ca API?

The California Personnel Office Directory (CPOD) API provides structured access to personnel contact data across California state departments through 2 endpoints. The get_department_personnel endpoint returns staff records including name, job title, phone number, and email address for a given department. The list_departments endpoint enumerates all departments with their slug identifiers, which are required inputs for fetching personnel details.

Try it
Alphabetical group tab to filter departments. Omit to return all departments.
api.parse.bot/scraper/503dde2f-26e7-434f-893c-29d363be47b6/<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/503dde2f-26e7-434f-893c-29d363be47b6/list_departments?letter=A' \
  -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 sco-ca-gov-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: cpod SDK — bounded, re-runnable; every call capped."""
from parse_apis.sco_ca_gov_api import Cpod, Letter, DepartmentNotFound

client = Cpod()

# List departments under the "A" tab
for dept in client.departments.list(letter=Letter.A, limit=3):
    print(dept.slug, dept.name)

# Drill into a specific department's personnel
dept = client.departments.list(letter=Letter.A, limit=1).first()
for person in dept.personnel.list(limit=3):
    print(person.name, person.title, person.email)

# Construct a known department directly and fetch its personnel
aging = client.department("aging")
try:
    for person in aging.personnel.list(limit=3):
        print(person.name, person.title, person.phone, person.email)
except DepartmentNotFound as e:
    print(f"not found: {e.department_slug}")

print("exercised: departments.list, personnel.list")
All endpoints · 2 totalmissing one? ·

Lists all California state departments in the Personnel Office Directory. Each department entry includes its slug identifier and official name. Results can be filtered by alphabetical group tab (A, B, C, ... XYZ, CSU). The slug is used to fetch personnel details for a specific department.

Input
ParamTypeDescription
letterstringAlphabetical group tab to filter departments. Omit to return all departments.
Response
{
  "type": "object",
  "fields": {
    "total": "integer count of departments returned",
    "letter": "the letter filter applied, or 'all'",
    "departments": "array of department entries with slug and name"
  },
  "sample": {
    "data": {
      "total": 6,
      "letter": "A",
      "departments": [
        {
          "name": "AFRICAN AMERICAN MUSEUM, CALIFORNIA",
          "slug": "african_american_museum"
        },
        {
          "name": "AGING, CALIFORNIA DEPARTMENT OF",
          "slug": "aging"
        },
        {
          "name": "AGRICULTURAL LABOR RELATIONS BOARD",
          "slug": "agricultural_labor"
        },
        {
          "name": "AIR RESOURCES BOARD",
          "slug": "air_resources"
        },
        {
          "name": "ALCOHOLIC BEVERAGE CONTROL",
          "slug": "alcoholic_beverage_control"
        },
        {
          "name": "AUDITOR'S OFFICE, CALIFORNIA STATE",
          "slug": "auditor"
        }
      ]
    },
    "status": "success"
  }
}

About the Ca API

What This API Covers

The California State Controller's Office publishes the Personnel Office Directory (CPOD) as a reference for HR and personnel staff contacts across state departments. This API exposes that directory in structured JSON form, covering every department listed in the CPOD — from the Department of Aging to the California State University system.

Endpoints and Parameters

list_departments accepts an optional letter parameter to filter results by alphabetical tab (e.g., A, B, or CSU for California State University entries). Omitting the parameter returns all departments at once. Each entry in the departments array includes a slug (e.g., aging, finance, lottery) and the department's official name. The total field gives a count of matched departments and letter reflects the filter applied or 'all' when no filter is used.

get_department_personnel takes a required department_slug — sourced from list_departments results — and returns an array of personnel records. Each record contains the staff member's name, title, phone, and email. The response also includes department_name, department_slug, and total_personnel so responses are self-describing without cross-referencing another call.

Data Scope and Freshness

Coverage maps directly to what the California State Controller's Office publishes in CPOD. The directory focuses on personnel office contacts — HR staff and similar roles — rather than general employee directories. Data reflects the current published state of the CPOD page; departments are organized consistently with the alphabetical tab structure used on the source site.

Reliability & maintenanceVerified

The Ca API is a managed, monitored endpoint for sco.ca.gov — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sco.ca.gov 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 sco.ca.gov 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
2h ago
Latest check
1/2 endpoints 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 an internal HR contact tool that maps state agency names to their personnel office phone numbers and emails.
  • Automate routing of inter-agency correspondence by looking up the correct personnel office contact for a given department slug.
  • Audit or sync a CRM with current California state HR contact records using the full department list from list_departments.
  • Generate a filtered directory of personnel contacts for departments starting with a specific letter using the letter parameter.
  • Cross-reference job applications or civil service processes with the correct departmental HR contact via get_department_personnel.
  • Build a lookup tool for state vendors or contractors to identify the right HR point of contact at a target agency.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does sco.ca.gov provide an official developer API for the CPOD directory?+
No. The California State Controller's Office does not publish a documented public API for the Personnel Office Directory. This Parse API provides structured programmatic access to that directory data.
What does `list_departments` return and how does the `letter` filter work?+
It returns a departments array where each entry has a slug and a department name, plus a total count and the letter value applied. The letter parameter accepts single alphabetical characters (e.g., C) or the special value CSU for California State University entries. Omitting letter returns all departments regardless of alphabetical group.
Does the API return general employee directories, not just HR personnel contacts?+
No. The CPOD covers personnel office staff — HR-focused roles within each department — not a general employee directory for all state workers. The personnel array in get_department_personnel reflects only the contacts published in the CPOD for each agency. You can fork this API on Parse and revise it to incorporate other California state employee directories if a broader scope is needed.
Is it possible to search personnel records by name or title across all departments at once?+
Not currently. The API retrieves personnel by department slug, so a cross-department name or title search requires calling get_department_personnel for each relevant department. You can fork this API on Parse and revise it to add a cross-department search endpoint.
Are historical or archived CPOD records available through this API?+
No. The API reflects the current published state of the CPOD directory. Historical snapshots or change tracking are not part of the current endpoints. You can fork this API on Parse and revise it to add versioned or timestamped personnel records if longitudinal tracking is required.
Page content last updated . Spec covers 2 endpoints from sco.ca.gov.
Related APIs in Government PublicSee all →
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.
arts.ca.gov API
Discover California arts funding opportunities by browsing grant programs, searching awarded grantees, and accessing resources from the California Arts Council. Find relevant grants and grantee information while staying updated with the latest news and resources in California's arts funding landscape.
sgdi.gov.sg API
Search for Singapore government personnel, contacts, and organizational details to find the right department or official for your needs. Quickly locate specific government staff members and their contact information, or browse entire organizational structures within the Singapore Government Directory.
portalddms.malaysia.gov.my API
Search and discover staff contact information including names, positions, phone numbers, and email addresses across the JDN, ARKIB, and CGSO departments. Quickly find the right person to connect with using the personnel directory.
www2.dre.ca.gov API
Search and look up California real estate agent licenses to instantly verify license status, expiration dates, broker information, and disciplinary history. Get comprehensive details including agent names, mailing addresses, license types, and issue dates for any California DRE licensee.
losangelescounty.gov API
Search Los Angeles County public records, code violations, and department information, while accessing board meeting minutes, transcripts, and agendas all in one place. Quickly find contact details for county departments and stay informed on official meetings without navigating multiple county websites.
scholarships.com API
Search and browse the Scholarships.com directory by category — including academic major, residence state, ethnicity, gender, school year, and deadline. Retrieve scholarship listings within any category and subcategory, and fetch full details for individual scholarships including award amounts, eligibility criteria, application deadlines, and application links.
courts.ca.gov API
Access the complete California Rules of Court including all 10 titles, Standards of Judicial Administration, and Ethics Standards for Neutral Arbitrators by searching specific rules, browsing tables of contents, or retrieving full chapter texts. Search across judicial procedure, civil rules, criminal rules, probate rules, family rules, and more to find the exact court guidance you need.