← Health board

CIB

Oklahoma Contractor License Lookup & List Scraper (CIB)

Every Oklahoma electrical, mechanical and plumbing licence from the Construction Industries Board: contractors, journeymen, apprentices and inspectors, with licence type, number, status and city. Export a trade or check a name.

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

Verification

75%golden-diff success
4canary runs
0days since last canary run

Output fields

Authoritative field set from the dataset schema.

FieldType
source_urlstring|number|array|object|null
listing_idstring|number|array|object|null
namestring|number|array|object|null
phonestring|number|array|object|null
phone_e164string|number|array|object|null
emailstring|number|array|object|null
websitestring|number|array|object|null
streetstring|number|array|object|null
citystring|number|array|object|null
regionstring|number|array|object|null
postal_codestring|number|array|object|null
countrystring|number|array|object|null
categorystring|number|array|object|null
categoriesstring|number|array|object|null
latstring|number|array|object|null
lngstring|number|array|object|null
sourcestring|number|array|object|null
extrasstring|number|array|object|null
noticestring|null

Sample row

{
  "listing_id": "00192177",
  "name": "ALDER, ALEX A",
  "city": "WILBURTON",
  "country": "US",
  "category": "Plumbing",
  "categories": [
    "Plumbing"
  ],
  "source": "live",
  "source_url": "https://okcibv7prod.glsuite.us/GLSuiteWeb/Clients/OKCIB/Public/LicenseeSearch/Posting.aspx?EntityID=1693095&LicenseID=1436877",
  "extras": {
    "license_type": "Plumbing Journeyman License",
    "license_class": "Journeyman",
    "status": "Active",
    "citation": "No"
  }
}

Inputs

FieldTypeReqDefaultDescription
mode string no "auto" export: no names, just filters; returns the whole matching list. lookup / verify: put person names (matched if contained in the person name) or licence numbers (exact) in 'queries'. auto picks the mode for you.
query string no — A person's name (or listing number) to look up live. Kept alongside 'queries' for saved tasks.
queries array no [] A person's name (or listing number) to look up live. Several values in one run; combined with 'query'.
license_class string no — Only listings in this license_class. Kept alongside 'license_classes' for saved tasks.
license_classes array no [] Only listings in this license_class. Several values in one run; combined with 'license_class'.
status string no — Only listings in this status. Kept alongside 'statuses' for saved tasks.
statuses array no [] Only listings in this status. Several values in one run; combined with 'status'.
city string no — Only listings in this city. Kept alongside 'cities' for saved tasks.
cities array no [] Only listings in this city. Several values in one run; combined with 'city'.
categories array no [] Only rows from this trade (one or more). Available: building-inspector, electrical, electrical-apprentice, home-inspector, mechanical, mechanical-apprentice, plumbing, plumbing-apprentice, plumbing-inspector.
maxResults integer no 500 Per query in lookup mode; per run in export mode.
proxyConfiguration object no {"useApifyProxy":false} Used only for live lookups; exports read the stored snapshot.

Pricing

Pay per result (dataset-item) — no charge for empty runs.
Example: 1000 trade licences at $0.004/result ≈ $4.00.

FAQ

Where does the data come from?

The Oklahoma Construction Industries Board's public licence search (the CIB License Verification site). Lookups search it live; exports read a stored copy of every trade.

Is there a phone, address or email?

No. The board licenses individuals and publishes only the holder's name and city, on the search and on each licence's verification page. No public CIB source carries a street address, phone or email for these licences (checked 2026-10-30).

What about roofing or general contractors?

Oklahoma has no state general-contractor licence. Roofing contractors register separately with the CIB; for them (with phone and address) use the Oklahoma roofing contractor actor in this suite.

Which trades are covered?

The nine options of the board's search: electrical, mechanical, plumbing, electrical-apprentice, mechanical-apprentice, plumbing-apprentice, building-inspector, home-inspector and plumbing-inspector. Put one or more in Trade; leave it empty for all.

How do I get only active contractors?

Set license_class to Contractor and status to Active. license_class takes Contractor, Journeyman, Apprentice or Inspector; status takes the board's own words (Active, Expired, Inactive, …).

How do I look up a person?

Put a last name, "Last, First" or "First Last" in queries. The board matches the last name exactly and the first name as a prefix, and needs at least three letters of the last name. The board's own search shows one licence per person unless a trade is chosen, so each name is searched in all nine trades: about 40 seconds per name. If the live search cannot answer, the stored copy is searched instead and the run says so in a free notice.

Can I verify a licence number?

Yes. Put the number in queries as the board prints it, leading zeros included, and set mode to lookup. The board gives a person one number for all their licences (one holder had five under 00158663), and old numbers repeat across people, so a number usually returns several licences; check the name and licence type. In mode auto or verify, a number with several licences returns one free notice instead of guessing; add license_class (e.g. Contractor) to narrow it.

How current is it?

Lookups are live. Exports read a copy taken on October 30, 2026; the run log states its date, and a copy older than 45 days returns one free notice saying so.

How am I charged?

One event per licence returned. Notices are free.

Guides & use cases