← Health board

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.

9%golden-diff pass
Run it on Apify → verified nightly

Verification

9%golden-diff success
44canary runs
0days since last canary run

Output fields

Authoritative field set from the dataset schema.

FieldType
business_namestring|null
emailstring|null
officersstring|null
dbastring|null
business_structurestring|null
registration_numberstring|null
phonestring|null
faxstring|null
addressstring|null
citystring|null
countystring|null
zip_codestring|null
address_statestring|null
statestring|null
license_numberstring|null
license_typestring|null
statusstring|null
expiration_datestring|null
classificationsstring|null
restrictedstring|null
bid_limitstring|null
aclb_idstring|null
requested_countystring|null
requested_tradestring|null
matched_bystring|null
county_namestring|null
tradestring|null
trade_codestring|null
noticestring|null
notice_typestring|null
source_urlstring|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

FieldTypeReqDefaultDescription
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