ACLB
Arkansas Contractor Directory & Leads Scraper (ACLB)
Every licensed Arkansas contractor in a county, by trade — business name, email, phone, mailing address, officers, licence, trades and bid limit — from the Arkansas Contractors Licensing Board.
Verification
Output fields
Authoritative field set from the dataset schema.
| Field | Type |
|---|---|
business_name | string|null |
email | string|null |
officers | string|null |
dba | string|null |
business_structure | string|null |
registration_number | string|null |
phone | string|null |
fax | string|null |
address | string|null |
city | string|null |
county | string|null |
zip_code | string|null |
address_state | string|null |
state | string|null |
license_number | string|null |
license_type | string|null |
status | string|null |
expiration_date | string|null |
classifications | string|null |
restricted | string|null |
bid_limit | string|null |
aclb_id | string|null |
requested_county | string|null |
requested_trade | string|null |
matched_by | string|null |
county_name | string|null |
trade | string|null |
trade_code | string|null |
notice | string|null |
notice_type | string|null |
source_url | string|null |
Sample row
{
"business_name": "KETCHER AND COMPANY, INC.",
"email": "kristy@ketcherandco.com",
"phone": "501-372-5216",
"fax": "501-372-0949",
"address": "PO BOX 5271",
"city": "NORTH LITTLE ROCK",
"county": "Pulaski",
"zip_code": "72119",
"state": "AR",
"officers": "President: Henry Ketcher, Vice President: Hank Ketcher III, President: Henry H Ketcher III",
"dba": null,
"business_structure": "Corporation",
"license_type": "Commercial",
"status": "Valid",
"expiration_date": "06/30/2027",
"classifications": "Roofing, Roof Decks, Roofing Sheet Metal",
"bid_limit": "UNLIMITED",
"aclb_id": "2247",
"license_number": "0006000627",
"requested_county": "Pulaski",
"requested_trade": "Roofing, Roof Decks, Roofing Sheet Metal",
"source_url": "http://aclb2.arkansas.gov/clbsearch.php"
} Inputs
| Field | Type | Req | Default | Description |
|---|---|---|---|---|
listOptionsOnly | boolean | no | false | If true, skip the scrape and return the 75 Arkansas counties plus every trade the Arkansas Contractors Licensing Board (ACLB) licenses, with its code. Free, not charged. Use it to find the exact trade name before a real run. |
trade | string | no | "Roofing" | An ACLB trade (specialty or classification), by name or code, e.g. 'Roofing', 'Plumbing', 'Residential Builder', 's_1899'. A word from the name works too: 'roof' finds Roofing but not Fireproofing. Leave it empty to get every trade in the county. |
trades | array | no | ["Roofing","Concrete"] | Several trades in ONE run, e.g. Roofing and Plumbing and Concrete. Combined with 'Trade' if you fill both. Every trade is searched in every county, and a contractor holding two of them is returned (and billed) once, not twice. |
county | string | no | "Pulaski" | Arkansas county, e.g. 'Pulaski', 'Benton County', 'saint francis'. Case, punctuation and a trailing 'County' do not matter. Leave it empty with a trade set to search all of Arkansas. If it is not an Arkansas county, the run returns the free county and trade lists instead of failing. |
counties | array | no | ["Pulaski","Faulkner"] | Several counties in ONE run, e.g. Pulaski and Faulkner and Saline. Combined with 'County' if you fill both. |
validOnly | boolean | no | true | Return only contractors whose licence ACLB lists as valid (a few show 'Call ACLB to confirm'). Turn off to include expired and invalid licences too. |
workType | string | no | "all" | Commercial licences, residential licences, or both. |
maxResults | integer | no | — | Cap on the contractors returned PER county + trade search, not per run, so adding counties can never silently truncate the ones later in the list. Leave empty to return every match. |
proxyConfiguration | object | no | {"useApifyProxy":false} | Optional. ACLB 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: 129 Pulaski County roofing contractors at $0.002/result ≈ $0.26.
FAQ
Where does the data come from?
Two ACLB sources. The filter and core licence fields come from ACLB's public licence search at aclb2.arkansas.gov. Email, officers, DBA and business structure come from ACLB's free nightly roster (latestroster.csv), matched to each search row by ACLB ID.
Can't I just download ACLB's roster myself?
Yes, and if you want the whole state once, you should: it is free. This actor is for when you want a county and a trade on demand, already filtered, deduplicated, matched to the search's licence fields, and repeatable on a schedule.
How many contractors does a county return?
Counted on the live search 2026-09-28, valid licences, all trades: Pulaski 1,712, Benton 1,387, Washington 1,052, Garland 607, Sebastian 449, Chicot 28. Pulaski roofers alone are 129.
Why is a residential licence number only four digits?
That is what ACLB shows: for residential licences its 'License No.' column holds only a month-and-year suffix such as '1226'. Use aclb_id to identify those firms; this actor does.
How do I name a trade?
By name ('Roofing', 'Plumbing', 'Residential Builder'), by a word from the name ('roof' finds Roofing but not Fireproofing), or by ACLB code ('s_1899'). Turn on Discovery Mode to get all 141 trades with their codes, free.
Why is email empty on some rows?
Email is null when ACLB has none on file for that firm, when the firm was not in that night's roster, or when the roster download failed and the row shipped without the roster fields.
What does 'Call ACLB to confirm' mean?
ACLB's own status column says 'Call' for a few licences instead of Yes or No — the board wants a phone call before it vouches for them. We pass that through rather than guess. It was 3 of 129 Pulaski roofers.
How am I charged?
One event per contractor returned ($0.002). A contractor that matches two of your searches is returned and charged once. The county and trade lists, and any row explaining a source problem, are free.
Guides & use cases
Related actors