# Texas Business Entity Search & LLC Leads Scraper (`scrapebench/texas-business-entity-search`) Actor

Look up Texas companies by name, SOS file number or taxpayer number, or export every LLC and corporation formed since a date. Status, NAICS, county, right to transact, agent and officers.

- **URL**: https://apify.com/scrapebench/texas-business-entity-search.md
- **Developed by:** [ScrapeBench](https://apify.com/scrapebench) (community)
- **Categories:** Lead generation
- **Security:** Limited permissions
- **Stats:** 4 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.0025 / business entity record

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Texas Business Entity Search & LLC Leads Scraper

### Pain points

- The Texas Secretary of State sells its business data (SOSDirect; the master file is $1,750).
- The Comptroller's franchise-tax roll is free, but it is 3.5 million rows of codes (CL, CT, record types U / V / X, county numbers) that need the state's own record layout to read.
- The registered agent and the officers sit on a separate per-taxpayer page, one company at a time.

### What we solve

- Export mode: every Texas entity matching your filters (entity type, status, chartered since, city, name keywords, NAICS, years in business), up to 100,000 rows a run, filtered at the source.
- Lookup mode: company names, SOS file numbers or 11-digit taxpayer numbers, for KYB and due diligence.
- Codes decoded: entity type, status, county name, right to transact, domestic vs foreign (formation date or Texas registration date).
- Optional join (includeOfficers): registered agent and office, state of formation, DBA name and the officers and directors from the latest Public Information Report.

### Summary

Texas business entity data from the Texas Comptroller's "Active Franchise Taxpayers" open data (3,514,606 distinct taxpayers, counted 2026-11-05), read live on every run. Look up a company by name, Secretary of State file number or Comptroller taxpayer number, or export every entity that matches your filters: LLCs chartered in Texas since last month, active corporations in Houston, businesses with "roofing" in the name, companies under a NAICS code (2381 = foundation and structure contractors). Every row carries the entity ID, name, type, SOS status, formation date (or Texas registration date for a foreign entity), years in business, the address on file with the Comptroller (a mailing address), county, NAICS code where the taxpayer reported one, and whether the entity may transact business in Texas. Turn on includeOfficers to add the registered agent, state of formation, DBA name and the officers and directors from the latest Public Information Report. No phone numbers: the state does not publish them. Pay only per entity returned.

### Who it's for

- Agencies and SMB vendors (web design, bookkeeping, insurance, banking) prospecting newly formed Texas companies
- Fintech, compliance and KYB teams checking that a Texas company exists, its status and its right to transact
- Suppliers and insurers building Texas trade lists by NAICS code or name keyword
- Registered agents and formation services watching new Texas charters

### How to use

This actor does two jobs. Run it, then collect results from the run's dataset (export to JSON/CSV/Excel, or pull via the Apify API).

**Get a list (export):** no names, just filters; returns the whole matching list.

```json
{
  "mode": "export",
  "entityTypes": [
    "LLC"
  ],
  "statuses": [
    "Active"
  ],
  "formedAfter": "2026-10-06",
  "cities": [
    "Houston"
  ],
  "maxResults": 100
}
```

**Check specific firms (lookup):** put company names or licence numbers in `mode`, `queries`, `includeOfficers`; **Inputs** below says how each is matched.

```json
{
  "mode": "lookup",
  "queries": [
    "Bolton Fertilizer",
    "0802917688"
  ],
  "includeOfficers": true,
  "maxResults": 10
}
```

See **Inputs** below for every available field.

### What you get

One row per record:

| Field | Description |
|---|---|
| `state` | TX |
| `entity_id` | Texas SOS file number (10 digits), or the Comptroller's 11-digit taxpayer number for an entity not registered with the SOS |
| `entity_name` | Registered name, as the state publishes it |
| `entity_type / entity_type_code` | Type label and the Comptroller's code (Texas Limited Liability Company / CL) |
| `status / status_date` | Secretary of State status (Active, Reinstated, Forfeited Franchise Tax, Dissolved...) and its date; "Not registered with the SOS" for Comptroller-only taxpayers |
| `formation_date` | Charter date for an entity formed in Texas |
| `registered_in_state_since` | For an entity formed elsewhere: the date of its Texas certificate of authority |
| `years_in_business` | Whole years since the Texas charter date, active entities only |
| `jurisdiction` | TX for a Texas charter; for a foreign entity, its state of formation when includeOfficers is on |
| `principal_* / mailing_*` | The taxpayer's address on file with the Comptroller (a mailing address; PO boxes are common), flagged address_is_mailing |
| `county` | Texas county of the address on file |
| `naics_code` | NAICS code, where the taxpayer reported one |
| `right_to_transact` | The Comptroller's standing: whether the entity may transact business in Texas (Active, Forfeited...) |
| `taxpayer_number / sos_file_number / franchise_tax_since` | Comptroller taxpayer number, SOS file number, date franchise-tax responsibility began |
| `agent_name / agent_street / city / state / zip` | Registered agent and registered office (includeOfficers) |
| `officers / officers_report_year / dba_name` | Officers and directors from the latest Public Information Report, name and title (an address only when it is the entity's own), its year, and the DBA name (includeOfficers) |
| `source_url` | The Comptroller's account-status page for the taxpayer |

Sample:

```json
{
  "source_url": "https://comptroller.texas.gov/taxes/franchise/account-status/search/32066052260",
  "state": "TX",
  "entity_id": "0802917688",
  "entity_name": "BOLTON FERTILIZER, L.L.C.",
  "entity_type": "Texas Limited Liability Company",
  "entity_type_code": "CL",
  "status": "Active",
  "formation_date": "2018-01-25",
  "registered_in_state_since": null,
  "years_in_business": 8,
  "jurisdiction": "TX",
  "principal_street": "7040 CHIPPERTON DR",
  "principal_city": "DALLAS",
  "principal_state": "TX",
  "principal_zip": "75225",
  "mailing_street": "7040 CHIPPERTON DR",
  "mailing_city": "DALLAS",
  "mailing_state": "TX",
  "mailing_zip": "75225",
  "agent_name": null,
  "agent_street": null,
  "agent_city": null,
  "agent_state": null,
  "agent_zip": null,
  "annual_report_due": null,
  "naics_code": null,
  "naics": null,
  "officers": null,
  "status_date": "2018-01-25",
  "right_to_transact": "Active",
  "taxpayer_number": "32066052260",
  "sos_file_number": "0802917688",
  "franchise_tax_since": "2018-01-25",
  "county": "Dallas",
  "address_is_mailing": true
}
```

### Inputs

| Field | Required | Type | Default | Description |
|---|---|---|---|---|
| `mode` | no | string | `"export"` | export: every Texas business that matches the filters below (e.g. LLCs formed since a date in Houston). lookup: find the companies you name in `Business names or entity IDs` (KYB / due diligence). auto: lookup when you give names, export otherwise. |
| `queries` | no | array | `[]` | Lookup mode: one company name, Texas SOS file number or 11-digit Comptroller taxpayer number per line. A name matches anywhere in the registered name. Filters below still apply (e.g. only Active). |
| `query` | no | string | — | Same as the list above, one value. Both are combined if you fill both. |
| `entityTypes` | no | array | `["LLC"]` | Keep only these types: LLC, Corporation, Nonprofit, Limited Partnership, LLP, General Partnership, Trust. A Texas type code (CL, CT, CN...) or label also works. |
| `statuses` | no | array | `["Active"]` | Keep only these statuses. "Active" means Active or Reinstated with the Secretary of State. Other words match the state's own statuses (e.g. Forfeited Franchise Tax, Dissolved, Not registered with the SOS); an unknown word gives a free note listing them. |
| `formedAfter` | no | string | `"2026-10-06"` | Newly formed companies: only entities chartered in Texas (or registered here, if formed elsewhere) on or after this date, YYYY-MM-DD. |
| `formedBefore` | no | string | — | Only entities chartered or registered in Texas on or before this date, YYYY-MM-DD. |
| `cities` | no | array | — | Keep only businesses whose address on file with the Comptroller (a mailing address) is in one of these cities, e.g. Houston, Austin. |
| `nameKeywords` | no | array | — | Keep only businesses whose name contains one of these words, e.g. construction, roofing, nail, dental. |
| `minYearsInBusiness` | no | integer | — | Established businesses: active Texas-chartered entities formed at least this many years ago. |
| `maxYearsInBusiness` | no | integer | — | Active Texas-chartered entities formed at most this many years ago. |
| `naicsCodes` | no | array | — | 2 to 6 digit NAICS prefixes, e.g. 2381 (foundation and structure contractors), 8121 (personal care). Filtered at the source on the NAICS code the Comptroller publishes (about 632,000 entities have one). |
| `includeOfficers` | no | boolean | `false` | Add the registered agent and office, state of formation, DBA name and the officers and directors from the latest Public Information Report. One read per row, at most 1,000 rows a run (the rest are delivered without them, with a free note). Officers come with the entity's own address only, never a home address. |
| `maxResults` | no | integer | `100` | Cap on rows returned (bounds cost). Up to 100,000 for a statewide export. |
| `proxyConfiguration` | no | object | `{"useApifyProxy": false}` | Optional. The Texas Comptroller's open data answers directly; if a run answers with a free 'blocked' note, run again with a US proxy. |

### Pricing (Pay Per Event)

You pay per result (`dataset-item`) — **no charge for empty runs**. Example: **1000 entity records** at *$0.0025/result* ≈ **$2.50**.

Notices (unknown filter, no match, source unavailable) are free.

### Use cases

- New business leads: every LLC chartered in Texas since last month, in one city or statewide, with the address on file and county.
- KYB / due diligence: look up a company by name, SOS file number or taxpayer number and read its status, charter date and right to transact.
- Trade lists by industry: active businesses under a NAICS prefix (2381 foundation and structure contractors, 8121 personal care).
- Compliance outreach: companies whose franchise-tax right to transact is forfeited while the SOS still shows them active.
- Officer research: the officers and directors from the latest Public Information Report, with includeOfficers.

### Why this actor

- Free state data, decoded: entity types, statuses, counties and record types come out as words, not codes.
- Statewide export up to 100,000 rows a run, filtered at the source, plus lookup by name or either Texas number in the same actor.
- NAICS, county and right to transact on every row; registered agent and officers on request.
- Read live from the Comptroller on every run. Pay per entity; notices are free.

### Limitations & updates

Texas only (for other states see the nationwide US Business Entity Search). The roll lists entities with an active franchise-tax account; entities that ended their franchise-tax account are not in it. The address is the mailing address on file with the Comptroller, not a principal office. The registered agent, state of formation and officers come from a per-entity read with includeOfficers, at most 1,000 rows a run; the rest are delivered without them, with a free note. NAICS is published for about 632,000 entities. Officers are returned by name and title, with an address only when it is the entity's own. No business phone numbers. One run returns at most 100,000 rows.

### FAQ

**Where does the data come from?**

The Texas Comptroller of Public Accounts: its "Active Franchise Taxpayers" open dataset on data.texas.gov (every entity with an active franchise-tax account) and, with includeOfficers, its per-taxpayer account record. The Secretary of State sells its own file; this actor does not use it.

**How do I get newly formed Texas companies?**

Mode export, a Formed on or after date (e.g. 30 days ago), and optionally Entity types (LLC), Statuses (Active) and Cities. Schedule it daily with a rolling date for a new-business feed.

**Which number do I search with?**

Either: the Secretary of State file number (up to 10 digits) or the Comptroller's 11-digit taxpayer number. Or a name: it matches anywhere in the registered name.

**Why is the address a mailing address?**

The Comptroller publishes the taxpayer's mailing address on file, not a principal office; PO boxes are common. Every row says so with address_is_mailing. The registered office comes with includeOfficers.

**Is there a phone number?**

No. The state publishes addresses, not business phone numbers.

**How am I charged?**

One event per business entity returned. Notices are free.

### Guides & use cases

Written up on **[scrapebench.dev](https://scrapebench.dev)** — the bench that runs and verifies this actor against the live source every night:

- **How-to:** [How to run Texas Business Entity Search & LLC Leads Scraper](https://scrapebench.dev/guides/how-to-texas-business-entity-search/)
- **Use case:** [Texas Franchise-Tax Standing Leads by NAICS Code](https://scrapebench.dev/use-cases/texas-franchise-tax-standing-naics-leads/)

More actors, coverage and nightly verification results: **[scrapebench.dev](https://scrapebench.dev)**

### Works with AI assistants (MCP)

Callable as an MCP tool, so Claude, Cursor, VS Code Copilot and other MCP clients can run it directly. Grab the config from the [MCP tab](https://apify.com/scrapebench/texas-business-entity-search/api/mcp) on this page — Apify hosts the server and keeps that snippet current, and OAuth signs you in on first connect, so no API token goes in your config file.

Then just ask:

> "List LLCs chartered in Texas since October 6, 2026 with a Houston address that are still active."

That is mode export, entity types LLC, statuses Active, formed on or after 2026-10-06, cities Houston. Keep maxResults small on a first call. Runs started this way bill exactly like any other run.

### Data & lawful use

This actor collects publicly available information that the Texas Comptroller of Public Accounts publishes for public
lookup — licence records, business listings and the contact details professionals list there.
Some of it identifies individuals (sole proprietors, licence holders, agents), so treat any
names, phone numbers and emails in your results as personal data.

When you run this actor, you decide what is collected and what it is used for, so you are the
controller of that data and we act only as your processor (Apify Standard Actor Contract).
You need a lawful basis for your use, must honour opt-out and deletion requests, and must
follow the marketing rules that apply to you (CAN-SPAM, TCPA, GDPR, CCPA and similar).
Don't use the output for unsolicited bulk messaging, for screening covered by the FCRA, or
for anything the source's own terms forbid.

Your results are stored in your own Apify account. We don't keep a copy of your results and
don't sell or share them.

### Disclaimer

This is an independent tool. It is not affiliated with, endorsed by or sponsored by
the Texas Comptroller of Public Accounts. Names and marks are used only to describe the data source. Records are
provided as published by the source and may be out of date or incomplete. For anything
consequential (hiring, a permit, a legal decision), confirm the record with the issuing
agency. You are responsible for making sure your use complies with applicable law and the
source's terms.

### Need help?

Open an issue on this actor's **Issues** tab and we'll respond there. Bug reports, missing
fields and feature requests are all welcome. Guides and examples: [scrapebench.dev](https://scrapebench.dev).

If you are a person named in this data and want your record removed from our copy, email
apify-help@scrapebench.dev; the source agency remains the official record.

Your run may be used to improve our services. If something looks off, or you want this actor to fit your use better, please share your run data with us: [Apify Console → Settings → Security → Share run data with developers](https://console.apify.com/settings/security). It lets us see exactly what went wrong and keep improving the actor.

# Actor input Schema

## `mode` (type: `string`):

export: every Texas business that matches the filters below (e.g. LLCs formed since a date in Houston). lookup: find the companies you name in `Business names or entity IDs` (KYB / due diligence). auto: lookup when you give names, export otherwise.

## `queries` (type: `array`):

Lookup mode: one company name, Texas SOS file number or 11-digit Comptroller taxpayer number per line. A name matches anywhere in the registered name. Filters below still apply (e.g. only Active).

## `query` (type: `string`):

Same as the list above, one value. Both are combined if you fill both.

## `entityTypes` (type: `array`):

Keep only these types: LLC, Corporation, Nonprofit, Limited Partnership, LLP, General Partnership, Trust. A Texas type code (CL, CT, CN...) or label also works.

## `statuses` (type: `array`):

Keep only these statuses. "Active" means Active or Reinstated with the Secretary of State. Other words match the state's own statuses (e.g. Forfeited Franchise Tax, Dissolved, Not registered with the SOS); an unknown word gives a free note listing them.

## `formedAfter` (type: `string`):

Newly formed companies: only entities chartered in Texas (or registered here, if formed elsewhere) on or after this date, YYYY-MM-DD.

## `formedBefore` (type: `string`):

Only entities chartered or registered in Texas on or before this date, YYYY-MM-DD.

## `cities` (type: `array`):

Keep only businesses whose address on file with the Comptroller (a mailing address) is in one of these cities, e.g. Houston, Austin.

## `nameKeywords` (type: `array`):

Keep only businesses whose name contains one of these words, e.g. construction, roofing, nail, dental.

## `minYearsInBusiness` (type: `integer`):

Established businesses: active Texas-chartered entities formed at least this many years ago.

## `maxYearsInBusiness` (type: `integer`):

Active Texas-chartered entities formed at most this many years ago.

## `naicsCodes` (type: `array`):

2 to 6 digit NAICS prefixes, e.g. 2381 (foundation and structure contractors), 8121 (personal care). Filtered at the source on the NAICS code the Comptroller publishes (about 632,000 entities have one).

## `includeOfficers` (type: `boolean`):

Add the registered agent and office, state of formation, DBA name and the officers and directors from the latest Public Information Report. One read per row, at most 1,000 rows a run (the rest are delivered without them, with a free note). Officers come with the entity's own address only, never a home address.

## `maxResults` (type: `integer`):

Cap on rows returned (bounds cost). Up to 100,000 for a statewide export.

## `proxyConfiguration` (type: `object`):

Optional. The Texas Comptroller's open data answers directly; if a run answers with a free 'blocked' note, run again with a US proxy.

## Actor input object example

```json
{
  "mode": "export",
  "queries": [],
  "entityTypes": [
    "LLC"
  ],
  "statuses": [
    "Active"
  ],
  "formedAfter": "2026-10-06",
  "includeOfficers": false,
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Business-entity records, one row per entity; notices are free.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "export",
    "entityTypes": [
        "LLC"
    ],
    "statuses": [
        "Active"
    ],
    "formedAfter": "2026-10-06",
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapebench/texas-business-entity-search").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "export",
    "entityTypes": ["LLC"],
    "statuses": ["Active"],
    "formedAfter": "2026-10-06",
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapebench/texas-business-entity-search").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "export",
  "entityTypes": [
    "LLC"
  ],
  "statuses": [
    "Active"
  ],
  "formedAfter": "2026-10-06",
  "maxResults": 100
}' |
apify call scrapebench/texas-business-entity-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapebench/texas-business-entity-search"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/4kwXGlyo5bHEIcxDb/builds/YFAR7hggEdhC13I3u/openapi.json
