# Nevada Contractor License Lookup & Verify (NSCB) (`muhammadafzal/nevada-contractor-license-lookup`) Actor

Search Nevada State Contractors Board public contractor licenses by license number, company, or principal. Return official record details for up to 25 matches.

- **URL**: https://apify.com/muhammadafzal/nevada-contractor-license-lookup.md
- **Developed by:** [Muhammad Afzal](https://apify.com/muhammadafzal) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.80 / 1,000 verified nevada license records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Nevada Contractor License Lookup & Verify (NSCB)

Search the Nevada State Contractors Board (NSCB) public license register by license number, company name, or principal / qualified individual name, then return the official license detail fields for each selected match.

### What the Actor returns

Each default-dataset item is one license record opened from the official NSCB result list.

| Field | Description |
| --- | --- |
| licenseNumber, businessName, dbaName, nvBusinessId | Official license and business identifiers |
| licenseStatus, statusReason, statusDate | Board-published status fields |
| expirationDate, originDate, businessType | License timing and business type |
| classifications, limitation, monetaryLimit | Approved work categories and published license limits |
| mailingAddress, physicalAddress | Public business addresses and phone numbers |
| principals, qualifiedIndividuals | Publicly listed names and roles |
| bondDetails | Bond fields shown on the Board detail page |
| sourceUrl, sourceSearchUrl, retrievedAt | Source and retrieval metadata |

The Actor returns source-formatted dates and money values so they can be compared with the Board page without guessing a conversion. Missing optional values are null; missing bond rows are returned as an empty array.

### Search modes and input

searchMode selects the field used by NSCB:

- licenseNumber for a direct license check, including leading zeroes.
- companyName to find a business by name. Add nvBusinessId when you want to refine the company search.
- principalName to search for a principal or qualified individual. Enter a name as First Last, as Last, First, or enter one word to search by last name. Use principalCompanyName to refine this mode.

The query must contain at least two characters. The official page returns at most 25 matches for a query. The Actor opens details for no more than maxResults records, which defaults to 1. A verified free-plan run is capped at 5 delivered records; paid runs may use the full 25-record source limit. If you set a total run charge cap, the Actor lowers its result limit so the highest configured event prices fit within the cap.

The default input is an exact-license lookup for 0014202.

```
{
  "searchMode": "licenseNumber",
  "searchQuery": "0014202",
  "maxResults": 1
}
```

Company-name and principal examples:

```
{
  "searchMode": "companyName",
  "searchQuery": "Smith",
  "nvBusinessId": "NV20101370144",
  "maxResults": 5
}

{
  "searchMode": "principalName",
  "searchQuery": "Alfred Smith",
  "maxResults": 1
}
```

Run the Actor in the Apify Console, with the Apify API, or through an Apify CLI task call:

```
curl -X POST 'https://api.apify.com/v2/acts/USERNAME~nevada-contractor-license-lookup/runs' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_APIFY_TOKEN' \
  -d '{"searchMode":"licenseNumber","searchQuery":"0014202","maxResults":1}'
```

Read the default dataset for license records and the OUTPUT key-value record for the run outcome, result counts, warnings, and source diagnostics. Agent workflows should pass the same JSON fields to an Apify Actor or Task call; this Actor does not expose a separate always-on MCP server.

### Example result

```
{
  "licenseNumber": "0014202",
  "businessName": "SMITH ELECTRIC",
  "dbaName": null,
  "nvBusinessId": "NV20101370144",
  "licenseStatus": "Active",
  "statusReason": null,
  "statusDate": "05/16/2025",
  "originDate": "07/06/1977",
  "expirationDate": "07/31/2027",
  "businessType": "Sole Proprietor",
  "monetaryLimit": "$40,000.00",
  "classifications": ["C-2 Electrical"],
  "limitation": null,
  "mailingAddress": {
    "street1": "1651 N WINNIE LANE",
    "street2": null,
    "city": "CARSON CITY",
    "state": "NV",
    "postalCode": "89703",
    "phone": "(775) 885-0333"
  },
  "physicalAddress": {
    "street1": "1651 N WINNIE LANE",
    "street2": null,
    "city": "CARSON CITY",
    "state": "NV",
    "postalCode": "89703",
    "phone": "(775) 885-0333"
  },
  "principals": [{"name": "SMITH, ALFRED MERLIN JR", "relationship": "Owner"}],
  "qualifiedIndividuals": [{"name": "SMITH, ALFRED MERLIN JR", "qualifierType": "CMS and Trade"}],
  "bondDetails": [{
    "bondType": "Surety",
    "bondNumber": "9080237",
    "bondAgent": "JOHN KEPHART",
    "suretyCompany": "FIDELITY & DEPOSIT COMPANY OF MARYLAND",
    "amount": "$1,000.00",
    "effectiveDate": "06/27/1977"
  }],
  "searchMode": "licenseNumber",
  "searchQuery": "0014202",
  "sourceUrl": "https://app.nvcontractorsboard.com//Clients/NVSCB/Public/Shared/Details.aspx?EntID=3874334&LicNum=393849",
  "sourceSearchUrl": "https://app.nvcontractorsboard.com/Clients/NVSCB/Public/ContractorLicenseSearch/ContractorLicenseSearch.aspx",
  "retrievedAt": "2026-09-24T00:00:00.000Z"
}
```

This example is a source record retrieved during development. Confirm the current Board page before relying on status or contact details.

### Pay-per-event pricing

Apify automatically charges the apify-actor-start event once per run and the primary apify-default-dataset-item event for each record written. The Actor does not manually charge either synthetic event. Platform-usage pass-through is disabled, so buyers pay the event charges shown here while platform usage is deducted from creator proceeds. Actual margin depends on settled compute and network cost for each run.

| Subscription tier | Start event per run | License record | One-record run total |
| --- | ---: | ---: | ---: |
| FREE | $0.005 | $0.0060 | $0.0110 |
| BRONZE | $0.005 | $0.00585 | $0.01085 |
| SILVER | $0.005 | $0.0057 | $0.0107 |
| GOLD | $0.005 | $0.0048 | $0.0098 |
| PLATINUM | $0.005 | $0.0048 | $0.0098 |
| DIAMOND | $0.005 | $0.0048 | $0.0098 |

The result discounts from FREE are 2.5% for BRONZE, 5% for SILVER, and 20% for GOLD. For example, a five-record FREE-tier run is $0.035 in event charges: one $0.005 start event plus five $0.006 records. A 25-record FREE-tier run is $0.155 in event charges. Platform usage is a separate Apify account usage line item and is not included in those event totals.

The minimum run charge cap is $0.011, enough for one start event and one license result at FREE-tier prices. To request five results, set a cap of at least $0.035; to request 25, set at least $0.155. If a run cap allows no results, the Actor reports `BUDGET_LIMITED` and does not open license detail pages.

### Reliability and limitations

This Actor uses the NSCB public search form and its official detail pages with a cookie-backed HTTP session. It makes one search, then opens matching detail records sequentially with a short pause. It does not log in, bypass a CAPTCHA, use private sessions, or substitute third-party data. A 403 or 429 is reported as a blocked lookup; a healthy no-match response is reported as empty; parsing failures are recorded in OUTPUT.

When the portal returns 25 rows, further matches may exist but are not available in that result page. The Actor does not crawl the entire license registry. A query result is a snapshot of the Board page at retrievedAt.

### Source and use

The [official NSCB License Search](https://app.nvcontractorsboard.com/Clients/NVSCB/Public/ContractorLicenseSearch/ContractorLicenseSearch.aspx) says its information is provided as a courtesy and may not reflect recent changes; completeness or accuracy is not guaranteed. Use sourceUrl to review the current Board detail page before relying on a result. A returned status is not legal advice and does not determine whether a contractor is suitable for a particular job.

The source publicly displays contractor business addresses, telephone numbers, principal names, qualifying individuals, and bond information. Use these data only for lawful licensing verification and due diligence. Follow applicable privacy, consumer-protection, and data-retention requirements.

# Actor input Schema

## `searchMode` (type: `string`):

Choose how to search the NSCB license registry. Use licenseNumber for a precise record check, companyName to find a licensed business, or principalName to search a principal or qualified individual.

## `searchQuery` (type: `string`):

Use this as the license number or name, based on Search mode. Enter at least 2 characters. Principal names may be entered as first-name last-name, such as Alfred Smith, or last-name, first-name, such as Smith, Alfred. A one-word principal query is treated as a last name.

## `nvBusinessId` (type: `string`):

Optional company-search refinement from an NSCB listing, such as NV20101370144. Use only with Search mode set to companyName.

## `principalCompanyName` (type: `string`):

Optional company-name refinement for principalName searches. Leave blank for a statewide principal or qualified-individual lookup.

## `maxResults` (type: `integer`):

Maximum number of matching license details to open and write. Defaults to 1 for a precise verification. The official result page contains at most 25 matches; verified free-plan runs are capped at 5 results.

## Actor input object example

```json
{
  "searchMode": "licenseNumber",
  "searchQuery": "0014202",
  "nvBusinessId": "NV20101370144",
  "principalCompanyName": "Smith Electric",
  "maxResults": 1
}
```

# Actor output Schema

## `summary` (type: `string`):

JSON diagnostics stored in the OUTPUT key-value record, including outcome, result counts, and warnings.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("muhammadafzal/nevada-contractor-license-lookup").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("muhammadafzal/nevada-contractor-license-lookup").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call muhammadafzal/nevada-contractor-license-lookup --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,muhammadafzal/nevada-contractor-license-lookup"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/gviKG6rYfgBbsKowR/builds/gUSqz1kXnXbafN3C1/openapi.json
