← Health board

CIB

Oklahoma Roofing Contractor Directory & Leads (CIB)

Export every Oklahoma CIB-registered roofing contractor statewide: company, registration #, status, phone, address, insurance and workers' comp carrier.

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

Verification

100%golden-diff success
34canary runs
0days since last canary run

Output fields

Authoritative field set from the dataset schema.

FieldType
statestring|null
registration_idinteger|null
license_numberstring|null
business_namestring|null
trade_namestring|null
license_typestring|null
statusstring|null
commercial_endorsementboolean|null
expiration_datestring|null
processed_datestring|null
issue_datestring|null
phonestring|null
faxstring|null
addressstring|null
citystring|null
address_statestring|null
zip_codestring|null
countystring|null
person_namestring|null
company_typestring|null
state_of_formationstring|null
insurance_companystring|null
insurance_expiration_datestring|null
workers_comp_companystring|null
workers_comp_expiration_datestring|null
workers_comp_exemptboolean|null
bond_amountstring|null
bond_companystring|null
matched_bystring|null
noticestring|null
notice_typestring|null
source_urlstring|null

Sample row

{
  "state": "OK",
  "registration_id": 47591,
  "license_number": "80000002",
  "business_name": "S & CM, LLC",
  "trade_name": "MCROOF.US",
  "license_type": "Roofing Contractor Registration",
  "status": "In Good Standing",
  "commercial_endorsement": true,
  "expiration_date": "2027-11-30",
  "processed_date": "2026-09-29",
  "phone": "(405) 877-7663",
  "address": "722 ENTERPRISE DR #150",
  "city": "EDMOND",
  "address_state": "OK",
  "zip_code": "73013",
  "fax": null,
  "person_name": "SCOTT A MCCOLLUM,SR",
  "company_type": "LLC",
  "state_of_formation": "OK",
  "insurance_company": "WESTERN WORLD IN CO",
  "insurance_expiration_date": "2027-06-26",
  "workers_comp_company": "TRAVELERS CAS & SURETY CO",
  "workers_comp_expiration_date": "2027-07-01",
  "workers_comp_exempt": false,
  "county": null,
  "matched_by": "statewide_export",
  "source_url": "https://verify.cib.hbesystems.com/roofing/search"
}

Inputs

FieldTypeReqDefaultDescription
statuses array no ["In Good Standing"] Which CIB statuses to export: 'In Good Standing', 'Not In Good Standing', 'Expired', 'Expired - for non-renewal', 'Pending', or 'all'. Case and punctuation do not matter. Left empty, only 'In Good Standing' registrations are returned. A value that is not a CIB status is dropped (never widened to every status).
status string no — One status, same values as 'Registration statuses'. Combined with that list if you fill both.
cities array no [] Only registrations whose business address is in one of these cities (e.g. 'Oklahoma City', 'Tulsa', 'Edmond'). Exact city name, case-insensitive. Left empty, the export is statewide. Registrants based out of state keep their own city.
city string no — One city, same as 'Cities'. Combined with that list if you fill both.
maxResults integer no 500 Cap on rows returned for the whole run. The registry held 1,924 In Good Standing registrations and 6,069 in all statuses on 2026-10-14, so 2,000 covers every active roofer and 10,000 covers everything. Default 500.
proxyConfiguration object no {"useApifyProxy":false} Off by default: the CIB registry is a public, keyless JSON service. Turn a proxy on only if a run returns a 'blocked' notice saying the source did not answer.

Pricing

Pay per result (dataset-item) — no charge for empty runs.
Example: 1924 roofing contractor records at $0.002/result ≈ $3.85.

FAQ

Where does the data come from?

The Oklahoma Construction Industries Board's public roofing registry search at verify.cib.hbesystems.com. The actor reads the same public JSON that page uses; no login or key is involved.

How many records are there?

On 2026-10-14 the registry held 6,069 roofing records: 1,924 In Good Standing, 3,129 Expired - for non-renewal, 377 Expired, 332 Not In Good Standing and 307 Pending applications. 1,565 of the 1,924 active registrants have an Oklahoma address; the rest are out-of-state firms registered to work in Oklahoma.

Can I filter by county or get email addresses?

No. CIB publishes neither a county nor an email for roofing registrants. Filter by city instead; the county field is always null.

How am I charged?

$0.002 per registration returned. The full active registry is about $3.85. Rows that only explain a problem (no match, source down, budget reached) are free.

How current is the data?

Each run reads the live registry, so it is as current as CIB's own search page.

Why do some registration numbers repeat?

CIB has reused numbers across firms: on 2026-10-14, 228 numbers appeared on more than one record, 221 of them under different companies (18 among active registrations, all different companies). Every record is kept, keyed on CIB's unique record id.

Guides & use cases

Related actors