Verified New Business Openings by State & County (SOS + Tax)
Pricing
from $1.38 / 1,000 results
Verified New Business Openings by State & County (SOS + Tax)
New business leads from official state data: one row per business that just opened, verified across the Secretary of State charter and the sales-tax permit (first-sales date), with county, NAICS, entity type and a three-valued confidence. TX, CO, CT, NY, OR, PA, DE. Keyless, no anti-bot.
Pricing
from $1.38 / 1,000 results
Rating
0.0
(0)
Developer
Kyle Maloney
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
New Business Leads — Verified Openings by State & County (SOS + Sales Tax)
New business leads from official state data, one row per business that just
opened. Each opening is resolved across every register the state publishes —
the Secretary of State charter (the entity exists) and, in Texas, the
Comptroller sales-tax permit with its first-sales date (the business actually
sells) — and carries the evidence that vouches for it, a three-valued
opened_confidence, county, NAICS, entity type, and the trading address.
Keyless, sourced from state open-data portals, no anti-bot.
Seven states, live-verified on every run: Texas, Colorado, Connecticut, New York, Oregon, Pennsylvania, Delaware — 18.6 million records in total.
It is also still the US Secretary-of-State business registry search and
new-business monitor it has always been: search and new_businesses modes are
unchanged, byte for byte, and Texas is now a seventh state in both.
The honesty boundary — read this before you buy leads
- An SOS charter is not proof of trading. It proves an entity was formed. Many
chartered entities never open a door. A state that publishes only an SOS register
(CO, CT, NY, OR, PA, DE) can therefore never produce an opening better than
opened_confidence: low, and itsopening_statuscan only readregisteredorplanned. The row says so onregisters_available. - A sales-tax permit whose first-sales date has arrived IS proof of trading. Texas
publishes the date each outlet first became liable to report sales tax. When that
date is at or before today the row reads
opening_status: trading; when it is still ahead — the Comptroller issues permits for outlets that open later; 6,663 such rows were live on 2026-09-26 — the row readsplanned, which is the same "opening soon" signal Google-Maps scrapers sell, taken from the state's own record. - Two registers agreeing =
high. A charter and a first-sales date within 180 days of each other. Two registers that disagree by more than 180 days =medium(an existing business opening another outlet — seeopening_kind). One register that proves trading =medium. One register that does not =low. - A register that did not answer never lowers your row to a confident negative.
registers_unavailablenames it;franchise_record_on_file/sales_tax_permit_on_filestaynull("not checked") rather thanfalse.
State coverage
| State | Registers this actor reads | Evidence kind | Best possible confidence | Trading proof? |
|---|---|---|---|---|
| TX | Comptroller Active Franchise Taxpayers (9cir-efmm, 3.47M rows — carries the SOS charter date + SOS file number) and Active Sales Tax Permit Holders (jrea-zgmq, 888k outlets — permit issue + first-sales date, NAICS, in/out city limits) | sos_charter / franchise_tax_registration + sales_tax_permit | high | yes (first-sales date) |
| CO | SOS business entities | sos_charter | low | no |
| CT | SOTS business registrations | sos_registration | low | no |
| NY | DOS active corporations | sos_charter | low | no |
| OR | SOS active businesses (4 associated-name rows per business, collapsed to one) | sos_registration | low | no |
| PA | DOS registered businesses (republished ~monthly) | sos_registration | low | no |
| DE | Division of Revenue business licences (Delaware publishes no open corporate registry) | business_license | low | no |
Texas is the only state where two independent registers can be joined — on the
Comptroller taxpayer number, an exact key shared by both rosters — which is why
it is the only state that can reach high.
Scope and cost — read this first
states is required. There is no default and no hidden nationwide mode,
so a run always answers about the states you actually named. A call with no
states is rejected before the run starts — HTTP 400, no compute, no rows,
nothing billed.
What a run costs. Billing is pay-per-result at $2.50 per 1,000 rows
(about $0.25 per 100 rows), and paid Apify plans get a graduated discount
of 20–70% off that. Only rows actually written to the dataset are billed — a run
that fails a pre-flight check emits nothing and bills nothing. In openings mode
one row is one business, so maxResults: 50 is at most 50 businesses ≈ $0.13.
maxResults is the hard cap. It bounds the whole run, across states, in every
mode, and is applied exactly once by a single emission planner. In openings mode the
cap is shared max-min fairly across the requested states (a TX + CO run at 50 gives
each state 25 while both have rows), and within a state rows are ranked by
opened_confidence then newest evidence. In openings mode a
run that omits it caps itself at 200; in search / new_businesses a run that
omits it behaves exactly as before (only maxPerState applies). Rows carry
result_truncated: true when the cap bound.
Who it's for
- B2B sellers to brand-new businesses — payments, payroll, insurance, POS, web and marketing agencies, commercial real estate, business banking — prospecting weekly by county and NAICS.
- Lead-gen & RevOps teams that need "who just entered the market", not a registry dump.
- KYB / KYC / compliance teams verifying that an entity is registered (
search). - AI agents needing a "find / verify / monitor US businesses" tool.
Modes
openings — one row per business that just opened (new)
Every register behind the requested states is health-checked live, then queried for
the window (daysBack, default prefill 30, or sinceDate). Records are merged into
businesses on, strongest first: the Texas taxpayer number, the SOS file number, a
register's own record id (this is what collapses Oregon's four associated-name rows),
and finally normalised name + street address (or zip). Each business becomes one
opening_signal row ranked by opened_confidence then newest evidence; the cap is
shared fairly across states and the top rows per state are emitted. Texas rows are then enriched: for every emitted
business the other Comptroller roster is looked up by taxpayer number (50 ids per
request), so a charter-only row learns whether a permit exists, and a permit-only row
learns its charter date, SOS number, entity type and standing.
{ "mode": "openings", "states": ["TX", "CO"], "daysBack": 30, "maxResults": 50 }
search — look up companies by name (unchanged)
{ "mode": "search", "states": ["CO", "CT", "NY"], "query": "Acme", "maxPerState": 50 }
new_businesses — raw recently formed entities, one row per registry record (unchanged)
{ "mode": "new_businesses", "states": ["TX", "NY", "PA"], "daysBack": 30, "maxPerState": 100 }
Delta / monitoring — monitor: true, any mode
Schedule the run and each run emits only entities (or, in openings mode,
businesses) no previous run of the same scope has reported. The baseline lives in a
named key-value store and is scoped to the mode, state set and query, so a
narrow run cannot overwrite the baseline a wide run built. The first run of any new
scope emits everything (delta_baseline_size: 0); every run after that emits only
what is new. Records with no id are always emitted rather than silently dropped.
It tells you when a register did not answer
Every register is health-checked live before any result is returned — row-count floor, freshness (for the Texas rosters, whose newest dates are legitimately in the future, freshness is a floor on the trailing-30-day count), required columns, a closed-vocabulary check, and a negative control (a filter that must match nothing; if it matches something, the portal is ignoring the WHERE clause and every result would be an unfiltered slice of the registry).
A state that fails is excluded and named, on every single row:
partial_results, states_ok / states_failed / states_failed_detail. In
openings mode the disclosure is per register: registers_available,
registers_checked, registers_unavailable. A Texas run in which the sales-tax
roster is down still runs on the franchise roster — and every Texas row then says its
confidence was computed without the permit register.
If no register can answer, the run fails loudly and bills nothing rather than returning a green, empty dataset that reads like a verified negative.
Date format — sinceDate
sinceDate must be YYYY-MM-DD. For example 2023-01-15. An unpadded
month or day (2023-1-5) is accepted and padded; surrounding whitespace is trimmed.
Leave it empty (or omit it) to use daysBack instead.
Anything else fails the run before any state portal is contacted, and bills
nothing. The value is spliced into a live SoQL $where date literal against each
register's own date column, so an unchecked format changes what question the portals
are asked. Measured against data.colorado.gov on 2026-08-20:
| You send | Without this check | With it |
|---|---|---|
01/15/2025 (US) | HTTP 400 query.soql.type-mismatch from every portal, after the full live health check has already run — the run then fails blaming the state registries, not your date | Rejected instantly, no network call, no bill |
Jan 2025 | Same — wasted round trips and a misleading diagnosis | Rejected instantly |
2025-02-30 | HTTP 400 — an impossible calendar date is shape-valid | Rejected as not_a_calendar_date |
2025 (bare year) | HTTP 200. Socrata silently widens it to 2025-01-01 | Rejected — right only by accident of upstream coercion |
Slash forms are refused rather than guessed at: 05/06/2025 is genuinely ambiguous
between US month-first and EU day-first order.
Output fields
Every field below is declared in the dataset schema. Fields are nullable: null
means the register does not publish it or it was not checked, never "we checked
and there is none". false always means checked-and-negative.
Entity (all modes)
| Field | What it is |
|---|---|
name | Legal business entity name (in openings mode, the franchise-roster / SOS legal name; the trading name is outlet_name). |
entity_id | State-assigned entity / account / licence / filing number. TX: the taxpayer number. openings mode: the signal_id. |
type | Entity type as the state codes it (DLLC, Texas limited liability company, …). |
status | Registration status or standing. TX: the decoded right-to-transact-business status. |
status_basis | Where status came from: source_column (CO, CT, TX), dataset_scope (NY, OR, DE) or not_published (PA). |
formation_date | The state's own date for the record — see date_basis. |
date_basis | What formation_date actually is: entity_formation_date (CO), registration_date (CT), initial_dos_filing_date (NY), registry_date (OR), creation_date (PA), license_valid_from (DE), sos_charter_date (TX). |
registration_date | CT: the state-filed registration date. |
record_created_at | CT: the open-data portal's ETL load timestamp, published separately so it can never be mistaken for a business date. |
jurisdiction | Jurisdiction of formation. TX: TX for an SOS file number, foreign for a certificate of authority, null for a Comptroller-only record. |
state | Two-letter code of the state that produced the row. |
registry | Human-readable register name. |
trade_name | Trade / DBA name (DE). |
license_valid_to | DE: expiry of the current business licence. |
Registered agent
| Field | What it is |
|---|---|
registered_agent | The agent-shaped name this actor has always returned for the state. Texas publishes none → null. |
registered_agent_name | The authoritative registered agent as the state labels it. null where the state files none. |
registered_agent_source | Which upstream column the agent came from. For New York this reads ny_dos_process_name — a service-of-process contact, frequently the entity itself. |
registered_agent_address | Agent mailing address where the state publishes one (CO, NY, OR). |
registered_agent_role | PA: role of the named party on the filing. |
dos_process_name | NY: the service-of-process contact on file with NY DOS. |
Address & geography
| Field | What it is |
|---|---|
address | Composed address. On a Texas openings row with a permit this is the outlet (trading) address; on Oregon read record_type first. |
address_line2 | Second address line (OR, NY). |
city · zip · country | Components, where published. |
county | County name (NY, PA; TX decoded from the Comptroller county code, null on code 0 = no Texas county). |
county_code | PA numeric county code; TX Comptroller county code (the alphabetical index 1–254 of Texas counties). |
latitude · longitude | State-published geocode (PA, DE). |
mailing_address | TX: the taxpayer mailing address, kept separate from the trading address. |
Texas registers (search / new_businesses / openings)
| Field | What it is |
|---|---|
taxpayer_number | Comptroller taxpayer number (11 digits), shared by both Texas rosters — the join key. |
sos_file_number | SOS charter / certificate-of-authority file number (blank on record type X). On non-Texas openings rows: the SOS registry number. |
sos_charter_date | Date chartered by the SOS. Can be in the future — Texas allows a delayed effective date of formation (181 rows live on 2026-09-26); flagged future_dated. |
sos_status_code · sos_status_label | Raw and decoded SOS status (Active, Forfeited franchise tax, Reinstated, Terminated, …). Codes not in the Comptroller layout (V, X appear live) keep the code and null the label. |
sos_status_date | Date of the current SOS status. |
right_to_transact_code · right_to_transact_label | Comptroller right-to-transact-business code and label (Active / Active – eligible for termination / Forfeited / Franchise tax involuntarily ended / Franchise tax not established). |
record_type_code · record_type_label | U SOS file number · V SOS certificate of authority (foreign entity) · X Comptroller-assigned number, no SOS charter (sole proprietors, partnerships, nexus filers — 241,106 rows). |
org_type_code · org_type_label | Comptroller organization type, decoded from the official record layout (79 codes: Texas LLC, Texas profit corporation, Foreign profit corporation, Individual – sole owner, …). |
franchise_responsibility_date | Date the taxpayer became liable for franchise tax — the only "opened" anchor a record-type-X entity has. |
exempt_reason_code | Franchise-tax exemption reason code (00 = not exempt). |
naics_code | NAICS: the sales-tax outlet's on an opening row with a permit, otherwise the franchise roster's. |
Opening signal (openings mode)
| Field | What it is |
|---|---|
signal_id | Stable id of the resolved business: TX:tp:<taxpayer_number>, <ST>:sos:<file number> or <ST>:<register>:<record id>. |
opening_status | trading (first-sales date has arrived) · planned (permit or charter exists, effective / first-sales date still ahead) · registered (entity exists; nothing yet proves it trades). |
opening_kind | new_entity (chartered / registered inside the window) · new_location (trading evidence in the window for an entity that predates it) · entity_age_unknown. |
opened_confidence | high / medium / low — see the honesty boundary above. |
opened_evidence | Array from the closed vocabulary sos_charter, sos_registration, business_license, franchise_tax_registration, sales_tax_permit. |
opened_evidence_count | Number of distinct evidence kinds. |
registers_vouching | Register keys holding an in-window record for this business (tx_franchise_tax, tx_sales_tax_permit, co_sos, …). |
registers_available | Every register this actor knows for the row's state, whether or not it answered. One register available = high is impossible. |
registers_checked | Registers that passed the live health check and were queried. |
registers_unavailable | Registers that failed the health check or the query this run and could not vouch. null when all answered. |
registers_truncated | Registers whose window fetch hit the per-register cap (newest first). null when none was capped. |
match_basis | Strongest key that joined the records: taxpayer_number, sos_file_number, record_id, name_address, or single_record. |
matched_record_ids | <register>:<record id> of every merged source record, so the merge is auditable. |
first_evidence_date · latest_evidence_date | Earliest / latest in-window evidence date. The latest can be in the future for a planned opening. |
evidence_date_spread_days | Days between them; drives high vs medium (threshold 180). |
evidence_window_start | Start of the requested window. |
evidence_window_start_effective | Oldest evidence date the fetch actually reached for this state — equal to the window start unless a register was capped. |
enrichment_status | TX: complete / partial (a lookup this row needed was not answered — its *_on_file fields stay null) / unavailable. not_applicable elsewhere. |
franchise_record_on_file | TX: true / false (checked) / null (not checked). |
sales_tax_permit_on_file | TX: true / false = the roster was checked and holds no active permit (a chartered entity that does not yet sell) / null = not checked. |
sales_tax_outlets_on_file | TX: active permit outlets found for this taxpayer, any date, when looked up. |
outlet_count | TX: outlets whose first-sales date falls in the window. |
outlet_name · outlet_address · outlet_city · outlet_zip | TX: the primary (earliest-opening) outlet — the trading name (often a DBA) and where it trades. |
inside_city_limits | TX: outlet inside (true) / outside (false) city limits. |
sales_tax_permit_issue_date | TX: permit issue date for the primary outlet. |
first_sales_date | TX: date the outlet first became liable to report sales tax. Future = planned opening; at or before today = proof of trading. |
Oregon record shape (search / new_businesses)
Oregon publishes one row per associated name: record_type (
PRINCIPAL PLACE OF BUSINESSREGISTERED AGENT, MAILING ADDRESS, AUTHORIZED REPRESENTATIVE),
entity_of_record_name · entity_of_record_id, record_url. record_id is CT's
portal row identifier. source_url links to the official record or search page.
In openings mode the four rows collapse to one business.
Connecticut ownership flags (state self-certification)
woman_owned, veteran_owned, minority_owned, lgbtq_owned,
disability_owned. null on every other state.
Run integrity — on every row
| Field | What it is |
|---|---|
state_status | Always ok on an emitted row; a failed state contributes no rows and is named in states_failed. |
partial_results | true when at least one requested state did not answer. Computed from the actual per-state outcomes, never hard-coded. |
states_requested · states_ok · states_failed · states_failed_detail | Exactly which states answered, which did not, and why (per register in openings mode). |
result_truncated | true when a state returned exactly maxPerState records, or maxResults bound, or (openings) a register's fetch was capped. |
state_rows_fetched | Records (openings: evidence rows) this state returned before de-duplication / delta filtering. |
run_mode · delta_mode · delta_baseline_size | The mode, whether delta filtering ran, and the baseline size beforehand (0 on the first run of a new scope). |
data_quality_flags | Per-record notes: future_dated, no_geocode, no_registration_date_published, no_registered_agent_on_file, no_sos_charter_date (TX record type X), county_code_unmapped. null when clean. |
Use as an MCP tool
Exposed to AI agents via mcp.apify.com as a "find new businesses / search US
business registries" tool — clean inputs (states, mode, window, cap) and structured
output with explicit per-register status, so an agent can tell a verified opening
from an unavailable source.
FAQ
Which states are covered? Texas, Colorado, Connecticut, New York, Oregon, Pennsylvania and Delaware, from each state's official open-data portal.
Why is a Colorado opening always low? Colorado publishes one register — the SOS
entity roster. A charter proves the entity exists, not that it trades. The row tells
you this on registers_available: co_sos.
Why can a Texas date be in the future? Texas allows a delayed effective date of
formation, and the Comptroller issues sales-tax permits for outlets that will start
selling later. Both are real, forward-looking signals; they read planned.
Is this a KYB API? It is a screening tool, not a determination. For a legal opinion on standing, pull the certificate from the state.
Why did a state return nothing? Check states_failed / registers_unavailable.
If the state is not listed there, it answered and genuinely had no match. PA
republishes roughly monthly, so a 7-day window can legitimately be empty.
Any anti-bot or captchas? No — this reads open-data APIs, not lookup pages.
Source
State open-data portals on Socrata: data.texas.gov (Comptroller of Public
Accounts, two rosters), data.colorado.gov, data.ct.gov, data.ny.gov,
data.oregon.gov, data.pa.gov, data.delaware.gov. Keyless. An optional free
socrataAppToken raises rate limits. Texas code tables are transcribed from the
Comptroller's published record layout.
Pricing (Pay Per Result)
Billed per row returned — one business per row in openings mode — with graduated
discounts on paid Apify plans. A run that returns nothing costs nothing, and a run
that cannot answer fails instead of billing.
Related actors
Other feeds from the same catalogue for lead-gen, RevOps and KYB teams working new and changing businesses. The Where both cover column lists only the places both actors actually serve.
| Actor | What it adds for you | Example workflow | Where both cover |
|---|---|---|---|
| KYB Company Verifier | A per-company verdict (found / not found / not checked) across these same state registries plus France (INSEE) and GLEIF | This actor finds and monitors openings; hand a list of names to the verifier when you need a verification record for each | CO, CT, NY, OR, PA, DE |
| Liquor License New Openings Tracker | Bars and restaurants at the licence-application stage, with the owner entity named | A Texas liquor application names an LLC: find its opening here with charter date, permit and county | TX, CO, CT, NY |
| Childcare Provider Leads | Licensed childcare programs with phone, email and named director | Search a provider's legal entity here to see how long it has existed | TX, NY, PA, CT, DE |
| City Business License Leads | New city business licences with address, NAICS and phone where published | The city licence shows where a business trades; this actor shows the entity behind it | New York City |
| WARN Layoff Aggregator | The distress-side counterpart: layoff and closure notices | Pair new openings with layoff notices for a regional growth-versus-contraction view | TX, OR |
| License Verifier | Professional and occupational licences, searchable by business name on several boards | A newly opened Texas or Colorado company: check whether it holds a state credential | TX, CO, CT |
| GLEIF Ownership Graph | Legal Entity Identifiers and parent / subsidiary structure | For an entity large enough to hold an LEI, trace who owns it | Global |
| NYC Landlord Registry Lead List | The NYC buildings an LLC is registered as owning, with head officer and managing agent | Look up a New York LLC here, then see its NYC rental-building portfolio | New York City |
| NYC ACRIS Deed Transfer Intel | Deeds where an LLC bought or sold NYC property, with price and mailing address | Pair a New York entity with its recent NYC property purchases | New York City |