DBPR
Florida Contractor Directory & Leads Scraper (DBPR)
Scrape every licensed Florida contractor in a county from the official DBPR registry — name, license, status, expiration, address — or look up licences by number or name statewide.
Verification
Output fields
Authoritative field set from the dataset schema.
| Field | Type |
|---|---|
state | string|null |
license_number | string|null |
business_name | string|null |
license_type | string|null |
status | string|null |
expiration_date | string|null |
issue_date | string|null |
county | string|null |
city | string|null |
address | string|null |
zip_code | string|null |
phone | string|null |
person_name | string|null |
bond_amount | string|null |
bond_company | string|null |
insurance_company | string|null |
matched_by | string|null |
county_value | string|null |
county_name | string|null |
source_url | string|null |
Sample row
{
"state": "FL",
"license_number": "CGC1511234",
"business_name": "TAMPA BAY CONSTRUCTION LLC",
"person_name": null,
"license_type": "Certified General Contractor",
"status": "Current,Active",
"issue_date": null,
"expiration_date": "08/31/2026",
"city": "TAMPA",
"county": "Hillsborough",
"address": "1234 KENNEDY BLVD",
"zip_code": "33602",
"phone": null,
"bond_amount": null,
"bond_company": null,
"insurance_company": null,
"matched_by": "county_directory",
"source_url": "https://www.myfloridalicense.com/LicenseDetail.asp?SID=&id=ABCDEF123456"
} Inputs
| Field | Type | Req | Default | Description |
|---|---|---|---|---|
mode | string | no | "auto" | auto (default): licence numbers or names in 'Look up licences' run a lookup, otherwise a county export runs. lookup: find licences by DBPR licence number or business / person name, statewide. export: every licensee of the chosen licence types in the chosen counties, names and numbers ignored. |
queries | array | no | [] | DBPR licence numbers ('CGC1514724') or business / person names, one per line. Each name is searched in DBPR's business and person indexes on the Construction Industry and Electrical Contractors boards; each match is enriched from its DBPR detail page (issue date, county) unless 'Add licence details' is off. Leave empty to export by county. |
query | string | no | — | One licence number or name; same as the list above. |
includeDetails | boolean | no | true | Lookup only: fetch each match's DBPR detail page for issue date, county and the full licence type. Slower; same price. |
listCountiesOnly | boolean | no | false | When true, the actor returns all available Florida counties from the DBPR portal and exits immediately (< 10 seconds, no charge). Use this to discover the exact county name to pass into Scrape Mode. |
county | string | no | "Hillsborough" | The Florida county to scrape - full name (e.g. 'Hillsborough') or the DBPR numeric code (e.g. '39'). Common spellings are accepted: 'Miami-Dade County' resolves to DBPR's 'Dade', and 'Saint Lucie' to 'St. Lucie'. If the county is missing or not recognised, the run returns the full list of counties instead of failing, and is not charged. |
counties | array | no | ["Hillsborough"] | Look up many in ONE run instead of starting a run per lookup. Takes the same values as 'County'. Combined with 'County' if you fill both, and duplicates are removed. Billing is unchanged: you are charged per record returned, not per entry submitted. |
board | string | no | "06" | DBPR board code to filter by. Default '06' = Construction Industry (the main contractor board covering General, Building, Residential, and specialty contractors). Contact DBPR or run Discovery Mode to find codes for other boards. |
licenseType | string | no | "0605" | DBPR license type code within the selected board. Default '0605' = Certified General Contractor (Board 06). Use '0600' for all license types within the board (if supported by the portal). |
licenseTypes | array | no | [] | Several licence types in one export: DBPR codes ('0605' Certified General, '0603' Certified Roofing, '0616' Registered Roofing) or 'roofing' (= 0603 + 0616), 'CCC', 'RC', 'CGC'. Overrides 'License type code' when set. |
statuses | array | no | [] | Keep only these: active (Current, active), inactive (Current, inactive), suspended, or all. Empty = every row DBPR lists, as before. |
status | string | no | — | One status; same as Statuses. |
expiresAfter | string | no | — | Only licences expiring on or after this date (YYYY-MM-DD). With 'Expires on or before' it lists licences due for renewal in a window. |
expiresBefore | string | no | — | Only licences expiring on or before this date (YYYY-MM-DD). |
maxResults | integer | no | 500 | Cap on the number of records returned PER ENTRY, not per run — so a batch cannot silently return only the first 500 rows overall and read as 'the rest don't exist'. A county + license type can have thousands of results; set lower for testing. Default 500. |
proxyConfiguration | object | no | {"useApifyProxy":false} | Optional. The DBPR portal is usually reachable directly from Apify's datacenter IPs. Enable a proxy (e.g. residential) only if a run is blocked or served a challenge page. |
Pricing
Pay per result (dataset-item) — no charge for empty runs.
Example: 500 contractor records at $0.002/result ≈ $1.00.
FAQ
Where does the data come from?
The official Florida DBPR 'Verify a Licensee' portal (wl11.asp) — public contractor license data sourced directly from the state registry.
How do I find the right county name?
Run the actor once with listCountiesOnly=true. It returns all available county names and their DBPR codes in under 10 seconds at no charge.
What board and license type should I use?
The defaults (board '06' / licenseType '0605') cover Certified General Contractors under the Construction Industry board — the largest category. Set licenseType to another code (e.g. '0610' for Certified Building Contractor) to target a different trade. DBPR board and license type codes are documented on the DBPR website.
Lookup or export — which do I use?
Lookup when you have licence numbers or names: put them in 'Look up licences'. Each name is searched in DBPR's business and person indexes, statewide, on the Construction Industry and Electrical Contractors boards. Export when you want a county list: leave that empty and pick counties and licence types. 'Mode' can force one or the other; the default, auto, decides by whether you gave names or numbers.
How do I export roofers, or several licence types at once?
Set 'Licence types' to 'roofing' (Certified Roofing Contractor 0603 + Registered Roofing Contractor 0616), or list DBPR codes such as 0605 and 0610. Add 'Statuses' (active, inactive, suspended) to keep only those, and 'Expires on or after / on or before' for a renewal window.
How many records can I get per run?
Hillsborough County alone has 8,000+ Certified General Contractors. The actor paginates automatically; set maxResults to control the cap. For very large counties, split across license types to stay within run time limits.
How am I charged?
Pay per record in Scrape Mode. Discovery Mode (listCountiesOnly=true) is not charged.
How current is the data?
It reflects the live DBPR registry at scrape time — the actor reads the portal itself, so you get whatever DBPR is publishing at that moment rather than a cached copy.
Does this include phone numbers?
No — DBPR does not publish phone numbers on the Verify a Licensee portal. Enrich with a contact-data provider after export.
Guides & use cases
Related actors