Florida Contractor Licenses - DBPR Construction Register avatar

Florida Contractor Licenses - DBPR Construction Register

Pricing

from $0.03 / 1,000 florida construction contractor license records

Go to Apify Store
Florida Contractor Licenses - DBPR Construction Register

Florida Contractor Licenses - DBPR Construction Register

Florida DBPR construction contractor license register (265,000+ rows, public record): search by name, county, city, license class, or status, look up one license number, and screen suspensions and probations. Decodes the state's own county and class codes; includes qualified business organizations.

Pricing

from $0.03 / 1,000 florida construction contractor license records

Rating

0.0

(0)

Developer

Wenhao Yang

Wenhao Yang

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

6 days ago

Last modified

Categories

Features

Limited permissions

Share

Florida Contractor Licenses - DBPR Construction Register (Board 06)

The Florida Department of Business and Professional Regulation (DBPR) publishes its entire current construction-industry licensee file as a public record under Chapter 119, Florida Statutes - every certified and registered contractor, plus the qualified business organizations behind them - refreshed weekly. This actor turns that register into a charged-per-record lookup and screening tool.

Built for: contractor due diligence - verifying that a contractor actually holds a current Florida license, screening suspended and probationary licenses, corporate / qualifying-individual research, construction-industry onboarding and compliance checks, and statewide market sizing.

What it covers

265,134 rows (current register, operator-refreshed snapshot - 2026-11-06):

OccupationWhat it isRows
Qualified Business Organizationa business qualified through a qualifying individual (no license number of its own)128,847
Certified General ContractorCGC36,155
Financial Responsible OfficerFRO19,567
Certified Building ContractorCBC18,079
Certified Air Conditioning ContractorCAC11,681
Certified Roofing ContractorCCC10,487

...plus certified mechanical, pool/spa, residential, sheet metal, utility & excavation, solar, specialty and pollutant-storage contractors, the registered (RA / RB / RC / RF / RG / RM / RP / RR / RS / RU / RX) tier, tank contractors, course providers and CILB courses. Roughly half the file - 128,847 rows - is qualified business organizations, which carry no license number of their own; the other 136,287 rows hold a license number.

Every row carries the licensee / business name, the doing-business-as name, the license number, occupation, class code, mailing address, city, state, ZIP, decoded county, primary status (current / suspended / probation), secondary status (active / inactive), and original-licensure, effective and expiration dates. Dates come through as clean ISO (YYYY-MM-DD).

The register ships as raw codes - Florida's file has no header row, stores the county as a number (not a name), and the license status as a letter. This actor decodes all of it: 23 -> Miami-Dade, C -> Current, S -> Suspended, and a class code like GLZ -> Glass & Glazing Specialty. Out-of-state licensees are resolved to their home state (744 -> Texas).

Typical questions

  • "Is this contractor's license current in Florida - and is it suspended or on probation?"
  • "Show every certified general contractor in Lee County."
  • "Which businesses are qualified under this qualifying individual?"
  • "Look up license CBC006261."
  • "Find contractors carrying a specialty class - glass & glazing, irrigation, marine, pool."
  • "How are licensed contractors distributed across Florida's 67 counties?"

Inputs

InputWhat it does
licenseNumberexact license number -> that contractor's row(s), e.g. CBC006261 (case and punctuation ignored; leading zeros are significant). The bare 7-digit sequence (e.g. 0006261) also matches, but can map to more than one licence across occupations
namelicensee or DBA name substring, case-insensitive
occupationoccupation code (CGC, CBC, CAC, SCC, QB, FRO ...)
classCodeclass code (A / B / C, or a specialty code). The same letter means different things in different occupations, so combine it with occupation
county / countyCodecounty by decoded name, or by DBPR numeric code
city / state / zipCodelocation filters (out-of-state licensees carry their home state)
statusC = Current, S = Suspended, P = Probation
secondaryStatusA = Active, I = Inactive
licensedOnlytrue = only license-holding rows; false = only qualified business organizations
aggregate / groupByone summary row per group with a count - occupation / county / status / class
maxResultscap records (default 200)

Default run = a tiny aggregate (occupation mix) - fast and safe for the daily auto-test, never a surprise full dump. For records, add a name / county / occupation filter or a licenseNumber.

Example inputs

Look up one license number - returns that contractor's row(s); a 7-digit sequence can return more than one licence, so pass the composed number when you have it.

{ "licenseNumber": "CBC006261" }

Certified general contractors in Lee County - 1,746 today; totalMatched on each row shows the full count. Results are the first maxResults matches (max 20,000) - there is no offset paging, so raise maxResults to widen.

{ "occupation": "CGC", "county": "Lee", "maxResults": 50 }

Screen suspended licenses - 225 today; status=S returns them all when maxResults is high enough.

{ "status": "S", "maxResults": 300 }

The occupation mix - one summary row per occupation, across the register.

{ "aggregate": true, "groupBy": "occupation" }

groupBy=county includes out-of-state licence buckets (other states, territories and foreign addresses) alongside Florida's 67 counties; add "state": "FL" to keep only Florida counties.

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.

Florida's register is a 46 MB, headerless flat file with no query server behind it - there is no way to ask the state for "just Lee County general contractors". Rather than make every lookup pay for a full-register download, the register is mirrored by the operator, and each run queries the mirror in a single pass. That mirror is what lets a 265,134-row register behave like a live lookup at per-record pricing. Every user pull checks the corpus header and row total against the register's known shape (the row total recorded by the owner warm - 265,134 at the 2026-11-06 refresh - or a 230,000-row floor when that small record is unavailable), so a truncated, swapped or half-written mirror fails loudly instead of returning a short or empty answer. The snapshot is readable on each record as refreshed; a mirror older than 14 days fails rather than answering with stale licence status. County names are matched case- and punctuation-insensitively (Miami Dade = Miami-Dade).

Example output

licenseNumber=CBC006261 - a certified building contractor:

{
"platform": "fl-dbpr",
"source": "fl-dbpr-construction",
"dataState": "FL",
"licenseNumber": "CBC006261",
"licenseSequence": "0006261",
"occupationCode": "CBC",
"occupation": "Certified Building Contractor",
"licenseeName": "ERGLE, GERALD K",
"dbaName": "",
"classCode": "",
"classDescription": "",
"address1": "3631 SE 12TH PLACE",
"address2": "",
"address3": "",
"city": "OCALA",
"state": "FL",
"zipCode": "34471",
"countyCode": "52",
"county": "Marion",
"primaryStatus": "C",
"primaryStatusMeaning": "Current",
"secondaryStatus": "I",
"secondaryStatusMeaning": "Inactive",
"originalLicensureDate": "",
"effectiveDate": "2026-08-11",
"expirationDate": "2028-08-31",
"refreshed": "2026-11-06",
"mode": "record",
"groupKey": "",
"groupCount": "",
"groupBy": "",
"totalMatched": "1"
}

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

Qualified Business Organization 128,847
Certified General Contractor 36,155
Financial Responsible Officer 19,567
Certified Building Contractor 18,079
Certified Air Conditioning Contractor 11,681

Personal data and corrections

Most licensed contractors are individuals: roughly half the rows name a person (LAST, FIRST) rather than a company, and the register includes the mailing address DBPR publishes for the licence. This is the state's own public record under Chapter 119, F.S.; the actor adds no contact details, officers or anything not already in the file. Run metadata (a run id, stage and error type - not the records themselves) is reported to the operator's monitoring endpoint; your result set is never sent anywhere else.

Corrections and removal. The register is published by DBPR. If a record is wrong, or you need an entry suppressed, contact the publisher through the actor's Issues tab; we forward verifiable correction and removal requests to DBPR and reply within 10 working days.

One licence number is not always one row. A licensee can hold several licences, and 140 CRS1 course-provider licence numbers each appear twice in the source itself (280 rows). Use occupationCode and licenseSequence to disambiguate; totalMatched on each row tells you whether your filter matched more than the page you received.

Source

  • DBPR Licensee Download Files - the official weekly public extract this actor reads.
  • License data is DBPR's own published register; it reflects the state's record as of the refreshedDate on each record.