Alabama LBGC General Contractor License Scraper avatar

Alabama LBGC General Contractor License Scraper

Pricing

from $17.00 / 1,000 contractor records

Go to Apify Store
Alabama LBGC General Contractor License Scraper

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

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Categories

Share

Alabama LBGC General Contractor License Scraper

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

Apify Coverage Output Billing

Table of contents

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

FieldTypeRequiredDefaultDescription
classificationsstring[]no["BC"]Filter by specialty classification code or text, for example BC, BC-S, Building Construction, Electrical. Any match kept.
citiesstring[]no(none)Filter to Alabama cities, for example Birmingham, Montgomery, Huntsville, Mobile.
companyNamesstring[]no(none)Filter by business name. Partial names match.
licenseNumbersstring[]no(none)Look up specific license numbers (exact match).
phoneNumbersstring[]no(none)Filter by phone number (digits matched, formatting ignored).
withDetailsbooleannotrueWhen on, each contractor is enriched from its detail page with street address, ZIP, fax, bid limit and expiration. Billed per contractor enriched (details event).
withLeadScorebooleannofalsePaid AI add-on. Score each contractor 0 to 100 as a B2B lead with tier and rationale. Charged per contractor scored.
withProfileSummarybooleannofalsePaid AI add-on. Write a concise business profile summary. Charged per contractor summarised.
maxContractorsintegerno50Maximum 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.

FieldTypeDescription
licenseNumberstringLBGC license number.
businessNamestringLicensed business name.
citystringCity.
statestringState (always AL).
specialtystringFull specialty classification text.
specialtyCodestringPrimary specialty code, for example BC.
phonestringContact phone, or null.
addressStreetstringStreet address (with withDetails), or null.
zipstringZIP code (with withDetails), or null.
faxstringFax number (with withDetails), or null.
bidLimitstringBid limit or bond level (with withDetails), or null.
expirationDatestringLicense expiration date (with withDetails), or null.
extensionDatestringLicense extension date (with withDetails), or null.
licenseStatusstringLicense status, for example ACTIVE, EXPIRED (with withDetails), or null.
detailFetchedbooleantrue when the detail page was successfully fetched.
aiLeadScoreintegerAI B2B lead score 0 to 100 when the add-on is enabled, else null.
aiLeadTierstringAI lead tier (hot/warm/cold) when enabled, else null.
aiLeadRationalestringAI rationale for the score when enabled, else null.
aiProfileSummarystringAI profile summary when the add-on is enabled, else null.
sourcestringAlways Alabama Licensing Board for General Contractors (LBGC).
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringPresent 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:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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 (result event). See the pricing tab for the current per-result price.
  • Add-ons billed separately. details is charged per contractor enriched; ai_lead_score and ai_profile_summary are 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 error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on 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.

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.