California Contractors & SF Building Permits
California contractor licenses, classifications and reported insurance dates, with San Francisco building permits filed from 2020 onward.
- Primary rows
- 243,757
- Primary fields
- 45
- Coverage
- California; permits in San Francisco
- Source snapshot
- Oct 3, 2026
Each primary row: One active or inactive renewable California contractor license in the captured CSLB file.
Sample data
Download sample100 sample rows as CSV · all 45 primary fields.
[] / {} Empty collection0 / false Recorded valuesDownload field definitions (CSV)
Download sample documentation (ZIP)Included data
- 243,757 licenses include published business contacts, classifications, status, renewal dates, and reported bond and workers’ compensation dates.
- Separate tables contain 167,391 San Francisco permit rows, contractor-business contacts and the reported license numbers used to link them.
- License summaries count distinct matched permit numbers; the underlying contact and permit records remain available for review.
What’s in the package
- licenses.csv243,757 rows · 45 fields
- contractor_contacts.csv146,872 rows · 17 fields
One captured SF contractor-business contact for selected permits.
- permits.csv167,391 rows · 55 fields
One SF permit row filed 2020 onward; one permit number can have multiple records/addresses.
- reported_license_links.csv146,864 rows · 8 fields
One nonblank license-field value on a selected SF contractor-business contact.
- license_classifications.csv310,756 rows · 4 fields
One published classification token on a captured CSLB license.
Companion table fields
contractor_contacts.csv17 fields
| Field | Definition & format |
|---|---|
Contact record ID contact_record_id | One-based captured CSV source ordinal; all selected source records retained.
|
ID id | Source identifier for the contractor contact record.
|
Permit number permit_number | SF permit number associated with this firm contact.
|
Role role | Reported contractor or subcontractor role.
|
Firm name firm_name | Firm named on the permit contact record.
|
Firm address firm_address | Firm street address on the permit contact record.
|
Firm city firm_city | City in the firm address.
|
Firm state firm_state | State in the firm address.
|
Firm ZIP code firm_zipcode | ZIP code in the firm address.
|
From date from_date | Start date of the firm’s association in the source contact record.
|
To date to_date | End date of the firm’s association in the source contact record, if reported.
|
License1 license1 | First license value reported on the contact record; it is not necessarily a CSLB license.
|
License2 license2 | Second license value reported on the contact record; it is not necessarily a CSLB license.
|
Is applicant is_applicant | Source flag indicating whether this contact is the applicant.
|
SF business license number sf_business_license_number | San Francisco business license number on the contact record; distinct from a CSLB contractor license.
|
Data as of data_as_of | Timestamp of the source-system record update.
|
Data loaded at data_loaded_at | Timestamp when the record was loaded or updated in the DataSF portal.
|
permits.csv55 fields
| Field | Definition & format |
|---|---|
Permit record ID permit_record_id | One-based captured CSV source ordinal; all selected source records retained.
|
Permit number permit_number | SF permit application number; multiple address rows can share one permit number.
|
Permit type permit_type | Type of permit (i.e. Permit Application Form number).
|
Permit type definition permit_type_definition | Definition of each permit type.
|
Permit creation date permit_creation_date | Date that application is created in permit tracking system.
|
Block block | SF assessor block identifier.
|
Lot lot | SF assessor lot identifier.
|
Street number street_number | Street Number.
|
Street number suffix street_number_suffix | Street Number Suffix.
|
Street name street_name | Street Name.
|
Street suffix street_suffix | Street Suffix.
|
Unit unit | Unit.
|
Unit suffix unit_suffix | Unit Suffix.
|
Primary priority primary_priority | Primary permit priority used for the department’s service-level target.
|
All priority types all_priority_types | All priority categories assigned to the permit.
|
Current status current_status | Permit status at capture; read it alongside approval, issue and completion dates.
|
Current status date current_status_date | Date of the reported permit status.
|
Filed date filed_date | Date permit was filed in permit tracking system.
|
Issued date issued_date | Date permit was issued (i.e. permit fees paid).
|
Completed date completed_date | Date that completed work was finaled by inspection staff.
|
First construction document date first_construction_document_date | For site permits, this is the date when the addenda marked as the first construction document (usually the first addenda) is issued.
|
Approved date approved_date | Date permit was approved.
|
Structural notification structural_notification | Structural notification flag in the permit record.
|
Number of existing stories number_of_existing_stories | Number of Existing Stories.
|
Number of proposed stories number_of_proposed_stories | Number of Proposed Stories.
|
Voluntary soft story retrofit voluntary_soft_story_retrofit | Flag for a voluntary soft-story retrofit.
|
Fire only permit fire_only_permit | Whether the San Francisco Fire Department is the sole reviewing agency.
|
Estimated cost estimated_cost | Estimated project cost in U.S. dollars; an estimate, not actual expenditure.
|
Revised cost revised_cost | Project cost estimate after project review, in U.S. dollars; not actual expenditure.
|
Existing use existing_use | Reported existing building use.
|
Existing units existing_units | Existing number of units on site.
|
Proposed use proposed_use | Reported proposed building use.
|
Proposed units proposed_units | Proposed number of units on site (after construction).
|
Plansets plansets | Number of plan copies submitted with the application.
|
Tidf compliance tidf_compliance | Whether the permit is subject to the Transit Impact Development Fee.
|
Existing occupancy existing_occupancy | Existing building occupancy code or codes.
|
Proposed occupancy proposed_occupancy | Proposed building occupancy code or codes.
|
Existing construction type existing_construction_type | Existing Construction Type.
|
Existing construction type description existing_construction_type_description | Existing Construction Type description.
|
Proposed construction type proposed_construction_type | Proposed Construction Type.
|
Proposed construction type description proposed_construction_type_description | Proposed Construction Type description.
|
Site permit site_permit | Site-permit flag in the permit record.
|
Last permit activity date last_permit_activity_date | Date of most recent activity on permit (or associated addenda for site permits) at any routing station.
|
Application submission method application_submission_method | Indicates how the permit application was submitted to DBI, i.e. via DBI's permit web application form, SF.gov form, or in person. (Auto-generated by MIS based on other PTS data fields).
|
Adu adu | Accessory dwelling unit flag. DataSF deprecated this field on February 1, 2025 and directs users to primary_priority.
|
Primary address flag primary_address_flag | Whether DBI identifies this as the permit’s primary address.
|
Supervisor district supervisor_district | Supervisor district containing the permit site.
|
Neighborhoods analysis boundaries neighborhoods_analysis_boundaries | City analysis neighborhood containing the permit site.
|
ZIP code zipcode | ZIP code of the permit site.
|
Location location | Latitude/longitude point assigned from the parcel or address source identified in point_source.
|
Point source point_source | Source of the coordinate point, such as parcel centroid or address point.
|
Reroof reroof | Y indicates a reroofing project.
|
Record ID record_id | DataSF address-record identifier formed from P_ADDR_ID and AVS_ADDRESSES_ID.
|
Data as of data_as_of | Timestamp of the source-system record update.
|
Data loaded at data_loaded_at | Timestamp when the record was loaded or updated in the DataSF portal.
|
reported_license_links.csv8 fields
| Field | Definition & format |
|---|---|
License link ID license_link_id | Contact source row and License1/License2 slot.
|
Contact record ID contact_record_id | Join to contractor-business contact evidence.
|
Permit number permit_number | SF permit number, not necessarily one source row or address.
|
License field license_field | Literal source field License1 or License2.
|
Reported license value reported_license_value | Source license string retained; no leading-zero stripping or fuzzy matching.
|
Matched cslb license matched_cslb_license | Candidate CSLB number only when the trimmed numeric string matches the captured license file.
|
Match basis match_basis | Exact reported number candidate; does not independently verify the contact firm is the licensed party.
|
Captured license business name captured_license_business_name | Business name on the matched current captured CSLB record, for comparison with filed contact firm name.
|
license_classifications.csv4 fields
| Field | Definition & format |
|---|---|
Classification record ID classification_record_id | License number and published classification token ordinal.
|
License number license_number | Captured CSLB license number.
|
Classification code classification_code | Published CSLB classification token; C10 and C-10 identify the same category, as do D03 and D-3. Tokens remain literal. D categories are C-61 limited specialties; legacy codes are not silently replaced by successor classes. Labels are descriptive and do not expand licensed scope. Definitions: https://www.cslb.ca.gov/About_Us/Library/Licensing_Classifications/ and its C-61 subcategory directory. Code labels: A = General Engineering; B = General Building; B-2 = Residential Remodeling; ASB = Asbestos Certification; HAZ = Hazardous Substance Removal Certification; C-2 = Insulation and Acoustical; C-4 = Boiler, Hot Water Heating and Steam Fitting; C-5 = Framing and Rough Carpentry; C-6 = Cabinet, Millwork and Finish Carpentry; C-7 = Low Voltage Systems; C-8 = Concrete; C-9 = Drywall; C-10 = Electrical; C-11 = Elevator; C-12 = Earthwork and Paving; C-13 = Fencing; C-15 = Flooring and Floor Covering; C-16 = Fire Protection; C-17 = Glazing; C-20 = Warm-Air Heating, Ventilating and Air-Conditioning; C-21 = Building Moving/Demolition; C-22 = Asbestos Abatement; C-23 = Ornamental Metal; C-27 = Landscaping; C-28 = Lock and Security Equipment; C-29 = Masonry; C-31 = Construction Zone Traffic Control; C-32 = Parking and Highway Improvement; C-33 = Painting and Decorating; C-34 = Pipeline; C-35 = Lathing and Plastering; C-36 = Plumbing; C-38 = Refrigeration; C-39 = Roofing; C-42 = Sanitation System; C-43 = Sheet Metal; C-45 = Sign; C-46 = Solar; C-47 = General Manufactured Housing; C-49 = Tree and Palm; C-50 = Reinforcing Steel; C-51 = Structural Steel; C-53 = Swimming Pool; C-54 = Ceramic and Mosaic Tile; C-55 = Water Conditioning; C-57 = Well Drilling; C-60 = Welding; C-61 = Limited Specialty; D-3 = Awnings; D-4 = Central Vacuum Systems; D-6 = Concrete Related Services; D-7 = Conveyors-Cranes (legacy); D-8 = Doors and Door Services (legacy); D-9 = Drilling, Blasting and Oil Field Work; D-10 = Elevated Floors; D-12 = Synthetic Products; D-13 = Fire Extinguisher Systems (legacy); D-15 = Furnaces (legacy); D-16 = Hardware, Locks and Safes; D-17 = Industrial Insulation (legacy); D-19 = Land Clearing (legacy); D-20 = Lead Burning and Fabrication (legacy); D-21 = Machinery and Pumps; D-22 = Marble (legacy); D-23 = Medical Gas Systems (legacy); D-24 = Metal Products; D-25 = Mirrors and Fixed Glass (legacy); D-27 = Movable Partitions (legacy); D-28 = Doors, Gates and Activating Devices; D-29 = Paperhanging; D-30 = Pile Driving and Pressure Foundation Jacking; D-31 = Pole Installation and Maintenance; D-32 = Power Nailing and Fastening (legacy); D-34 = Prefabricated Equipment; D-35 = Pool and Spa Maintenance; D-36 = Rigging and Rig Building (legacy); D-37 = Safes and Vaults (legacy); D-38 = Sand and Water Blasting; D-39 = Scaffolding; D-40 = Service Station Equipment and Maintenance; D-41 = Siding and Decking; D-42 = Non-Electrical Sign Installation; D-43 = Soil Grouting (legacy); D-44 = Sprinklers (legacy); D-47 = Tennis Court Surfacing (legacy); D-48 = Theater and School Equipment (legacy); D-49 = Tree Service (legacy); D-50 = Suspended Ceilings; D-51 = Waterproofing and Weatherproofing (legacy); D-52 = Window Coverings; D-53 = Wood Tanks; D-54 = Rockscaping (legacy); D-55 = Blasting (legacy); D-56 = Trenching Only; D-59 = Hydroseed Spraying; D-62 = Air and Water Balancing; D-63 = Construction Clean-up; D-64 = Non-specialized; D-65 = Weatherization and Energy Conservation.
|
Classification source value classification_source_value | Full original classification list.
|
Field coverage
Data notes
Coverage counts use the full tables. They exclude blank cells and empty JSON collections; zero and false count as populated.
- Revoked, canceled and nonrenewable California licenses are outside this file. Permit activity covers San Francisco only.
- Reported license-number matches do not verify the contractor’s identity or license type. No linked permit means no captured match, not no construction work.
- Source record dates can predate the download. License status and reported insurance or bond dates do not verify current coverage.
- A permit number can have multiple records and addresses. Permit costs are estimates, not actual spending, and should not be added across repeated rows.
- Person-only contacts, private agent details and policy or bond numbers are excluded. Business names and addresses can still identify sole proprietors.