# Wisconsin Insurance License Lookup (NAIC SBS) (`ws_tony/wisconsin-insurance-license`) Actor

Search and verify insurance producer licenses in Wisconsin via the NAIC State Based Systems public API. Returns NPN, license type, lines of authority, status, and expiration date.

- **URL**: https://apify.com/ws\_tony/wisconsin-insurance-license.md
- **Developed by:** [Tony](https://apify.com/ws_tony) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Wisconsin Insurance License Lookup (NAIC SBS)

Verify insurance producer licenses in Wisconsin using the NAIC State Based Systems public API. Returns name, NPN, license type, lines of authority, status, and expiration date. No proxy required — this actor calls a government JSON endpoint directly.

> **Part of a 25-state portfolio.** Separate actors exist for every NAIC SBS state (IA, NC, NJ, MO, TN, WI, CT, and more) so you can track usage and runs per state independently.

---

### ⚠️ Important: use NPN lookup, not name search

The NAIC SBS API returns **at most 25 results per query** — a hard server-side limit with no pagination. Searching by last name for a common surname ("Smith", "Johnson") will silently truncate at 25 results.

**The right workflow for compliance verification:**

1. Export your producer list from your AMS as a CSV
2. Copy the NPN column
3. Paste NPNs into the **NPN List** field (one per line)
4. Run — you get back exactly one record per NPN, no truncation risk

Name search is best for one-off spot checks on a specific person, not bulk verification.

---

### Input

#### NPN List *(recommended for bulk runs)*

Paste one National Producer Number per line in the **NPN List** field. NPNs are 6–10 digit numbers — find them on a producer's license certificate, on [NIPR.com](https://nipr.com), or in a previous license verification report.

````

1234567
9876543
5551234

````

Each NPN is looked up independently. Results are deduplicated automatically.

**Run time and cost:** 100 NPNs ≈ 60 seconds, ~$0.50. 500 NPNs ≈ 5 minutes, ~$2.50.

**Not found / inactive:**

- If an NPN has no license on record in this state, the actor writes a record with `"status": "NOT FOUND"` and `"is_active": false`.
- If an NPN has records but all are expired or terminated (and **Active Licenses Only** is on), the actor writes `"status": "NO ACTIVE LICENSE"` and `"is_active": false`.

Both sentinel records include every output field (nulls/empty arrays for unresolvable fields) so your spreadsheet or AMS ingestion doesn't get column-count mismatches.

#### Single name lookup

Fill in **Last Name** (and optionally **First Name**) for a one-off search. Remember the 25-result cap applies here.

#### Other options

| Field | Default | Description |
|---|---|---|
| Active Licenses Only | **On** | Excludes expired, inactive, and terminated licenses. Turn off if you need a full history. |
| Entity Type | Individual | Switch to Business/Agency for agency lookups |
| State | WI | Pre-filled — only change if searching a different SBS state |

---

### Output

Each row in the Dataset is one license record. Key fields:

| Field | Example | Notes |
|---|---|---|
| `npn` | `"1234567"` | National Producer Number — use this to cross-reference across states |
| `license_number` | `"1234567"` | State license number (often same as NPN on SBS states) |
| `name` | `"Mary Ann Johnson"` | Title-cased, First Last order |
| `first_name` | `"Mary"` | First word of given name only |
| `middle_name` | `"Ann"` | Middle name/initial if present; `null` otherwise |
| `last_name` | `"Johnson"` | Surname |
| `license_type` | `"Insurance Producer"` | License class. Common values: `Insurance Producer`, `Staff Adjuster` |
| `license_type_code` | `"PRO"` | Short code for license class. Known values: `PRO` (Insurance Producer), `SAJ` (Staff Adjuster) |
| `status` | `"Active"` | Active, Expired, Inactive, Terminated, Surrendered, Revoked, NOT FOUND, or NO ACTIVE LICENSE |
| `is_active` | `true` | Boolean — use this for quick filtering in your downstream system |
| `lines_of_authority` | `["Life (effective 2010-06-01)"]` | Array of LOAs with effective dates |
| `effective_date` | `"2010-06-01"` | Date this license version became effective |
| `expiration_date` | `"2027-05-31"` | License expiration date |
| `residency` | `"Resident"` | Resident or Non-Resident |
| `business_phone` | `"312-555-0100"` | Formatted as XXX-XXX-XXXX |
| `address_city` | `"Chicago"` | Title-cased city |
| `address_state` | `"IL"` | Producer's home state (may differ from search jurisdiction for non-residents) |
| `designated_home_state` | `null` | Always null on NAIC SBS states; reserved for compact/non-resident workflows |

#### Example record

```json
{
    "npn": "1234567",
    "license_number": "1234567",
    "jurisdiction": "WI",
    "licensee_type": "Individual",
    "name": "Mary Ann Johnson",
    "first_name": "Mary",
    "middle_name": "Ann",
    "last_name": "Johnson",
    "dba_name": null,
    "fein": null,
    "license_type_code": "PRO",
    "license_type": "Insurance Producer",
    "lines_of_authority": [
        "Life (effective 2010-06-01)",
        "Accident and Health (effective 2010-06-01)"
    ],
    "status": "Active",
    "is_active": true,
    "residency": "Resident",
    "designated_home_state": null,
    "effective_date": "2010-06-01",
    "expiration_date": "2027-05-31",
    "business_phone": "312-555-0100",
    "address_city": "Chicago",
    "address_state": "WI",
    "address_raw": "CHICAGO, IL 60601",
    "source_url": "https://sbs.naic.org/solar-external-lookup/?jurisdiction=WI&searchType=Licensee",
    "scraped_at": "2026-05-25T12:00:00.000Z"
}
````

#### Exporting results

After a run completes, click the **Export** button in the Dataset tab to download your results as CSV or Excel. This works directly in the Apify Console — no additional tools needed.

***

### Pricing

**Pay-per-event** at **$0.005 per license record** returned. Empty searches are never charged. A typical bulk run of 100 NPNs costs $0.50.

***

### States in this portfolio

AL · AK · AR · CT · DC · ID · **WI** · IA · KS · MO · MT · NH · NJ · NM · NC · ND · OK · OR · RI · SD · TN · VT · WV · WI

***

### Data source

[NAIC State Based Systems External Lookup](https://sbs.naic.org/solar-external-lookup/) — public government data, no authentication required.

# Actor input Schema

## `npnList` (type: `string`):

Paste one National Producer Number (NPN) per line. NPNs are 6–10 digit numbers found on a producer's license certificate, on NIPR.com, or in your AMS. This is the most reliable search method — each NPN returns exactly one record with no truncation risk. 100 NPNs ≈ 60 seconds and ~$0.50.

## `activeOnly` (type: `boolean`):

When checked, only records with an Active license status are returned. Expired, Inactive, Terminated, and Surrendered licenses are excluded. Recommended for most compliance workflows.

## `entityType` (type: `string`):

Search for individual producers or business/agency licensees.

## `lastName` (type: `string`):

Search by last name instead of NPN. The API returns at most 25 results per name search — use NPN List above for bulk verification.

## `firstName` (type: `string`):

Optional. Narrows a last-name search.

## `licenseNumber` (type: `string`):

Optional. Direct lookup by state license number.

## `jurisdiction` (type: `string`):

Two-letter state code. Pre-filled for this state's actor — only change this if you need to search a different SBS state.

## Actor input object example

```json
{
  "activeOnly": true,
  "entityType": "IND",
  "jurisdiction": "WI"
}
```

# 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("ws_tony/wisconsin-insurance-license").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("ws_tony/wisconsin-insurance-license").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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 ws_tony/wisconsin-insurance-license --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ws_tony/wisconsin-insurance-license",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Wisconsin Insurance License Lookup (NAIC SBS)",
        "description": "Search and verify insurance producer licenses in Wisconsin via the NAIC State Based Systems public API. Returns NPN, license type, lines of authority, status, and expiration date.",
        "version": "0.1",
        "x-build-id": "lfUQy8Db09lPrz4cJ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ws_tony~wisconsin-insurance-license/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ws_tony-wisconsin-insurance-license",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/ws_tony~wisconsin-insurance-license/runs": {
            "post": {
                "operationId": "runs-sync-ws_tony-wisconsin-insurance-license",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/ws_tony~wisconsin-insurance-license/run-sync": {
            "post": {
                "operationId": "run-sync-ws_tony-wisconsin-insurance-license",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "jurisdiction"
                ],
                "properties": {
                    "npnList": {
                        "title": "NPN List (one per line)",
                        "type": "string",
                        "description": "Paste one National Producer Number (NPN) per line. NPNs are 6–10 digit numbers found on a producer's license certificate, on NIPR.com, or in your AMS. This is the most reliable search method — each NPN returns exactly one record with no truncation risk. 100 NPNs ≈ 60 seconds and ~$0.50."
                    },
                    "activeOnly": {
                        "title": "Active licenses only",
                        "type": "boolean",
                        "description": "When checked, only records with an Active license status are returned. Expired, Inactive, Terminated, and Surrendered licenses are excluded. Recommended for most compliance workflows.",
                        "default": true
                    },
                    "entityType": {
                        "title": "Entity Type",
                        "enum": [
                            "IND",
                            "BUS"
                        ],
                        "type": "string",
                        "description": "Search for individual producers or business/agency licensees.",
                        "default": "IND"
                    },
                    "lastName": {
                        "title": "Last Name (single lookup)",
                        "type": "string",
                        "description": "Search by last name instead of NPN. The API returns at most 25 results per name search — use NPN List above for bulk verification."
                    },
                    "firstName": {
                        "title": "First Name",
                        "type": "string",
                        "description": "Optional. Narrows a last-name search."
                    },
                    "licenseNumber": {
                        "title": "License Number",
                        "type": "string",
                        "description": "Optional. Direct lookup by state license number."
                    },
                    "jurisdiction": {
                        "title": "State (Jurisdiction)",
                        "enum": [
                            "AL",
                            "AK",
                            "AR",
                            "CT",
                            "DC",
                            "ID",
                            "IL",
                            "IA",
                            "KS",
                            "MO",
                            "MT",
                            "NH",
                            "NJ",
                            "NM",
                            "NC",
                            "ND",
                            "OK",
                            "OR",
                            "RI",
                            "SD",
                            "TN",
                            "VT",
                            "WV",
                            "WI"
                        ],
                        "type": "string",
                        "description": "Two-letter state code. Pre-filled for this state's actor — only change this if you need to search a different SBS state.",
                        "default": "WI"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
