Oregon Contractor License Scraper — CCB avatar

Oregon Contractor License Scraper — CCB

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Oregon Contractor License Scraper — CCB

Oregon Contractor License Scraper — CCB

Extract licensed contractors from the Oregon Construction Contractors Board (CCB). Get license number, business name, phone, address, license type, bond & liability insurance details, RMI and expiry date — for B2B leads, insurance, compliance & market research.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Extract licensed contractors from the Oregon Construction Contractors Board (CCB) — the official registry of licensed contractors in Oregon. Filter by county and license type, and get clean records for every contractor: license number, business name, phone, address, license type, bond details, liability insurance, responsible managing individual (RMI), endorsements and expiry date.

No code, no login. Run it from the Apify Console, on a schedule, or from your own app via the API. Results download as JSON, CSV, Excel, HTML or XML, or sync straight into Google Sheets, Airtable, HubSpot, Make, Zapier and n8n.

🏗️ Built for B2B lead generation, compliance & insurance. Every record carries the license, phone, bond and liability-insurance details — a rare combination that makes this ideal for insurance, bonding, supplier and compliance use cases.


📋 What this scraper does

The Oregon CCB licenses every construction contractor operating in the state (~56,000 licensees). This actor turns that public registry into a clean, structured dataset you can filter, analyse or feed into a CRM.

Pick your counties and license types, and it will:

  • ✅ Collect every matching licensed contractor
  • ✅ Return the license number, type and status (Active / Expired)
  • ✅ Capture the business name, phone and full address
  • ✅ Include bond company + amount and liability insurance company + amount
  • ✅ Add the Responsible Managing Individual (RMI) and endorsements
  • ✅ Report license and registration dates
  • ✅ Filter to active licenses only and by license type
  • ✅ De-duplicate every contractor by license number

⭐ Why choose this scraper

  • Bond + insurance details. Most state registries don't publish these — Oregon does, and this actor captures them. Perfect for insurance and surety products.
  • Official license data. Straight from the Oregon Construction Contractors Board.
  • Ready-to-use leads. Business name, phone and address for every licensed contractor.
  • Trade & region targeting. Filter by license type (residential/commercial/specialty) and county.
  • Fast and complete. The entire state in a single run — no anti-bot, no slow browser.

Use caseHow this scraper helps
Insurance & bondingReach contractors by type, bond and insurance limits for liability, WC and surety products.
B2B lead generationBuild targeted lists of licensed contractors for suppliers, SaaS and services.
License & compliance verificationCheck license number, status, expiry, bond and insurance for due diligence.
Construction market researchMeasure contractors, types and coverage across Oregon counties.
Supplier & distributor salesFind contractors by type and county to sell materials and equipment.
Data products & dashboardsFeed a clean licensed-contractor feed into BI tools or a database.

🚀 Quick start

  1. (Optional) Enter one or more Counties (e.g. Multnomah, Washington, Lane).
  2. (Optional) Pick License types (e.g. RGC — Residential General Contractor).
  3. Keep Active licenses only on for outreach.
  4. Set Max contractors and click Start.
  5. Download your data from the Storage → Dataset tab.

⚙️ Input

FieldTypeDescription
CountiesarrayOregon counties, e.g. Multnomah, Washington, Clackamas, Lane. Empty = all of Oregon.
License typesmulti-selectFilter by CCB license type (RGC, RSC, CGC1/2, CSC1/2, LBPR, ...). Empty = all.
Active licenses onlybooleanKeep only non-expired licenses (recommended).
Max contractorsintegerCap on total contractors. 0 = all (~56,000).
ProxyobjectOptional — the open-data API has no anti-bot.

Example 1 — Residential general contractors in Portland metro

{
"counties": ["Multnomah", "Washington", "Clackamas"],
"licenseTypes": ["RGC"],
"activeOnly": true,
"maxItems": 2000
}

Example 2 — All commercial contractors statewide

{
"licenseTypes": ["CGC1", "CGC2", "CSC1", "CSC2"],
"activeOnly": true,
"maxItems": 5000
}

Example 3 — Everything in Lane County

{
"counties": ["Lane"],
"activeOnly": true,
"maxItems": 1000
}

📦 Output

Each contractor becomes one dataset record:

{
"licenseNumber": "100310",
"businessName": "HABITAT FOR HUMANITY PORTLAND METRO EAST",
"licenseType": "RGC",
"status": "Active",
"phone": "9713034180",
"address": "...",
"city": "PORTLAND",
"state": "OR",
"zip": "97211",
"county": "Multnomah",
"rmiName": "JESSE GUINN WITHERS",
"bondCompany": "TRAVELERS CASUALTY & SURETY CO OF AMERICA",
"bondAmount": "25000",
"bondExpires": "07/30/2026",
"insuranceCompany": "ACE AMERICAN INSURANCE CO",
"insuranceAmount": "1000000",
"insuranceExpires": "07/30/2026",
"endorsements": "Residential General Contractor",
"licenseExpires": "07/30/2026",
"originalRegistration": "06/20/1994",
"scrapedAt": "2026-07-03T00:00:00.000Z"
}

Output fields

FieldDescription
licenseNumberCCB license number (used for de-duplication).
businessNameBusiness / licensee name.
licenseTypeLicense type (RGC, RSC, CGC1/2, ...).
statusActive or Expired (by license expiry date).
phone / address / city / state / zipContact and location.
countyOregon county.
rmiNameResponsible Managing Individual.
bondCompany / bondAmount / bondExpiresSurety bond details.
insuranceCompany / insuranceAmount / insuranceExpiresLiability insurance details.
endorsementsLicense endorsements.
licenseExpires / originalRegistrationLicense dates.
scrapedAtExtraction timestamp.

🏗️ License types

RGC Residential General Contractor · RSC Residential Specialty Contractor · CGC1/CGC2 Commercial General Contractor (Level 1/2) · CSC1/CSC2 Commercial Specialty Contractor (Level 1/2) · LBPR Lead-Based Paint Renovator · RLC Residential Limited Contractor · RD/CD Developer · plus locksmith, home inspector, home services and energy-score endorsements.


🗺️ Counties

All 36 Oregon counties are supported — e.g. Multnomah (Portland), Washington, Clackamas, Lane (Eugene), Marion (Salem), Deschutes (Bend), Jackson (Medford). Leave empty for the whole state.


🧭 Tips for best results

  • Use bond & insurance fields — they're the differentiator for insurance and surety outreach.
  • Filter by license type to target residential vs commercial contractors.
  • Keep activeOnly on for outreach; turn it off for full historical coverage.
  • Leave counties empty for the whole state in one run.
  • Schedule runs to track new licenses, renewals and expirations over time.

🔌 Integrations & export

  • Download formats: JSON, CSV, Excel, HTML, XML, RSS.
  • CRM / Sheets / Airtable / Make / Zapier / n8n: push results automatically.
  • API: run and fetch data with the Apify API or the JS / Python clients.
  • Scheduling: run on a schedule to keep an always-fresh contractor database.

❓ FAQ

Do I need a CCB account or API key? No. You only need an Apify account.

Which contractors are covered? Every contractor licensed by the Oregon Construction Contractors Board (~56,000).

Does it include bond and insurance? Yes — bond company/amount and liability insurance company/amount are included, which most states don't publish.

Is email included? No — the CCB registry publishes phone and address, not email. Phone is on nearly every record.

Does it return duplicates? No. Contractors are de-duplicated by license number.


This actor collects publicly available license information that the Oregon Construction Contractors Board publishes as open data. It does not log in or access private data. Respect the Board's terms of use and applicable law, and use the data for lawful purposes such as license verification, compliance, insurance, market research and B2B outreach.


🛟 Support

Need an extra field or hit an issue? Open a ticket from the actor's Issues tab with your input configuration.

Happy sourcing! 🏗️