Skip to content

FousDIR Public Works eCPR

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.

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

    Build this

    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

    Build this

    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

    Build this

    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 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

    Build this
    Starts
    Every Monday at 7:00 Pacific time
    Step 1
    For each subcontractor PWCR number you list, check the contractor registration.
    Step 2
    Keep the ones whose status is not DIR Approved or whose registration end date is within 60 days.
    Step 3
    Email you the list with PWCR, legal entity name, contractor status and registration end date.
  • New eCPRs filed on your projects

    Build this
    Starts
    Every weekday at 8:00 Pacific time
    Step 1
    For each DIR Project ID you list, find the eCPRs submitted in the last 30 days.
    Step 2
    Keep the eCPRs that were not there on the last run.
    Step 3
    Post each one, with project, contractor and PWCR number, to your compliance system's webhook.
  • Newly registered projects for an awarding body

    Build this
    Starts
    Every day at 6:00 Pacific time
    Step 1
    Look up the project registrations for each awarding body you name.
    Step 2
    Keep the projects not there on the last run.
    Step 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, 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.

OptionWhat it coversWhat it takes
Upload eCPRUploads eCPR data to the portal, as DIR's how-to guide describes.A portal account linked to your business.
Bulk upload employeesAdds several employees to an eCPR submission in one upload, as DIR's how-to guide describes.A portal account linked to your business.
Public searchesPWCR Search, Project Search and eCPR Public Search, readable on screen.Nothing: no account needed.
The Public Works Portal by handContractor 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, 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

Other industries: Sonepar Onlineshop, Bullhorn, CAQH Provider Data Portal, PPL, Money Claim Online, Lufthansa Cargo eServices.

Frequently asked questions

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.

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.

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.

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.

Put DIR Public Works eCPR behind an API call

Describe one job in Studio and see the method it builds, with 100 credits a month and no credit card, or book a demo and bring the sites your team signs in to.

Read nextCalSaversVestwell State Savings employer portalSIDES E-ResponseSonepar OnlineshopHow methods workHow workflows run

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.