# New York Real Estate License Lookup (`factrelay/ny-real-estate-license-lookup`) Actor

Check New York real-estate license numbers against the official active-license dataset. Verify active matches, inspect holder, license, business, and freshness details, and run exact or batch license lookups.

- **URL**: https://apify.com/factrelay/ny-real-estate-license-lookup.md
- **Developed by:** [Liou](https://apify.com/factrelay) (community)
- **Categories:** Real estate, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00 / 1,000 completed license lookups

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

Paste a New York real-estate license number and check it against the official New York State Department of State active-license dataset. The result separates active matches, confirmed absence from the current active dataset, invalid input, and official-source failures.

**Quick example:** `10301200000` returns an `ACTIVE DATASET MATCH` with holder, license type, business, county, expiration date, and source freshness when those fields are present.

### New York real estate license lookup

Use this Actor for New York real estate license lookup, NY license verification, broker license checks, salesperson license checks, and active-license number lookup. Exact license-number search is the primary mode and does not guess identities.

A matching record can include license holder name, license type, business name, county, expiration date, and current source freshness.

### NY real estate license verification

`ACTIVE DATASET MATCH` means the exact license number appears in the current official active-license dataset. `NOT FOUND IN ACTIVE DATASET` means the official active dataset returned no exact match at query time.

Absence does not prove that a person was never licensed. The official dataset excludes inactive, revoked, and some expired-pending-renewal records, so the Actor preserves this limitation rather than overstating the result.

### License lookup API, batch verification, and name discovery

Single exact lookup is the default. Batch input accepts up to 100 license numbers, and normalized duplicates reuse the first completed lookup without a second charge.

Optional name-prefix discovery can return candidate records when an exact license number is not available. It never auto-selects which person the user meant.

Structured Dataset output is suitable for API integrations, brokerage operations, vendor checks, compliance workflows, and automated license verification.

### Quick start

1. Paste an exact license number such as `10301200000`.
2. Click **Start**.
3. Read the verdict, holder, license type, business, and source freshness.
4. Copy the result or use the Dataset API for automation.

### Important active-dataset scope

The source describes active New York real-estate licenses and is updated on the official Open Data platform. Business addresses may not represent physical business or licensee locations, and the data should not be treated as a legal proceeding record.

The Actor verifies the expected source schema before using it and fails closed when the official source is unavailable or structurally incompatible.

### Billing policy

A completed official lookup is billed once, including a confirmed `NOT FOUND IN ACTIVE DATASET`. Invalid input and official-source failures are not completed billable lookups. Duplicate normalized values in the same run are not charged twice.

### Data source and independence

The Actor queries New York State Open Data published by the New York State Department of State and reports the source freshness with each completed result.

This is an independent data tool. It is not affiliated with, endorsed by, or operated by the New York State Department of State or New York State Open Data.

# Actor input Schema

## `license_number` (type: `string`):

Exact 11-character NY real-estate license number.

## `license_numbers` (type: `array`):

Paste one exact license number per line, up to 100. Duplicates are reused and not charged twice in the same run.

## `max_concurrency` (type: `integer`):

Maximum number of simultaneous official dataset requests for batch lookup.

## `timeout_seconds` (type: `integer`):

Per-request timeout for official dataset metadata and lookup requests.

## `license_holder_name` (type: `string`):

Optional name-prefix discovery. Returns candidates and never auto-selects a person.

## `candidate_limit` (type: `integer`):

Maximum name-discovery candidates returned before the result is marked truncated.

## Actor input object example

```json
{
  "license_number": "10301200000",
  "max_concurrency": 4,
  "timeout_seconds": 10,
  "candidate_limit": 20
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "license_number": "10301200000"
};

// Run the Actor and wait for it to finish
const run = await client.actor("factrelay/ny-real-estate-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 = { "license_number": "10301200000" }

# Run the Actor and wait for it to finish
run = client.actor("factrelay/ny-real-estate-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 '{
  "license_number": "10301200000"
}' |
apify call factrelay/ny-real-estate-license-lookup --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,factrelay/ny-real-estate-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/WGVn7ayf2mvgP0qyg/builds/P3FwkMNH47uDvJwT7/openapi.json
