# West Virginia Secretary of State Business Search Scraper (`crawlerbros/west-virginia-sos-business-search-scraper`) Actor

Search West Virginia's free public business entity database by organization name, agent/officer name, or exact record ID. Get entity type, status, formation/filing dates, addresses, registered agent, officers, and annual report history.

- **URL**: https://apify.com/crawlerbros/west-virginia-sos-business-search-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Lead generation, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## West Virginia Secretary of State Business Search Scraper

Search the **West Virginia Secretary of State's** free public business entity database (`apps.sos.wv.gov/business/corporations`). Look up a business by organization name, agent/officer name, or exact internal record ID, and get entity type, status, effective/established/filing dates, principal/mailing/registered-agent/designated-office addresses, officers, DBA/trade names, and annual report filing years. HTTP-only via the public search form — no login required.

### Data Source & Usage Notes

**Read this before running a large job.**

- **No login, no CAPTCHA.** The source is a classic ASP.NET WebForms search form. The one bot-mitigation mechanism observed is a minimum-elapsed-time check between loading the search page and submitting it (confirmed live, reproduced twice: a POST fired immediately after the page-load GET is silently redirected to the site's home page, while the identical POST fired 4+ seconds later succeeds) — this actor waits several seconds before every search submission to satisfy it, which is why a single search takes a little longer than a typical HTTP-only actor.
- **No server-side result pagination observed** for name/agent searches on this source — the actor requests detail pages for up to `maxItems` result rows in the source's own natural ordering. Extremely broad queries (a single common word) can still return large result counts on the source's own results page even though this actor caps how many detail pages it follows.
- **Advanced filters route through the source's advanced-search page.** Setting any filter beyond organization/agent name (status, business class, charter type, organization type, ownership demographics) or using `mode=byRecordId` automatically uses the source's `searchadvanced.aspx` form instead of the quick-search form; both accept the same organization-name/agent-name fields.
- **`status` is derived, not a literal source field.** West Virginia's detail pages don't expose a single "Status" label; this actor derives `Active` / `Inactive` from whether a Termination Date is on file (no termination date on file = `Active`).
- **Conservative by design.** `maxItems` is capped at 200. The actor only ever uses Apify's free datacenter (AUTO) proxy group — never a paid residential proxy — to get a fresh IP if a request is ever blocked.
- **Not affiliated with the State of West Virginia.** This is an independent third-party tool using the source's own public, no-login search form.

#### Why West Virginia instead of Georgia?

This actor was originally scoped as a Georgia SOS (`ecorp.sos.ga.gov`) business entity search. Live verification confirmed `ecorp.sos.ga.gov` sits behind a Cloudflare **Managed Challenge (Turnstile)** on every request, including plain page loads: direct HTTP (httpx) and TLS-impersonated HTTP (curl_cffi, Chrome131) both received an immediate 403 challenge page; a full headless Chromium browser (Playwright + stealth) and a dedicated anti-detect browser (Camoufox, humanized) both sat on the "Performing security verification... Verifying..." Turnstile screen for 30+ seconds without ever resolving, and the Turnstile checkbox itself was not reachable for an automated click (deeply nested cross-origin iframe, standard Turnstile hardening). Per this project's zero-cost reliability policy, a challenge that a real headless/anti-detect browser cannot clear without a paid CAPTCHA-solving service or residential proxy is a hard block, not something to keep fighting. The target was replaced with West Virginia's SOS business search — a real, free, no-login, no-CAPTCHA government business registry confirmed live and returning real data over plain HTTP.

### What this actor does

- **3 search modes**, matching the reliable axes West Virginia's own search forms expose:
  - `byOrgName` — organization name (substring match)
  - `byAgent` — agent/officer/manager name (substring match)
  - `byRecordId` — exact lookup by the source's own internal numeric record ID
- **9 optional advanced filters**, combinable with `byOrgName`/`byAgent`: status (Active/Inactive), business class (Profit/Non-Profit), charter type (Domestic/Foreign), organization type (31-value finite list), secondary organization type (5-value finite list), ownership-demographic flags (woman-, minority-, veteran-owned, active-military owner, young entrepreneur), and effective-date / termination-date ranges
- **Full entity detail** — automatically follows through from search results to each entity's detail page for organization type, dates, addresses (including designated office), officers, DBA/trade names, and annual report years
- **Empty fields are omitted**

### What's NOT included (and why)

- **Control-number-based exact search** — the source's own detail pages display a "Control Number" (e.g. `9A31P`), but that value is not independently searchable through the site's own RecordID search field (confirmed live: submitting a control number as the record-ID search value returned an unrelated entity, not the one that control number belongs to). `mode=byRecordId` therefore documents and accepts only the internal numeric record ID visible in search results and `organization.aspx?org=<id>` URLs; the `controlNumber` field is still returned on every record when the source's own detail page has one on file.
- **County/street/city advanced filters** — the source's advanced-search page also exposes county checklists, a street-name field, and a city dropdown with 1,000+ West Virginia cities/towns. These are excluded from this actor's input schema as low-value, high-cardinality filters better served by post-processing the `principalOfficeAddress`/`registeredAgentAddress` fields this actor already returns.
- **Education-related demographic filters** (highest degree earned, field of study, currently-enrolled status) — present on the source's advanced-search form but out of scope for a business-entity lookup tool; the six most business-relevant demographic/status filters are exposed instead.
- **Employee-count range filters** — the source's advanced-search page has "Employees"/"WV Employees" more-than/fewer-than filters, but the value they filter on is never displayed anywhere on the source's own detail pages, so this actor cannot expose a corresponding output field to verify the filter actually narrowed results with real data. Excluded rather than shipped as an unverifiable filter.
- **Business Purpose (NAICS code) filter** — the source's advanced-search page accepts up to 10 comma-separated 4-digit NAICS codes from a 300+-entry industry list. Excluded as a very high-cardinality filter; the `businessPurpose` field this actor already returns on every applicable record covers the same information for post-processing.
- **Non-ASCII organization names** — West Virginia is an English-language, ASCII business registry; a non-ASCII (e.g. CJK) `organizationName` is confirmed live to make the upstream search form hang rather than return a normal 0-result page. The actor fails soft with 0 records in this case (short timeouts + limited retries keep the run fast rather than exhausting its time budget), which is expected since no real West Virginia entity would have a non-ASCII legal name.

### Output per entity

- `entityName`
- `recordId` — West Virginia's internal numeric database ID (matches the `organization.aspx?org=<id>` URL)
- `controlNumber` — West Virginia's public control number, when on file
- `entityType` — e.g. `LLC | Limited Liability Company`, `CORPORATION | Domestic Corporation`
- `charterType` — `Domestic` or `Foreign`
- `businessClass` — `Profit` or `Non-Profit`
- `secType`
- `status` — `Active` or `Inactive` (derived; see Data Source & Usage Notes)
- `effectiveDate`, `establishedDate`, `filingDate`, `terminationDate`, `terminationReason`
- `businessPurpose`, `capitalStock`, `charterCounty`, `charterState`, `excessAcres`, `atWillTerm`, `atWillTermYears`, `memberManaged`, `parValue`, `authorizedShares`, `youngEntrepreneur` — when on file (mostly corporation/LLC-specific fields that vary by entity type)
- `registeredAgentName`, `registeredAgentAddress`
- `principalOfficeAddress`, `principalOfficeMailingAddress`, `designatedOfficeAddress`
- `officers` — list of `{ role, name, address }`
- `dbaNames` — list of `{ name, description, effectiveDate, terminationDate }` registered trade names ("Doing Business As"), when on file
- `annualReportYears` — list of years an annual report was filed
- `sourceUrl`
- `recordType: "entity"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `byOrgName` | `byOrgName` / `byAgent` / `byRecordId` |
| `organizationName` | string | `AMAZON` | mode=byOrgName |
| `agentName` | string | – | mode=byAgent |
| `recordId` | string | – | mode=byRecordId — exact internal numeric ID |
| `activeStatus` | string | any | `Active` / `Inactive` |
| `businessClass` | string | any | `Profit` / `Non-Profit` |
| `charterType` | string | any | `Domestic` / `Foreign` |
| `entityTypes` | array | `[]` | Zero or more of 31 organization types |
| `secTypes` | array | `[]` | Zero or more of 5 secondary organization types (e.g. `Trademark Holder`) |
| `womanOwned`, `minorityOwned`, `veteranOwned`, `ownerMilitary`, `youngEntrepreneur` | string | any | `Yes` / `No` |
| `effectiveDateFrom`, `effectiveDateTo` | string | – | Effective/formation date range, `mm/dd/yyyy` |
| `terminationDateFrom`, `terminationDateTo` | string | – | Termination/cancellation date range, `mm/dd/yyyy` |
| `proxyConfiguration` | object | AUTO proxy | Apify proxy config; always datacenter (AUTO), never residential |
| `maxItems` | int | `25` | Hard cap (1–200) |

#### Example: search by organization name

```json
{
  "mode": "byOrgName",
  "organizationName": "TESLA",
  "maxItems": 10
}
````

#### Example: search by agent/officer name

```json
{
  "mode": "byAgent",
  "agentName": "CORPORATION SERVICE COMPANY",
  "maxItems": 10
}
```

#### Example: lookup by exact record ID

```json
{
  "mode": "byRecordId",
  "recordId": "325449"
}
```

#### Example: search by name with advanced filters

```json
{
  "mode": "byOrgName",
  "organizationName": "MOUNTAIN",
  "activeStatus": "Active",
  "businessClass": "Profit",
  "charterType": "Domestic",
  "entityTypes": ["Limited Liability Company"],
  "maxItems": 25
}
```

#### Example: search with a date range and secondary organization type

```json
{
  "mode": "byOrgName",
  "organizationName": "TRADE",
  "secTypes": ["Trademark Holder"],
  "effectiveDateFrom": "1/1/2020",
  "effectiveDateTo": "12/31/2024",
  "maxItems": 25
}
```

### Use cases

- **Due diligence** — confirm a counterparty's West Virginia formation status, entity type, and registered agent before contracting
- **Compliance & KYC** — cross-check a business's legal entity name and record/control number
- **Registered agent research** — find every entity a specific agent represents
- **Industry/entity-type research** — pull every active LLC, corporation, or other entity type of interest
- **Company name availability checks** — see what similarly-named entities already exist before choosing a new name

### FAQ

**What's the data source?** The West Virginia Secretary of State's own free public Business Organization Search at `apps.sos.wv.gov/business/corporations`. This actor is an independent third-party tool and is not affiliated with the State of West Virginia.

**Is this data official / legally binding?** No. For an official Certificate of Existence/Authorization or certified copies, use the state's paid ordering channels (see the source site). This actor returns the same free-tier informational data the public search page shows.

**Why did my run return 0 results?** Either the query genuinely has no match, or the combination of filters is too narrow. Try a broader name or fewer filters.

**Why does a run take longer than a typical search actor?** The source enforces a minimum elapsed time between loading its search form and submitting it (a timing-based anti-bot check); this actor waits several seconds before every search submission to satisfy it.

**How fresh is the data?** Real-time — the search reflects the Secretary of State's database as of the moment of the search.

**What's a "secondary organization type"?** A narrower classification West Virginia applies on top of the main organization type — for example, an entity whose main type is `Corporation` can additionally be flagged `Trademark Holder`. Only 5 secondary types exist; use the `secTypes` filter to search by them.

**What are "DBA" names?** "Doing Business As" — trade names an entity has registered in addition to its legal name (e.g. `STEALTH TECH LLC` doing business as `STEALTHTECH`). Returned in the `dbaNames` field when the entity has any on file.

**Can I filter by formation or termination date?** Yes — `effectiveDateFrom`/`effectiveDateTo` filter by an entity's effective (formation) date, and `terminationDateFrom`/`terminationDateTo` filter by its termination/cancellation date. Both accept `mm/dd/yyyy`.

# Actor input Schema

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

Which search axis to use.

## `organizationName` (type: `string`):

Business organization name to search for (substring match), e.g. `AMAZON`.

## `agentName` (type: `string`):

Registered agent, officer, or manager name to search for (substring match), e.g. `CORPORATION SERVICE COMPANY`.

## `recordId` (type: `string`):

Exact internal numeric record ID, as shown in search results or in an `organization.aspx?org=<id>` URL, e.g. `325449`.

## `activeStatus` (type: `string`):

Optional: restrict results to Active or Inactive (terminated) entities. Leave unset for both.

## `businessClass` (type: `string`):

Optional: restrict results to Profit or Non-Profit entities.

## `charterType` (type: `string`):

Optional: restrict results to Domestic (formed in West Virginia) or Foreign (formed elsewhere, registered in WV) entities.

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

Optional: restrict results to one or more organization types. Leave empty for all types.

## `womanOwned` (type: `string`):

Optional: restrict to businesses self-reported as woman-owned.

## `minorityOwned` (type: `string`):

Optional: restrict to businesses self-reported as minority-owned.

## `veteranOwned` (type: `string`):

Optional: restrict to businesses self-reported as veteran-owned.

## `ownerMilitary` (type: `string`):

Optional: restrict to businesses whose owner self-reported as active military.

## `youngEntrepreneur` (type: `string`):

Optional: restrict to businesses whose owner self-reported as a young entrepreneur.

## `secTypes` (type: `array`):

Optional: restrict results to one or more of West Virginia's secondary organization types (a narrower classification than the main organization type, e.g. Trademark Holder). Leave empty for all.

## `effectiveDateFrom` (type: `string`):

Optional: only include entities with an effective/formation date on or after this date, e.g. `1/1/2020`.

## `effectiveDateTo` (type: `string`):

Optional: only include entities with an effective/formation date on or before this date, e.g. `12/31/2020`.

## `terminationDateFrom` (type: `string`):

Optional: only include entities terminated/cancelled on or after this date, e.g. `1/1/2020`.

## `terminationDateTo` (type: `string`):

Optional: only include entities terminated/cancelled on or before this date, e.g. `12/31/2020`.

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

Uses Apify's free datacenter (AUTO) proxy group to get a fresh IP if a request is temporarily blocked. Residential proxy is never used by this actor.

## `maxItems` (type: `integer`):

Hard cap on emitted records.

## Actor input object example

```json
{
  "mode": "byOrgName",
  "organizationName": "AMAZON",
  "activeStatus": "",
  "businessClass": "",
  "charterType": "",
  "entityTypes": [],
  "womanOwned": "",
  "minorityOwned": "",
  "veteranOwned": "",
  "ownerMilitary": "",
  "youngEntrepreneur": "",
  "secTypes": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "maxItems": 10
}
```

# Actor output Schema

## `entities` (type: `string`):

Dataset containing all scraped West Virginia business entity records.

# 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": "byOrgName",
    "organizationName": "AMAZON",
    "proxyConfiguration": {
        "useApifyProxy": true
    },
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/west-virginia-sos-business-search-scraper").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": "byOrgName",
    "organizationName": "AMAZON",
    "proxyConfiguration": { "useApifyProxy": True },
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/west-virginia-sos-business-search-scraper").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 '{
  "mode": "byOrgName",
  "organizationName": "AMAZON",
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "maxItems": 10
}' |
apify call crawlerbros/west-virginia-sos-business-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/west-virginia-sos-business-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "West Virginia Secretary of State Business Search Scraper",
        "description": "Search West Virginia's free public business entity database by organization name, agent/officer name, or exact record ID. Get entity type, status, formation/filing dates, addresses, registered agent, officers, and annual report history.",
        "version": "1.0",
        "x-build-id": "iOy93CBwXnthb7b6m"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~west-virginia-sos-business-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-west-virginia-sos-business-search-scraper",
                "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/crawlerbros~west-virginia-sos-business-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-west-virginia-sos-business-search-scraper",
                "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/crawlerbros~west-virginia-sos-business-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-west-virginia-sos-business-search-scraper",
                "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",
                "required": [
                    "mode",
                    "proxyConfiguration"
                ],
                "properties": {
                    "mode": {
                        "title": "Search mode",
                        "enum": [
                            "byOrgName",
                            "byAgent",
                            "byRecordId"
                        ],
                        "type": "string",
                        "description": "Which search axis to use.",
                        "default": "byOrgName"
                    },
                    "organizationName": {
                        "title": "Organization name (mode=byOrgName)",
                        "type": "string",
                        "description": "Business organization name to search for (substring match), e.g. `AMAZON`.",
                        "default": "AMAZON"
                    },
                    "agentName": {
                        "title": "Agent/officer name (mode=byAgent)",
                        "type": "string",
                        "description": "Registered agent, officer, or manager name to search for (substring match), e.g. `CORPORATION SERVICE COMPANY`."
                    },
                    "recordId": {
                        "title": "Record ID (mode=byRecordId)",
                        "type": "string",
                        "description": "Exact internal numeric record ID, as shown in search results or in an `organization.aspx?org=<id>` URL, e.g. `325449`."
                    },
                    "activeStatus": {
                        "title": "Status filter",
                        "enum": [
                            "",
                            "Active",
                            "Inactive"
                        ],
                        "type": "string",
                        "description": "Optional: restrict results to Active or Inactive (terminated) entities. Leave unset for both.",
                        "default": ""
                    },
                    "businessClass": {
                        "title": "Business class filter",
                        "enum": [
                            "",
                            "Profit",
                            "Non-Profit"
                        ],
                        "type": "string",
                        "description": "Optional: restrict results to Profit or Non-Profit entities.",
                        "default": ""
                    },
                    "charterType": {
                        "title": "Charter type filter",
                        "enum": [
                            "",
                            "Domestic",
                            "Foreign"
                        ],
                        "type": "string",
                        "description": "Optional: restrict results to Domestic (formed in West Virginia) or Foreign (formed elsewhere, registered in WV) entities.",
                        "default": ""
                    },
                    "entityTypes": {
                        "title": "Organization type filter",
                        "type": "array",
                        "description": "Optional: restrict results to one or more organization types. Leave empty for all types.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Benefit Corporation",
                                "Business Trust",
                                "Conservation Districts",
                                "Cooperative Association",
                                "Corporation",
                                "Credit Service Organization",
                                "Debt Collector",
                                "Decentralized UNA",
                                "Emblem",
                                "Exempt Corporation",
                                "Exempt CSO",
                                "Exempt LLC",
                                "Exempt LP",
                                "Fictitious Name",
                                "General Partnership",
                                "Insurance Company",
                                "Land Reuse Agency",
                                "Limited Liability Company",
                                "Limited Liability Partnership",
                                "Limited Partnership",
                                "Litigation Financier",
                                "Not Processed",
                                "Professional Limited Liability Company",
                                "Protected Series",
                                "Public Corporation",
                                "Purchaser of Future Payments",
                                "Series LLC",
                                "Sole Proprietor",
                                "Trademark Holder",
                                "Unincorporated Non-profit Organization",
                                "Voluntary Association"
                            ]
                        },
                        "default": []
                    },
                    "womanOwned": {
                        "title": "Woman-owned filter",
                        "enum": [
                            "",
                            "Yes",
                            "No"
                        ],
                        "type": "string",
                        "description": "Optional: restrict to businesses self-reported as woman-owned.",
                        "default": ""
                    },
                    "minorityOwned": {
                        "title": "Minority-owned filter",
                        "enum": [
                            "",
                            "Yes",
                            "No"
                        ],
                        "type": "string",
                        "description": "Optional: restrict to businesses self-reported as minority-owned.",
                        "default": ""
                    },
                    "veteranOwned": {
                        "title": "Veteran-owned filter",
                        "enum": [
                            "",
                            "Yes",
                            "No"
                        ],
                        "type": "string",
                        "description": "Optional: restrict to businesses self-reported as veteran-owned.",
                        "default": ""
                    },
                    "ownerMilitary": {
                        "title": "Owner active military filter",
                        "enum": [
                            "",
                            "Yes",
                            "No"
                        ],
                        "type": "string",
                        "description": "Optional: restrict to businesses whose owner self-reported as active military.",
                        "default": ""
                    },
                    "youngEntrepreneur": {
                        "title": "Young entrepreneur filter",
                        "enum": [
                            "",
                            "Yes",
                            "No"
                        ],
                        "type": "string",
                        "description": "Optional: restrict to businesses whose owner self-reported as a young entrepreneur.",
                        "default": ""
                    },
                    "secTypes": {
                        "title": "Secondary organization type filter",
                        "type": "array",
                        "description": "Optional: restrict results to one or more of West Virginia's secondary organization types (a narrower classification than the main organization type, e.g. Trademark Holder). Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Credit Service Organization",
                                "Emblem",
                                "Litigation Financier",
                                "Purchaser of Future Payments",
                                "Trademark Holder"
                            ]
                        },
                        "default": []
                    },
                    "effectiveDateFrom": {
                        "title": "Effective date from (mm/dd/yyyy)",
                        "type": "string",
                        "description": "Optional: only include entities with an effective/formation date on or after this date, e.g. `1/1/2020`."
                    },
                    "effectiveDateTo": {
                        "title": "Effective date to (mm/dd/yyyy)",
                        "type": "string",
                        "description": "Optional: only include entities with an effective/formation date on or before this date, e.g. `12/31/2020`."
                    },
                    "terminationDateFrom": {
                        "title": "Termination date from (mm/dd/yyyy)",
                        "type": "string",
                        "description": "Optional: only include entities terminated/cancelled on or after this date, e.g. `1/1/2020`."
                    },
                    "terminationDateTo": {
                        "title": "Termination date to (mm/dd/yyyy)",
                        "type": "string",
                        "description": "Optional: only include entities terminated/cancelled on or before this date, e.g. `12/31/2020`."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Uses Apify's free datacenter (AUTO) proxy group to get a fresh IP if a request is temporarily blocked. Residential proxy is never used by this actor.",
                        "default": {
                            "useApifyProxy": true
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Hard cap on emitted records.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
