Alabama LBGC General Contractor License Scraper
Pricing
from $17.00 / 1,000 contractor records
Alabama LBGC General Contractor License Scraper
Export licensed Alabama general contractors with business name, license #, specialty, phone, street address, bid limit & expiration. JSON, CSV or Excel.
Pricing
from $17.00 / 1,000 contractor records
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Alabama LBGC General Contractor License Scraper
Here is one real result, with every field the actor returns:
{"licenseNumber": "1901","businessName": "SHOOK & FLETCHER MECHANICAL CONTRACTORS INC","city": "BIRMINGHAM","state": "AL","specialty": "BC: BUILDING CONSTRUCTION, M: MECHANICAL, MU: MUNICIPAL AND UTILITY","specialtyCode": "BC","phone": "(205) 252-9400","addressStreet": "P O BOX 10803","zip": "35202","fax": "(205) 252-9407","bidLimit": "U UNLIMITED","expirationDate": "6/30/2026","extensionDate": "9/30/2026","licenseStatus": "EXPIRED","detailFetched": true,"aiLeadScore": 40,"aiLeadTier": "cold","aiLeadRationale": "The contractor has an expired license, which may indicate potential issues with compliance or reliability.","aiProfileSummary": "Shook & Fletcher Mechanical Contractors Inc is a licensed general contractor based in Birmingham, AL, specializing in building construction, mechanical services, and municipal and utility projects. The company has an unlimited bid limit but currently holds an expired license, which is set to expire on June 30, 2026.","source": "Alabama Licensing Board for General Contractors (LBGC)","observedAt": "2026-08-14T06:12:12.206Z"}
The most complete Alabama LBGC general contractor license scraper available. It returns every field the Alabama Licensing Board for General Contractors exposes (license number, business name, city, specialty, phone), enriches each contractor from its detail page with street address, ZIP, fax, bid limit and expiration, and offers optional AI add-ons for a B2B lead score and a profile summary.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches the Alabama Licensing Board for General Contractors (LBGC) license directory, applies the filters you pass (specialty classifications, cities, company names, license numbers or phone numbers), and writes one record per licensed contractor to the run's dataset. Each listing record carries the license number, business name, city, state, specialty text and primary specialty code, and phone.
When withDetails is on (the default), each contractor's detail page is fetched to add the street address, ZIP, fax, bid limit (bond level), license expiration and extension dates, and license status. Two optional AI add-ons (paid Apify plans only) add a 0 to 100 B2B lead score with tier and rationale, and a plain-language profile summary. Missing values are returned as null, never invented.
Quickstart
Open the actor, paste this into the input, and press Run. It returns up to 50 building-construction contractors with full details.
{"classifications": ["BC"],"withDetails": true,"maxContractors": 50}
Filter by cities, companyNames, licenseNumbers or phoneNumbers instead of or alongside classifications. Every input field is optional; with an empty input the actor returns the most recent contractors.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
classifications | string[] | no | ["BC"] | Filter by specialty classification code or text, for example BC, BC-S, Building Construction, Electrical. Any match kept. |
cities | string[] | no | (none) | Filter to Alabama cities, for example Birmingham, Montgomery, Huntsville, Mobile. |
companyNames | string[] | no | (none) | Filter by business name. Partial names match. |
licenseNumbers | string[] | no | (none) | Look up specific license numbers (exact match). |
phoneNumbers | string[] | no | (none) | Filter by phone number (digits matched, formatting ignored). |
withDetails | boolean | no | true | When on, each contractor is enriched from its detail page with street address, ZIP, fax, bid limit and expiration. Billed per contractor enriched (details event). |
withLeadScore | boolean | no | false | Paid AI add-on. Score each contractor 0 to 100 as a B2B lead with tier and rationale. Charged per contractor scored. |
withProfileSummary | boolean | no | false | Paid AI add-on. Write a concise business profile summary. Charged per contractor summarised. |
maxContractors | integer | no | 50 | Maximum number of contractors to return this run. |
Output reference
One dataset item per contractor. Types: string, integer, boolean, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
licenseNumber | string | LBGC license number. |
businessName | string | Licensed business name. |
city | string | City. |
state | string | State (always AL). |
specialty | string | Full specialty classification text. |
specialtyCode | string | Primary specialty code, for example BC. |
phone | string | Contact phone, or null. |
addressStreet | string | Street address (with withDetails), or null. |
zip | string | ZIP code (with withDetails), or null. |
fax | string | Fax number (with withDetails), or null. |
bidLimit | string | Bid limit or bond level (with withDetails), or null. |
expirationDate | string | License expiration date (with withDetails), or null. |
extensionDate | string | License extension date (with withDetails), or null. |
licenseStatus | string | License status, for example ACTIVE, EXPIRED (with withDetails), or null. |
detailFetched | boolean | true when the detail page was successfully fetched. |
aiLeadScore | integer | AI B2B lead score 0 to 100 when the add-on is enabled, else null. |
aiLeadTier | string | AI lead tier (hot/warm/cold) when enabled, else null. |
aiLeadRationale | string | AI rationale for the score when enabled, else null. |
aiProfileSummary | string | AI profile summary when the add-on is enabled, else null. |
source | string | Always Alabama Licensing Board for General Contractors (LBGC). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | Present only on a failed run; a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"classifications": ["BC"], "withDetails": true, "withLeadScore": true, "withProfileSummary": true}):
{"licenseNumber": "1901","businessName": "SHOOK & FLETCHER MECHANICAL CONTRACTORS INC","city": "BIRMINGHAM","state": "AL","specialty": "BC: BUILDING CONSTRUCTION, M: MECHANICAL, MU: MUNICIPAL AND UTILITY","specialtyCode": "BC","phone": "(205) 252-9400","addressStreet": "P O BOX 10803","zip": "35202","fax": "(205) 252-9407","bidLimit": "U UNLIMITED","expirationDate": "6/30/2026","extensionDate": "9/30/2026","licenseStatus": "EXPIRED","detailFetched": true,"aiLeadScore": 40,"aiLeadTier": "cold","aiLeadRationale": "The contractor has an expired license, which may indicate potential issues with compliance or reliability.","aiProfileSummary": "Shook & Fletcher Mechanical Contractors Inc is a licensed general contractor based in Birmingham, AL, specializing in building construction, mechanical services, and municipal and utility projects. The company has an unlimited bid limit but currently holds an expired license, which is set to expire on June 30, 2026.","source": "Alabama Licensing Board for General Contractors (LBGC)","observedAt": "2026-08-14T06:12:12.206Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~alabama-lbgc-contractors-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"classifications":["BC"],"cities":["Birmingham"],"maxContractors":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~alabama-lbgc-contractors-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"cities":["Montgomery"],"withDetails":true,"maxContractors":100}'
Apify CLI:
apify call scrapers_lat/alabama-lbgc-contractors-scraper \--input '{"classifications":["BC"],"withDetails":true}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per contractor record returned (
resultevent). See the pricing tab for the current per-result price. - Add-ons billed separately.
detailsis charged per contractor enriched;ai_lead_scoreandai_profile_summaryare each charged per contractor only when the model returns usable output (paid Apify plans only). - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxContractors.
FAQ and troubleshooting
A run returned 0 records. Why? The filter combination matched no contractors. Loosen the classification or city filter. Zero-result runs are not charged.
Do I get the street address and bond level?
Yes, when withDetails is on (the default). Each detail page adds addressStreet, zip, fax, bidLimit, expirationDate, extensionDate and licenseStatus.
How do I look up one license?
Pass the exact number in licenseNumbers. You can pass several at once.
Why are the AI fields null?
The AI add-ons are off by default and require a paid Apify plan. Enable withLeadScore or withProfileSummary on a paid plan to populate them.
Is this an official Alabama LBGC tool? No. This actor is independent and has no affiliation with the Alabama Licensing Board for General Contractors. It reads only data that is publicly available in the LBGC license directory.
Related scrapers
- USA Contractor Licenses Scraper: Multi-state contractor licence leads.
- California CSLB Scraper: California contractor licence records.
- Louisiana LSLBC Contractors Scraper: Louisiana contractor licences.
- Nevada NSCB Contractors Scraper: Nevada contractor licences.
- North Carolina NCLBGC Contractors Scraper: North Carolina contractor licences.
- Oregon CCB Contractors Scraper: Oregon contractor licences.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the Alabama Licensing Board for General Contractors. Accesses only publicly available LBGC license data.
