Florida Contractor License Lookup — DBPR Directory & Leads
Pricing
from $6.00 / 1,000 florida contractor records
Florida Contractor License Lookup — DBPR Directory & Leads
Look up Florida contractor licenses in bulk from the official DBPR extract: license type, status, business name and mailing address. USD 9 per 1,000.
Pricing
from $6.00 / 1,000 florida contractor records
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
Florida Contractor License Lookup exports Florida DBPR construction contractor licenses from the department's official weekly license extract: license number and type, licensee and business name, normalized status, licensure, effective and expiration dates, and the public mailing address with county. It is built for contractor prospecting, building-supply and insurance sales, and bulk license verification, and it costs USD 9.00 per 1,000 records on the FREE tier (USD 6.00 on GOLD).
What data does the Florida contractor license lookup return?
Each dataset row is one DBPR construction license:
| Field | What it contains |
|---|---|
licenseNumber | Display license number with its prefix, for example CGCA03068 |
rawLicenseNumber | Alternate numeric license identifier from the extract |
licenseTypeCode, licenseType | Occupation code and name, for example CGC / Certified General Contractor |
licenseClassCode, licenseClass | Class for air-conditioning and pool/spa licenses, otherwise null |
licenseeName | Licensed person or entity, for example ROCA, LUIS E |
businessName, isBusinessLead | Doing-business-as or qualified business name, and whether one is present |
status, isCurrent | Normalized status: active, inactive, probation, suspended, expired or unknown |
primaryStatusCode, primaryStatus, secondaryStatusCode, secondaryStatus | DBPR's original status codes and labels, for example C / Current and A / Active |
originalLicensureDate, effectiveDate, expirationDate | Dates as YYYY-MM-DD |
renewalPeriod | Renewal period when the extract lists one |
addressLine1–addressLine3, city, state, postalCode, fullAddress | Public mailing address |
county, countyCode | County name decoded from DBPR's two-digit code, for example Miami-Dade / 23 |
sourceUrl, sourceLastModifiedAt, scrapedAt | Extract file URL, its last-modified date and collection time |
Missing values are null. The run summary is saved as OUTPUT and SUMMARY: status (SUCCEEDED, EMPTY, BLOCKED, REJECTED or FAILED), rows scanned, records delivered, filters, source date, warnings and caveats.
How do I get a list of licensed Florida contractors by city, county or license type?
Combine any filters and set maxResults. Different filters are combined with AND; several values inside one filter are combined with OR.
| Input | Example | How it matches |
|---|---|---|
cities | ["Tampa", "Orlando"] | Exact mailing city, any capitalization (default ["Miami"]) |
counties | ["Miami-Dade"] or ["23"] | County name or DBPR two-digit code |
licenseTypes | ["CGC", "CBC", "CRC"] | Occupation codes (default ["CGC"]; clear for all) |
statuses | ["active"] | Normalized status (default active; clear for all) |
onlyBusinessLeads | true | Keep only records with a business name (default true) |
searchTerms | ["roofing"] | Partial text in licensee name, business name, license number, city or address |
licenseNumbers | ["CGCA03068"] | Exact license numbers; spaces and hyphens ignored |
maxResults | 250 | 1 to 50,000 unique records (default 100) |
Active certified general, building and residential contractors with a Tampa mailing address:
{"cities": ["Tampa"],"licenseTypes": ["CGC", "CBC", "CRC"],"statuses": ["active"],"onlyBusinessLeads": true,"maxResults": 250}
Can I verify a list of DBPR license numbers in bulk?
Yes. Put up to 100 numbers in licenseNumbers and clear the other filters so nothing else narrows the match. Each match comes back with its status, expiration date and address as of the extract date in sourceLastModifiedAt.
{"licenseNumbers": ["CGCA03068", "CGCA03404"],"cities": [],"licenseTypes": [],"statuses": [],"onlyBusinessLeads": false,"maxResults": 10}
Which contractor license types are covered, and are electricians included?
The extract covers DBPR's Construction Industry Licensing Board. Codes: CAC and RA air conditioning, CBC and RB building, CCC and RC roofing, CFC and RF plumbing, CGC and RG general, CMC and RM mechanical, CPC and RP pool/spa, CRC and RR residential, CSC and RS sheet metal, CUC and RU underground utility and excavation, CVC and RV solar, SCC and RX specialty (C = certified, statewide; R = registered, local). Electrical contractors are licensed by a separate board and are not in this extract. DBPR also leaves null-and-void, delinquent and involuntarily inactive licenses out of the file.
Does it include phone numbers or emails?
No. The DBPR extract has no phone numbers, emails or websites, and the Actor never adds or guesses them. "Leads" here means licensed contractor businesses with a public mailing address.
When should I use it, and when not?
Use it when you need a bulk list of Florida construction contractors by trade, city or county, for example every active roofing contractor in Hillsborough County, or a weekly re-check of license status and expiration for your subcontractors.
Use another Actor when:
- You need contractor emails and websites: Contractor Leads Scraper.
- You need electricians: Electrician Leads Scraper.
- You need the company behind a license (officers, filings): Sunbiz Florida Business Record Scraper.
- Your market is another state: Contractor License Leads, Oregon CCB, TDLR Texas or California CSLB.
- You need complaints, discipline or real-time status: check DBPR's online license search.
How do I run it from code?
JavaScript with apify-client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/florida-dbpr-contractor-directory').call({counties: ['Hillsborough'],licenseTypes: ['CCC', 'RC'],statuses: ['active'],cities: [],maxResults: 500,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const r of items) console.log(r.licenseNumber, r.businessName, r.expirationDate, r.city);
Python with apify-client:
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("muhammadafzal/florida-dbpr-contractor-directory").call(run_input={"cities": ["Orlando"],"licenseTypes": ["CAC", "RA"],"statuses": ["active"],"maxResults": 200,})for r in client.dataset(run.default_dataset_id).iterate_items():print(r["licenseNumber"], r["licenseeName"], r.get("businessName"), r["fullAddress"])
Use it from an AI assistant
Florida Contractor License Lookup works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add the single-tool URL https://mcp.apify.com/?tools=muhammadafzal/florida-dbpr-contractor-directory to your client and ask, for example: "List 50 active certified roofing contractors in Miami-Dade County with license numbers, expiration dates and mailing addresses." Each record is charged at the prices below, so include a result limit.
What does the output look like?
Two records from the 2026-10-26 cloud run with the default input (Miami, CGC, active, business name required), shortened:
[{"licenseNumber": "CGCA03068","rawLicenseNumber": "1103068","licenseTypeCode": "CGC","licenseType": "Certified General Contractor","licenseeName": "ROCA, LUIS E","businessName": "LUIS E. ROCA, INC.","isBusinessLead": true,"status": "active","isCurrent": true,"primaryStatus": "Current","secondaryStatus": "Active","originalLicensureDate": "1977-05-13","effectiveDate": "2022-09-02","expirationDate": "2028-08-31","addressLine1": "5900 SW 51ST STREET","city": "MIAMI","state": "FL","postalCode": "33155","county": "Miami-Dade","countyCode": "23","fullAddress": "5900 SW 51ST STREET, MIAMI, FL, 33155","sourceUrl": "https://www2.myfloridalicense.com/sto/file_download/extracts/CONSTRUCTIONLICENSE_1.csv","sourceLastModifiedAt": "Sun, 25 Oct 2026 10:47:55 GMT"},{"licenseNumber": "CGCA03404","licenseTypeCode": "CGC","licenseeName": "REBOREDO, JOSE","businessName": "REBOLIZ CONSTRUCTION INC","status": "active","expirationDate": "2028-08-31","city": "MIAMI","postalCode": "33175","county": "Miami-Dade"}]
How much does a Florida contractor list cost?
The Actor uses pay-per-event pricing, and platform usage is included in the event prices. Each record saved to the default dataset is one charged event.
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM / DIAMOND |
|---|---|---|---|---|---|
| Florida contractor record (one dataset row) | USD 0.009 | USD 0.008 | USD 0.007 | USD 0.006 | USD 0.006 |
| Actor start (per started GB of allocated memory) | USD 0.005 | USD 0.005 | USD 0.005 | USD 0.005 | USD 0.005 |
Worked totals on the FREE tier at the default 1,024 MB memory (one start event):
- Default input, 100 records: 100 × USD 0.009 + USD 0.005 = USD 0.905
- 1,000 records: 1,000 × USD 0.009 + USD 0.005 = USD 9.005
Filters that match nothing charge only the start event, and invalid input is rejected before the download starts.
Limits and reliability
- Speed: the 2026-10-26 default run downloaded the extract (about 47 MB), filtered it and delivered 100 records in about 6 seconds.
- Scale: up to 50,000 unique records per run, de-duplicated by license number and type.
- Freshness: DBPR refreshes the extract weekly and may delay it for maintenance;
sourceLastModifiedAtshows the file date (25 October 2026 in the latest run). - Access: the Actor downloads the file directly and, if that is refused and
useBrowserFallbackis on (default), opens DBPR's public-records page in a real browser and downloads the linked file. It never solves CAPTCHAs; if every route is challenged the run endsBLOCKEDwith no record charges. - Maximum cost per run: if the run's maximum charge is lower than
maxResultsrecords cost, the Actor stops at the last record that fits, says so in the status message andSUMMARY(stopReason: MAX_CHARGE_REACHED), and never reports more records than it saved.
FAQ
Is there a free Florida contractor license lookup?
DBPR's own online license search is free for single lookups. This Actor charges USD 0.009 per record on the FREE tier for bulk exports and repeatable checks.
How current is the DBPR data?
It is the weekly extract. Each record carries sourceLastModifiedAt; for a time-sensitive decision, confirm the license in DBPR's live search.
Does it include complaints or disciplinary history?
No. The extract has license, status, date and address fields only.
Why is a contractor missing?
They may hold an electrical or other non-construction license, have a null-and-void, delinquent or involuntarily inactive license (left out by DBPR), or be filtered out by your city, type, status or business-name settings.
Can I export every construction license in Florida?
Yes. Clear cities, licenseTypes and statuses, set onlyBusinessLeads to false, and raise maxResults up to 50,000.
What does "expired" mean here?
A record DBPR still marks current but whose expiration date is in the past is normalized to expired.
Related Actors
- Electrician Leads Scraper: electricians from Google Maps, which this extract does not cover
- Sunbiz Florida Business Record Scraper: Florida company registrations
- Contractor License Leads and Oregon CCB: license data in other states
- Building Permits Scraper: permit-based contractor leads
Legal and compliance
The Actor reads DBPR's official public-records download, provided under Chapter 119, Florida Statutes. It does not log in or bypass access controls. Licensee names and mailing addresses can be personal data: use them lawfully and follow CAN-SPAM, TCPA, Do Not Call, mail-marketing and privacy rules. A missing record is not proof that someone is unlicensed. This tool is not affiliated with the Florida DBPR, and this is not legal advice.
Last verified: 2026-10-27