Verified New Business Openings by State & County (SOS + Tax) avatar

Verified New Business Openings by State & County (SOS + Tax)

Pricing

from $1.38 / 1,000 results

Go to Apify Store
Verified New Business Openings by State & County (SOS + Tax)

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

Kyle Maloney

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

2 days ago

Last modified

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 its opening_status can only read registered or planned. The row says so on registers_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 reads planned, 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 — see opening_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_unavailable names it; franchise_record_on_file / sales_tax_permit_on_file stay null ("not checked") rather than false.

State coverage

StateRegisters this actor readsEvidence kindBest possible confidenceTrading proof?
TXComptroller 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_permithighyes (first-sales date)
COSOS business entitiessos_charterlowno
CTSOTS business registrationssos_registrationlowno
NYDOS active corporationssos_charterlowno
ORSOS active businesses (4 associated-name rows per business, collapsed to one)sos_registrationlowno
PADOS registered businesses (republished ~monthly)sos_registrationlowno
DEDivision of Revenue business licences (Delaware publishes no open corporate registry)business_licenselowno

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 sendWithout this checkWith 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 dateRejected instantly, no network call, no bill
Jan 2025Same — wasted round trips and a misleading diagnosisRejected instantly
2025-02-30HTTP 400 — an impossible calendar date is shape-validRejected as not_a_calendar_date
2025 (bare year)HTTP 200. Socrata silently widens it to 2025-01-01Rejected — 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)

FieldWhat it is
nameLegal business entity name (in openings mode, the franchise-roster / SOS legal name; the trading name is outlet_name).
entity_idState-assigned entity / account / licence / filing number. TX: the taxpayer number. openings mode: the signal_id.
typeEntity type as the state codes it (DLLC, Texas limited liability company, …).
statusRegistration status or standing. TX: the decoded right-to-transact-business status.
status_basisWhere status came from: source_column (CO, CT, TX), dataset_scope (NY, OR, DE) or not_published (PA).
formation_dateThe state's own date for the record — see date_basis.
date_basisWhat 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_dateCT: the state-filed registration date.
record_created_atCT: the open-data portal's ETL load timestamp, published separately so it can never be mistaken for a business date.
jurisdictionJurisdiction of formation. TX: TX for an SOS file number, foreign for a certificate of authority, null for a Comptroller-only record.
stateTwo-letter code of the state that produced the row.
registryHuman-readable register name.
trade_nameTrade / DBA name (DE).
license_valid_toDE: expiry of the current business licence.

Registered agent

FieldWhat it is
registered_agentThe agent-shaped name this actor has always returned for the state. Texas publishes none → null.
registered_agent_nameThe authoritative registered agent as the state labels it. null where the state files none.
registered_agent_sourceWhich 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_addressAgent mailing address where the state publishes one (CO, NY, OR).
registered_agent_rolePA: role of the named party on the filing.
dos_process_nameNY: the service-of-process contact on file with NY DOS.

Address & geography

FieldWhat it is
addressComposed address. On a Texas openings row with a permit this is the outlet (trading) address; on Oregon read record_type first.
address_line2Second address line (OR, NY).
city · zip · countryComponents, where published.
countyCounty name (NY, PA; TX decoded from the Comptroller county code, null on code 0 = no Texas county).
county_codePA numeric county code; TX Comptroller county code (the alphabetical index 1–254 of Texas counties).
latitude · longitudeState-published geocode (PA, DE).
mailing_addressTX: the taxpayer mailing address, kept separate from the trading address.

Texas registers (search / new_businesses / openings)

FieldWhat it is
taxpayer_numberComptroller taxpayer number (11 digits), shared by both Texas rosters — the join key.
sos_file_numberSOS charter / certificate-of-authority file number (blank on record type X). On non-Texas openings rows: the SOS registry number.
sos_charter_dateDate 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_labelRaw 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_dateDate of the current SOS status.
right_to_transact_code · right_to_transact_labelComptroller 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_labelU 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_labelComptroller organization type, decoded from the official record layout (79 codes: Texas LLC, Texas profit corporation, Foreign profit corporation, Individual – sole owner, …).
franchise_responsibility_dateDate the taxpayer became liable for franchise tax — the only "opened" anchor a record-type-X entity has.
exempt_reason_codeFranchise-tax exemption reason code (00 = not exempt).
naics_codeNAICS: the sales-tax outlet's on an opening row with a permit, otherwise the franchise roster's.

Opening signal (openings mode)

FieldWhat it is
signal_idStable id of the resolved business: TX:tp:<taxpayer_number>, <ST>:sos:<file number> or <ST>:<register>:<record id>.
opening_statustrading (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_kindnew_entity (chartered / registered inside the window) · new_location (trading evidence in the window for an entity that predates it) · entity_age_unknown.
opened_confidencehigh / medium / low — see the honesty boundary above.
opened_evidenceArray from the closed vocabulary sos_charter, sos_registration, business_license, franchise_tax_registration, sales_tax_permit.
opened_evidence_countNumber of distinct evidence kinds.
registers_vouchingRegister keys holding an in-window record for this business (tx_franchise_tax, tx_sales_tax_permit, co_sos, …).
registers_availableEvery register this actor knows for the row's state, whether or not it answered. One register available = high is impossible.
registers_checkedRegisters that passed the live health check and were queried.
registers_unavailableRegisters that failed the health check or the query this run and could not vouch. null when all answered.
registers_truncatedRegisters whose window fetch hit the per-register cap (newest first). null when none was capped.
match_basisStrongest 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_dateEarliest / latest in-window evidence date. The latest can be in the future for a planned opening.
evidence_date_spread_daysDays between them; drives high vs medium (threshold 180).
evidence_window_startStart of the requested window.
evidence_window_start_effectiveOldest evidence date the fetch actually reached for this state — equal to the window start unless a register was capped.
enrichment_statusTX: complete / partial (a lookup this row needed was not answered — its *_on_file fields stay null) / unavailable. not_applicable elsewhere.
franchise_record_on_fileTX: true / false (checked) / null (not checked).
sales_tax_permit_on_fileTX: 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_fileTX: active permit outlets found for this taxpayer, any date, when looked up.
outlet_countTX: outlets whose first-sales date falls in the window.
outlet_name · outlet_address · outlet_city · outlet_zipTX: the primary (earliest-opening) outlet — the trading name (often a DBA) and where it trades.
inside_city_limitsTX: outlet inside (true) / outside (false) city limits.
sales_tax_permit_issue_dateTX: permit issue date for the primary outlet.
first_sales_dateTX: 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 BUSINESS
, REGISTERED 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

FieldWhat it is
state_statusAlways ok on an emitted row; a failed state contributes no rows and is named in states_failed.
partial_resultstrue 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_detailExactly which states answered, which did not, and why (per register in openings mode).
result_truncatedtrue when a state returned exactly maxPerState records, or maxResults bound, or (openings) a register's fetch was capped.
state_rows_fetchedRecords (openings: evidence rows) this state returned before de-duplication / delta filtering.
run_mode · delta_mode · delta_baseline_sizeThe mode, whether delta filtering ran, and the baseline size beforehand (0 on the first run of a new scope).
data_quality_flagsPer-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.

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.

ActorWhat it adds for youExample workflowWhere both cover
KYB Company VerifierA per-company verdict (found / not found / not checked) across these same state registries plus France (INSEE) and GLEIFThis actor finds and monitors openings; hand a list of names to the verifier when you need a verification record for eachCO, CT, NY, OR, PA, DE
Liquor License New Openings TrackerBars and restaurants at the licence-application stage, with the owner entity namedA Texas liquor application names an LLC: find its opening here with charter date, permit and countyTX, CO, CT, NY
Childcare Provider LeadsLicensed childcare programs with phone, email and named directorSearch a provider's legal entity here to see how long it has existedTX, NY, PA, CT, DE
City Business License LeadsNew city business licences with address, NAICS and phone where publishedThe city licence shows where a business trades; this actor shows the entity behind itNew York City
WARN Layoff AggregatorThe distress-side counterpart: layoff and closure noticesPair new openings with layoff notices for a regional growth-versus-contraction viewTX, OR
License VerifierProfessional and occupational licences, searchable by business name on several boardsA newly opened Texas or Colorado company: check whether it holds a state credentialTX, CO, CT
GLEIF Ownership GraphLegal Entity Identifiers and parent / subsidiary structureFor an entity large enough to hold an LEI, trace who owns itGlobal
NYC Landlord Registry Lead ListThe NYC buildings an LLC is registered as owning, with head officer and managing agentLook up a New York LLC here, then see its NYC rental-building portfolioNew York City
NYC ACRIS Deed Transfer IntelDeeds where an LLC bought or sold NYC property, with price and mailing addressPair a New York entity with its recent NYC property purchasesNew York City