# Texas Business Entity Scraper - SOS Registry API (`pink_comic/texas-business-leads`) Actor

Texas business entity scraper for SOS and Comptroller registry records. Look up LLCs/corps by name, get status, officers, registered agent, addresses, SOS file numbers, and franchise-tax evidence for KYB, due diligence, and B2B leads.

- **URL**: https://apify.com/pink\_comic/texas-business-leads.md
- **Developed by:** [Ava Torres](https://apify.com/pink_comic) (community)
- **Categories:** Lead generation, Automation, Agents
- **Stats:** 27 total users, 11 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Texas Business Entity Scraper - SOS Registry API

Scrape Texas business registry records from the official Comptroller/SOS data path. Look up LLCs, corporations, and LPs by name and return franchise-tax status, SOS registration status, officers, registered agents, addresses, file numbers, and EIN evidence for KYB checks, due diligence, and B2B lead generation.

No browser automation. No proxies. Uses the official Texas Comptroller public API. Start with a specific company name like `Tesla`; very broad terms can be rejected by the source API.

---

### What You Get

Each result is one business entity record with full details when `fetchDetails` is enabled (default).

| Field | Type | Description |
|---|---|---|
| `taxpayerId` | string | 11-digit Comptroller taxpayer number |
| `feiNumber` | string | 9-digit Federal Employer ID (EIN) |
| `name` | string | Registered entity name |
| `dbaName` | string | Doing business as name |
| `mailingAddressStreet` | string | Mailing street address |
| `mailingAddressCity` | string | Mailing city |
| `mailingAddressState` | string | Mailing state |
| `mailingAddressZip` | string | Mailing ZIP code |
| `rightToTransactTX` | string | Whether the entity has the right to transact business in Texas |
| `stateOfFormation` | string | State or country of formation |
| `sosRegistrationStatus` | string | TX Secretary of State registration status |
| `effectiveSosRegistrationDate` | string | Effective SOS registration date |
| `sosFileNumber` | string | TX Secretary of State file number |
| `registeredAgentName` | string | Registered agent name |
| `registeredOfficeStreet` | string | Registered office street address |
| `registeredOfficeCity` | string | Registered office city |
| `registeredOfficeState` | string | Registered office state |
| `registeredOfficeZip` | string | Registered office ZIP code |
| `reportYear` | string | Most recent annual report year |
| `officers` | array | Officers and directors with name, title, report year, and address |
| `searchTerm` | string | Search term used to find this entity |

---

### Sample Output

```json
{
  "taxpayerId": "32012345678",
  "feiNumber": "320123456",
  "name": "LONE STAR CONSULTING LLC",
  "mailingAddressStreet": "3225 TURTLE CREEK BLVD",
  "mailingAddressCity": "DALLAS",
  "mailingAddressState": "TX",
  "mailingAddressZip": "75219",
  "rightToTransactTX": "ACTIVE",
  "sosRegistrationStatus": "IN EXISTENCE",
  "effectiveSosRegistrationDate": "01/15/2024",
  "sosFileNumber": "0804567890",
  "registeredAgentName": "CT CORPORATION SYSTEM",
  "officers": [
    {
      "name": "JOHN DOE",
      "title": "Manager",
      "reportYear": "2025",
      "address": "3225 TURTLE CREEK BLVD, DALLAS, TX 75219"
    }
  ]
}
````

***

### Who Uses This

**Business bankers** targeting newly registered LLCs and corps for business checking accounts, credit lines, and merchant services. Search by formation date to find entities registered this week.

**Insurance agents** selling general liability, E\&O, and workers' comp to new businesses. Officer names and mailing addresses are ready for outreach.

**Accountants and CPAs** prospecting new business clients at tax season. New LLC filings mean new businesses that need bookkeeping, payroll, and tax prep.

**Web agencies and SaaS sales teams** building targeted prospect lists of Texas businesses. Filter by entity type and franchise tax status to focus on active companies.

**Compliance and legal teams** verifying that a counterparty is franchise-tax compliant and properly registered before executing contracts, extending credit, or onboarding a vendor.

***

### How to Use

#### Step 1: Configure your input

**Search by entity name (most common):**

```json
{
  "query": "Tesla",
  "fetchDetails": true,
  "maxResults": 20
}
```

**Batch search by multiple entity names:**

```json
{
  "searchTerms": ["Acme Manufacturing", "Pacific Energy"],
  "fetchDetails": true
}
```

**Look up by Comptroller taxpayer number or EIN:**

```json
{
  "taxpayerNumbers": ["12345678901", "987654321"],
  "fetchDetails": true
}
```

**Look up by TX SOS file number:**

```json
{
  "fileNumbers": ["0801163717"],
  "fetchDetails": true
}
```

#### Input reference

| Parameter | Type | Description |
|---|---|---|
| `query` | string | Single entity name search. Used if `searchTerms` is empty. |
| `searchTerms` | string\[] | Batch entity name searches. Overrides `query` if non-empty. |
| `taxpayerNumbers` | string\[] | 11-digit Comptroller taxpayer numbers or 9-digit EINs. |
| `fileNumbers` | string\[] | 6–10 digit TX SOS file numbers. |
| `fetchDetails` | boolean | When true (default), fetches full details including officers and registered agent. When false, returns only name, taxpayer ID, and ZIP. |

Multiple input types can be combined in a single run. Results are deduplicated by taxpayer ID.

***

### Cost Estimate

Pricing is $0.002 per result.

| Run size | Estimated cost |
|---|---|
| 10 results | ~$0.02 |
| 100 results | ~$0.20 |
| 500 results | ~$1.00 |
| 1,000 results | ~$2.00 |

With `fetchDetails: true`, the actor makes one additional API call per result to retrieve officer and address data. This is the default and recommended setting.

***

### Output Formats

Results are available in JSON, CSV, and Excel from the Apify dataset viewer. Connect to downstream tools via the Apify API or webhooks.

***

### FAQ

**Does this require a paid API key or credentials?**
No. The Texas Comptroller public API is free and requires no authentication. This actor uses it directly with no API keys needed.

**What does "right to transact business in Texas" mean?**
It indicates whether the entity is authorized by the state to conduct business in Texas. Foreign entities (formed outside Texas) must obtain this authorization separately from SOS registration.

**What is in the officers array?**
Each entry includes the officer's name, title (e.g. President, Secretary, Director), the report year the record comes from, and their address if provided. Data comes from the entity's most recent annual franchise tax report.

**Can I search by EIN?**
Yes. Pass 9-digit EINs in the `taxpayerNumbers` field. The Comptroller API accepts both 11-digit taxpayer numbers and 9-digit federal EINs.

**How specific do name searches need to be?**
The Comptroller API rejects very broad or single-character searches. Use specific entity names or partial names with at least 3–4 characters. Overly generic terms may return no results or an API error.

**Is the data real-time?**
Yes. The actor queries the live Comptroller API on each run. Results reflect the current state of the database at the time of the run.

# Actor input Schema

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

Quick single search: enter an entity name (e.g. "Tesla"). For batch searches, use the Entity Name Search array below instead.

## `searchTerms` (type: `array`):

Keywords to search in entity names (e.g. "Tesla", "Google"). Broad searches may be rejected by the API -- use specific terms. Overrides query if non-empty.

## `taxpayerNumbers` (type: `array`):

11-digit Comptroller taxpayer numbers or 9-digit Federal EINs to look up.

## `fileNumbers` (type: `array`):

6-10 digit Texas Secretary of State file numbers to look up.

## `fetchDetails` (type: `boolean`):

When true, fetches full entity details including officers, registered agent, and addresses for each search result. When false, returns only basic info (name, taxpayer ID, ZIP). Fetching details makes one extra API call per result.

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

Maximum number of results to return. Set to 0 or leave empty for no limit. Useful for controlling costs on broad searches.

## Actor input object example

```json
{
  "query": "Tesla",
  "searchTerms": [],
  "taxpayerNumbers": [],
  "fileNumbers": [],
  "fetchDetails": true,
  "maxResults": 10
}
```

# 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 = {
    "query": "Tesla",
    "searchTerms": [],
    "taxpayerNumbers": [],
    "fileNumbers": [],
    "fetchDetails": true,
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("pink_comic/texas-business-leads").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 = {
    "query": "Tesla",
    "searchTerms": [],
    "taxpayerNumbers": [],
    "fileNumbers": [],
    "fetchDetails": True,
    "maxResults": 10,
}

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

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

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

```

## CLI example

```bash
echo '{
  "query": "Tesla",
  "searchTerms": [],
  "taxpayerNumbers": [],
  "fileNumbers": [],
  "fetchDetails": true,
  "maxResults": 10
}' |
apify call pink_comic/texas-business-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=pink_comic/texas-business-leads",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Texas Business Entity Scraper - SOS Registry API",
        "description": "Texas business entity scraper for SOS and Comptroller registry records. Look up LLCs/corps by name, get status, officers, registered agent, addresses, SOS file numbers, and franchise-tax evidence for KYB, due diligence, and B2B leads.",
        "version": "0.1",
        "x-build-id": "BvcCfMbnvGW1fEGo8"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/pink_comic~texas-business-leads/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-pink_comic-texas-business-leads",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/pink_comic~texas-business-leads/runs": {
            "post": {
                "operationId": "runs-sync-pink_comic-texas-business-leads",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/pink_comic~texas-business-leads/run-sync": {
            "post": {
                "operationId": "run-sync-pink_comic-texas-business-leads",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "query": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Quick single search: enter an entity name (e.g. \"Tesla\"). For batch searches, use the Entity Name Search array below instead.",
                        "default": "Tesla"
                    },
                    "searchTerms": {
                        "title": "Entity Name Search (batch)",
                        "type": "array",
                        "description": "Keywords to search in entity names (e.g. \"Tesla\", \"Google\"). Broad searches may be rejected by the API -- use specific terms. Overrides query if non-empty.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "taxpayerNumbers": {
                        "title": "Taxpayer Numbers",
                        "type": "array",
                        "description": "11-digit Comptroller taxpayer numbers or 9-digit Federal EINs to look up.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "fileNumbers": {
                        "title": "TX SOS File Numbers",
                        "type": "array",
                        "description": "6-10 digit Texas Secretary of State file numbers to look up.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "fetchDetails": {
                        "title": "Fetch Full Details",
                        "type": "boolean",
                        "description": "When true, fetches full entity details including officers, registered agent, and addresses for each search result. When false, returns only basic info (name, taxpayer ID, ZIP). Fetching details makes one extra API call per result.",
                        "default": true
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of results to return. Set to 0 or leave empty for no limit. Useful for controlling costs on broad searches.",
                        "default": 25
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
