# Pennsylvania Insurance License Lookup (`stackrelay/pennsylvania-insurance-license-lookup`) Actor

Search Pennsylvania's Sircon licensing database for individual producers, agencies, or insurance companies. Returns license number, NPN, status, lines of authority, and address.

- **URL**: https://apify.com/stackrelay/pennsylvania-insurance-license-lookup.md
- **Developed by:** [StackRelay](https://apify.com/stackrelay) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 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/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

## Pennsylvania Insurance License Lookup

Search Pennsylvania's insurance licensing database (powered by Sircon/Vertafore) for individual producers, agencies, or insurance companies. Returns license number, NPN, license status, lines of authority, business address, and more.

> **Disclaimer — please read before running.** This actor is an independent data tool built by StackRelay. It is **not affiliated with, endorsed by, or operated by** the Pennsylvania Insurance Department, Sircon, or Vertafore. Results are a **best-effort, point-in-time snapshot** of the public Pennsylvania Sircon consumer inquiry, provided **AS-IS with no warranty** of accuracy, completeness, or timeliness — license status, appointments, and addresses can change at any time after a record is fetched. Every record carries a `source_url` linking back to the source and a `scraped_at` timestamp: **verify independently at the source before acting on any record.** Output includes personal data about individuals (names, city/state/ZIP, phone); if you process data about EU/UK residents you may be an independent data controller under GDPR/UK GDPR. **This actor's output is not a consumer report and must not be used for FCRA-regulated purposes** — credit, insurance underwriting eligibility, employment, or tenant-screening decisions about an individual. By running this actor you agree to the [Developer Terms of Use](DEVELOPER_TERMS.md).

### What it does

This actor automates the [PA Sircon Consumer Inquiry](https://www.sircon.com/ComplianceExpress/Inquiry/consumerInquiry.do?nonSscrb=Y) — the Pennsylvania Insurance Department's public license verification tool (hosted on the Sircon/Vertafore platform). It handles the multi-step form flow, honeypot validation, JavaScript-rendered results, and pagination automatically. It reads only the public, logged-out inquiry — no login, paywall, or access control is bypassed.

**Who needs this:**

- Insurance verification platforms
- Compliance teams checking PA producer status
- Agencies vetting new agents
- Recruiters sourcing licensed producers in Pennsylvania
- Legal/due diligence workflows

### Input

```json
{
    "entityType": "INDIVIDUAL",
    "lastName": "Smith",
    "firstName": "Jane",
    "city": "",
    "licenseNumber": "",
    "licenseType": "",
    "maxResults": 100
}
```

**Search rules (same as the Sircon form):**

- Provide `licenseNumber` alone for an exact lookup, OR
- Provide `lastName` + at least one of `firstName` / `city`

### Output

Each record pushed to the default dataset:

```json
{
    "id": "7007908",
    "npn": "7007908",
    "license_number": "793440",
    "license_type": "Resident Producer",
    "name": "Jane Carol Smith",
    "first_name": "Jane",
    "middle_name": "Carol",
    "last_name": "Smith",
    "address_city": "Philadelphia",
    "address_state": "PA",
    "address_zip": "19103",
    "status": "Active",
    "is_active": true,
    "residency": "Yes",
    "license_effective_date": "2002-06-01",
    "license_expiration_date": "2024-05-31",
    "business_phone": "(215) 555-1234",
    "loas": [
        { "loa": "Life", "effective_date": "2002-06-01" },
        { "loa": "Accident and Health", "effective_date": "2002-06-01" }
    ],
    "jurisdiction": "PA",
    "source_url": "https://www.sircon.com/ComplianceExpress/Inquiry/consumerInquiryDetail.do?...",
    "scraped_at": "2026-05-30T03:00:00.000Z"
}
```

### Pricing

**Pay-per-result** — you're only charged for records that appear in the dataset. Searches that return 0 results cost nothing.

### Popular use cases

Ready-to-run examples — each opens a pre-filled task you can run in one click.

**Verify by license type**

- [Insurance producer license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/verify-a-pennsylvania-insurance-producer-license)
- [Non-resident producer license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/verify-a-non-resident-producer-license-in-pa)
- [Public adjuster license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/verify-public-adjuster-license-pennsylvania)
- [Non-resident public adjuster license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/non-resident-public-adjuster-license-pa)
- [Surplus lines producer license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/verify-surplus-lines-producer-license-pa)
- [Non-resident surplus lines license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/non-resident-surplus-lines-license-pa)
- [Title insurance agent license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/verify-title-agent-license-pennsylvania)
- [Non-resident title agent license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/non-resident-title-agent-license-pa)
- [Insurance administrator (TPA) license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/pennsylvania-insurance-administrator-tpa-license-search)
- [Exclusive general agent license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/verify-exclusive-general-agent-license-pa)
- [Auto damage appraiser license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/verify-auto-damage-appraiser-license-pennsylvania)
- [Viatical settlement broker license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/verify-viatical-settlement-broker-license-pa)
- [Viatical settlement provider license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/viatical-settlement-provider-license-pa)
- [Exchange assister license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/pennsylvania-exchange-assister-license-lookup)
- [Limited lines producer license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/limited-lines-producer-license-pa-lookup)
- [Travel insurance producer license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/verify-travel-insurance-producer-license-pa)
- [Reinsurance intermediary broker license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/reinsurance-intermediary-broker-license-pa)
- [Reinsurance intermediary manager license](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/reinsurance-intermediary-manager-license-pa)

**Look up by identifier or name**

- [NPN lookup](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/pennsylvania-insurance-npn-lookup)
- [License number lookup](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/pa-insurance-license-number-lookup)
- [Look up an agent by name](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/look-up-insurance-agent-by-name-pennsylvania)
- [Insurance agency lookup](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/pennsylvania-insurance-agency-license-lookup)
- [Insurance company verification](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/pennsylvania-insurance-company-license-verification)
- [Bulk license verification](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/bulk-insurance-license-verification-pennsylvania)

**Enriched checks (phone, address, LOAs, appointments)**

- [Carrier appointments](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/check-insurance-producer-carrier-appointments-pa)
- [Lines of authority (LOAs)](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/check-producer-lines-of-authority-pennsylvania)
- [Agent contact info](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/insurance-agent-contact-info-pennsylvania)
- [Active status check](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/check-if-insurance-license-active-pennsylvania)
- [License expiration date](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/insurance-license-expiration-lookup-pennsylvania)
- [Full producer profile](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/pennsylvania-producer-full-profile-lookup)

**By workflow**

- [Verify an agent before hiring](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/verify-insurance-agent-before-hiring-pennsylvania)
- [License compliance audit](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/insurance-license-compliance-audit-pennsylvania)
- [Find licensed producers (recruiting)](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/find-licensed-insurance-producers-pennsylvania)
- [Appointment eligibility check](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/verify-producer-appointment-eligibility-pa)
- [Title agent for a closing](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/verify-title-agent-for-real-estate-closing-pa)
- [Check a public adjuster before hiring](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/check-public-adjuster-before-hiring-pennsylvania)

**By city**

- [Philadelphia](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/insurance-agent-license-lookup-philadelphia)
- [Pittsburgh](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/insurance-agent-license-lookup-pittsburgh)
- [Allentown](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/insurance-agent-license-lookup-allentown)
- [Harrisburg](https://apify.com/stackrelay/pennsylvania-insurance-license-lookup/examples/insurance-agent-license-lookup-harrisburg)

### Known limitations

- Sircon requires two search criteria for name searches (lastName + firstName, or lastName + city). A last name alone is not sufficient.
- Maximum 500 records per search (Sircon platform limit). For bulk lookups, break searches by first name initial or license type.
- Insurance Companies (entityType = COMPANY) have a different result schema; address and LOA fields may be null.
- Results are sourced from Sircon's PA database, whose currency is controlled by the source (not this actor) and may lag the PA Insurance Department's internal system. Treat every record as a point-in-time snapshot and verify at the `source_url` before relying on it.
- Coverage varies by record and entity type — some fields (address, LOAs, appointments) may be missing or null depending on what the source returns.

### FAQ

**Q: Does this work for NPN lookups?**\
A: Yes. Enter the license number in `licenseNumber` field for a direct lookup.

**Q: How current is the data?**\
A: Records reflect what the public PA Sircon inquiry returned at the `scraped_at` time on each record. The source's own update cadence is outside this actor's control and it may lag the PA Insurance Department's internal system. Treat each record as a best-effort, point-in-time snapshot and re-check the `source_url` before relying on it.

**Q: Can I look up multiple producers in one run?**\
A: Currently one search per run. For batch lookups, use the Apify API to trigger multiple runs in parallel.

**Q: What states besides PA does this cover?**\
A: Only Pennsylvania. For WV, IL, IA and other NAIC SBS states, see the companion actors in the ws_tony store.

### Data accuracy & legal notes

- **What this data is.** A best-effort, point-in-time snapshot of the public Pennsylvania Sircon consumer inquiry. The actor is a pipe, not an oracle: fields are passed through from the source with formatting normalization only (title-casing, date and phone formats). Coverage and field completeness vary by record and entity type.
- **It can be wrong or stale.** License status, appointments, and addresses change as producers renew, surrender, are terminated, or move. A record is accurate only as of its `scraped_at` timestamp. Every record carries a `source_url` back to the source page — **independently verify any record there before relying on it** for an appointment, audit finding, hiring decision, or any other action.
- **Derived fields are labeled as such.** `is_active` is computed by this actor from the source `status` string (`true` only when status is exactly "Active"); `name`/`first_name`/`middle_name`/`last_name` are parsed from the raw source name string; `jurisdiction` is set to `PA` by this actor; `has_active_appointments` (enriched runs) is derived from the appointments array. Treat derived fields as conveniences, not source-of-truth.
- **Personal data / GDPR.** Output includes personal data about individuals (names, city/state/ZIP, business phone). If you process data about EU/UK residents you may act as an independent data controller under GDPR/UK GDPR and are solely responsible for having a lawful basis and honoring data-subject rights.
- **Prohibited uses (FCRA).** The output is **not a "consumer report"** and StackRelay is not a consumer reporting agency. **Do not use this data for FCRA-regulated purposes** — determining an individual's eligibility for credit, insurance coverage, employment, housing, or similar decisions. Verifying that a producer or agency holds an active PA insurance license for regulatory-compliance purposes is the intended use. Do not use the data to harass or profile individuals.
- **Not affiliated.** Independently developed by StackRelay; not affiliated with, endorsed by, or operated by the Pennsylvania Insurance Department, Sircon, or Vertafore.
- **A disclaimer travels with every run** in the key-value store record `META`, and every dataset row carries `source_name`, `source_url`, and `scraped_at` provenance fields.
- **Full terms:** see [DEVELOPER_TERMS.md](DEVELOPER_TERMS.md) — provided AS-IS, no warranty, liability capped at fees paid, Kansas governing law. By running this actor you agree to those terms.

# Actor input Schema

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

Type of entity to search for.

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

REQUIRED unless you provide a License Number. Last name of the individual, or the agency/business name. For individuals you must also add First Name OR City below.

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

First name of the individual producer. Counts as the second criterion alongside Last Name (you need First Name OR City).

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

PA insurance license number. Provide this to look up one exact license — it overrides name search. Use this OR the name fields below; one of the two is required.

## `city` (type: `string`):

Business city of the producer. Counts as the second criterion alongside Last Name (you need First Name OR City).

## `licenseType` (type: `string`):

Optionally filter results to a specific license type (e.g. 'Resident Producer'). Leave blank for all types.

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

Maximum number of records to return. Sircon limits each search to 500 rows; use Last Name + First Name or License Number for targeted lookups.

## `includeEnriched` (type: `boolean`):

When true, visits each producer's detail page to add: phone, full street address, license effective/expiration dates, lines of authority with dates, and company appointments (carrier affiliations). Charged at $0.025/record instead of $0.01. Adds ~2–3 seconds per record.

## `proxyConfiguration` (type: `object`):

Apify proxy settings. Datacenter proxies are usually sufficient for Sircon.

## Actor input object example

```json
{
  "entityType": "INDIVIDUAL",
  "lastName": "",
  "firstName": "",
  "licenseNumber": "",
  "city": "",
  "licenseType": "",
  "maxResults": 100,
  "includeEnriched": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `licenseRecords` (type: `string`):

One row per matched producer, agency, or company — license number, NPN, status, address, and (on enriched runs) LOAs and appointments.

## `runDisclaimer` (type: `string`):

Run-level provenance and AS-IS / GDPR / FCRA disclaimer that travels with every run.

# 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 = {
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("stackrelay/pennsylvania-insurance-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 = { "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    } }

# Run the Actor and wait for it to finish
run = client.actor("stackrelay/pennsylvania-insurance-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 '{
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call stackrelay/pennsylvania-insurance-license-lookup --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,stackrelay/pennsylvania-insurance-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/ghDN4rGINdRWH1Xkx/builds/2pjxilLU7baGv9oc9/openapi.json
