TX Insurance Agent & Adjuster Licenses avatar

TX Insurance Agent & Adjuster Licenses

Pricing

from $0.03 / 1,000 license records

Go to Apify Store
TX Insurance Agent & Adjuster Licenses

TX Insurance Agent & Adjuster Licenses

The Texas Department of Insurance producer register (~975,000 licenses): license type and qualification line, NPN, license number, issue and expiration dates, and the holder's city, state and postal code. One row per license, with the live/expired split derived from the expiration date.

Pricing

from $0.03 / 1,000 license records

Rating

0.0

(0)

Developer

Wenhao Yang

Wenhao Yang

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

TX Insurance Agent & Adjuster Licenses - the State's Producer Register

The Texas Department of Insurance publishes its entire agent-license register - every license a producer holds under the state's insurance lines, refreshed daily - as open data. This actor turns that register into a charged-per-record lookup and renewal-pipeline tool.

Built for: insurance-company compliance & producer on-boarding, MGAs & agencies checking a producer's lines before contracting them, renewal-notification pipelines (who has to renew before a given month), and labor-market analysis of the Texas insurance workforce.

What it covers

~975,000 licenses - the full register, refreshed ~daily. One row per license, so a producer licensed for both life and property carries two rows:

License typeRecords
General Lines Agent~549,000
Adjuster~168,000
Life Agent~134,000
Pers Lines Prop and Cas Agent~50,000
Adjuster - DHS Texas~27,000
Surplus Lines / Escrow / Limited Lines / ...the long tail

(A license-type filter matches the source's exact wording - Pers Lines Prop and Cas Agent, not a reworded label.)

Each record carries the producer's identity and the license's own terms:

  • NPN (national producer number) and the TDI license number
  • license type (28 exact values) and the finer qualification line - "Life, Accident, Health & HMO" vs "Property and Casualty" vs "Adjuster - All Lines" are separate credentials, not one bucket
  • issue date and expiration date - the renewal clock
  • city / state / postal code of the holder's address

The register holds more than just Texans: ~57% of the rows are out-of-state producers licensed to transact Texas business (Texas itself is ~413,000 of the ~975,000) - Florida alone carries ~98,000, California ~44,000, Georgia ~30,000. state is a first-class filter.

The register has no status column

TDI doesn't stamp each row Active / Lapsed. The honest split is the expiration date vs today - and that's exactly what this actor does for you. active mode hands you the live slice (~937,000 licenses, about 96% of the file); date filters answer "who has to renew before November".

Typical questions

  • "Is this NPN / license number live, and under what lines?"
  • "Every Adjuster licensed in Texas - active and lapsed."
  • "Who with a Life, Accident, Health & HMO qualification is licensed in Dallas?"
  • "All Florida-based producers holding Texas licenses."
  • "Renewal pipeline: every license expiring in Q4 2026."
  • "Aggregate the register by license type, state, or expiration year."

Inputs

InputWhat it does
modeactive (live slice, default) / rows (any license) / aggregate
licenseTypeexact: General Lines Agent / Adjuster / Life Agent / ...
qualificationthe finer line (fuzzy): 'Life, Accident, Health & HMO', 'Property and Casualty'
name / city / stateholder filters (name & city fuzzy, state exact)
expiresBefore/Afterrenewal window
issueBefore/Afteroriginal-issue window
groupByaggregate over licenseType / qualification / state / city / expirationYear (city returns ~16,500 groups - each is a billed row)
maxResultscap records (default 50, max 10,000 per run; ignored in aggregate mode)

Default run = the 50 live licenses expiring soonest (mode defaults to active) - fast for the daily auto-test. For a targeted query add a filter. For a summary of the register use aggregate, which returns one billed row per group - a few dozen for licenseType / qualification / state / expirationYear, but ~16,500 for city (so a city rollup is metered like a 16.5k-row pull).

Example inputs

One producer by name - name is a fuzzy match; mode=rows includes lapsed licenses so nothing is hidden.

{ "mode": "rows", "name": "DERRICK BROWN", "maxResults": 5 }

Every Adjuster licensed in Texas - licenseType is matched against the exact source value.

{ "mode": "rows", "licenseType": "Adjuster", "maxResults": 10 }

The Q4 2026 renewal pipeline - pair expiresAfter with expiresBefore to pull one expiry window.

{ "mode": "active", "expiresAfter": "2026-10-01", "expiresBefore": "2027-01-01",
"maxResults": 10 }

The register by license type - mode=aggregate returns one count row per line instead of individual licenses.

{ "mode": "aggregate", "groupBy": "licenseType" }

Low cost

From $0.00005 per record, down to $0.00003 at Gold - billed only for the rows you use, at the low end of the store. Cost scales with what you pull, not with the size of the register - and each record is metered individually.

TDI's register is a "just download the CSV" dataset that hides real traps: there is no status column (the live/expired split has to be derived from expiration dates, and reading the renewal pipeline off the current calendar year quietly drops every term that runs into next year); the same producer carries multiple rows - one per line of authority - so a name search returns every license they hold, which is either exactly right or exactly wrong depending on what you asked; the type vocabulary mixes permanent and temporary lines ("Temp General Lines - LAH Agent", "Life Agt Not Exceeding $25,000") that a substring filter drags together; and the file is a national producer list, so most of it is people outside Texas. Normalizing that into a register where a licenseType / state / expiry query returns exactly the licenses you mean is the actual product. Every pull is integrity-checked against the feed's known shape, so a degraded source fails loudly instead of returning bad rows.

Example output

mode=rows, name="Jorge Galan" - one license row, carrying the producer's identity, the exact type and qualification line, and the renewal clock:

{
"platform": "tx-tdi-licenses",
"source": "texas-insurance-agents",
"mode": "rows",
"groupKey": "",
"groupCount": "",
"groupBy": "",
"npn": "21304426",
"licenseNumber": "3227035",
"name": "JORGE GALAN",
"licenseType": "General Lines Agent",
"qualification": "Life, Accident, Health & HMO",
"issueDate": "2024-09-05",
"expirationDate": "2030-05-31",
"city": "KATY",
"state": "TX",
"zipcode": "77493",
"province": ""
}

mode=aggregate, groupBy=licenseType - the register by license type:

General Lines Agent ~549,000
Adjuster ~168,000
Life Agent ~134,000
Pers Lines Prop and Cas Agent ~50,000
Adjuster - DHS Texas ~27,000

Source