US Business Licenses - 12 Local Registers avatar

US Business Licenses - 12 Local Registers

Pricing

from $0.03 / 1,000 us business licence records

Go to Apify Store
US Business Licenses - 12 Local Registers

US Business Licenses - 12 Local Registers

Business and occupational licences from twelve local registers — Chicago, Texas permits, Philadelphia, DC, Delaware, New Orleans, Cincinnati, Mesa, Norfolk, Berkeley, NYC DCWP and California counties. One schema; filter by name, licence, type, status, city or ZIP; monitor new licences.

Pricing

from $0.03 / 1,000 us business licence records

Rating

0.0

(0)

Developer

Wenhao Yang

Wenhao Yang

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

US Business Licenses - 12 Local Registers, One Schema

Business and occupational licence records from twelve local registers, server-side queryable, with a monitor mode for new licences.

Low cost

From $0.00005 per record, down to $0.00003 at Gold.

What you get

  • jurisdiction, state, source - which register the row came from
  • recordId, licenseNumber
  • businessName, dbaName, ownerName
  • licenseType, licenseCategory
  • status (normalised active / inactive / unknown where a status exists), statusRaw
  • startDate, eventDate (the issuance / event date), endDate
  • address, city, stateCode, zip, naics
  • sourceUrl, sourceUpdatedAt

Registers

jurisdictionRegisterNotes
chicago (default)Chicago business licencescurrent active licences only; one row per licence business activity
txTexas sales-tax permit outletsone row per outlet; current permits only
phillyPhiladelphia business licencesrental and commercial in one table
dcDC basic business licences
deDelaware business licences
nolaNew Orleans occupational licences
cincinnatiCincinnati business licences
mesaMesa (AZ) business licences
norfolkNorfolk (VA) business licencesno licence id in the feed - recordId is derived
berkeleyBerkeley (CA) business licences
nycNYC DCWPsub picks licenses / applications / inspections / violations / complaints
ca-countyCalifornia countiessub picks sac-fbn / sac-bl / sonoma

Modes

mode=rows (default) returns matching records.

mode=aggregate returns one count row per group (groupBy: licenseType, status, city, zip, licenseCategory), capped at maxResults groups (default 50 - raise it to get the long tail). A dimension the register does not publish is rejected; so is a group list the source would truncate. For nyc and ca-county the count is computed over the first 5,000 matching rows rather than a server-side group endpoint.

mode=monitor returns only records whose event date (issuance / filing date) is after your last run, and advances a per-user watermark in the actor's key-value store. The cursor is row-level: a page spanning several dates cannot skip the older ones. Owner runs do not advance the watermark unless sinceLastRun=true. Monitor is supported on the pushdown registers except berkeley (no date column), plus nyc/licenses and ca-county; the other NYC corpora have no issue-date axis and are rejected.

Examples

{ "jurisdiction": "chicago", "status": "AAI", "maxResults": 100 }
{ "jurisdiction": "chicago", "issuedFrom": "2026-10-01", "maxResults": 100 }
{ "jurisdiction": "tx", "city": "HOUSTON", "maxResults": 100 }
{ "jurisdiction": "philly", "licenseType": "Rental", "maxResults": 100 }
{ "jurisdiction": "dc", "name": "LLC", "maxResults": 100 }
{ "jurisdiction": "nola", "owner": "SMITH", "maxResults": 100 }
{ "jurisdiction": "philly", "owner": "SMITH", "maxResults": 100 }
{ "jurisdiction": "norfolk", "name": "MARKET", "maxResults": 100 }
{ "jurisdiction": "nyc", "sub": "licenses", "zip": "10001", "maxResults": 100 }
{ "jurisdiction": "nyc", "sub": "applications", "status": "Submitted", "maxResults": 100 }
{ "jurisdiction": "ca-county", "sub": "sac-fbn", "name": "CAFE", "maxResults": 100 }
{ "jurisdiction": "mesa", "name": "CAFE", "maxResults": 100 }
{ "mode": "monitor", "jurisdiction": "chicago", "maxResults": 100 }
{ "mode": "aggregate", "jurisdiction": "chicago", "groupBy": "licenseType" }

Honest limits

  • A row is a licence record, not a business. Chicago publishes licence activity rows; Texas publishes one row per outlet; Philadelphia mixes rental and commercial licences.
  • Filter availability differs by register. Cincinnati's feed has no business-name column, so name is rejected there (use licenseType/city/zip or an id). Norfolk and Texas expose only a few grouping dimensions; mode=aggregate on a dimension the register does not publish is rejected rather than returning an empty or unfiltered answer. licenseCategory is a group dimension on NYC and the California counties only.
  • Several registers publish only current licences (Chicago's current-active dataset, Texas, Delaware, New Orleans, Cincinnati) - Chicago still carries a status column; the others have none, so status stays blank there. Blank is not "expired".
  • Cincinnati publishes no business name at all (the column exists but every row is empty; measured 2026-10-24). businessName is blank for that register - use the licence number and address.
  • Field availability is not uniform. Berkeley publishes no licence type, status or issue date; DC and Mesa publish no ZIP; Norfolk publishes no city/ZIP/type/status. A filter the register cannot serve is rejected, not ignored.
  • Some dates are future. Licence terms can start years ahead (DC has 2029-2034 start dates); eventDate is the term start / issue date as published. A 9999 sentinel is cleared. On the newest-first page those future starts can appear first.
  • Addresses can be sparse on the newest rows. Philadelphia's newest licence rows frequently have no address/ZIP even though most of the corpus does; do not read a blank as "no address".
  • DC has no per-row freshness stamp, so sourceUpdatedAt is blank there; the count floor still runs.
  • licenseType is the local label, not a national taxonomy. The same trade can be named differently in two cities.
  • Norfolk has no licence number in its feed; recordId is a stable hash of the name and address, so two records with the same name at the same address collapse to one id.
  • NYC applications states are not licence states. status there is the application status (Submitted, Pending, ); unknown means the word is outside the normaliser's vocabulary, not that the application is invalid.
  • Monitor needs an issue-date axis. The NYC applications/inspections/violations/complaints corpora have no single issue date and reject issuedFrom; use them with a date range of your own or the dedicated NYC actor.
  • PII: these are public business registrations. Owner names are part of the record. Phone numbers and mailing addresses are never emitted (some sources return them in the raw payload; they are not mapped to the output).
  • Filters a register cannot serve are rejected with a clear error - none are silently dropped.
  • Every register has its own count floor; most also carry a freshness check. The California county family (ca-county) has a count floor but no freshness probe.

Also available in this account: US contractor licenses (nine state boards), Chicago building permits, NYC ACRIS and NYC Tax Lien Sale Lists.