CA LA County Building Permits (EPIC-LA) avatar

CA LA County Building Permits (EPIC-LA)

Pricing

from $0.03 / 1,000 permit records

Go to Apify Store
CA LA County Building Permits (EPIC-LA)

CA LA County Building Permits (EPIC-LA)

LA County unincorporated building & planning cases (EPIC-LA public data, 916k records): residential / commercial / multifamily / electrical / plumbing / mechanical / solar / pool / road permits with status, valuation, dates, AIN, ADU & affordable-housing flags.

Pricing

from $0.03 / 1,000 permit records

Rating

0.0

(0)

Developer

Wenhao Yang

Wenhao Yang

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

20 hours ago

Last modified

Categories

Security

Limited permissions

Share

CA LA County Building Permits (EPIC-LA) - Permit & Planning Cases

LA County Public Works publishes its case-history register - building, construction and planning cases tracked by the county - as open data. It is dominated by the unincorporated communities, and also carries county-level reviews of projects inside cities (about 6% of permit rows and a third of plan-review rows). This actor turns that register into a charged-per-record lookup and diligence tool.

Built for: construction & development leads (who just pulled a permit, what's being built where), contractor / builder prospecting, real-estate & property diligence, ADU / affordable-housing market research, and LA County building-activity analytics.

What it covers

930,143 case-history rows (2026-11-09), centred on the unincorporated communities - East LA, Altadena, Hacienda Heights, unincorporated Torrance / Santa Monica Mountains, and hundreds more - plus county reviews of projects in cities. The source carries one row per case and spatial representation (parcel / address point), with exact duplicates; the actor collapses them and delivers one row per case (one per parcel on the rare case that spans several). Two case modules:

ModuleWhat it isSource rows
permitsbuilding & construction permits - the useful slice624,290
planningzoning / land-use plan reviews305,853

permits - the building-permit register (default)

624,290 building & construction case rows, including:

Permit typeWhat it is
Unincorporated Building Residential / Commercial / Multifamilybuilding permits (new, additions, alterations)
Electrical / Plumbing / Mechanical / Solartrade permits
Road / Sewer / Grading / Pool & Spainfrastructure & site work
Construction & Demolition / Flood / Filmspecial permits

Every case carries its case number, project name, status, the apply / complete / expire / issuance / last-inspection dates, permit valuation (non-zero on ~34% of rows; many trade permits are zero), the main address (95% of rows) and assessor parcel number (AIN), the supervisorial district and countywide statistical area, current & proposed land-use codes, ADU (accessory dwelling unit) flag, new-dwelling-unit counts, and the affordable-housing designation.

Filling is uneven - read these as "where the county recorded it", not as every row: useCurr 11%, proposed land-use 9%, affordableHousing 8.5%, newDwellingUnits 8.3%, accessoryDwellingUnit 4.0%, completeDate 64%, issuanceDate 55%, lastInspectionDate 33%.

planning - zoning & land-use reviews

305,853 plan-review rows (RPPL series) - the zoning conformance and land-use cases that precede or accompany building. Useful for understanding what's been cleared for a property.

Status

The source carries a large status vocabulary (~40 values) - this actor matches status exactly, never by loose substring. Key values (source-row counts, 2026-11-09): Finaled (339,837) / Issued (148,150) / Approved (100,102) / Completed / Void / Accepted / Canceled / Open / Expired / Denied / In Review / Withdrawn / Rejected / Revoked. Ask for open (or active) to get the live in-progress slice (Open / In Review / New / Waiting for Applicant / Approved Pending Clearances / ...).

Typical questions

  • "What building permits were pulled in this neighborhood in the last year?"
  • "Show recent residential permits in unincorporated East LA."
  • "Which new residential projects were filed this month?"
  • "What's the permit valuation mix - find permits over $500k."
  • "Finaled commercial permits by countywide statistical area."
  • "Permits on this parcel (AIN) - current and historical."
  • "How many cases are still open, by case type?"
  • "Aggregate the whole register by permit type or status."

Inputs

InputWhat it does
modulepermits (default) / planning
permitTypebuilding-permit type: residential, commercial, multifamily, electrical, plumbing, mechanical, solar, sewer, grading, pool/spa, road, C&D, flood, film
statusexact source value (Finaled / Issued / Approved / ...) or open / active for the live slice. Blank = any status
caseNumberexact case number -> that case's record (one row; duplicate spatial rows are collapsed)
address / ainproperty filter (substring)
minValuation / maxValuationpermit-valuation range
appliedFrom/To / issuedFrom/Todate-range filters (applied / issued dates)
supervisorialDistrict / countywideStatAreadistrict / community filter
aggregate / groupByone summary row per group - caseType / status / module / countywideStatArea / supervisorialDistrict / useCurr / workClassName. Counts are the source's row counts (a case carried on several spatial rows is counted per source row); a filtered rows run collapses those duplicates, so it can return slightly fewer records than the matching aggregate group.
maxResultscap records (default 50)

Default run = the 50 newest building cases (by the register's insert order - the county appends cases as they're filed, so the newest rows are the most recently filed / updated; not sorted by apply date). A live slice, fast for the daily auto-test. For a targeted query add a caseNumber / address / permitType / status filter; for a broad view use aggregate (a handful of summary rows, not a full dump).

Note: there is no per-run usage cap on this actor - cost is strictly records delivered the per-record price (at the FREE tier, $0.00005 buys 100,000 records' worth of budget: $5). Use the run option maxTotalChargeUsd if you want a hard ceiling. For whole-corpus counts, use aggregate.

Example inputs

One case - an exact case number returns that case's record.

{ "caseNumber": "FCDP2026000321" }

Residential permits in East LA - countywideStatArea is the community name.

{ "module": "permits", "permitType": "residential", "countywideStatArea": "East Los Angeles", "maxResults": 10 }

Everything still open - open is the live in-progress slice across the status vocabulary.

{ "status": "open", "maxResults": 10 }

Permits valued over $500k - minValuation filters on the permit valuation.

{ "minValuation": 500000, "maxResults": 10 }

Low cost

From $0.00005 per record, down to $0.00003 at Gold - billed only for the rows you use, and each record is metered individually.

LA County's EPIC-LA case history is one of those "public portal" exports that hides its mess in plain sight: building permits and zoning reviews live in the same feed (two case modules that behave differently), the status field runs ~40 values that overlap confusingly (a New case vs New - Online, In Review vs Review), permit valuation is filled on only ~34% of rows, and many planning cases carry no address at all. Sorting that into a register where a permitType / status / date-range query returns exactly the cases you mean - never the near-misses - is the actual product. Every pull is integrity-checked against the feed's known shape, so a degraded source fails loudly instead of returning bad rows.

Example output

One case - caseNumber=FCDP2026000321 returns that case's record:

{
"module": "PermitManagement",
"caseNumber": "FCDP2026000321",
"projectName": "",
"caseType": "Flood",
"status": "Issued",
"description": "To authorize temporary access into Los Angeles County Flood Control District's right of way along Compton Creek ...",
"applyDate": "2026-08-12",
"completeDate": "",
"expireDate": "2027-10-15",
"issuanceDate": "2026-10-16",
"lastInspectionDate": "",
"valuation": "0",
"address": "18626 S Reyes Avenue, Compton CA 90221",
"ain": "7306020046",
"supervisorialDistrict": "2",
"districtDisplay": "SD-2",
"countywideStatArea": "Unincorporated - Rancho Dominguez",
"useCurr": "",
"useProposed1": "",
"useProposed2": "",
"useProposed3": "",
"affordableHousing": "",
"accessoryDwellingUnit": "",
"newDwellingUnits": "",
"workClassName": "Access",
"styleCategory": "",
"spatialType": "Parcel",
"statClass": "",
"platform": "ca-epic-la",
"source": "epic-la-case-history",
"groupKey": "",
"groupCount": "",
"groupBy": ""
}

aggregate=true, groupBy=status - the register's status mix:

Finaled 339,837
Issued 148,150
Approved 100,102

Source

  • LA County Public Works EPIC-LA - the county's public case-management portal. This actor reads the published EPIC-LA_Case_History_view service.
  • Reflects the county's published record as of the refresh date; not an endorsement of any project or contractor.