Louisiana Contractor Leads Scraper (LSLBC) — with Emails
Pricing
from $4.00 / 1,000 license-verified contractor lead (with email)s
Louisiana Contractor Leads Scraper (LSLBC) — with Emails
Scrape license-verified contractor leads from Louisiana's LSLBC registry — company, license number, class, status, expiry, address, phone, and the contractor's own email published on the board record. Commercial, residential, home-improvement & mold. Full-state sweep or targeted search.
Pricing
from $4.00 / 1,000 license-verified contractor lead (with email)s
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
License-verified Louisiana contractor leads, and the board hands you the email. Every row is pulled live from the Louisiana State Licensing Board for Contractors (LSLBC) public registry — company, license number, classification, status, expiration date, mailing address, phone, and the contractor's own contact email, published right on the board record. Sweep the whole state or target a city, classification, company, or license number. JSON or CSV out, billed per lead.
How it works

✨ Why use this scraper?
- Emails come standard — unlike most licensing boards, LSLBC publishes each contractor's contact email on the record itself. In testing, ~100% of active company records carried one. No enrichment step, no guessing, no extra charge: it's in
boardEmailon every row that has it. - License-verified, not directory-scraped — every lead comes from the board's own registry, so the license number, classification, status, and expiry are authoritative at scrape time.
- Active-only by default — Expired / Not Active / Not Valid records are dropped before you pay for them (turn
activeOnlyoff for compliance or historical research). - Full-state sweep built in — run it empty and it walks a bundled list of ~1,150 Louisiana place names, metro areas first. No URL hunting.
- Four license types, cleanly filterable — Commercial, Residential, Home Improvement, and Mold Remediation, each selectable in the input.
- Optional extra enrichment — for the minority of records without a board email,
enrichEmailsdiscovers the business's website and harvests one, andqualifyByPaymentflags Stripe/e-commerce signals. - New-license monitoring — flip
monitoringModeon a schedule and each run returns only contractors licensed since your last run. - Zero setup — US residential proxy is built in; the registry is public, no login or CAPTCHA involved.
🎯 Use cases
| Who | What they do with it |
|---|---|
| Building-materials & equipment suppliers | Build ready-to-email lists of active licensed contractors by city and license type — company, phone, address, and email all in one row |
| SaaS & fintech selling to contractors | Feed license-verified accounts straight into outbound; qualifyByPayment flags who transacts online |
| Insurance, bonding & lending | Verify license status and expiration before quoting |
| Recruiters & M&A scouts | Map every commercial or residential contractor in a metro; monitor newly licensed firms as expansion signals |
| GCs & developers | Verify subs' licenses in bulk from a license-number list before award |
📥 Supported inputs
| Mode | Input | Behaviour |
|---|---|---|
| Full-state sweep (default) | (empty input) | Walks the bundled LA place list, biggest cities first |
| City sweep | cities: ["New Orleans", "Baton Rouge"] | Exact match on the licensee's mailing-address city |
| Classification filter | classifications: ["Residential License Certificate"] | One of the four LSLBC license types |
| Company search | companyNames: ["electric"] | Board-side substring match on company name |
| Name search | lastName (+ optional firstName) | License-holder name lookup |
| License lookup | licenseNumbers: ["CL.13827"] | Direct verification; accepts full numbers or bare digits |
| Phone lookup | phoneNumber | Phone number on record |
Not supported: other states or boards. This actor covers the LSLBC commercial/residential/home-improvement/mold registry — Louisiana keeps some trades (e.g. plumbing, electrical journeymen) on separate boards.
🔄 How it works
- Builds search jobs from your criteria — or the full-state city list when the input is empty.
- Queries the board's live roster for each job and parses the result rows (license #, classification, holder, standing).
- Filters inactive licenses (default) and duplicates before any per-lead fetching, so you never pay for records you filtered out.
- Fetches each license's detail record — company, address, phone, board email, status, expiry — in parallel.
- Optionally enriches the minority of rows without a board email (website discovery + contact-email harvesting;
qualifyByPaymentadds payment signals). - Pushes one row per license to the dataset.
⚙️ Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
cities | array | [] → full sweep | LA mailing-address cities, matched exactly |
classifications | array | [] → all | Any of the 4 license types (label, fragment like residential, or numeric code) |
activeOnly | boolean | true | Drop licenses not in good standing before fetching |
companyNames | array | — | Substring company-name searches |
lastName / firstName | string | — | License-holder name search |
licenseNumbers | array | — | Direct license lookups |
phoneNumber | string | — | Phone-number search |
enrichEmails | boolean | false | Website + email discovery for rows lacking a board email |
qualifyByPayment | boolean | false | Payment-processor detection (needs enrichEmails) |
monitoringMode | boolean | false | Only licenses not delivered on previous runs |
resetMonitoringState | boolean | false | One-shot: clear the monitoring baseline |
maxItems | integer | 500 | Hard cap on leads |
maxConcurrency | integer | 10 | Parallel detail fetches |
searchConcurrency | integer | 3 | Parallel roster searches |
📊 Output overview
One dataset row per license. The row merges the roster entry and the board's detail record — including the native boardEmail — with no separate or padding rows. isActive is computed from the authoritative detail status, and searchCity records which sweep query surfaced the lead.
📦 Output sample
Real trimmed row from a live run:
{"type": "license-lead","stateCode": "LA","trade": "contractor","boardId": "lslbc","boardName": "Louisiana State Licensing Board for Contractors","licenseNumber": "CL.13827","classificationCode": "CL","classification": "Commercial License Certificate","businessName": "PETROTECH, INC.","dbaName": null,"licenseStatus": "Active","isActive": true,"expirationDate": "2029-05-13","phone": "(504) 620-6600","boardEmail": "jsouto@petrotechinc.com","contactEmail": "jsouto@petrotechinc.com","address": {"street": "151 Brookhollow Esplanade","city": "Jefferson","state": "LA","zip": "70123","raw": "151 Brookhollow Esplanade, Jefferson, LA 70123"},"searchCity": "New Orleans","qualifiers": [],"sourceUrl": "https://arlspublic.lslbc.louisiana.gov/Public/Search","scrapedAt": "2026-07-24T07:44:00.000Z"}
With enrichEmails: true, rows that had no board email can additionally carry contactEmail, contactWebsite, and the detailed emailEnrichment object.
🗂 Key output fields
| Group | Fields |
|---|---|
| License | licenseNumber, classification, classificationCode, licenseStatus, statusNote, isActive, expirationDate |
| Business | businessName, dbaName, phone, boardEmail, contactEmail, address.{street,city,state,zip,raw} |
| People | qualifiers[] — named individuals on the license, when the board lists them |
| Enrichment (opt-in) | contactWebsite, emailEnrichment, takesPayments, paymentProcessors, stripeLiveKey, paymentConfidence |
| Provenance | boardId, boardName, stateCode, trade, searchCity, sourceUrl, scrapedAt |
❓ FAQ
Do I really get an email for every lead?
For active company records, almost always — LSLBC publishes the contact email on the record and our testing found one on ~100% of them. Some individual registrations and older records omit it; for those, turn on enrichEmails to try to recover one. boardEmail is the board's own value; contactEmail is the best available (board email first, enriched email as fallback).
How complete is the full-state sweep? The board's search matches on each licensee's mailing-address city. The bundled sweep list covers ~1,150 Louisiana municipalities and place names, so in-state coverage is effectively complete; licensees who mail from out of state are only found via company/name/license searches.
Why fewer leads than the roster shows?
activeOnly (default on) drops Expired / Not Active / Not Valid licenses — on this board that's a large share of historical records. Set it to false to get everything.
How is this different from a license-lookup tool? Lookups verify one license number at a time. This sweeps the whole roster (or a city/classification slice), returns one clean row per contractor with the email attached, and can monitor for newly licensed firms on a schedule.
Is this legal to scrape? The registry is a public government licensing record intended for license verification by the public. The actor accesses only those public pages, politely. See the Disclaimer below for your responsibilities.
💬 Support
- 🐛 Issues: the actor's Issues tab
- 💡 Feature requests: same place — concrete requests (new fields, other states, other trades) usually ship fast
- 📧 Direct: message via my Apify profile
🛠 Additional services
Need the same license-verified leads pipeline for another state or trade, a custom export, or a managed feed into your CRM? This actor is part of a per-state series built on a shared engine — new boards stamp out quickly. Reach out via my Apify profile.
🔎 Explore more scrapers
Matching state-board leads actors: NC Electrical Contractor Leads and NC Plumbing & HVAC Contractor Leads. More lead-gen and directory actors: apify.com/memo23 — email finding & verification, business directories, real-estate, and job boards.
🤖 For AI Agents & LLM Apps
This actor is MCP-ready: call it from agent frameworks via the Apify MCP server, or hit it with a single API call and read the dataset as clean JSON. The row schema is stable and flat where it matters (licenseNumber, businessName, phone, boardEmail, address.city, isActive), so it drops straight into RAG pipelines, lead-qualification agents, and compliance-check tools. Typical agent patterns: "verify this LA contractor's license" (pass licenseNumbers), "find active residential contractors in Baton Rouge with emails" (pass cities + classifications), or a scheduled "alert me on newly licensed contractors" loop (monitoringMode).
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the Louisiana State Licensing Board for Contractors, the State of Louisiana, or any of their agencies or affiliates. All trademarks mentioned are the property of their respective owners.
The scraper accesses only the board's publicly available license-verification pages — no authenticated endpoints and no content behind a login. License data, including the contact email, is a public record published by the board for verification purposes. Users are responsible for ensuring their use complies with applicable law and regulation — including data-protection rules (GDPR, CCPA), telemarketing/e-mail regulations (TCPA, CAN-SPAM) when contacting leads, and any obligations of their own organisation.
SEO Keywords
louisiana contractor leads, louisiana contractor license lookup, lslbc license verification, louisiana contractor email list, licensed contractor database louisiana, louisiana commercial contractor leads, residential contractor leads louisiana, contractor leads with email, state licensing board scraper, contractor license verify api, home services leads scraper, new orleans contractor list, baton rouge contractors, home improvement contractor leads, mold remediation contractor list, newly licensed contractors alerts, contractor license monitoring, apify contractor leads, b2b construction leads, louisiana construction data