# Florida Sunbiz Business Entity Search Scraper (`crawlerbros/florida-sunbiz-business-entity-search-scraper`) Actor

Search the Florida Division of Corporations (Sunbiz) registry by entity name, officer/registered agent, FEI/EIN, document number, ZIP, or street address. Returns entity status, type, registered agent, principal/mailing address, officers, annual filings, and filed document links.

- **URL**: https://apify.com/crawlerbros/florida-sunbiz-business-entity-search-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Agents, Automation, Lead generation
- **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.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

## Florida Sunbiz Business Entity Search Scraper

Scrape **Sunbiz** — the Florida Division of Corporations' official business entity registry. Search by entity name, officer/registered agent, FEI/EIN, document number, ZIP code, or street address, and get back entity status, type, registered agent, principal and mailing addresses, officers/directors, annual report history, and links to filed documents. HTTP-only, no login, no CAPTCHA-solving required.

### What this actor does

- **Nine search types:** entity name, officer/registered agent name, registered agent name only, FEI/EIN number, exact document number, ZIP code, street address, trademark name, trademark owner name
- **Full detail enrichment:** every matched entity's detail page is fetched to populate registered agent, addresses, officers, annual reports, and document links
- **Status filter:** narrow results to active-only or inactive-only entities
- **Filed document links:** direct PDF links to registration statements, annual reports, amendments, and mergers where available
- **Empty fields are omitted** — a record only contains fields Sunbiz actually published for that entity

### Output per business entity

- `entityName` — official registered name
- `entityType` — e.g. `Florida Profit Corporation`, `Florida Limited Liability Company`
- `documentNumber` — Sunbiz filing document number
- `feiEinNumber` — Federal Employer Identification Number, when on file
- `filingDate` — original date filed
- `state` — state of formation (`FL` for domestic entities, home state for foreign entities)
- `status` — `ACTIVE`, `INACTIVE`, or other Sunbiz status text
- `lastEvent`, `lastEventFileDate`, `eventEffectiveDate` — most recent filing event
- `principalAddress`, `principalAddressChanged`
- `mailingAddress`, `mailingAddressChanged`
- `registeredAgentName`, `registeredAgentAddress`, `registeredAgentNameChanged`, `registeredAgentAddressChanged`
- `officers[]` — `{ title, name, address }` for each officer/director on file
- `annualReports[]` — `{ year, filedDate }` for each annual report on file
- `filedDocuments[]` — `{ label, pdfUrl? }` filing history (registration statements, annual reports, amendments, mergers) with dates. `pdfUrl` is included only when Sunbiz's document-image endpoint is reachable for that entity at scrape time; otherwise the entry still lists `label` (what was filed and when) with no link.
- `sourceUrl` — canonical Sunbiz detail-page URL
- `searchType`, `searchTerm` — the query that produced this record
- `recordType: "businessEntity"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `searchType` | string (select) | `entityName` | `entityName` / `officerOrRegisteredAgent` / `registeredAgentName` / `feiEinNumber` / `documentNumber` / `zipCode` / `address` / `trademarkName` / `trademarkOwnerName` |
| `searchTerm` | string | `publix` | The value to search for |
| `entityStatus` | string (select) | `any` | `any` / `active` / `inactive` |
| `maxItems` | integer | `20` | Hard cap on emitted records (1–200). Sunbiz lists results 20 per page; the actor automatically walks Sunbiz's "Next List" pagination to satisfy any `maxItems` above 20. |
| `proxyConfiguration` | object | AUTO | Only used as an automatic fallback if Sunbiz blocks a direct request |

#### Example: search by entity name

```json
{
  "searchType": "entityName",
  "searchTerm": "publix super markets",
  "maxItems": 10
}
````

#### Example: search by FEI/EIN number

```json
{
  "searchType": "feiEinNumber",
  "searchTerm": "590324412",
  "maxItems": 5
}
```

#### Example: exact document number lookup

```json
{
  "searchType": "documentNumber",
  "searchTerm": "112252"
}
```

#### Example: active entities only, by ZIP code

```json
{
  "searchType": "zipCode",
  "searchTerm": "33811",
  "entityStatus": "active",
  "maxItems": 25
}
```

### Use cases

- **Due diligence** — verify a Florida vendor or partner's registration status and registered agent before signing a contract
- **Compliance / KYC** — confirm a business's FEI/EIN and filing history
- **Registered agent monitoring** — track which entities a registered agent represents
- **Sales / lead generation** — pull officer and address data for Florida businesses in a given area
- **Legal research** — locate an entity by document number and review its full filing history and annual reports

### FAQ

**What is the data source?**
The actor scrapes the public search portal at search.sunbiz.org, operated by the Florida Department of State, Division of Corporations. It is not affiliated with the State of Florida.

**Why does a name search sometimes return entities that don't contain my search term?**
Sunbiz's name-type searches (entity name, officer/agent name, registered agent name) perform a starts-with / nearest-alphabetical match against its sorted index — identical to the behavior of the official search UI. If your exact term has no match, the closest alphabetical neighbors are returned instead of zero results. The same "browse from this point" behavior applies to `feiEinNumber`, `zipCode`, and `address` searches too — Sunbiz's FEI/ZIP/address indexes are ordered lists, not exact-match lookups, so a FEI/EIN with only one real filing on it is padded out with the next nearest FEI numbers in the index (verified live against search.sunbiz.org itself, not an actor artifact).

**Does `documentNumber` search support partial matches?**
No — `documentNumber` is the only search type that is a true exact-match lookup (it's Sunbiz's own record primary key, so it resolves straight to the one matching detail page). A near-miss returns a "Document Not Found" status message rather than nearest neighbors. Every other search type (`entityName`, `officerOrRegisteredAgent`, `registeredAgentName`, `feiEinNumber`, `zipCode`, `address`) can return alphabetically/numerically-nearest neighbors when there's no further exact match.

**Why does `entityType` sometimes say `Trademark` instead of a corporation type?**
Sunbiz's name-based indexes (entity name, officer/agent, registered agent, ZIP, address) are shared across all filing types — corporations, LLCs, partnerships, and trademarks alike. A search that alphabetically neighbors a trademark filing will include it in results with `entityType: "Trademark"` and trademark-specific fields (owner-oriented, no registered agent/officers). This mirrors the official Sunbiz site exactly.

**How current is the data?**
Sunbiz serves live data directly from the state's filing system, so results reflect the registry at the time the actor runs.

**Are FEI/EIN numbers always available?**
No — many entities, especially older ones, have no FEI/EIN on file (or list a placeholder). The field is only included when Sunbiz has a real value.

**Why does a `zipCode` or `address` search occasionally return an entity whose principal address doesn't match?**
Sunbiz indexes entities by ZIP/address across principal, mailing, AND registered-agent addresses — a match on any one of those fields is included, matching the official site's own behavior.

**Why do some entities have no registered agent or officers listed?**
Sole proprietorships, dissolved entities, and some older filings genuinely have no registered agent or officer data on file with the state. The actor reports exactly what Sunbiz publishes.

**Why do some `filedDocuments` entries have no `pdfUrl`?**
Sunbiz's scanned-document endpoint blocks automated access independently of its search pages. The actor always reports what was filed and when (`label`); it only adds a working `pdfUrl` when the document image is actually reachable at scrape time, so you never get a dead link.

**Does this actor need a login, cookies, or proxy?**
No. Sunbiz's search portal is fully public. A proxy is only used automatically as a fallback if the source starts blocking direct requests.

**What do `trademarkName` / `trademarkOwnerName` searches return?**
The same detail-page fields as any other search (`entityType: "Trademark"`, `documentNumber`, `filingDate`, `status`, `lastEvent`, etc.) since trademark filings share Sunbiz's general detail-page layout. Trademarks have no registered agent or officers on file, so those fields are simply omitted; the owner name/address (shown under "Owners" on Sunbiz's own trademark detail page) is not currently parsed into a dedicated field.

# Actor input Schema

## `searchType` (type: `string`):

Which Sunbiz search axis to use.

## `searchTerm` (type: `string`):

The value to search for (entity name, officer/agent name, FEI/EIN digits, document number, ZIP code, street address, trademark name, or trademark owner name depending on `searchType`). Sunbiz performs a starts-with / nearest-alphabetical (or nearest-numerical, for FEI/ZIP) match on every search type EXCEPT `documentNumber`, same as the official site — a term with no exact match returns the closest neighbors in Sunbiz's index rather than zero results. Only `documentNumber` is a true exact-match lookup.

## `entityStatus` (type: `string`):

Only emit entities with this status. Determined from each entity's detail page.

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

Hard cap on emitted records. Each record requires a detail-page fetch, so keep this modest for large name/zip/address searches.

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

Only used as an automatic fallback if Sunbiz starts blocking datacenter requests. Leave default.

## Actor input object example

```json
{
  "searchType": "entityName",
  "searchTerm": "publix",
  "entityStatus": "any",
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

Dataset containing all scraped Sunbiz 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 = {
    "searchType": "entityName",
    "searchTerm": "publix",
    "entityStatus": "any",
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/florida-sunbiz-business-entity-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 = {
    "searchType": "entityName",
    "searchTerm": "publix",
    "entityStatus": "any",
    "maxItems": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/florida-sunbiz-business-entity-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 '{
  "searchType": "entityName",
  "searchTerm": "publix",
  "entityStatus": "any",
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call crawlerbros/florida-sunbiz-business-entity-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Florida Sunbiz Business Entity Search Scraper",
        "description": "Search the Florida Division of Corporations (Sunbiz) registry by entity name, officer/registered agent, FEI/EIN, document number, ZIP, or street address. Returns entity status, type, registered agent, principal/mailing address, officers, annual filings, and filed document links.",
        "version": "1.0",
        "x-build-id": "byUWBLM9oIFMIjCRj"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~florida-sunbiz-business-entity-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-florida-sunbiz-business-entity-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~florida-sunbiz-business-entity-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-florida-sunbiz-business-entity-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~florida-sunbiz-business-entity-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-florida-sunbiz-business-entity-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": [
                    "searchType",
                    "searchTerm"
                ],
                "properties": {
                    "searchType": {
                        "title": "Search type",
                        "enum": [
                            "entityName",
                            "officerOrRegisteredAgent",
                            "registeredAgentName",
                            "feiEinNumber",
                            "documentNumber",
                            "zipCode",
                            "address",
                            "trademarkName",
                            "trademarkOwnerName"
                        ],
                        "type": "string",
                        "description": "Which Sunbiz search axis to use.",
                        "default": "entityName"
                    },
                    "searchTerm": {
                        "title": "Search term",
                        "type": "string",
                        "description": "The value to search for (entity name, officer/agent name, FEI/EIN digits, document number, ZIP code, street address, trademark name, or trademark owner name depending on `searchType`). Sunbiz performs a starts-with / nearest-alphabetical (or nearest-numerical, for FEI/ZIP) match on every search type EXCEPT `documentNumber`, same as the official site — a term with no exact match returns the closest neighbors in Sunbiz's index rather than zero results. Only `documentNumber` is a true exact-match lookup.",
                        "default": "publix"
                    },
                    "entityStatus": {
                        "title": "Filter by entity status",
                        "enum": [
                            "any",
                            "active",
                            "inactive"
                        ],
                        "type": "string",
                        "description": "Only emit entities with this status. Determined from each entity's detail page.",
                        "default": "any"
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Hard cap on emitted records. Each record requires a detail-page fetch, so keep this modest for large name/zip/address searches.",
                        "default": 20
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Only used as an automatic fallback if Sunbiz starts blocking datacenter requests. Leave default.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
