MSBOC
Mississippi Contractor License Lookup & Leads Scraper (MSBOC)
Export every Mississippi State Board of Contractors licence — statewide or by county, classification, city or ZIP — with phone, street address, classifications, expiry date and officers.
Verification
Output fields
Authoritative field set from the dataset schema.
| Field | Type |
|---|---|
business_name | string|null |
license_number | string|null |
license_type | string|null |
status | string|null |
classifications | array|null |
qualifying_names | array|null |
officers | array|null |
issue_date | string|null |
expiration_date | string|null |
address | string|null |
city | string|null |
address_state | string|null |
zip_code | string|null |
county | string|null |
phone | string|null |
fax | string|null |
minority | string|null |
state | string|null |
contractor_id | string|null |
details_status | string|null |
matched_by | string|null |
requested_county | string|null |
requested_classification | string|null |
notice | string|null |
notice_type | string|null |
source_url | string|null |
Sample row
{
"business_name": "LEFLORE CONSTRUCTION LLC",
"license_number": "19113-MC",
"license_type": "Commercial",
"status": "Licensed - Active",
"classifications": [
"BUILDING CONSTRUCTION",
"ELECTRICAL WORK",
"HIGHWAY, STREET AND BRIDGE CONSTRUCTION",
"MECHANICAL WORK"
],
"qualifying_names": [
"MARCO LEFLORE"
],
"officers": [
"KERRY LEFLORE (PRESIDENT)",
"MARCO LEFLORE (VICE-PRESIDENT)"
],
"issue_date": "09/07/2011",
"expiration_date": "09/29/2027",
"phone": "601-214-0125",
"address": "4670 MCWILLIE DRIVE",
"city": "JACKSON",
"address_state": "MS",
"zip_code": "39206",
"county": "Hinds",
"state": "MS",
"minority": "Yes",
"details_status": "ok",
"source_url": "https://search.msboc.us/Detail.cfm?ContractorID=22467&ContractorType=Commercial&varDataSource=BOC"
} Inputs
| Field | Type | Req | Default | Description |
|---|---|---|---|---|
status | string | no | "active" | Which licences to export. 'Active' is every currently licensed contractor (13,186 on 2026-10-07). 'Expired' is the lapsed list (24,033), useful for win-back or compliance checks. |
licenseType | string | no | "any" | Commercial (Board of Contractors commercial licences) or Residential (residential builders, remodelers and trades). 'Any' returns both. |
classification | string | no | — | An MSBOC classification by code or name, e.g. 'E' (Electrical Work), 'S123' (Residential Roofing), 'Building Construction', 'Residential Builder'. An exact class name picks that class; otherwise every class with a word starting with what you typed is searched ('roof' finds both Residential ROOFING and Commercial ROOFING,SHEETMETAL AND SIDING). Leave empty for every classification. A value that matches no class is dropped (logged), never searched as 'all'. |
classifications | array | no | [] | Several classifications in ONE run. Combined with 'Classification' if you fill both. A licence returned by two searches is returned (and billed) once. |
county | string | no | — | Mississippi county, e.g. 'Hinds', 'DeSoto County', 'harrison'. MSBOC assigns the county from the ZIP of the licensee's address, so out-of-state firms are not under any county. Leave empty for the whole state. |
counties | array | no | [] | Several counties in ONE run, e.g. Hinds, Madison and Rankin. Combined with 'County' if you fill both. |
city | string | no | — | City of the licensee's address. MSBOC matches the start of the city name ('JACK' matches JACKSON). |
cities | array | no | [] | Several cities in ONE run. |
zipCode | string | no | — | A 5-digit ZIP code of the licensee's address. |
zipCodes | array | no | [] | Several 5-digit ZIP codes in ONE run. Anything that is not 5 digits is dropped (logged). |
businessName | string | no | — | Part of the company name, e.g. 'ELECTRIC' or 'Smith'. MSBOC matches it anywhere in the name. |
businessNames | array | no | [] | Several company-name searches in ONE run. |
includeDetails | boolean | no | true | Fetch each licence's MSBOC detail page to add its classifications, qualifying names, officers, first-issue and expiry dates, fax, minority flag and (for Mississippi addresses) county. Turn off for a faster export of name, licence number, address and phone only. Same price either way. |
maxResults | integer | no | 500 | Cap on licences returned PER search (each county x classification x city x ZIP x name combination), so adding a county never truncates the ones after it. The whole active roster is about 13,200; set 100000 to take everything a search matches. |
proxyConfiguration | object | no | {"useApifyProxy":false} | Optional. MSBOC answers direct requests; enable a proxy only if runs come back with a 'blocked' notice. |
Pricing
Pay per result (dataset-item) — no charge for empty runs.
Example: 13186 every active Mississippi contractor licence at $0.004/result ≈ $52.74.
FAQ
Where does the data come from?
From the Mississippi State Board of Contractors' public search at search.msboc.us — the results list and each licence's detail page.
How many licences are there?
Counted on MSBOC's search 2026-10-07: 13,186 active (8,043 commercial, 5,143 residential), 24,033 expired, 541 inactive, 1,096 unlicensed, 65 revoked and 24 suspended. 7,397 of the active licensees have a Mississippi address.
Does it return email addresses?
No. MSBOC does not publish email on its search or detail pages, so no row carries one. You get phone, street address, and with details on, fax, officers and qualifying names.
What does 'Include classifications, dates and officers' do?
It fetches each licence's MSBOC detail page, which is the only place classifications, first-issue and expiry dates, officers, fax, the minority flag and the county appear. It is on by default and the price is the same either way; turn it off for a faster export of name, licence, address and phone. If a detail page cannot be read, the row is still returned with details_status 'failed'.
Why is county empty on some rows?
MSBOC assigns a county from the ZIP of a Mississippi address, so out-of-state firms have none. When you search by county, every row carries the county you searched.
How do I name a classification?
By MSBOC code ('E', 'S123', 'B') or by name ('Electrical Work', 'Residential Builder'). An exact name picks that class; otherwise every class with a word starting with what you typed is searched ('roof' finds both roofing classes). The code 'B' is Building Construction on commercial licences and Residential Builder on residential ones, so it searches both unless you set the licence type.
How am I charged?
One event per licence returned ($0.004). A row explaining a source problem or an unusable input is free. maxResults caps each search, so the default run of 500 licences costs $2.00 and the whole active roster costs about $52.74.
Guides & use cases
Related actors