Use case
List New Mexico Contractors in a City
Pull New Mexico CID contractors in a given city, straight from the official CID registry.
Say you’re putting a job out to bid in Albuquerque and you need contractors to invite — but only ones the state actually licenses. You have a referral list from a previous project, a few names off a directory site, and no confidence that any of them are current. What you want is a page of licensed contractors in that city, with a status and an expiry date next to each name, so the invite list is defensible before you send it.
The state registry has exactly that. It just does not want to give it to you in a usable shape.
The manual way, and what it costs
This is the portal, hosted by PSI rather than by the state. Choose Search Company, set the
company type to Contractor, put Albuquerque in the City box — and then read the smudged word
in the image at the bottom of the form and type it into Enter Captcha before it will show you
anything at all.
What comes back is a paginated HTML table with no export button. So the manual job is: solve a CAPTCHA, read twenty rows off the screen, copy each one into a spreadsheet by hand, and repeat. If you’re checking two or three names you already have, that’s a perfectly good use of five minutes and you should just do it — it’s free and it’s the same registry this actor reads.
It stops being reasonable the moment you want the list as data. Twenty rows retyped by hand is twenty chances to fat-finger a license number, and there’s no way to put any of it on a schedule, so next quarter’s bid list starts from a blank sheet again.
The faster way
New Mexico Contractor License Lookup & Verify (NM CID) does the same search once and hands back every row at once.
{
"city": "Albuquerque",
"maxResults": 20
}
city filters to contractors whose registered place of business is in Albuquerque, which is the
filter that matters when you’re inviting people to bid — you want firms that are actually there, not
firms that happen to hold a New Mexico license from another state. maxResults: 20 is the ceiling
rather than a preference: the portal serves 20 records per page and this actor reads the first page.
You are asking for a page of licensed Albuquerque contractors, not for all of them, and the section
below is blunt about the difference.
If you already have a name in mind, add businessName alongside city — the filters combine, and
narrowing beats paging.
What comes back
{
"state": "NM",
"license_number": "396966",
"business_name": "ADAMS & SMITH, INC.",
"person_name": null,
"license_type": "Contractor",
"status": "Active",
"issue_date": null,
"expiration_date": "12/31/2027",
"city": "LINDON",
"county": null,
"address": "1380 W CENTER ST",
"zip_code": "84042",
"phone": null,
"bond_amount": null,
"bond_company": null,
"insurance_company": null,
"matched_by": "business_name",
"source_url": "https://public.psiexams.com/search.jsp"
}
| Field | Example value | Meaning |
|---|---|---|
state | NM | Always ‘NM’ for this actor |
license_number | 396966 | NM CID contractor license number |
status | Active | License status (e.g. Active, Cancelled) |
license_type | Contractor | Always ‘Contractor’ (NM CID’s contractor company category) |
business_name | ADAMS & SMITH, INC. | Licensed business/company name |
address | 1380 W CENTER ST | Principal place of business street address |
business_name plus address and city is your invite list — names and where they are. status
and expiration_date are what make it defensible: an Active license with an expiry date in the
future is a contractor you can put on a bid list without a caveat. license_number is what you
carry into your own records, because it’s the one field that doesn’t change when a firm rebrands.
Note the sample row above: a New Mexico license with a LINDON address and a Utah ZIP. Registered
addresses are as filed, so a city filter is a filter on where the business is registered — worth
knowing before you assume every row is a local shop.
What you’d do with it
Export the dataset to CSV and it’s a bid list you can work from directly: business name, street address, city, ZIP, license number, status, expiry. Drop it into a sheet next to the referral names you started with and the overlap is your shortlist — the referrals that also appear in the registry as active. The ones that don’t appear are the ones worth a phone call before you send anything.
Worth knowing
A city search returns one page: 20 records, maximum. There are far more licensed contractors in Albuquerque than that, and this actor will not get them for you — the portal serves 20 per page and the actor reads the first page. This is a lookup and verification tool, not a roster harvester, and a city on its own is the filter most likely to hit that wall. If you need a specific contractor, narrow with a name, a ZIP, or a license number rather than paging for them.
If a whole-state roster as data is genuinely what you’re after, that’s a different kind of actor and a different kind of source — California Contractor Directory does it for California, because CSLB’s portal permits it. New Mexico’s does not.
Coverage is the Contractor company-license category on public.psiexams.com only: not RLD’s
separate Boards and Commissions Division search, and not individual or personal licenses. County,
phone, bond, and insurance come back null — they’re not on the results page, they’re behind a
JavaScript-triggered detail view with no URL, which is why source_url points at the search portal
rather than each record.
Run it yourself: How to run New Mexico Contractor License Lookup & Verify (NM CID) walks the whole thing step by step.
When a name off the list needs checking properly, Verify a New Mexico Contractor by License Number turns a license number into a status and an expiry date. And before you put anyone on a site, the OSHA Violation Risk actor answers a question the licence registry can’t: whether that contractor has an inspection and violation history behind them.
Last updated 2026-07-13