State PE / RA License Scraper - Engineers and Architects
State PE and RA License Scraper — Engineers and Architects
Scrape Professional Engineer (PE) and Registered Architect (RA) license records directly from US state boards — not from NCEES or NCARB, and not from a third-party aggregator. Phase 1 covers the five highest-volume states: California, Texas, New York, Florida, and Illinois. Each handler queries the state board's own register or bulk export, so every record is authoritative.
States covered:
| State | Source | Profession |
|---|---|---|
| California (CA) | DCA — search.dca.ca.gov | PE |
| Texas (TX) | TBPE bulk CSV roster | PE |
| New York (NY) | rosa V2 API (NYSED) | PE and RA |
| Florida (FL) | DBPR — myfloridalicense.com | PE |
| Illinois (IL) | IDFPR Socrata API | PE and RA |
What does the State PE and RA License Scraper do?
For each selected state, the scraper connects to the state board's own data source — a Socrata API (IL), a bulk CSV download (TX), a public REST API (NY), or a public web form (CA, FL). Optional lastName and licenseStatus filters apply at the board level where supported; the scraper post-filters for boards that don't expose server-side filtering. All results land in a single normalized dataset regardless of source.
Example workflow: Active Texas and California PEs for outreach targeting
Run with profession: PE, states: ["TX", "CA"], licenseStatus: active to get a list of active engineers with firm name, business city, and expiration date. The output gives you everything you need to build a targeted outreach list without any enrichment step.
What data does it extract?
| Field | Type | Description |
|---|---|---|
profession |
string | PE or RA |
first_name |
string | First name |
middle_name |
string | Middle name or initial |
last_name |
string | Last name |
license_number |
string | License number, unique within the issuing state |
license_state |
string | Issuing state (two-letter code) |
discipline |
string | PE discipline (civil, mechanical, electrical, structural, etc.) |
license_status |
string | Current status (Active, Inactive, Expired, Suspended, Revoked) |
license_issue_date |
string | Date the license was originally issued |
license_expiration_date |
string | License expiration or renewal date |
firm_name |
string | Employer or firm name |
business_city |
string | Business address city |
business_state |
string | Business address state |
business_zip |
string | Business address ZIP code |
source_state_board |
string | State board that issued the license |
source_url |
string | URL of the source record on the state board |
disciplinary_actions |
string | Pipe-delimited disciplinary actions (type|date|description) |
How to use it
Active PEs across all five states:
{
"profession": "PE",
"states": ["CA", "TX", "NY", "FL", "IL"],
"licenseStatus": "active",
"maxItems": 0
}
Architects in New York and Illinois:
{
"profession": "RA",
"states": ["NY", "IL"],
"maxItems": 500
}
Name search for outreach targeting — Texas and California engineers:
{
"profession": "PE",
"states": ["CA", "TX"],
"lastName": "Smith",
"maxItems": 200
}
| Field | Type | Default | Description |
|---|---|---|---|
profession |
string | PE |
PE or RA |
states |
array | All five | Subset of CA, TX, NY, FL, IL |
lastName |
string | — | Last-name filter where the board supports name search |
licenseStatus |
string | all | active, inactive, suspended, revoked, or expired |
maxItems |
integer | 10 |
Total record cap across all selected states |
Use cases
- AEC staffing firms — Verify PE or RA credentials on candidate slates against the authoritative state board register before placing a candidate, not from a self-reported LinkedIn field.
- A/E insurance underwriters — Confirm license status, discipline, and renewal date before binding professional-liability coverage.
- Construction-tech CRMs — Enrich engineer and architect contacts with license expiration so expiring licenses drive a renewal workflow or outreach trigger.
- Procurement and prequalification — Validate that a subcontractor's team holds the PE licenses claimed on a qualifications submission.
- Compliance and audit teams — Cross-check active project rosters against expired or revoked licenses at the state board level.
FAQ
Does this pull from NCEES or NCARB? No. The actor queries each state board's own register directly — the California DCA, Texas TBPE, New York NYSED rosa API, Florida DBPR, and Illinois IDFPR Socrata endpoint. NCEES and NCARB record cross-matching is a planned future feature, not current capability.
Which states are in Phase 1? CA, TX, NY, FL, and IL. Additional states follow the same multi-handler pattern and can be added. Need PA, OH, WA, or GA? File a feature request.
Does the actor need proxies? No. All Phase 1 sources are public state registers that accept direct traffic at the volumes this actor produces.
What formats can I export to? Apify supports JSON, CSV, and Excel export from the dataset view.