# Florida Sunbiz Scraper - New LLC & Corporation Filings Daily (`neverempty/florida-sunbiz-scraper`) Actor

New Florida LLCs, corporations and partnerships from the state's official daily Sunbiz filing files: document number, name, type, file date, principal and mailing address, registered agent, officer names and titles, FEIN. Any day since 2022. No API key.

- **URL**: https://apify.com/neverempty/florida-sunbiz-scraper.md
- **Developed by:** [NeverEmpty](https://apify.com/neverempty) (community)
- **Categories:** Lead generation, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.38 / 1,000 entity returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Scraper - New LLC & Corporation Filings Daily

Get the **new Florida LLCs, corporations, non-profits and partnerships** entered into the state register on any day, from the **official daily corporate filings files** that the Florida Department of State, Division of Corporations (Sunbiz) publishes for download.

One row per entity: document number, name, filing type, file date, the day it was entered, principal address, mailing address, registered agent, officer / manager / member names and titles, FEIN when the filer gave one, and which daily file it came from.

No API key. No login. This Actor does not use the Sunbiz search website; it reads the bulk files the state publishes on its public SFTP server for exactly this purpose (the host, user name and password are printed on the state's [Daily Data page](https://dos.fl.gov/sunbiz/other-services/data-downloads/daily-data/)).

### What is in a daily file?

The state says: "Daily files are generated on work days and contain the filings added to our record that day. If no filings were added to our database (for example on holidays or during office closures), no file will be generated."

Measured on 2026-09-12:

- The server holds **1,355 daily files, from 2022-01-03 to 2026-09-10**. You can read any of them: this is not only "today's" list. Despite the state's wording, the files are **not** work days only: 193 of them are Saturdays or Sundays (in 2026, 64 of the 72 weekend days so far have a file, holding 8.6% of the year's new entities). A day has no file only when nothing was entered that day (a few weekends, and some holidays such as 2026-09-07).
- A weekday's file holds about **2,000 to 4,000 entities** (weekend files are smaller, a few hundred) (8 Sep 2026: 2,376 · 9 Sep: 2,598 · 10 Sep: 2,487). On 10 Sep 2026: Florida LLCs (FLAL) 2,216 · foreign LLCs (FORL) 99 · profit corporations (DOMP) 95 · non-profits (DOMNP) 34 · foreign corporations (FORP) 33 · others 10.
- Every entity in the files measured is **Active**, and no document number appeared in two files (7,461 read).
- The file for a day is posted around **02:20 to 03:20 UTC the next day** (the files of 5 Aug to 10 Sep 2026 were written between 02:19 and 03:16 UTC). Asking for today's date returns a free `no-file-for-date` row until then.
- `fileDate` is the formation date as written in the register. It is usually the last two weeks, but 25 of the 2,487 entities entered on 10 Sep 2026 give an older date (for example L26000469131 says 01/16/2018). `dataEnteredOn` is the day of the daily file, so you always know which day's list a row came from.
- **Not in the daily file:** the principal address has **no state and no country** (0 of 7,461), so none is returned; annual reports (new entities have none); email, phone and website; officers' addresses (see below). Changes to existing entities (name changes, dissolutions, mergers) are in a separate events file and are not returned here.

### Personal data: what is returned and what is not

Florida's register is public, and officer names and titles are part of it. This Actor returns:

- **Officers, managers and members: title and name only.** Their addresses are in the file but are **never returned** (many are home addresses).
- **Registered agent: always the name.** The agent's address is returned **only when the register flags the agent as a company AND the name has a business-entity word** (LLC, INC, CORP, CORPORATION, COMPANY, CO., LTD, LP, LLP, PLLC, PA, PL, CHARTERED, TRUST, GROUP, SERVICE(S), AGENT(S), AGENCY, ASSOCIATES, PARTNERS, HOLDINGS, ENTERPRISES, MANAGEMENT, ACCOUNTING, SOLUTIONS, CONSULTING, FOUNDATION, BANK). The flag alone is not reliable: 162 of 2,802 agents flagged as companies in the files measured are plain personal names ("PATRICIA M. GOMEZ"). `registeredAgentAddressWithheld` tells you when the address was not returned. In the three September 2026 files, 2,622 of 9,165 agent addresses are returned (commercial registered-agent services such as NORTHWEST REGISTERED AGENT LLC and REGISTERED AGENTS INC are the most common).
- **Principal and mailing addresses are returned** (they are the entity's own addresses of record). An address line that names who the post goes to ("C/O ...", "ATTN ...") is not returned and `careOfWithheld` is `true` (26 of 9,165 entities).

### Input

| Field | What it does |
|---|---|
| `dates` | Days whose daily file to read, `YYYY-MM-DD` (for example `2026-09-10`). The date is the day the filings were entered (the file name). A date with no file (a day with no filings, too old, not posted yet) returns one free `no-file-for-date` row that says why and names the nearest files. |
| `fromDate`, `toDate` | Read every daily file in this range, newest first. Up to 60 files per run (about 2 months of calendar days); the older rest is named in a free `not-looked-up` row. Either end can be left out. |
| `latestFiles` | Read the newest N daily files (1-60). |
| `name` | Words of the entity name. Every word must start a word of the name (`prop` finds PROPERTY), case and accents are ignored. |
| `filingTypes` | Keep only these filing types: `FLAL` Florida LLC, `FORL` foreign LLC, `DOMP` domestic profit corporation, `FORP` foreign profit corporation, `DOMNP` domestic non-profit, `FORNP` foreign non-profit, `DOMLP` / `FORLP` limited partnerships, `NPREG` non-profit registration, `TRUST` declaration of trust, `AGENT` designation of registered agent. |
| `cities` | Principal address cities as written in the register (`MIAMI`, `ORLANDO`). Case and periods are ignored (`ST. PETERSBURG` = `ST PETERSBURG`), but `MIAMI BEACH` is not `MIAMI`. |
| `zipCodes` | ZIP codes or their first 3-4 digits (`33139`, `331`), compared with the principal address. |
| `statesOfFormation` | State or country of formation as written (`FL`, `DE`, `NY`, `WY` ...). Use `DE` to find Delaware companies registering to do business in Florida. |
| `registeredAgent` | Words of the registered agent's name (`northwest registered`). |
| `maxResults` | The most entities one run returns (1-100,000, default 1,000). When it is reached, one free `more-available` row says how many more matched. |

Use either `dates`, a range, or `latestFiles`. **With no date at all, the newest daily file on the server is read** (every row's `query` says so). Filters can be combined with any of them; every filter given must match.

Examples:

```json
{}
```

```json
{ "dates": ["2026-09-10"], "maxResults": 5000 }
```

```json
{ "latestFiles": 5, "cities": ["MIAMI", "MIAMI BEACH"], "filingTypes": ["FLAL"], "maxResults": 5000 }
```

```json
{ "fromDate": "2026-08-01", "toDate": "2026-08-31", "statesOfFormation": ["DE"], "maxResults": 5000 }
```

```json
{ "latestFiles": 10, "name": "roofing" }
```

### Output

| Field | Meaning |
|---|---|
| `status` | `ok` for an entity. Other values are free explanation rows (below). |
| `documentNumber` | Florida document number, for example `L26000467610` (L = LLC, P = profit corporation, N = non-profit, F / M / B = foreign entities, A = limited partnership). |
| `entityName`, `entityStatus` | Registered name; Active or Inactive. |
| `filingType`, `filingTypeName` | Code and its name as the state's file definition lists it. |
| `fileDate` | Formation file date, `YYYY-MM-DD`, as written. |
| `dataEnteredOn` | The day the filing was entered = the date of the daily file. |
| `lastTransactionDate` | Date of the last filing (empty for most new filings). |
| `stateOrCountry` | State or country of formation as written. |
| `feiNumber` | Federal Employer Identification Number, when the filer gave one (about 4% of new filings). |
| `moreThanSixOfficers` | `true` when the entity has more than 6 officers (only 6 are in the file). |
| `principalAddress` | The principal address in one line, plus `principalAddressLine1`, `principalAddressLine2`, `principalCity`, `principalZip` (no state: the daily file has none). |
| `mailingAddress` | The mailing address in one line, plus `mailingAddressLine1`, `mailingAddressLine2`, `mailingCity`, `mailingState`, `mailingZip`, `mailingCountry` (country as the filer wrote it: `US`, `UN` ... not cleaned). |
| `careOfWithheld` | `true` when an address line named who the post goes to; that line is `null`. |
| `registeredAgentName`, `registeredAgentType` | The agent's name (a person is written FIRST MIDDLE LAST) and `person` / `company` as flagged. |
| `registeredAgentAddress` | The agent's address in one line, plus `registeredAgentStreet`, `registeredAgentCity`, `registeredAgentState`, `registeredAgentZip`: only for agents that are companies (see above). |
| `registeredAgentAddressWithheld` | `true` when the agent's address is not returned. |
| `officers` | Up to 6 officers / managers / members: `title` as written, `titleMeaning` (only for the six codes the state documents: P President, T Treasurer, C Chairman, V Vice President, S Secretary, D Director), `type` (`person` / `company`), `name`, and for persons `lastName`, `firstName`, `middleName`. Titles are free text of up to 4 characters; the most common in the files measured are MGR 4,973 · AMBR 3,760 · P 678 · MBR 336 · AP 297 · VP 281 · CEO 230 · AR 198. Their meaning is not documented by the state, so they are returned as written. |
| `officerCount`, `officersText` | Number of officers, and all of them in one line (`MGR: BARBARA M JENKINS; ...`). |
| `sourceFile` | The daily file the row came from (`20260910c.txt`). |

Rows that are not an entity are never charged:

| `status` | When |
|---|---|
| `bad-input` | The input could not be read (a date that is not `YYYY-MM-DD`, dates and a range together, an unknown filing type ...). Nothing is downloaded. |
| `no-file-for-date` | There is no daily file for that date (no filings were entered that day, before 2022-01-03, or not posted yet), or none in the range. |
| `no-results` | The files were read and no entity matches the filters; says how many records were read. |
| `more-available` | `maxResults` was reached; says how many more matched and which files were not read. |
| `not-looked-up` | Files beyond 60 in a range, or files not read because the run's maximum total charge was reached. |
| `failed` | The state's server or one daily file could not be read (after retries). Other files are still returned. |
| `incomplete` | The run was close to its time limit; names the files not read. |
| `duplicate-input` | The same date was given twice; its file is read once. |
| `unreadable-record` | A record in a file did not line up with the published 1,440-character layout and was skipped rather than read by the wrong positions. |

### How it reads the file

The daily files are fixed-width text with no header (the layout is the state's [Corporate File Definitions](https://dos.sunbiz.org/data-definitions/cor.html): 1,440 characters per record). The text inside is UTF-8, and a few records have a line break or tab typed into a field (20220103c.txt has one); records are therefore read by position, not by line, and control characters are turned into spaces. Downloading and reading one daily file takes about 10 seconds (measured from Apify on 2026-09-12: 3.58 MB in 8.9 s).

### Pricing

Pay per entity returned. Explanation rows (no file for a date, no results, rejected input, a file that could not be read) are free.

### Data source and terms

Florida Department of State, Division of Corporations, "Data Downloads": "The Division of Corporations offers free data downloads for informational purposes. Downloads are offered as is and may be changed, replaced or deleted at any time." Under Florida's public records law, these filings are public records. The state notes that addresses and officers in the files "may not reflect the most current information on sunbiz.org because of the limited space in the file". For an entity's current record, search its document number on [sunbiz.org](https://search.sunbiz.org/Inquiry/CorporationSearch/ByDocumentNumber).

This Actor is not affiliated with the State of Florida.

# Actor input Schema

## `dates` (type: `array`):

Days whose daily file to read, written YYYY-MM-DD, for example 2026-09-10. The date is the day the filings were entered into the register (the file name). Files exist from 2022-01-03 onwards, most weekends included; a date with no file (no filings entered that day) returns one free row saying so.

## `fromDate` (type: `string`):

Read every daily file from this date on, written YYYY-MM-DD. Up to 60 files per run (about 2 months of calendar days); the newest are read first.

## `toDate` (type: `string`):

Read every daily file up to this date, written YYYY-MM-DD.

## `latestFiles` (type: `integer`):

Read the newest N daily files (1 to 60). Leave empty to read only the newest file. Cannot be combined with dates or a date range.

## `name` (type: `string`):

Words of the entity name, for example roofing or real estate. Every word must start a word of the name; case and accents are ignored.

## `filingTypes` (type: `array`):

Keep only these filing types, as the state codes them.

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

Cities of the principal address as written in the register, for example MIAMI, ORLANDO, ST. PETERSBURG. Case and periods are ignored; MIAMI BEACH is a different city from MIAMI.

## `zipCodes` (type: `array`):

ZIP codes or their first 3 or 4 digits, for example 33139 or 331. Compared with the principal address.

## `statesOfFormation` (type: `array`):

2-letter codes as written in the register: FL for Florida entities, DE, NY, TX and so on for out-of-state entities registering to do business in Florida.

## `registeredAgent` (type: `string`):

Words of the registered agent's name, for example northwest registered agent. Every word must start a word of the name.

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

The most entities one run returns, up to 100,000. A weekday's file holds about 2,000 to 4,000.

## Actor input object example

```json
{
  "maxResults": 1000
}
```

# Actor output Schema

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

One row per entity, plus one free row for each input that was rejected, each date with no daily file, a search with no results, or a file that could not be read.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("neverempty/florida-sunbiz-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("neverempty/florida-sunbiz-scraper").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 '{}' |
apify call neverempty/florida-sunbiz-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,neverempty/florida-sunbiz-scraper"
        }
    }
}
```

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/TjIqFtx0eajsEF2tp/builds/IqfhyJhbpfZ9EbgVX/openapi.json
