Florida Contractor Directory & Leads Scraper
Pricing
from $2.00 / 1,000 florida contractor records
Florida Contractor Directory & Leads Scraper
Search official Florida DBPR construction licenses by contractor type, status, name, license number, city, county, and public mailing address. Verified free-plan runs return at most five records; paid and agentic-paid runs can request more.
Pricing
from $2.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
a day ago
Last modified
Categories
Share
Florida Contractor Directory & Leads Scraper (DBPR)
Search and export official Florida Department of Business and Professional Regulation (DBPR) Construction Industry contractor records for license verification, compliance research, territory planning, and address-based lead lists.
The Actor reads DBPR's weekly public construction-license extract, filters records during a streaming scan, validates each result, removes duplicates, and writes a clean dataset ready for CSV, Excel, JSON, API, or automation workflows.
Free-plan limit: verified Apify free-plan users can receive at most 5 contractor records per run. Paid and agentic-paid runs can use the requested maxResults limit. When the free cap is reached, the Actor finishes gracefully and explains that an upgrade is required for more results.
What it extracts
| Field | Description |
|---|---|
| licenseNumber | Display license number such as CGC012345 |
| licenseTypeCode, licenseType | DBPR occupation code and decoded contractor category |
| licenseeName | Licensed person or entity |
| businessName | DBPR doing-business-as or qualified business name, when present |
| status, isCurrent | Normalized status and best-effort current flag |
| primaryStatus, secondaryStatus | Original decoded DBPR status values |
| originalLicensureDate, effectiveDate, expirationDate | Normalized YYYY-MM-DD dates |
| addressLine1–3, city, state, postalCode | Public mailing-address fields |
| county, countyCode | County decoded from DBPR's two-digit code |
| fullAddress | Convenience address assembled from source fields |
| sourceUrl, sourceLastModifiedAt, scrapedAt | Record provenance and freshness metadata |
DBPR's construction-license extract does not contain phone numbers, email addresses, websites, social profiles, or inferred contacts. This Actor never fabricates those fields. “Leads” means licensed contractor and business records with public mailing addresses.
When to use it
- Build a list of active general, building, residential, roofing, HVAC, plumbing, pool, solar, utility, mechanical, sheet-metal, or specialty contractors.
- Find contractor businesses in a Florida city or county.
- Verify a known set of DBPR construction license numbers against the weekly extract.
- Segment licensees by category, status, expiration date, geography, or presence of a business name.
- Feed normalized records into CRM review, compliance, procurement, market research, or mail outreach workflows.
Do not use this Actor as a substitute for real-time legal verification, complaints or discipline research, local permit research, or electrical-contractor coverage. DBPR says the bulk file is refreshed weekly and may be delayed by maintenance. The construction download excludes null-and-void, delinquent, and involuntarily inactive records. Florida electrical contractors are published in a separate DBPR board file.
Input
| Input | Default | Purpose |
|---|---|---|
| searchTerms | empty | Partial match against name, business, license, city, or address |
| licenseNumbers | empty | Exact display license numbers |
| cities | Miami | Case-insensitive exact city matches |
| counties | empty | Florida county names or DBPR two-digit county codes |
| licenseTypes | CGC | Construction occupation codes; clear to include all |
| statuses | active | Normalized statuses; clear to include all |
| onlyBusinessLeads | true | Require a DBPR business name |
| maxResults | 100 | Unique output cap, from 1 to 50,000; verified free users receive at most 5 |
| useBrowserFallback | true | Use a browser session when HTTP access is challenged |
| proxyConfiguration | Apify Proxy | Consistent proxy settings for the DBPR source session |
Filters across different fields use AND logic. Multiple values inside the same field use OR logic. For example, cities Miami and Tampa with license type CGC returns general contractors in either city.
City lead-list example
{"cities": ["Tampa"],"licenseTypes": ["CGC", "CBC", "CRC"],"statuses": ["active"],"onlyBusinessLeads": true,"maxResults": 250,"useBrowserFallback": true,"proxyConfiguration": { "useApifyProxy": true }}
License verification example
{"licenseNumbers": ["CGC012345", "CCC022222"],"cities": [],"licenseTypes": [],"statuses": [],"onlyBusinessLeads": false,"maxResults": 10}
Run through the Apify API
curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~florida-dbpr-contractor-directory/runs" \-H "Authorization: Bearer YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"cities":["Orlando"],"licenseTypes":["CCC"],"statuses":["active"],"onlyBusinessLeads":true,"maxResults":100}'
Read results from the run's default dataset or use the results link in the Actor output schema. Read OUTPUT from the default key-value store for the outcome class, scan count, filters, source route, source freshness, warnings, and caveats.
Output example
{"licenseNumber": "CGC012345","rawLicenseNumber": "0012345","licenseTypeCode": "CGC","licenseType": "Certified General Contractor","licenseeName": "DOE, ALEX","businessName": "DOE BUILDERS LLC","isBusinessLead": true,"status": "active","isCurrent": true,"expirationDate": "2030-08-31","addressLine1": "100 MAIN ST","city": "MIAMI","state": "FL","postalCode": "33101","county": "Miami-Dade","countyCode": "23","fullAddress": "100 MAIN ST, MIAMI, FL, 33101","sourceUrl": "https://www2.myfloridalicense.com/sto/file_download/extracts/CONSTRUCTIONLICENSE_1.csv","scrapedAt": "2026-09-12T08:00:00.000Z"}
Pricing
This Actor uses pay per event with platform usage included.
| Event | Price |
|---|---|
| Actor start | $0.005 per run |
| Florida contractor record | $0.002 per dataset item |
A 1-record verification costs about $0.007. A 100-record lead list costs about $0.205. Apify applies the run's maximum charge limit. The Actor writes only validated, deduplicated records, and the dataset-item event is charged automatically only when a record is delivered.
Verified Apify free-plan runs are capped at 5 delivered records per run. The cap is enforced in addition to maxResults and the run's maximum-charge limit; paid and agentic-paid users are not clamped by this free-plan rule. Agentic payment requests without an Apify account are treated as non-free when the platform does not provide a free-plan signal.
Reliability and failure behavior
The source-access ladder is deliberately bounded:
- Try a direct HTTP download.
- Retry through the configured, session-consistent proxy.
- If enabled, open DBPR's official public-records page in a real browser and download the linked file with the same session.
DBPR currently uses a Cloudflare managed browser check. The Actor does not solve or bypass CAPTCHAs or other access controls. If all permitted routes are challenged, the run writes a BLOCKED OUTPUT summary, returns no fabricated records, and applies no dataset-item charges. Valid filters with no matches produce an EMPTY summary. Bad input produces a REJECTED summary before source work.
Data scope and responsible use
The source is an official Florida public-record download provided under Chapter 119, Florida Statutes. Use personal and address data lawfully. Respect marketing, privacy, suppression-list, fair-housing, anti-discrimination, and communications rules that apply to your workflow.
The data is limited to DBPR Construction Industry records in the downloaded snapshot. A missing record is not proof that a person or business is unlicensed: other DBPR boards, local governments, and other authorization systems may apply. For time-sensitive decisions, verify the record in DBPR's live license search or contact DBPR.
For support, open an issue from the Actor page and include the run ID, expected filter, and OUTPUT status. Do not include private API tokens or unrelated personal data.