DBPR Florida License Verification
Pricing
Pay per event + usage
DBPR Florida License Verification
Verify any Florida professional license (contractors, real estate, cosmetology, CPAs, engineers, and 30+ other boards) directly from the Florida Department of Business and Professional Regulation. Fresher than aggregators, priced per record.
Pricing
Pay per event + usage
Rating
0.0
(0)
Developer
Tony
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
DBPR Florida License Verification & Lookup
Verify, look up, and search any Florida professional license directly from the Florida Department of Business & Professional Regulation (DBPR) — myfloridalicense.com. Covers 30+ boards including contractors (CGC, CFC, CBC, CCC, EC), real estate (SL, BK), home inspectors (HI), cosmetology (CL, MM), CPAs, engineers (PE), auctioneers, and more. Fresher than aggregator services, priced per record returned.
Table of contents
- What you get per result
- Who this is for
- Pricing
- How to look up a Florida license by number
- How to search Florida licensees by name
- How to find every active contractor in a Florida city
- How to verify a Florida real estate license
- How to sweep every active CGC in Florida
- Sample output
- DBPR direct vs license-aggregator services
- DBPR board codes
- FAQ
- Known limitations
- Legal
What you get per result
A stable record schema so downstream buyers can rely on field names. Three tiers:
Status-only ($0.002/record) — license number, status, normalized status, expiration date. No PII. Ideal for renewal-reminder or automated compliance workflows.
Basic ($0.008/record) — licensee name, license number, license type, rank, status, expiration date, main address (street and city parsed cleanly), board (inferred), source URL.
Full ($0.025/record) — everything in basic plus licensure date, county, DBA / alternate names, and special qualifications from the per-license detail page.
Who this is for
- Lead-gen agencies enriching Florida contractor, realtor, plumber, electrician, or CPA prospect lists with live license status.
- KYC and compliance teams verifying active license status on Florida professionals at onboarding and renewal.
- Insurance and surety underwriters checking license class, rank, and expiration before binding contractor or professional liability coverage.
- Marketplaces (Angi, Thumbtack, HomeAdvisor, Houzz, Porch) that require licensed-professional verification at signup.
- Renewal-reminder services that need recurring status checks on a roster of Florida licensees.
- Background-check operators validating Florida professional credentials.
Pricing
Pay-per-event. You pay only for records the actor actually produces. Empty results are not pushed or billed.
| Event | Price | Description |
|---|---|---|
license_status_check | $0.002 | License number → status + expiration. No name/address. |
license_basic | $0.008 | Name, license #, type, rank, status, expiration, main address. |
license_enriched | $0.025 | Basic + licensure date, county, DBA/alt names, special qualifications. |
That's 500 status checks per dollar, 125 basic records per dollar, or 40 enriched records per dollar.
How to look up a Florida license by number
Direct license-number lookup is the fastest, cheapest path. Works for every prefix (CGC, CFC, CBC, CCC, EC, SL, BK, CL, MM, PE, HI, AC, etc.):
{"licenseNumbers": ["CFC056678", "SL705188", "CL1322240"],"enrichmentLevel": "full"}
This is the most efficient way to verify a contractor license, look up a Florida real estate agent, check a cosmetology license, or confirm any other DBPR-issued credential — DBPR returns the canonical record without any fuzzy name search.
For a renewal-reminder workflow that only needs the current status:
{"licenseNumbers": ["CFC056678", "CGC1512345"],"statusCheckOnly": true}
The status-only mode bills at $0.002 per license and returns no PII — ideal for periodic compliance checks. If a license number isn't found in DBPR (typo, voided, or never existed), the actor logs a warning and does not charge for it.
How to search Florida licensees by name
Useful when you know the person but not their license number. Searches DBPR's name index across all boards:
{"licenseeNames": [{ "lastName": "SMITH", "firstName": "JOHN" },{ "orgName": "AARDVARK PLUMBING" }],"maxResultsPerSearch": 25,"enrichmentLevel": "basic"}
Names are case-insensitive on input. DBPR returns partial matches, capped by maxResultsPerSearch. Common-surname searches (Smith, Johnson, Williams, Garcia) can return thousands of records — keep the cap modest unless you intend to pay for all of them.
How to find every active contractor in a Florida city
City-scoped search across a specific board + license type. Both board and licenseType are required by DBPR for city searches:
{"citySearches": [{ "city": "TAMPA", "board": "06", "licenseType": "0605" }],"maxResultsPerSearch": 500,"enrichmentLevel": "basic"}
This returns every active Certified General Contractor (CGC) in Tampa. Swap the board+licenseType pair to scope by city for any Florida profession — plumbers (CFC), roofers (CCC), electricians (EC), real estate sales associates (SL), brokers (BK), home inspectors (HI), CPAs, cosmetologists (CL), and so on. See DBPR board codes below; the full numeric license-type table is in src/normalize.js.
To search a county instead of a city, swap city for county (e.g., county: "39" for Hillsborough). To sweep all of Florida, iterate the 67 county codes.
How to verify a Florida real estate license
Florida real estate uses the SL (Sales Associate) and BK (Broker) prefixes. Direct lookup works the same as any other license:
{"licenseNumbers": ["SL705188", "BK3123456"],"enrichmentLevel": "full"}
The full tier includes licensure date, county, and any DBA / alternate names — useful for compliance teams confirming a real estate broker's qualifications before listing or paying commission, and for marketplaces verifying Florida realtors at signup.
How to sweep every active CGC in Florida
State-wide license-type sweep. Without a city or county filter, this returns every active Certified General Contractor in the state. Use a high maxResultsPerSearch cap — there are tens of thousands of CGC licensees:
{"licenseTypeSearches": [{ "board": "06", "licenseType": "0605" }],"maxResultsPerSearch": 5000,"enrichmentLevel": "basic"}
The same pattern works for any board+type pair: every active plumber in Florida, every active electrician, every active cosmetologist, every active CPA. Be aware of pricing — 5,000 basic records is $40, and DBPR pagination at 50/page means a 5,000-record sweep takes ~100 seconds before any enrichment.
Sample output
Each record is a flat JSON object with a stable schema. A basic-tier record looks like this:
{"id": "FL-DBPR:CFC056678:Primary:E941FBE6942475F84E3177712B2CF505","source_state": "FL","source_agency": "DBPR","source_url": "https://www.myfloridalicense.com/LicenseDetail.asp?SID=&id=E941FBE6942475F84E3177712B2CF505","detail_id": "E941FBE6942475F84E3177712B2CF505","license_number": "CFC056678","license_type": "Certified Plumbing Contractor","license_rank": "Cert Plumbing","license_prefix": "CFC","board": "Construction Industry","board_code": "06","status": "Current, Active","status_normalized": "active","expiration_date": "2026-08-31","name": "SMITH, LAWRENCE C","name_type": "Primary","primary_name": "SMITH, LAWRENCE C","dba_names": ["AARDVARK PLUMBING INC"],"alternate_names": [],"main_address": {"street": "3023 SPRUCE ST","city": "TAMPA","state": "FL","postal_code": "33607","country": "US"},"scraped_at": "2026-04-25T18:36:04.476Z","enrichment_level": "basic"}
A status-only record is much smaller (no PII) and bills at $0.002:
{"id": "FL-DBPR:CFC056678:Primary:E941FBE6942475F84E3177712B2CF505","license_number": "CFC056678","status": "Current, Active","status_normalized": "active","expiration_date": "2026-08-31","enrichment_level": "status_only"}
The status_normalized field collapses DBPR's irregular status strings into a small enum: active, expired, void, delinquent, suspended, revoked, pending, inactive, voluntary_inactive, involuntary_inactive, closed, probation, deceased. Filter on this rather than the raw status field — DBPR writes "Null and Void, Active" for dead licenses, which is misleading.
DBPR direct vs license-aggregator services
| This actor (direct from DBPR) | Typical aggregator (BatchLeads, Searchbug, ListSource) | |
|---|---|---|
| Data freshness | Live — same data DBPR's portal serves right now | Refreshed weekly or monthly; can lag by 30+ days |
| Coverage | All 30+ DBPR boards, ~90 license types | Usually contractor + real estate only |
| Pricing | Pay-per-record ($0.002–$0.025) | $0.10–$1.00/record or $99+/month |
| Status accuracy | Reflects DBPR's current state — delinquent, null and void, and expired correctly filtered | Often shows expired or revoked licenses as "active" until next refresh |
| Customizable input | License #, name, city, county, license type, statewide sweep | Limited query options |
| Audit trail | source_url per record points to DBPR's public detail page | Aggregator's internal ID only |
If your use case requires regulatory-grade freshness — KYC, surety underwriting, marketplace verification, professional services compliance — the direct-from-DBPR feed is what you want.
DBPR board codes
Use these in board fields on citySearches and licenseTypeSearches:
| Code | Board |
|---|---|
01 | Certified Public Accounting |
02 | Architecture & Interior Design |
03 | Barbers |
04 | Home Inspectors |
05 | Cosmetology |
06 | Construction Industry |
07 | Mold-Related Services |
08 | Electrical Contractors |
09 | Engineers |
13 | Landscape Architecture |
25 | Real Estate |
26 | Veterinary Medicine |
38 | Community Association Managers |
48 | Auctioneers |
50 | Building Code Administrators and Inspectors |
53 | Geologists |
59 | Asbestos Contractors and Consultants |
64 | Real Estate Appraisers |
85 | Yacht and Ships |
200 | Hotels and Restaurants |
210 | Elevator Safety |
400 | Alcoholic Beverages & Tobacco |
800 | Condominiums, Cooperatives, Timeshares |
840 | Homeowners' Associations |
(See src/normalize.js for the full table including numeric licenseType codes per board.)
FAQ
Where does this Florida license data come from? Directly from myfloridalicense.com, the public license portal operated by the Florida Department of Business & Professional Regulation. Same data the public website serves; we just expose it as a stable structured feed.
How fresh is the license data? As fresh as DBPR's portal — typically updated within 24 hours of any DBPR action (new issuance, renewal, suspension, revocation). We don't cache or pre-fetch — every run hits DBPR live.
Is scraping the Florida DBPR license portal legal? Florida DBPR license records are public records under Florida Statute Chapter 119. The actor reads the same lookup pages a browser would. You should review DBPR's terms of use before reselling raw data or combining it with other PII.
What happens if a license number doesn't exist? The actor logs a warning (license_number "X" not found in DBPR) and skips that lookup — no record is pushed and you are NOT charged for it.
Why are some addresses returning "Private"? DBPR allows certain professionals (judges, law-enforcement officers, code inspectors) to suppress their main address from the public portal under Fla. Stat. § 119.071. We pass that through as street: "Private" so you can detect and handle it downstream.
Do I get charged for expired or null-and-void licenses? No. By default, only active and pending licenses are returned and billed. Set includeExpired: true to include expired, void, delinquent, suspended, and revoked statuses.
Can I run this on a schedule for ongoing verification? Yes — Apify's Schedules feature runs the actor on a cron expression. Common pattern: a weekly sweep of your customer roster as licenseNumbers with statusCheckOnly: true, billed at $0.002/record. A 1,000-customer roster runs about $2/week.
What's the difference between Primary and DBA in the data? A single license can have both a Primary (the responsible person, e.g., the qualifier on a contractor license) and a DBA (the business operating under that license). The actor collapses both into one record per license, with the canonical name in name (preferred from Primary) and any business names in dba_names.
Is there a free tier? No free tier currently — pay-per-event from the first record. Apify gives every account $5/month of free platform credit, which translates to roughly 2,500 status checks or 625 basic records before any billing kicks in.
Known limitations
- Status normalization is opinionated.
includeExpired: false(default) keeps onlyactiveandpendingrecords. Flip totrueto seevoid,expired,delinquent,suspended, etc. - Basic tier can't tell board from prefix perfectly. For common prefixes (CFC/CGC/CBC → Construction, SL/BK → Real Estate, CL/MM → Cosmetology, EC/ER → Electrical, HI → Home Inspectors) we infer the board. For uncommon prefixes,
boardis null unless you useenrichmentLevel: "full". - City searches are case-sensitive on DBPR's side — we upper-case for you. Still, some DBPR entries have misspelled cities (
LAFAYETT,FT LAUDERDALEvsFORT LAUDERDALE). Use broader queries if counts seem low. - DBPR caps each page at 50 records. We paginate transparently up to
maxResultsPerSearch(default 50, max 5000). Each page costs roughly 1 second of wall time, so a 1,000-record search takes ~20 seconds before any enrichment. - Address parsing is heuristic. DBPR returns the address as a single concatenated string. We split it into street + city using a USPS-suffix tokenizer and a small dictionary of multi-word Florida cities. Should be accurate on >95% of records; report any miscategorized address as a bug.
- Empty results are not pushed or billed.
Legal
Florida DBPR license records are public records under Florida Statute Chapter 119. This actor reads the same public lookup page a browser would. Review DBPR's terms of use and applicable privacy laws before reselling the raw data or combining it with other PII.