NC Licensing Board for General Contractors Scraper
Pricing
from $2.00 / 1,000 results
NC Licensing Board for General Contractors Scraper
Scrape NC Licensing Board (NCLBGC) general contractor licenses. Search by license number, company, qualifier, city or classification. Returns status, limitations, qualifiers, classifications and expiration data.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape the North Carolina Licensing Board for General Contractors (NCLBGC) public portal at portal.nclbgc.org. Retrieve contractor license status, classification types, project limitation levels, qualifier details, expiration dates and disciplinary actions for any licensed general contractor in North Carolina.
45,000+ active licenses · 30+ classification types · Limited / Intermediate / Unlimited levels · Qualifier data · n8n / Zapier / Make ready
Table of Contents
- What It Scrapes
- Input Parameters
- Output Schema
- Example Input & Output
- Use Cases
- Automation Platform Integration
- Output Formats
- Classification Types Reference
- Limitation Levels Reference
- Technical Architecture
- Cost & Performance
- FAQ
What It Scrapes
The actor extracts the following fields from the NCLBGC public license portal for each contractor record:
License Record Fields
| Field | Description |
|---|---|
licenseNumber | NCLBGC license number |
licenseStatus | Active, Inactive, Expired, or Revoked |
companyName | Registered business / company name |
licenseType | General, Residential, Specialty, etc. |
limitation | Project value cap: Limited ($500K), Intermediate ($1M), or Unlimited |
classifications | All classification codes held by this license (array) |
primaryQualifier | Name of the primary qualifier on the license |
qualifierNumber | Qualifier ID number |
qualifiers | Full qualifier list with name, qualifier number and classification (array) |
phone | Business phone number as listed on NCLBGC record |
streetAddress | Business street address |
city | Business city |
state | Business state (typically NC) |
zip | Business ZIP code |
expirationDate | License expiration date (YYYY-MM-DD) |
issueDate | License original issue date (YYYY-MM-DD) |
disciplinaryActions | Array of disciplinary action records if any |
profileUrl | Direct URL to the contractor's NCLBGC detail page |
scrapedAt | ISO 8601 timestamp of when the record was scraped |
Input Parameters
{"licenseNumbers": ["76235"],"companyNames": ["Smith Construction"],"qualifierFirstNames": ["John"],"qualifierLastNames": ["Smith"],"cities": ["Raleigh", "Charlotte"],"zipCodes": ["27601"],"classificationType": "Building","includeLikeSoundingNames": false,"maxResultsPerSearch": 100,"scrapeDetailPage": true,"maxConcurrency": 3,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Parameter Reference
| Parameter | Type | Default | Description |
|---|---|---|---|
licenseNumbers | string[] | [] | NCLBGC license numbers for direct lookup. Fastest method. |
companyNames | string[] | [] | Business names to search. Partial matching supported. |
qualifierFirstNames | string[] | [] | First name(s) of the qualifier. Pair with Last Names for precision. |
qualifierLastNames | string[] | [] | Last name(s) of the qualifier. |
cities | string[] | [] | NC city names for area-wide searches. |
zipCodes | string[] | [] | ZIP codes for hyper-local searches. |
classificationType | string | "ALL" | Filter by classification. See Classification Types Reference below. |
includeLikeSoundingNames | boolean | false | Expand name searches to phonetically similar names. |
maxResultsPerSearch | integer | 100 | Max records per query. 0 = unlimited. |
scrapeDetailPage | boolean | true | Navigate each detail page for complete data (qualifiers, issue date, disciplinary actions). |
maxConcurrency | integer | 3 | Parallel browser tabs. Recommended: 2–5. |
proxyConfiguration | object | Apify residential | Proxy settings. |
Search modes can be freely combined. Supplying both licenseNumbers and cities runs one search job per entry across all modes in a single actor run.
Output Schema
{"licenseNumber": "76235","licenseStatus": "Active","companyName": "Smith Construction Company LLC","licenseType": "General","limitation": "Unlimited","classifications": ["Building", "Residential"],"primaryQualifier": "John A. Smith","qualifierNumber": "Q-12345","qualifiers": [{"name": "John A. Smith","qualifierNumber": "Q-12345","classification": "Building"}],"phone": "(919) 555-0100","streetAddress": "1234 Main Street Suite 200","city": "Raleigh","state": "NC","zip": "27601","expirationDate": "2025-12-31","issueDate": "2008-03-15","disciplinaryActions": null,"profileUrl": "https://portal.nclbgc.org/Public/LicenseDetail/76235","scrapedAt": "2026-04-15T10:30:00.000Z"}
Example Input & Output
Example 1 — Direct license number lookup
{"licenseNumbers": ["76235", "45678"],"scrapeDetailPage": true}
Example 2 — All active building contractors in Charlotte
{"cities": ["Charlotte"],"classificationType": "Building","maxResultsPerSearch": 200,"scrapeDetailPage": true}
Example 3 — Bulk contractor verification list
{"licenseNumbers": ["10001", "10002", "10003", "10004", "10005"],"scrapeDetailPage": true,"maxConcurrency": 5,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Example 4 — Qualifier name search (find all licenses held by a person)
{"qualifierFirstNames": ["John"],"qualifierLastNames": ["Smith"],"includeLikeSoundingNames": true,"scrapeDetailPage": true}
Example 5 — Roofing contractors in a specific ZIP code
{"zipCodes": ["28202"],"classificationType": "S (Roofing)","maxResultsPerSearch": 50,"scrapeDetailPage": false}
Use Cases
Contractor Verification & Compliance
Instantly verify that a general contractor holds an active NCLBGC license before signing any agreement. In North Carolina, a general contractor license is required for any construction project valued at $30,000 or more. Confirm the license classification matches the project scope and that the limitation level covers the project value.
Lead Generation & Sales Intelligence
Build targeted lists of licensed contractors by trade classification, city or ZIP code. Identify companies by limitation tier (Unlimited contractors typically handle larger projects). Enrich existing CRM records with phone numbers, addresses and qualifier contacts.
Market Research & Competitive Analysis
Map contractor density across North Carolina municipalities and trade types. Understand market saturation in specific classifications (Building, Residential, Roofing, etc.). Track license issuance trends and renewal patterns.
Real Estate & Development Due Diligence
Verify subcontractors and general contractors used in renovation, development or construction projects. Cross-reference license numbers found in permit records with NCLBGC data.
Risk & Background Screening
Screen vendors and subcontractors for disciplinary actions, expired licenses, and inactive status before onboarding. Identify contractors who have had consent orders or disciplinary proceedings.
Legal & Insurance Research
Attorneys and insurers can pull license history, qualifier details, disciplinary records and limitation levels for litigation support, underwriting decisions or claims investigation.
Workforce & Qualifier Intelligence
Track individual qualifiers across multiple licenses. Understand which qualifiers support multiple companies. Identify qualifiers who have recently moved between organizations.
Automation Platform Integration
This actor is fully compatible with leading no-code and low-code automation platforms.
n8n
Use the Apify node in n8n to run this actor on a schedule and route results to Google Sheets, Airtable, a CRM, Slack or a database.
{"resource": "actor","operation": "run","actorId": "YOUR_USERNAME/nc-licensing-board-general-contractors-scraper","input": {"licenseNumbers": ["{{ $json.licenseNumber }}"],"scrapeDetailPage": true}}
Zapier
Connect via the Apify Zapier integration. Trigger a run when a new lead enters your CRM, look up the license number automatically, and update the record with status, limitation and qualifier data.
Make (Integromat)
Use the Apify HTTP module or the official Make–Apify integration to schedule daily or weekly refreshes of a contractor monitoring list.
Webhook / REST API
Start runs programmatically via the Apify API:
curl -X POST \"https://api.apify.com/v2/acts/YOUR_USERNAME~nc-licensing-board-general-contractors-scraper/runs" \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"licenseNumbers": ["76235"],"scrapeDetailPage": true}'
Output Formats
Apify delivers results in multiple formats with no additional configuration:
| Format | Notes |
|---|---|
| JSON | Full nested objects including qualifiers[], classifications[] and disciplinaryActions[] arrays |
| CSV | Arrays serialized as pipe-delimited strings; ideal for Excel / Google Sheets |
| Excel (XLSX) | Direct download for spreadsheet workflows |
| XML | For legacy enterprise system integrations |
| JSONL | Newline-delimited JSON; ideal for streaming data pipelines |
| RSS | Monitor status changes via RSS reader |
Access these from Apify Console → Storage → Dataset → Export or via the REST API at /datasets/{id}/items?format={format}.
Classification Types Reference
The NCLBGC issues licenses in 30+ classification types grouped by trade:
General Classifications
| Code | Description | Typical Projects |
|---|---|---|
Building | General building contractor | Commercial, industrial, institutional construction |
Residential | Residential construction | Homes, townhouses, condominiums |
Highway | Highway & infrastructure | Roads, bridges, infrastructure |
Public Utilities | Public utility projects | Water, sewer, gas, communications |
Unclassified | Unclassified general work | Miscellaneous |
Specialty Classifications (S)
| Code | Description |
|---|---|
S (Roofing) | Roofing installation and repair |
S (Concrete Construction) | Concrete work |
S (Masonry Construction) | Masonry, brick and block work |
S (Interior Construction) | Interior finish work |
S (Swimming Pools) | Pool construction |
S (Metal Erection) | Structural and ornamental metal |
S (Insulation) | Insulation installation |
S (Asbestos) | Asbestos abatement |
S (Marine Construction) | Docks, piers, marine structures |
S (Wind Turbine) | Wind energy construction |
S (Sign/Billboard) | Signage and billboards |
S (Sidewalk Curb & Gutter) | Concrete flatwork |
S (Railroad Construction) | Railroad infrastructure |
S (Boring & Tunneling) | Underground boring |
Highway Sub-Classifications (H)
| Code | Description |
|---|---|
H (Grading & Excavating) | Earthmoving and site preparation |
Public Utility Sub-Classifications (PU)
| Code | Description |
|---|---|
PU (Water Lines) | Potable water distribution |
PU (Sewer Lines) | Sanitary sewer systems |
PU (Sewage Disposal) | Sewage treatment |
PU (Water Purification) | Water treatment plants |
PU (Communications) | Telecommunications infrastructure |
PU (Fuel Distribution) | Gas and fuel pipelines |
PU(Electrical-Ahead of P.O.D.) | Electrical utility work |
Accredited Programs
| Code | Description |
|---|---|
Accredited Builder | NCHBA Accredited Builder program |
Accredited Master Builder | NCHBA Accredited Master Builder program |
Full classification details: nclbgc.org
Limitation Levels Reference
North Carolina general contractor licenses carry a financial limitation that caps the total project value the contractor is authorized to undertake:
| Limitation | Max Project Value | Typical Use |
|---|---|---|
| Limited | $500,000 | Smaller residential and light commercial projects |
| Intermediate | $1,000,000 | Mid-size commercial and residential |
| Unlimited | No cap | Large commercial, institutional, public works |
The limitation level is determined by the contractor's financial statement during licensing and must be renewed annually.
Important: A contractor bidding on a project that exceeds their limitation level is in violation of NC law. Always verify the limitation matches the project scope.
Technical Architecture
Target Platform
The NCLBGC contractor search portal runs on ASP.NET MVC at portal.nclbgc.org. This is a traditional server-rendered web application — search results are returned as full HTML pages containing a data table. There is no public REST API or JSON endpoint.
Scraping Strategy
- PlaywrightCrawler (Crawlee) opens a headless Chromium browser and navigates to the search form at
/Public/Search. - The actor fills in the appropriate form fields and submits the search.
- The server returns a rendered HTML page with a results
<table>. The actor parses each<tr>row by its column header positions. - For each result, the actor navigates to
/Public/LicenseDetail/{id}to collect complete data including all qualifiers, issue date, and disciplinary actions. - Normalised records are pushed to the Apify Dataset.
Form Submission Approach
The NCLBGC portal uses standard HTTP POST form submission. The actor fills fields by name attribute (CompanyName, LicenseNumber, ClassificationType, etc.) and submits via button click. Session cookies are maintained automatically by Playwright's browser context.
Bot Protection Handling
- Fingerprint injection: Crawlee randomises browser fingerprints (User-Agent, Accept-Language, viewport, WebGL, Canvas) per session.
- Apify Residential Proxies: Each request routes through a different residential IP.
- Session rotation: Bad sessions are automatically retired and replaced.
- Randomised timing: Human-like delays (0.5–2 seconds) between interactions.
- Retry logic: Failed requests are retried up to 3 times with exponential back-off.
Cost Efficiency
- The NCLBGC portal is lightweight ASP.NET — pages load quickly compared to JavaScript-heavy SPAs.
scrapeDetailPage: falseskips detail navigation for fast bulk status checks.maxConcurrencyof 3–5 balances throughput against proxy cost and memory.
Cost & Performance
| Scenario | Records | Detail Pages | Est. Duration | Est. CUs |
|---|---|---|---|---|
| Single license lookup | 1 | Yes | ~20 sec | 0.01 |
| 50 licenses (bulk verify) | 50 | Yes | ~10 min | 0.6 |
| City-wide search (Charlotte Building) | 200+ | No | ~10 min | 0.8 |
| Full classification scrape (S Roofing statewide) | 500+ | Yes | ~45 min | 4.0 |
Estimates with maxConcurrency: 3 and Apify residential proxies.
FAQ
Q: Does this actor require an NCLBGC account or login?
A: No. It uses the publicly accessible license search at portal.nclbgc.org/Public/Search. No credentials are required.
Q: Is the data real-time? A: Yes. Each run fetches live data directly from the NCLBGC portal. License statuses, expiration dates and qualifier information reflect the current state of the board's database.
Q: What does limitation: "Unlimited" mean?
A: An Unlimited license has no cap on the total project value the contractor can undertake. Limited caps at $500,000 and Intermediate caps at $1,000,000 per project.
Q: What is a "qualifier"? A: A qualifier is the individual who passed the required NCLBGC licensing exams on behalf of the company. The qualifier must remain actively employed by the licensee for the license to stay valid. If a qualifier leaves, the license may become inactive until a replacement is approved.
Q: Can I search for all licenses held by one qualifier?
A: Yes. Use qualifierFirstNames and qualifierLastNames inputs. The portal returns all licenses associated with that qualifier. Enable includeLikeSoundingNames if you are unsure of the exact spelling.
Q: What proxy type is recommended? A: Apify residential proxies are recommended for production runs. The NCLBGC portal may apply rate limiting for unusual traffic patterns from datacenter IPs.
Q: Can I run this on a schedule to monitor license status changes?
A: Yes. Use the Apify Scheduler to run daily or weekly with a fixed list of licenseNumbers. Combine with Apify webhooks to receive alerts when a contractor's status or expiration date changes.
Q: What happens if a contractor has multiple classifications?
A: The list page may show only the primary classification. Enabling scrapeDetailPage: true navigates to the full detail page where all classifications are listed and returned as an array in the classifications field.
Legal Notice
This actor scrapes the publicly accessible NCLBGC contractor search portal. All data is public information provided by the North Carolina Licensing Board for General Contractors. Use the data in compliance with applicable laws and the Apify Terms of Service. Do not use the data for spam, harassment, or any purpose prohibited by North Carolina law.