New Mexico RLD Contractor License Scraper (CID)
Pricing
from $20.80 / 1,000 licensee records
New Mexico RLD Contractor License Scraper (CID)
Export New Mexico RLD Construction Industries Division licensees: name, license #, classification, street address, city, ZIP, phone, status, issue/expiry dates, volume limit & qualifying party. JSON, CSV or Excel.
Pricing
from $20.80 / 1,000 licensee records
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
New Mexico RLD Contractor License Scraper (CID)
Here is one real result, with every field the actor returns:
{"licenseNumber": "33294","name": "CARLSON, B. HEATING, COOLING & PLUMBING, INC","licenseType": "Contractor","classification": "MM98","addressStreet": "8625 PASEO ALAMEDA NE","city": "ALBUQUERQUE","state": "NM","zip": "87113","phone": "5058831379","licenseStatus": "Active","issueDate": "10/14/1991","expiryDate": "10/31/2027","monetaryLimit": "$1000000.00 +","qualifyingPartyName": "JEREMY LARSON","qualifyingPartyCertificate": "418323","detailFetched": true,"source": "New Mexico RLD Construction Industries Division (CID)","observedAt": "2026-08-11T13:04:18.005Z"}
The most complete New Mexico RLD Construction Industries Division (CID) license scraper available. It returns every field the CID verification pages expose for each licensee, including phone, monetary volume limit and the qualifying party, and gives you eight filters to target exactly the licenses you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches the New Mexico Regulation and Licensing Department (RLD) Construction Industries Division (CID) public license verification system for the cities, names or license numbers you pass as input, paginates through the matching licensees, optionally opens each detail page for the full record, applies your status and classification filters, and writes one normalized record per licensee to the run's dataset. It covers contractor, LP-Gas and manufactured-housing (MHD) license categories, in either company or individual mode. Missing source values are returned as null.
When full details are enabled (default), each record is enriched with the phone number, monetary volume limit, issue date, and the qualifying party's name, certificate number and classification code from the licensee detail page.
Quickstart
Open the actor, paste this into the input, and press Run. It returns up to 10 Albuquerque contractor licensees with full details.
{"searchMode": "company","licenseType": "Contractor","cities": ["ALBUQUERQUE"],"withDetails": true,"maxContractors": 10}
Provide at least one search criterion: a city, a name, or a license number. One search runs per city and per name term.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchMode | enum | no | company | Search company (contractors, LP-Gas and MHD businesses) or individual (certificate holders / qualifying parties). |
licenseType | enum | no | Contractor | CID license category in company mode. One of Contractor, LP-Gas, MHD-Broker, MHD-Crossover, MHD-Dealer, MHD-Installer, MHD-Manufacturer, MHD-Salesperson. |
cities | string[] | no | ["ALBUQUERQUE"] | New Mexico cities to pull, for example Albuquerque, Santa Fe, Las Cruces, Rio Rancho. One search runs per city. |
businessNames | string[] | no | (empty) | Business-name terms (or last names in individual mode). Partial matches work. One search runs per term. |
firstName | string | no | (empty) | First name, used only in individual mode. |
licenseNumbers | string[] | no | (empty) | Look up specific license or certificate numbers (one search each). Overrides city and name filters. |
statuses | string[] | no | (any) | Keep only these license statuses, for example Active, Expired, Inactive (matches on contains). |
classifications | string[] | no | (any) | Keep only records whose classification code matches, for example GB98, GB2, GA, MM98 (matches on contains). Requires full details ON. |
withDetails | boolean | no | true | When ON, enrich each licensee from its detail page with phone, monetary volume limit, issue date, and qualifying party name, certificate and classification. Turn OFF for listing-only fields. |
maxContractors | integer | no | 50 | Maximum number of licensees to return this run. Free Apify plans are capped at 10 per run. |
maxCaptchaAttempts | integer | no | 12 | Advanced. How many times to retry the search verification step per query before giving up. |
proxyConfiguration | object | no | (off) | Optional Apify proxy. Not required; the source is reachable directly. |
Output reference
One dataset item per licensee. Types: string, boolean, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
licenseNumber | string | CID license or certificate number. |
name | string | Business name (company mode) or individual name. |
licenseType | string | License category searched, for example Contractor. null in individual mode. |
classification | string | Classification code, for example MM98. Populated when full details are fetched. |
addressStreet | string | Principal place of business street address. |
city | string | City. |
state | string | Two-letter state code. Always NM. |
zip | string | ZIP code. |
phone | string | Phone number, from the detail page, or null. |
licenseStatus | string | License status, for example Active, Expired. |
issueDate | string | Issue date as shown by the source (MM/DD/YYYY), or null. |
expiryDate | string | Expiry date as shown by the source (MM/DD/YYYY), or null. |
monetaryLimit | string | Monetary volume limit as displayed, for example $1000000.00 +. |
qualifyingPartyName | string | Qualifying party's name, from the detail page, or null. |
qualifyingPartyCertificate | string | Qualifying party's certificate number, or null. |
detailFetched | boolean | true when the detail page was fetched and merged, else false. |
source | string | Data source. Always New Mexico RLD Construction Industries Division (CID). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | Present only on a failed run, when a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"searchMode":"company","licenseType":"Contractor","cities":["ALBUQUERQUE"],"withDetails":true,"maxContractors":10}):
{"licenseNumber": "33294","name": "CARLSON, B. HEATING, COOLING & PLUMBING, INC","licenseType": "Contractor","classification": "MM98","addressStreet": "8625 PASEO ALAMEDA NE","city": "ALBUQUERQUE","state": "NM","zip": "87113","phone": "5058831379","licenseStatus": "Active","issueDate": "10/14/1991","expiryDate": "10/31/2027","monetaryLimit": "$1000000.00 +","qualifyingPartyName": "JEREMY LARSON","qualifyingPartyCertificate": "418323","detailFetched": true,"source": "New Mexico RLD Construction Industries Division (CID)","observedAt": "2026-08-11T13:04:18.005Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~new-mexico-rld-contractors-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"cities":["SANTA FE"],"licenseType":"Contractor","statuses":["Active"],"maxContractors":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~new-mexico-rld-contractors-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"licenseNumbers":["33294"],"withDetails":true}'
Apify CLI:
apify call scrapers_lat/new-mexico-rld-contractors-scraper \--input '{"cities":["ALBUQUERQUE"],"maxContractors":50}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per record returned (
resultevent). When full details are fetched, an additionaldetailsadd-on is charged for that record. See the pricing tab for current prices. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxContractors.
FAQ and troubleshooting
A run returned 0 records. Why?
No licensee matched your city, name or license number, or your statuses/classifications filters excluded everything. The source is captcha-gated; if the verification step could not be cleared the actor writes a single error item instead. Zero-result runs are not charged.
Do I need to solve a captcha? No. The actor clears the source's verification step automatically. You only pass the search criteria.
How do I search individuals or qualifying parties?
Set searchMode to individual and pass businessNames (used as last names) with an optional firstName.
What is the difference between listing-only and full details?
With withDetails OFF you get name, license number, address, city, ZIP, status and expiry. With it ON, each record is also enriched with phone, monetary volume limit, issue date and qualifying party fields from the detail page.
Why is a field null?
The CID pages did not publish that value for the licensee, or full details were turned off. Missing source values are returned as null, never invented.
Is this an official New Mexico RLD tool? No. This actor is independent and has no affiliation with the New Mexico RLD or CID. It reads only data that is publicly available through the CID license verification system. Use the results in accordance with the source's terms.
Related scrapers
- Nevada Contractor License Scraper (NSCB): Nevada licensed contractors from the NSCB.
- California CSLB Contractor Scraper: California licensed contractors from the CSLB.
- Alabama LBGC Contractor Scraper: Alabama general contractor licenses.
- North Carolina NCLBGC Contractor Scraper: North Carolina general contractor licenses.
- FMCSA Motor Carrier Scraper: US motor carrier and trucking company records.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the New Mexico RLD or Construction Industries Division. Accesses only publicly available license data. Use the results in accordance with the source's terms.
