# Check your DIR registrations and eCPRs through an API

> Read a contractor's PWCR registration status, a project's registration and the eCPRs filed on it from the Public Works Portal with one API call each. Or have a workflow check every subcontractor's PWCR each Monday and email you the registrations about to end.

Page: https://fous.com/automate/dir-public-works-ecpr
Updated: 2026-11-12

Works with your own DIR Public Works eCPR account. Fous is an independent product.

## What you can build on the Public Works Portal

### Check contractor registrations

Reads the PWCR Search on the Public Works Portal: a contractor's PWCR number, legal entity name, status and registration dates.

- Takes: PWCR number or legal entity name
- Returns: PWCR, legal entity name, DBA, business structure, contractor status, CSLB number, registration start date, registration end date

### Look up project registrations

Reads the Project Search on the Public Works Portal for a DIR Project ID, project name or awarding body, with each project's state and dates.

- Takes: DIR Project ID, project name or awarding body
- Returns: Project number, contract number, DIR Project ID, awarding body, project name, state, description, award date, contract date, start date, end date

### Find submitted eCPRs

Runs the eCPR Public Search for a date range and a project, contractor or awarding body, and reads the electronic certified payrolls it lists.

- Takes: Date from, date to, PWCR number, DIR Project ID, project name, contractor name, awarding body name, county (any one)
- Returns: Each eCPR found, with its project, DIR Project ID, contractor, PWCR number and awarding body

## Automate the Public Works Portal with a workflow

A [workflow](/product/workflows) runs your methods as one process, with nobody at the screen. A schedule or a call from your own system starts it, the steps run in order, and the result arrives in your inbox or in the systems you already use.

### Subcontractor PWCR registrations close to their end date

Starts: Every Monday at 7:00 Pacific time

1. For each subcontractor PWCR number you list, check the contractor registration.
2. Keep the ones whose status is not DIR Approved or whose registration end date is within 60 days.
3. Email you the list with PWCR, legal entity name, contractor status and registration end date.

### New eCPRs filed on your projects

Starts: Every weekday at 8:00 Pacific time

1. For each DIR Project ID you list, find the eCPRs submitted in the last 30 days.
2. Keep the eCPRs that were not there on the last run.
3. Post each one, with project, contractor and PWCR number, to your compliance system's webhook.

### Newly registered projects for an awarding body

Starts: Every day at 6:00 Pacific time

1. Look up the project registrations for each awarding body you name.
2. Keep the projects not there on the last run.
3. Email you each new project with DIR Project ID, project name, awarding body, description, award date and start date.

You can run a workflow by hand on every plan, Free included. Schedules and webhook triggers come with the paid plans, from $29 a month.

## Once built, one call from your code

Once you have built a [method](/product/methods), it is one POST to /v1/runs from your backend, or a tool an AI agent calls over MCP. This is what “Check contractor registrations” would look like.

Example request:

```
curl https://api.fous.com/v1/runs \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "method": "services.dir.ca.gov/check_contractor_registrations",
    "input": {
      "pwcr": "2000045812"
    }
  }'
```

Example response:

```
{
  "status": "completed",
  "data": {
    "contractors": [
      {
        "pwcr": "2000045812",
        "legal_entity_name": "Northwind Paving, Inc.",
        "dba": "Northwind Paving",
        "business_structure": "Corporation - S corp",
        "contractor_status": "DIR Approved",
        "cslb_number": "1098432",
        "registration_start_date": "2026-07-01",
        "registration_end_date": "2027-06-30"
      }
    ],
    "count": 1
  }
}
```

An example with invented data, not a ready-made endpoint. The method exists in your organization once you build it, and its name, inputs and fields follow your request.

## The Public Works Portal’s own options

DIR's Public Works Portal is where contractors submit payroll data, and DIR's how-to guides for it cover uploading eCPR data and bulk uploading employees for an eCPR submission. The contractor, project and eCPR searches are open to anyone without signing in. DIR's pages describe no API for the portal.

| Option | What it covers | What it takes |
| --- | --- | --- |
| Upload eCPR | Uploads eCPR data to the portal, as DIR's how-to guide describes. | A portal account linked to your business. |
| Bulk upload employees | Adds several employees to an eCPR submission in one upload, as DIR's how-to guide describes. | A portal account linked to your business. |
| Public searches | PWCR Search, Project Search and eCPR Public Search, readable on screen. | Nothing: no account needed. |
| The Public Works Portal by hand | Contractor and project registration, eCPR upload, employees, and requests to be added to a project. | A portal account linked to your business or organization. |

Read on November 12, 2026: [Public Works Portal](https://services.dir.ca.gov/pw), [eCPR Public Search](https://services.dir.ca.gov/pw?id=ecpr_public_search).

## Signing in to the Public Works Portal

The Public Works Portal asks you to create a username and password with your business email, verify it through a link sent by email, then link the account to your business or organization. Logins from DIR's earlier system do not work there. With Fous you sign in once through DIR's own sign-in page with your own account: the login is sealed with AES-256, and your code and AI agents never see it.

## Worth knowing

- **Old logins do not carry over**: The Public Works Portal needs a new account: DIR says your old logins will not work. Create it with your business or organization email and verify it from the link DIR sends.
- **Linking needs your registration code**: To join a business that is already registered, you enter its registration code. The code is shown on the primary contact's dashboard after they sign in.

## More in Government: US state employer and business filings

- [bizfile Online](https://fous.com/automate/bizfile-online.md)
- [SOSPortal](https://fous.com/automate/sosportal.md)
- [Sunbiz](https://fous.com/automate/sunbiz.md)
- [CalSavers](https://fous.com/automate/calsavers.md)
- [Vestwell State Savings employer portal](https://fous.com/automate/vestwell-state-savings-employer-portal.md)
- [SIDES E-Response](https://fous.com/automate/sides-e-response.md)
- [EAMS (Washington ESD)](https://fous.com/automate/eams-washington-esd.md)
- [GDOL Employer Portal](https://fous.com/automate/gdol-employer-portal.md)
- [MiUI Employer Portal](https://fous.com/automate/miui-employer-portal.md)
- [myEDD e-Services for Business](https://fous.com/automate/myedd-e-services-for-business.md)
- [NCSUITS](https://fous.com/automate/ncsuits.md)
- [NYS DOL Unemployment Services for employers](https://fous.com/automate/nys-dol-unemployment-services-for-employers.md)
- [The SOURCE](https://fous.com/automate/the-source.md)
- [UCMS](https://fous.com/automate/ucms.md)
- [Unemployment Services for Employers](https://fous.com/automate/unemployment-services-for-employers.md)

Other industries: [Sonepar Onlineshop](/automate/sonepar-onlineshop), [Bullhorn](/automate/bullhorn), [CAQH Provider Data Portal](/automate/caqh-provider-data-portal), [PPL](/automate/ppl), [Money Claim Online](/automate/money-claim-online), [Lufthansa Cargo eServices](/automate/lufthansa-cargo-eservices).

## Frequently asked questions

### Does DIR Public Works eCPR have an API?

Not that DIR documents. Contractors submit payroll data through the Public Works Portal, and the contractor, project and eCPR searches are public pages. With Fous you can build methods that read those searches and return JSON.

### How do I check whether a subcontractor is registered with DIR?

Use the PWCR Search on the Public Works Portal, which needs no account. Each row shows the PWCR number, legal entity name, DBA, business structure, contractor status such as DIR Approved, CSLB number and the registration start and end dates.

### Can I see eCPRs that other contractors filed on my project?

Yes. The eCPR Public Search finds previously submitted eCPRs regardless of contractor. Enter a date range and at least one of PWCR number, DIR Project ID, project name, contractor name, awarding body name or county.

### Is Fous affiliated with the California Department of Industrial Relations?

No. Fous is an independent product. You use it with your own Public Works Portal account, and a method reads and does only what that account can.

Fous is an independent product: it is not affiliated with, endorsed by or sponsored by the operator of DIR Public Works eCPR (California Department of Industrial Relations). The name is used only to say which system this page is about. Something here wrong or out of date? Write to legal@fous.com.
