Texas Business Scraper avatar

Texas Business Scraper

Pricing

from $11.90 / 1,000 results

Go to Apify Store
Texas Business Scraper

Texas Business Scraper

Search 3.4M+ registered Texas businesses from the state franchise-tax open data: name, entity type, county, city, NAICS, SOS file number, charter date and status. Build a filtered B2B lead or KYB list, look up a company for its officers and registered agent, or monitor new registrations.

Pricing

from $11.90 / 1,000 results

Rating

0.0

(0)

Developer

Norm Data

Norm Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Norm Data

Texas Business Scraper

Search 3.4 million registered Texas businesses from the state's official open data with no API key and no login. Every entity on the franchise-tax register: taxpayer and Secretary of State file number, entity type, county, city, NAICS industry, charter (formation) date, right-to-transact status and sales-tax-permit standing. Build a filtered B2B lead or KYB list, look up a company for its officers and registered agent, or run a monitor for newly registered Texas businesses.

Here is one real row (search, no enrichment):

{
"taxpayer_number": "32107661392",
"name": "TC ADVISORS LLC",
"organizational_type_code": "CL",
"entity_category": "llc",
"entity_type": "Limited liability company",
"is_llc": true,
"sos_file_number": "0806754854",
"sos_charter_date": "2026-08-19",
"right_to_transact": "Active",
"is_active": true,
"responsibility_beginning_date": "2026-08-19",
"entity_age_years": 0,
"is_new": true,
"is_out_of_state": false,
"address": "2007 ENCINO CIR # B, AUSTIN, TX, 78723",
"city": "AUSTIN",
"state": "TX",
"zip": "78723",
"county_code": "227",
"county": "Travis",
"naics_code": "541611",
"naics_industry": "Professional, scientific, and technical services",
"comptroller_url": "https://comptroller.texas.gov/taxes/franchise/account-status/search",
"scraped_at": "2026-09-10T23:55:26.226Z"
}

With includeOfficers (always on for look-up) each row also carries registered_agent_name, registered_agent_address, mailing_address, sos_status, report_year and an officers array of { name, title, year, address }.

What it does

Reads the Texas franchise-tax register from data.texas.gov (Socrata, keyless), decodes the county and organizational-type codes, and normalizes every entity into a flat row. Three modes:

  • Search filters the register by name, entity category, county, city, ZIP, NAICS, right-to-transact status, out-of-state, charter date or franchise-responsibility date, and optionally whether the entity also holds a sales-tax permit.
  • Look up resolves 11-digit taxpayer numbers, 9-digit EIN/FEI numbers, SOS file numbers or names, one row per identifier, always with officers and the registered agent. Unresolved identifiers come back as an error row.
  • Monitor returns entities with a new franchise-tax responsibility or a new sales-tax permit since a date, each tagged with the change type.

Missing source values are returned as null, never invented.

Why this scraper

  • List building, not just look-up. Filter 3.4M entities by county, city, ZIP, NAICS industry, entity type, charter date and status. Other Texas business Actors only resolve names you already have.
  • Officers and registered agent. The officers/directors array with titles and the registered agent, pulled from the Comptroller account-status service, as an opt-in enrichment.
  • Right-to-transact and status. right_to_transact, is_active and the SOS status, so you can drop forfeited or not-in-good-standing entities from a lead list.
  • A real new-business monitor. New franchise-tax registrations plus new sales-tax permits since a date, tagged, with standard per-result billing and no lookback cap.
  • Decoded, not raw. County codes to county names, organizational-type codes to LLC / corporation / partnership, NAICS to an industry sector, plus entity_age_years and an is_new flag.
  • No API key, no login, no browser. The base register is a keyless Socrata API and the detail service is a keyless JSON endpoint.

How it compares

CapabilityThis actorOther Texas business scrapers on Apify
Look up by taxpayer / EIN / SOS file number or nameyesyes
Officers + registered agentyessome
Filtered list by county / city / ZIP / NAICS / statusyesno
Charter-date and franchise-responsibility-date rangesyesno
Sales-tax-permit standing + outlet countyesrare
New-business monitor (franchise + sales-tax permit)yessome
Decoded county, entity type and industryyesrare
Declared dataset schema + free-plan previewyesrare

Use cases

  • B2B lead generation. New LLCs in a county and industry, with address and, on enrichment, the officers and agent.
  • KYB and onboarding. Confirm a Texas counterparty is registered and in good standing, and keep the SOS file number, charter date and officers on file.
  • Sales territory and market research. Count businesses by county, city or NAICS, or find multi-outlet operators.
  • New-business monitoring. Schedule the monitor mode for a weekly feed of newly registered entities.
  • Skip tracing and investigations. Resolve an entity to its registered agent and officer addresses.
  • Data enrichment. Attach Texas registration status and NAICS to CRM or vendor records.

Quickstart

Search: new consulting LLCs in Austin chartered since 2025.

{
"mode": "search",
"city": ["AUSTIN"],
"entityCategory": ["llc"],
"naics": ["5416"],
"charteredAfter": "2025-01-01",
"maxItems": 200
}

Search with officers, restaurants in Harris county that also hold a sales-tax permit:

{ "mode": "search", "county": ["Harris"], "naics": ["722"], "hasSalesTaxPermit": true, "includeOfficers": true, "maxItems": 500 }

Look up a batch:

{ "mode": "lookup", "identifiers": ["32014898749", "WHATABURGER", "0800333885"] }

Monitor new registrations in the last 2 weeks:

{ "mode": "monitor", "since": "14 days", "events": ["new_franchise_taxpayer", "new_sales_tax_permit"], "maxItems": 1000 }

Input reference

FieldApplies toDescription
maxItemsallCeiling on rows written.
modeallsearch, lookup or monitor.
namesearchTaxpayer (legal) name contains.
entityCategorysearchllc, corporation, partnership, association, trust.
organizationalTypesearchExact two-letter Comptroller org-type codes.
countysearchCounty name(s) or numeric code(s).
citysearchTaxpayer city, exact (case-insensitive).
zipsearchZIP prefix(es).
naicssearchNAICS code prefix(es).
rightToTransactsearchany, active, not_active.
outOfStateOnlysearchTaxpayer address outside Texas.
hasSalesTaxPermitsearchAlso holds an active sales-tax permit.
charteredAfter / charteredBeforesearchSOS charter-date window (ISO).
responsibleAfter / responsibleBeforesearchFranchise-responsibility-date window (ISO).
includeOfficerssearchAdd officers + registered agent + SOS detail. Billed separately.
identifierslookupTaxpayer numbers, EIN/FEI numbers, SOS file numbers, or names.
sincemonitorISO date or "30 days" / "2 weeks".
eventsmonitornew_franchise_taxpayer, new_sales_tax_permit.
appTokenallOptional free Socrata token for large runs.

Output reference (selected)

FieldDescription
taxpayer_number / sos_file_numberIdentifiers.
nameLegal (taxpayer) name.
organizational_type_code / entity_category / entity_type / is_llc / is_corporation / is_partnershipEntity type.
sos_charter_date / responsibility_beginning_date / entity_age_years / is_newTiming.
right_to_transact / is_active / sos_status_codeStanding.
is_out_of_stateDomicile.
address / city / state / zip / county_code / countyLocation.
naics_code / naics_industryIndustry (present on about a quarter of records).
exempt_reason_code / exempt_begin_dateFranchise-tax exemption (nonprofits and similar).
has_sales_tax_permit / sales_tax_outlet_countSales-tax standing (when checked).
fei_number / dba_name / state_of_formation / sos_status / registered_agent_name / registered_agent_address / mailing_address / report_year / officers / officer_countAdded only with includeOfficers (always on in look-up).
change_typeMonitor mode change tag.
query / errorSet on an unresolved look-up row.
comptroller_url / scraped_atThe Comptroller search page and a collection timestamp.

Run via API and CLI

curl -X POST "https://api.apify.com/v2/acts/USERNAME~texas-business-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"mode":"lookup","identifiers":["32014898749"]}'
$apify call USERNAME/texas-business-scraper --input '{"mode":"search","county":["Travis"],"entityCategory":["llc"],"maxItems":1000}'

Fetch results

curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"

Billing and limits

  • Pay per result. Billed per entity row written.
  • Officer enrichment adds a separate event, charged only when officer data is found. Look up mode always enriches.
  • No charge on failure. A run that produces zero rows fails with a message and is not billed.
  • An unresolved look-up identifier still writes one error: "not found" row and is billed as a base row.
  • Free Apify plans run the built-in 10-row sample only.
  • The base register is a Socrata API capped at 50,000 rows per query; this Actor pages it in 2,000-row chunks, so a large filtered run is paced by the source, not by any per-record work.

FAQ and troubleshooting

Do I need an API key? No. data.texas.gov and the Comptroller account-status service are both keyless. A free Socrata token only raises the shared rate limit for very large runs.

Why did my run return zero rows? No entity matched the filters. Loosen them or widen the date ranges. A zero-row run fails and is not billed.

Why is naics_industry sometimes empty? The franchise-tax register carries a NAICS code on only part of its records. When it is present the Actor maps it to an industry sector.

Why is sos_charter_date in the future for a new entity? The state forward-dates some new filings. entity_age_years is clamped to zero in that case.

What is "right to transact"? Whether the entity currently has the right to conduct business in Texas. Entities that have forfeited it for unpaid franchise tax show not active.

Does this cover the Texas Secretary of State corporate registry (SOSDirect)? No. SOSDirect is a paid, per-search service. This Actor uses the free franchise-tax and sales-tax open data plus the free Comptroller account-status service.

How current is the data? The open-data files refresh on the state's schedule, roughly weekly. It is not real time.

Is this an official Texas tool? No. Independent, not affiliated with the Texas Comptroller or the Secretary of State. It reads only published open data.

Local development

bun install
bun test # offline: parsing, normalisation, code decode, input logic
bun run src/main.ts # reads storage/key_value_stores/default/INPUT.json
bun scripts/verify-live.mjs # hits data.texas.gov + comptroller.texas.gov, checks every mode