# Florida Sunbiz Registry Lookup by Name, Agent & FEI (`dataspryva/florida-sunbiz-registry-lookup-by-name-agent`) Actor

Look up Florida business entities on the Sunbiz registry by entity name, officer, registered agent, FEI/EIN, document number, ZIP, or street address, and get status, addresses, officers, annual filings, and filed-document links for each match.

- **URL**: https://apify.com/dataspryva/florida-sunbiz-registry-lookup-by-name-agent.md
- **Developed by:** [Dataspryva](https://apify.com/dataspryva) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.49 / 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

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

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

## How to integrate an Actor?

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

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

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

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

# README

## Florida Sunbiz Registry Lookup by Name, Agent & FEI

Look up Florida business entities in the state's official Sunbiz registry — by entity name, officer or registered agent, FEI/EIN, document number, ZIP code, street address, or trademark — and get a full filing profile for each result. Each record includes status, addresses, registered agent, officers and LLC managers, annual reports, event and name history, trademark details, protected series, and optional copies of filed documents. No login is required.

### What this actor does

- **Nine lookup paths:** entity name, officer/registered agent, registered agent only, FEI/EIN, exact document number, ZIP, street address, trademark name, and trademark owner
- **Batch-friendly input:** pass several search terms, paste Sunbiz detail or result URLs, or mix both in one run
- **Full people coverage:** officers and directors for corporations, plus authorized persons/managers for Florida LLCs
- **Filing trail:** annual reports, every event on record, previous names, and protected series for series LLCs
- **Trademark data:** owners, mark type/class, first-use dates, expiration date, and cross-reference
- **Optional PDF copies:** keep labels and dates by default, or save the newest/all filed documents with working links
- **Filters:** active/inactive status and corporation/LLC/trademark/partnership/non-profit type
- **Empty fields are omitted** — a record only contains data Sunbiz actually published for that entity

### Output per business entity

- `entityName` — registered name
- `entityType` — e.g. `Florida Profit Corporation`, `Florida Limited Liability Company`, `Trademark`
- `documentNumber` — Sunbiz filing number
- `status` — `ACTIVE`, `INACTIVE`, or the published status text
- `feiEinNumber` — federal employer identification number, when on file
- `filingDate` — original filing date
- `effectiveDate` — filing effective date, when published (common for LLCs)
- `state` — state of formation
- `lastEvent`, `lastEventFileDate`, `eventEffectiveDate` — most recent filing event
- `principalAddress`, `principalAddressChanged`
- `mailingAddress`, `mailingAddressChanged`
- `registeredAgentName`, `registeredAgentAddress`, `registeredAgentNameChanged`, `registeredAgentAddressChanged`
- `officers[]` — `{ title, name, address }` for each officer/director
- `authorizedPersons[]` — `{ title, name, address }` for each LLC manager/member/authorized person
- `annualReports[]` — `{ year, filedDate }`
- `lastAnnualReportYear` — most recent report year
- `eventHistory[]` — `{ eventType, filedDate, effectiveDate, description }`
- `nameHistory[]` — `{ filedDate, oldName }`
- `protectedSeries[]` — `{ name, status, filedDate }` for Florida series LLCs
- `owners[]` — `{ name, address }` for trademarks
- `markTypeClasses[]`, `markUsedInConnectionWith`, `firstUsedInFlorida`, `firstUsedAnywhere`, `expirationDate`, `crossReference` — trademark details
- `filedDocuments[]` — `{ label, filedDate, documentType, pdfUrl? }` filing history; `pdfUrl` is present only when PDF copies are enabled and the file was retrieved
- `sourceUrl` — Sunbiz detail-page URL
- `searchType`, `searchTerm` — the lookup that produced the record
- `recordType: "businessEntity"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `searchType` | string (select) | `entityName` | One of the nine Sunbiz lookup paths |
| `searchTerms` | string\[] | – | Values to search (one or more) |
| `startUrls` | array | – | Sunbiz detail or search-results URLs |
| `entityStatus` | string (select) | `any` | `any` / `active` / `inactive` |
| `entityType` | string (select) | `any` | `any` / `corporation` / `llc` / `trademark` / `partnership` / `nonprofit` |
| `includeEventHistory` | boolean | `true` | Add event and name history (one extra request when events exist) |
| `mirrorFiledDocuments` | string (select) | `none` | `none` / `newest` / `all` (up to 20 newest per entity) PDF copies |
| `maxItems` | integer | `20` | Hard cap on emitted records (1–1,000) |

#### Example: entity name with a PDF copy

```json
{
  "searchType": "entityName",
  "searchTerms": ["publix super markets"],
  "entityStatus": "any",
  "includeEventHistory": true,
  "mirrorFiledDocuments": "newest",
  "maxItems": 5
}
```

#### Example: officers and registered agents

```json
{
  "searchType": "officerOrRegisteredAgent",
  "searchTerms": ["smith john"],
  "entityType": "llc",
  "maxItems": 25
}
```

#### Example: exact document number plus a pasted URL

```json
{
  "searchType": "documentNumber",
  "searchTerms": ["112252"],
  "startUrls": [
    {"url": "https://search.sunbiz.org/Inquiry/CorporationSearch/SearchResultDetail?inquirytype=EntityName&aggregateId=trade-910940-9d670eee-3ef4-45ec-ae61-2cf4fa2d2118"}
  ],
  "maxItems": 2
}
```

#### Example: active businesses in a ZIP

```json
{
  "searchType": "zipCode",
  "searchTerms": ["33811"],
  "entityStatus": "active",
  "entityType": "llc",
  "includeEventHistory": false,
  "maxItems": 50
}
```

### Use cases

- **Due diligence / KYC** — verify a Florida vendor's status, FEI/EIN, registered agent, and filing history
- **Ownership and conflict checks** — map every entity tied to an officer or registered agent
- **Registered-agent monitoring** — track the companies represented by an agent
- **Legal research** — review amendments, mergers, reinstatements, and previous names by document number
- **Lead enrichment** — add verified Florida business identity, address, and people data to a CRM
- **Trademark research** — collect mark owners, classes, and first-use/expiration dates

### FAQ

**What is the data source?**
The actor reads the public Sunbiz registry operated by the Florida Department of State, Division of Corporations. It is an independent tool and is not affiliated with the State of Florida.

**Why does a name search sometimes return entities that do not contain my term?**
Sunbiz name, officer/agent, FEI, ZIP, and address indexes are ordered lists. If your term has no exact match, the site returns the nearest entries in its index instead of zero results. Only `documentNumber` is a true exact lookup. Use the `entityType` filter to hide trademarks and unrelated filing types.

**Why are some records missing FEI/EIN, addresses, or a registered agent?**
Older, inactive, or certain filing types genuinely do not have those values on file. The actor reports exactly what Sunbiz publishes and omits empty fields instead of inventing placeholders.

**What is the difference between `officers` and `authorizedPersons`?**
Corporations and non-profits publish officers/directors. Florida LLCs publish managers, members, or other authorized persons. Both lists use the same `title`, `name`, `address` shape.

**What is `eventHistory`?**
Every filing event Sunbiz lists for the entity — amendments, mergers, reinstatements, dissolutions, expirations, and name changes. `nameHistory` is derived from the name-change entries. It is added when `includeEventHistory` is on and the entity has events.

**Why do trademarks have a different set of fields?**
Trademark filings do not have a registered agent, officers, or standard addresses. They publish owners, mark type/class, first-use dates, and an expiration date instead; those fields are included when present.

**Why are PDF links optional?**
The official document viewer is designed for interactive browser use and is not reliably linkable from a dataset. With `mirrorFiledDocuments`, the actor saves the PDF to Apify storage and returns a stable link; without it, you still get the filing label, date, and document type.

**How current is the data?**
Records are read live from Sunbiz when the actor runs. There may be a short delay between a filing being accepted and appearing in the public search.

**Do I need a login or proxy?**
No. The registry is public and the actor handles access automatically. Just provide search terms or Sunbiz URLs.

**Does this actor cover protected series?**
Yes. Florida series LLCs that have filed protected-series designations include a `protectedSeries` array with each series' name, status, and filing date.

# Actor input Schema

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

Which Sunbiz index to search. Applies to the values in `searchTerms`; pasted `startUrls` are fetched directly.

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

One or more values for the selected `searchType` (entity names, officer/agent names, FEI/EIN digits, document numbers, ZIP codes, street addresses, or trademark terms). Sunbiz matches names/addresses from the start of its ordered index and returns the nearest entries when there is no exact match; `documentNumber` is the only exact lookup.

## `startUrls` (type: `array`):

Optional Sunbiz detail or search-results URLs to fetch directly. You can mix URLs with `searchTerms` in one run.

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

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

## `entityType` (type: `string`):

Keep only this kind of filing. Useful for hiding trademarks and nearest-name neighbours.

## `includeEventHistory` (type: `boolean`):

Fetch each entity's full filing-event trail (amendments, mergers, reinstatements, dissolutions, old names). Adds one request per entity that has events.

## `mirrorFiledDocuments` (type: `string`):

Save copies of filed documents to Apify storage and add a permanent `pdfUrl` to each `filedDocuments` entry. `all` mirrors up to the 20 newest documents per entity.

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

Hard cap on emitted records across all search terms and URLs. Each record requires a detail-page fetch.

## Actor input object example

```json
{
  "searchType": "entityName",
  "searchTerms": [
    "publix super markets"
  ],
  "entityStatus": "any",
  "entityType": "any",
  "includeEventHistory": true,
  "mirrorFiledDocuments": "none",
  "maxItems": 2
}
```

# 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",
    "searchTerms": [
        "publix super markets"
    ],
    "entityStatus": "any",
    "entityType": "any",
    "includeEventHistory": false,
    "mirrorFiledDocuments": "none",
    "maxItems": 2
};

// Run the Actor and wait for it to finish
const run = await client.actor("dataspryva/florida-sunbiz-registry-lookup-by-name-agent").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",
    "searchTerms": ["publix super markets"],
    "entityStatus": "any",
    "entityType": "any",
    "includeEventHistory": False,
    "mirrorFiledDocuments": "none",
    "maxItems": 2,
}

# Run the Actor and wait for it to finish
run = client.actor("dataspryva/florida-sunbiz-registry-lookup-by-name-agent").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "searchType": "entityName",
  "searchTerms": [
    "publix super markets"
  ],
  "entityStatus": "any",
  "entityType": "any",
  "includeEventHistory": false,
  "mirrorFiledDocuments": "none",
  "maxItems": 2
}' |
apify call dataspryva/florida-sunbiz-registry-lookup-by-name-agent --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,dataspryva/florida-sunbiz-registry-lookup-by-name-agent"
        }
    }
}
```

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

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/JTEsf3n3srGWrLiKV/builds/F4m9LT3xJs3dnKZtM/openapi.json
