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.
Verification
Output fields
Authoritative field set from the dataset schema.
| Field | Type |
|---|---|
source_url | string|number|array|object|null |
listing_id | string|number|array|object|null |
name | string|number|array|object|null |
phone | string|number|array|object|null |
phone_e164 | string|number|array|object|null |
email | string|number|array|object|null |
website | string|number|array|object|null |
street | string|number|array|object|null |
city | string|number|array|object|null |
region | string|number|array|object|null |
postal_code | string|number|array|object|null |
country | string|number|array|object|null |
category | string|number|array|object|null |
categories | string|number|array|object|null |
lat | string|number|array|object|null |
lng | string|number|array|object|null |
source | string|number|array|object|null |
extras | string|number|array|object|null |
notice | string|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
| Field | Type | Req | Default | Description |
|---|---|---|---|---|
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