LLCDrop

Read-only Florida business filings and owner records over MCP: search LLCs and corporations, owner pages, new filings by county. Paid plans, API key required. Independent, not affiliated with the State of Florida.

Hosted MCP Server

npx add-mcp 'https://api.llcdrop.com/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

Developers

A read-only API for Florida business and filing data, for your own code and tools.

Use it with AI

The whole reference is available as one Markdown file. An AI assistant or coding agent can read it and write working calls for you.

Ready prompt

Read the LLCDrop API reference at https://api.llcdrop.com/docs.md, then help me build with it. My API key is in the LLCDROP_API_KEY environment variable. Do not print the key.

Connect over MCP

An AI tool that supports MCP can call the API as read-only tools with your key: pick your tool and replace YOUR_KEY in the snippet.

Run this in your terminal.

claude mcp add --transport http llcdrop https://api.llcdrop.com/mcp --header "Authorization: Bearer YOUR_KEY"

Each MCP request counts toward the key's limits. The tools are read-only.

What it is

The LLCDrop API returns Florida business records from public state filings as JSON. You can search by name, look up one business, read the filings of a day and see new-filing counts for each county. Every call is a read-only GET.

No phone numbers, emails or FEI numbers are available over the API: contact data stays in the app behind unlock credits.

Quick start

Every request goes to https://api.llcdrop.com over HTTPS.

  1. 1. Create a key

    Open Settings, API keys, create a key with the data scope and copy it. It is shown once.
  2. 2. Check the key

    This call shows the key's scope and how many requests it has left.
    curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/me"
    
  3. 3. Search businesses

    Replace sk_live_YOUR_KEY with your key. This finds names that start with "example".
    curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/businesses?q=example&limit=1"
    

Authentication

Send your key as a Bearer token in the Authorization header of every request. No other method is accepted.

Authorization: Bearer sk_live_YOUR_KEY

Accounts on the Basic, Starter, Agency and Enterprise plans can create API keys under Settings, API keys. Account admins and owners can create and revoke them. A key for this API carries the data scope.

  • A key is shown once, when you create it. Store it somewhere safe and keep it out of browser code.
  • You can cap a key at a number of requests per minute, per day and per month, below your plan.
  • Rotating a key issues a replacement. The old one keeps working for the grace period you choose.
  • The key list shows how often each key has been used. Revoke a key and it stops at once.
  • Every response to a key carries Cache-Control: private, no-store, so do not cache it in a shared proxy.

Manage keys in API key settings, or log in first.

Limits

Limits belong to the account, not to a key: all keys of an account share them. Over a limit you get a 429 with a Retry-After header. Each response also reports the tightest window in X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Window, and GET /v1/me shows what is left.

PlanRequests per minuteRequests per dayRequests per monthRows per callMax offsetDaily filings window (days)Active keys
Basic105005,00050500301
Starter201,00010,000501,000302
Agency605,00050,0001002,000905
Enterprise12020,000200,0001005,00036520
  • Rows per call: a limit above this is reduced to it, and the response reports the limit applied.
  • Max offset: a page offset above this is a 400.
  • Daily filings window: how far back daily filings and date-range searches reach. Today counts as day 1. A businesses search without q also spans at most 92 days.

Errors

A failed call returns a JSON body with the status code and a message. The message is a string, or a list of strings when several parameters are wrong. Every error body also has a docs_url field that links to the full reference as Markdown.

{
  "statusCode": 429,
  "message": "Rate limit exceeded (minute limit)",
  "docs_url": "https://api.llcdrop.com/docs.md"
}
StatusMeaning
400The query is invalid: an unknown parameter, a value out of bounds, or a missing narrowing filter.
401The key is missing or not valid.
403Your plan does not include API access, the key lacks the data scope, or the date asked for is outside your plan's daily filings window.
404The business, county or route does not exist.
429Your account is over a limit. The Retry-After header gives the seconds to wait before you call again.
503Key checking or the data is briefly unavailable. Try the same call again shortly.

Endpoints

Every endpoint is a GET that returns JSON. Paths are relative to https://api.llcdrop.com. Lists return a data array and a pagination block with limit, offset, has_more and total.

Account

GET/v1/me

Shows which key you are calling with: its scopes, its request caps and how many requests are left in each window. A good first call to check a new key.

Auth: Bearer key (any scope).

Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/me"
Example response
{
  "kind": "client",
  "id": "example-key-id",
  "scopes": [
    "data"
  ],
  "limits": {
    "perMinute": 20,
    "perDay": 1000,
    "perMonth": 10000
  },
  "remaining": {
    "minute": 19,
    "day": 999,
    "month": 9999
  }
}
Errors
401Missing or invalid key.
403The account's plan does not include API access.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

Businesses

GET/v1/fl/businesses

Search Florida business filings by name prefix, or list filings in a date range. Newest filings first. Every call needs a narrowing filter.

Auth: Bearer key with the data scope.

  • Send q, city, zip or a filed_from date. County, type, industry and status never narrow a search on their own.
  • With q, filed_from and filed_to are free: search any period.
  • Without q, filed_from is required, must not be older than your plan's daily window (403 otherwise), and the range from filed_from to filed_to (today in Eastern time when omitted) spans at most 92 days.
  • Name search matches the start of the name only. There is no contains or fuzzy match.
  • Fictitious name filings are listed with type=fictitious.
ParameterTypeNotes
q (optional)stringStart of the business name, 2 to 80 characters. Lets filed_from and filed_to be free.
city (optional)stringCity name, up to 40 characters. Narrows the search on its own.
zip (optional)stringA 5-digit ZIP code, or a prefix of 3 to 4 digits. Narrows the search on its own.
county (optional)stringFlorida county name, up to 40 characters, for example Broward. Does not narrow a search on its own.
filed_from (optional)dateFirst filing date, YYYY-MM-DD. Required when there is no q, city or zip and you search by date.
filed_to (optional)dateLast filing date, YYYY-MM-DD. Defaults to today in Eastern time. Needs filed_from when there is no q.
type (optional)stringOne of llc, corporation, partnership, nonprofit, fictitious, trust. The values are listed by GET /v1/fl/entity-types.
industry (optional)stringA key from GET /v1/fl/industries: a sector, a sector.type key or a named segment.
status (optional)stringactive (default) or all. all includes dissolved businesses and needs a q of 2 or more characters.
officer (optional)stringFull name of an officer or manager, at least two words, for example Meir Tenenbaum. Lists the businesses that person is on file with, newest filings first, at most 25. Combines only with active, limit and offset.
active (optional)stringWith officer: true drops dissolved businesses, false (default) keeps them.
limit (optional)integerRows to return, 1 to 1,000. Default 25. A value above your plan's rows per call is reduced to it, and the response reports the limit applied.
offset (optional)integerRows to skip, 0 to 100,000. Default 0. A value above your plan's max offset is a 400.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/businesses?q=example&limit=1"
Example response
{
  "data": [
    {
      "id": "1234567",
      "document_number": "L00000000000",
      "name": "Example Holdings LLC",
      "entity_type": "llc",
      "company_type": "LLC",
      "status": "active",
      "filed_date": "2026-10-09",
      "dissolved_date": null,
      "city": "Miami",
      "zip": "33101",
      "county": "Miami-Dade",
      "industry": {
        "sector": "construction",
        "type": "construction.general_contractor"
      },
      "url": "https://llcdrop.com/business/1234567"
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "has_more": true,
    "total": 1234
  }
}
Errors
400Invalid query: an unknown parameter, a value out of bounds, no narrowing filter, an offset above your plan's max offset, or a filed range over 92 days without q.
401Missing or invalid key.
403The plan or scope does not allow API access, or filed_from is older than your plan's daily window.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/businesses/by-document/{document_number}

One business by its state document number. Case does not matter. Returns the same fields as the lookup by id.

Auth: Bearer key with the data scope.

ParameterTypeNotes
document_numberstringThe state document number, 6 to 12 letters or digits.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/businesses/by-document/L00000000000"
Example response
{
  "data": {
    "id": "1234567",
    "document_number": "L00000000000",
    "name": "Example Holdings LLC",
    "entity_type": "llc",
    "company_type": "LLC",
    "status": "active",
    "filed_date": "2026-10-09",
    "dissolved_date": null,
    "city": "Miami",
    "zip": "33101",
    "county": "Miami-Dade",
    "industry": {
      "sector": "construction",
      "type": "construction.general_contractor"
    },
    "url": "https://llcdrop.com/business/1234567",
    "principal_address": {
      "street": "100 Example Street",
      "street2": "Suite 1",
      "city": "Miami",
      "state": "FL",
      "zip": "33101",
      "country": "US"
    },
    "mailing_address": null,
    "registered_agent_name": "Example Registered Agent Inc.",
    "formation_state": "FL",
    "last_annual_report_year": 2026,
    "officer_count": 2,
    "license_count": 0
  }
}
Errors
400document_number is not 6 to 12 letters or digits.
401Missing or invalid key.
403The account's plan does not include API access, or the key lacks the data scope.
404No business has that document number.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/businesses/{id}

One business by its LLCDrop id, with addresses, the registered agent's name, formation state, last annual report year and officer and license counts.

Auth: Bearer key with the data scope.

ParameterTypeNotes
idintegerThe id returned by the list endpoints, a positive integer.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/businesses/1234567"
Example response
{
  "data": {
    "id": "1234567",
    "document_number": "L00000000000",
    "name": "Example Holdings LLC",
    "entity_type": "llc",
    "company_type": "LLC",
    "status": "active",
    "filed_date": "2026-10-09",
    "dissolved_date": null,
    "city": "Miami",
    "zip": "33101",
    "county": "Miami-Dade",
    "industry": {
      "sector": "construction",
      "type": "construction.general_contractor"
    },
    "url": "https://llcdrop.com/business/1234567",
    "principal_address": {
      "street": "100 Example Street",
      "street2": "Suite 1",
      "city": "Miami",
      "state": "FL",
      "zip": "33101",
      "country": "US"
    },
    "mailing_address": null,
    "registered_agent_name": "Example Registered Agent Inc.",
    "formation_state": "FL",
    "last_annual_report_year": 2026,
    "officer_count": 2,
    "license_count": 0
  }
}
Errors
400id is not a positive integer.
401Missing or invalid key.
403The account's plan does not include API access, or the key lacks the data scope.
404No business has that id.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/businesses/{id}/officers

Names and titles of a business's officers, sorted by name, at most 25. No contact details.

Auth: Bearer key with the data scope.

ParameterTypeNotes
idintegerThe id returned by the list endpoints, a positive integer.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/businesses/1234567/officers"
Example response
{
  "data": [
    {
      "name": "Jane Example",
      "title": "Manager"
    }
  ]
}
Errors
400id is not a positive integer.
401Missing or invalid key.
403The account's plan does not include API access, or the key lacks the data scope.
404No business has that id.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

Parcels

GET/v1/fl/businesses/{id}/parcels

Parcels owned by one business (a Sunbiz entity), highest value first, at most 50. Each parcel counts as one row.

Auth: Bearer key with the data scope.

ParameterTypeNotes
idintegerThe id returned by the list endpoints, a positive integer.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/businesses/1234567/parcels"
Example response
{
  "data": [
    {
      "key": "23-0232341690020",
      "county_no": 23,
      "parcel_id": "0232341690020",
      "owner": "EXAMPLE OWNER",
      "owner_kind": "person",
      "address": "123 EXAMPLE ST",
      "city": "MIAMI BEACH",
      "zip": "33140",
      "property_type": "SINGLE_FAMILY",
      "just_value": 850000,
      "homestead_value": null,
      "living_sqft": 2100,
      "year_built": 1962,
      "owner_occupied": true,
      "absentee": false,
      "distress": [
        "code_case"
      ]
    }
  ]
}
Errors
400id is not a positive integer.
401Missing or invalid key.
403The account's plan does not include API access, or the key lacks the data scope.
404No business has that id.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/parcels

Find Florida parcels by street address and ZIP, or by owner-name prefix. Each parcel counts as one row. Send exactly one of address with zip, or owner.

Auth: Bearer key with the data scope.

  • An address lookup returns homes (single family, multi family, condo) on that street line, exact or followed by a unit, at most 200.
  • An owner lookup matches the start of the owner name, at most 25.
  • distress lists the signal names recorded on the parcel, empty when none.
ParameterTypeNotes
address (optional)stringStreet line, for example 2001 MERIDIAN AVE. Needs zip.
zip (optional)stringExact 5-digit ZIP. Needs address.
unit (optional)stringUnit, for example 301. Narrows an address lookup to that unit.
owner (optional)stringStart of the owner name, 3 to 80 characters, for example tenenbaum meir.
zip_prefix (optional)stringWith owner: a 3 or 4 digit ZIP prefix to narrow the search.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/parcels?zip=33139&address=2001%20MERIDIAN%20AVE"
Example response
{
  "data": [
    {
      "key": "23-0232341690020",
      "county_no": 23,
      "parcel_id": "0232341690020",
      "owner": "EXAMPLE OWNER",
      "owner_kind": "person",
      "address": "123 EXAMPLE ST",
      "city": "MIAMI BEACH",
      "zip": "33140",
      "property_type": "SINGLE_FAMILY",
      "just_value": 850000,
      "homestead_value": null,
      "living_sqft": 2100,
      "year_built": 1962,
      "owner_occupied": true,
      "absentee": false,
      "distress": [
        "code_case"
      ]
    }
  ]
}
Errors
400Invalid query: an unknown parameter, address without zip, both lookups at once, or neither.
401Missing or invalid key.
403The account's plan does not include API access, or the key lacks the data scope.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/parcels/{key}

One parcel by its key, county number and parcel id joined by a hyphen, with its signals newest first (at most 50).

Auth: Bearer key with the data scope.

ParameterTypeNotes
keystringThe key field of a parcel, for example 23-0232341690020. Case does not matter.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/parcels/23-0232341690020"
Example response
{
  "data": {
    "key": "23-0232341690020",
    "county_no": 23,
    "parcel_id": "0232341690020",
    "owner": "EXAMPLE OWNER",
    "owner_kind": "person",
    "address": "123 EXAMPLE ST",
    "city": "MIAMI BEACH",
    "zip": "33140",
    "property_type": "SINGLE_FAMILY",
    "just_value": 850000,
    "homestead_value": null,
    "living_sqft": 2100,
    "year_built": 1962,
    "owner_occupied": true,
    "absentee": false,
    "distress": [
      "code_case"
    ],
    "signals": [
      {
        "type": "code_case",
        "status": "open",
        "case_type": "Unsafe structure",
        "opened_at": "2026-03-02",
        "closed_at": null,
        "amount": null,
        "source_ref": "CE2026-1234"
      }
    ]
  }
}
Errors
400key is not <county_no>-<parcel_id>.
401Missing or invalid key.
403The account's plan does not include API access, or the key lacks the data scope.
404No parcel has that key.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/leads/enrich

Everything about one lead in a single call: its parcel, parcels owned under the name, parcels at its address, and the companies it is an officer of with their parcels. Each parcel and each company returned counts as one row.

Auth: Bearer key with the data scope.

  • owner_parcels merges the owner-name lookups for both word orders, deduplicated by key, at most 50.
  • companies lists up to 8 active companies the person is an officer of; each carries at most 5 parcels, highest just_value first.
  • A part that cannot be looked up comes back null or empty instead of failing the call.
ParameterTypeNotes
namestringThe lead's full name, 3 to 80 characters, for example Meir Tenenbaum.
parcel (optional)stringA parcel key, county number and parcel id joined by a hyphen, for example 23-0232341690020.
zip (optional)stringExact 5-digit ZIP. Needs address.
address (optional)stringStreet line, up to 80 characters, for example 2001 MERIDIAN AVE. Needs zip.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/leads/enrich?name=Meir%20Tenenbaum&zip=33139&address=2001%20MERIDIAN%20AVE"
Example response
{
  "data": {
    "parcel": {
      "key": "23-0232341690020",
      "county_no": 23,
      "parcel_id": "0232341690020",
      "owner": "EXAMPLE OWNER",
      "owner_kind": "person",
      "address": "123 EXAMPLE ST",
      "city": "MIAMI BEACH",
      "zip": "33140",
      "property_type": "SINGLE_FAMILY",
      "just_value": 850000,
      "homestead_value": null,
      "living_sqft": 2100,
      "year_built": 1962,
      "owner_occupied": true,
      "absentee": false,
      "distress": [
        "code_case"
      ]
    },
    "owner_parcels": [
      {
        "key": "23-0232341690020",
        "county_no": 23,
        "parcel_id": "0232341690020",
        "owner": "EXAMPLE OWNER",
        "owner_kind": "person",
        "address": "123 EXAMPLE ST",
        "city": "MIAMI BEACH",
        "zip": "33140",
        "property_type": "SINGLE_FAMILY",
        "just_value": 850000,
        "homestead_value": null,
        "living_sqft": 2100,
        "year_built": 1962,
        "owner_occupied": true,
        "absentee": false,
        "distress": [
          "code_case"
        ]
      }
    ],
    "address_parcels": [
      {
        "key": "23-0232341690020",
        "county_no": 23,
        "parcel_id": "0232341690020",
        "owner": "EXAMPLE OWNER",
        "owner_kind": "person",
        "address": "123 EXAMPLE ST",
        "city": "MIAMI BEACH",
        "zip": "33140",
        "property_type": "SINGLE_FAMILY",
        "just_value": 850000,
        "homestead_value": null,
        "living_sqft": 2100,
        "year_built": 1962,
        "owner_occupied": true,
        "absentee": false,
        "distress": [
          "code_case"
        ]
      }
    ],
    "companies": [
      {
        "id": "1234567",
        "name": "Example Holdings LLC",
        "legal_name": "Example Holdings LLC",
        "parcels": [
          {
            "key": "23-0232341690020",
            "county_no": 23,
            "parcel_id": "0232341690020",
            "owner": "EXAMPLE OWNER",
            "owner_kind": "person",
            "address": "123 EXAMPLE ST",
            "city": "MIAMI BEACH",
            "zip": "33140",
            "property_type": "SINGLE_FAMILY",
            "just_value": 850000,
            "homestead_value": null,
            "living_sqft": 2100,
            "year_built": 1962,
            "owner_occupied": true,
            "absentee": false,
            "distress": [
              "code_case"
            ]
          }
        ]
      }
    ]
  }
}
Errors
400Invalid query: name missing or out of range, malformed parcel or zip, or an unknown parameter.
401Missing or invalid key.
403The account's plan does not include API access, or the key lacks the data scope.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

Filings

GET/v1/fl/filings/daily

How many businesses filed on each recent day, counting back from today in Eastern time.

Auth: Bearer key with the data scope.

  • days is also capped by your plan's daily window, so a larger value returns fewer days, not an error.
  • The pagination block is always a single page.
ParameterTypeNotes
days (optional)integerDays to count back, today included, 1 to 90. Default 30.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/filings/daily?days=2"
Example response
{
  "data": [
    {
      "date": "2026-10-10",
      "count": 412
    },
    {
      "date": "2026-10-09",
      "count": 398
    }
  ],
  "pagination": {
    "limit": 2,
    "offset": 0,
    "has_more": false,
    "total": 2
  }
}
Errors
400days is not a whole number in range.
401Missing or invalid key.
403The account's plan does not include API access, or the key lacks the data scope.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/filings/daily/{date}

The businesses that filed on one day, newest first, paginated.

Auth: Bearer key with the data scope.

  • The date must fall inside your plan's daily window and cannot be in the future.
ParameterTypeNotes
datedateThe filing day, YYYY-MM-DD.
limit (optional)integerRows to return, 1 to 1,000. Default 25. A value above your plan's rows per call is reduced to it, and the response reports the limit applied.
offset (optional)integerRows to skip, 0 to 100,000. Default 0. A value above your plan's max offset is a 400.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/filings/daily/2026-10-10?limit=1"
Example response
{
  "data": [
    {
      "id": "1234567",
      "document_number": "L00000000000",
      "name": "Example Holdings LLC",
      "entity_type": "llc",
      "company_type": "LLC",
      "status": "active",
      "filed_date": "2026-10-09",
      "dissolved_date": null,
      "city": "Miami",
      "zip": "33101",
      "county": "Miami-Dade",
      "industry": {
        "sector": "construction",
        "type": "construction.general_contractor"
      },
      "url": "https://llcdrop.com/business/1234567"
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "has_more": true,
    "total": 412
  }
}
Errors
400date is not a real YYYY-MM-DD day or is in the future, or limit or offset is out of bounds.
401Missing or invalid key.
403The plan or scope does not allow API access, or the date is older than your plan's daily window.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

Counties and stats

GET/v1/fl/counties

New-filing counts for every Florida county. Not paginated.

Auth: Bearer key with the data scope.

Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/counties"
Example response
{
  "data": [
    {
      "key": "BROWARD",
      "name": "Broward",
      "filings_last_7_days": 10,
      "filings_last_30_days": 40,
      "filings_previous_30_days": 35,
      "active_businesses": 900
    }
  ]
}
Errors
401Missing or invalid key.
403The account's plan does not include API access, or the key lacks the data scope.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/counties/{key}

New-filing counts for one county. There is no per-county filings list; use the businesses search with county.

Auth: Bearer key with the data scope.

ParameterTypeNotes
keystringA county key from GET /v1/fl/counties, for example BROWARD. Case does not matter.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/counties/BROWARD"
Example response
{
  "data": {
    "key": "BROWARD",
    "name": "Broward",
    "filings_last_7_days": 10,
    "filings_last_30_days": 40,
    "filings_previous_30_days": 35,
    "active_businesses": 900
  }
}
Errors
400key is not a valid county key.
401Missing or invalid key.
403The account's plan does not include API access, or the key lacks the data scope.
404Unknown county.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/stats

Totals, filings over recent periods, a monthly series and the split by business type for the last 30 days. Timestamps are ISO 8601 in UTC.

Auth: Bearer key with the data scope.

  • The monthly series may include the current month, marked partial.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/stats"
Example response
{
  "data": {
    "businesses_total": 1000000,
    "latest_filing_date": "2026-10-10",
    "updated_at": "2026-10-11T06:00:00.000Z",
    "filings": {
      "last_7_days": 2800,
      "last_30_days": 12000,
      "previous_30_days": 11500,
      "last_365_days": 140000
    },
    "monthly": [
      {
        "month": "2026-09",
        "total": 11800,
        "partial": false,
        "by_type": {
          "llc": 8000,
          "corporation": 1500,
          "partnership": 100,
          "nonprofit": 200,
          "trust": 50,
          "fictitious": 1500,
          "other": 450
        }
      }
    ],
    "type_split_30d": [
      {
        "type": "llc",
        "n": 8100
      }
    ]
  }
}
Errors
401Missing or invalid key.
403The account's plan does not include API access, or the key lacks the data scope.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

Reference lists

GET/v1/fl/industries

The values the industry filter accepts: sectors with their types, and named segments. Not paginated. Lists are shortened in this example.

Auth: Bearer key with the data scope.

  • A key that is both a sector and a segment, such as retail, means the sector.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/industries"
Example response
{
  "data": {
    "sectors": [
      {
        "sector": "construction",
        "types": [
          "construction.general_contractor",
          "construction.roofing"
        ]
      }
    ],
    "segments": [
      {
        "key": "trades",
        "sectors": [
          "construction"
        ],
        "types": []
      }
    ]
  }
}
Errors
401Missing or invalid key.
403The account's plan does not include API access, or the key lacks the data scope.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/entity-types

The values the type filter accepts, with a plain label for each. Not paginated.

Auth: Bearer key with the data scope.

Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/entity-types"
Example response
{
  "data": [
    {
      "key": "llc",
      "label": "Limited liability company"
    },
    {
      "key": "corporation",
      "label": "Corporation"
    },
    {
      "key": "partnership",
      "label": "Partnership"
    },
    {
      "key": "nonprofit",
      "label": "Nonprofit"
    },
    {
      "key": "fictitious",
      "label": "Fictitious name"
    },
    {
      "key": "trust",
      "label": "Trust"
    }
  ]
}
Errors
401Missing or invalid key.
403The account's plan does not include API access, or the key lacks the data scope.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

Datasets

GET/v1/fl/websites/search

Search business websites: business website rows, with filters. Paged by cursor.

Auth: Bearer key with the websites scope, on an account that owns the Business websites dataset.

  • One row per business, with its best domain. Email addresses are never returned, only whether one exists.
  • Follow next_cursor until has_more is false. Each row returned counts toward your record credits.
ParameterTypeNotes
status (optional)stringComma list of live, parked, no_dns, no_site.
has_email (optional)booleantrue for businesses with a known email, false for those without. The address is not returned.
limit (optional)integerRows per page, 1 to 1000. Cut down to your plan's row limit.
cursor (optional)stringThe next_cursor of the previous page. Omit for the first page.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/websites/search?status=live&has_email=true&limit=25"
Example response
{
  "data": [
    {
      "entity_id": "1001",
      "name": "EXAMPLE HOLDINGS LLC",
      "city": "MIAMI",
      "domain": "example.test",
      "url": "https://example.test",
      "status": "live",
      "has_email": true
    }
  ],
  "pagination": {
    "limit": 25,
    "next_cursor": "1001",
    "has_more": true
  }
}
Errors
401Missing or invalid key.
403The key lacks the websites scope, or the account does not own the websites dataset.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/websites/by-entity/{entityId}

All business website rows for one business.

Auth: Bearer key with the websites scope, on an account that owns the Business websites dataset.

  • One row per business, with its best domain. Email addresses are never returned, only whether one exists.
ParameterTypeNotes
entityIdintegerThe business id, as returned by the businesses endpoints.
limit (optional)integerRows per page, 1 to 1000. Cut down to your plan's row limit.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/websites/by-entity/1001"
Example response
{
  "data": [
    {
      "entity_id": "1001",
      "name": "EXAMPLE HOLDINGS LLC",
      "city": "MIAMI",
      "domain": "example.test",
      "url": "https://example.test",
      "status": "live",
      "has_email": true
    }
  ]
}
Errors
400entityId is not a number.
401Missing or invalid key.
403The key lacks the websites scope, or the account does not own the websites dataset.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/property-sales/search

Search property sales: latest property sale rows, with filters. Paged by cursor.

Auth: Bearer key with the property-sales scope, on an account that owns the Property sales dataset.

  • The latest recorded sale per parcel. A buyer's name is returned only when the buyer is a business; person buyers are counted but never named.
  • Follow next_cursor until has_more is false. Each row returned counts toward your record credits.
ParameterTypeNotes
sale_from (optional)dateEarliest sale date, YYYY-MM-DD.
sale_to (optional)dateLatest sale date, YYYY-MM-DD.
min_price (optional)integerLowest sale price in dollars.
max_price (optional)integerHighest sale price in dollars.
qualified (optional)booleantrue for arm's-length (qualified) sales only.
county (optional)stringComma list of county numbers.
buyer_type (optional)stringbusiness or person.
limit (optional)integerRows per page, 1 to 1000. Cut down to your plan's row limit.
cursor (optional)stringThe next_cursor of the previous page. Omit for the first page.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/property-sales/search?buyer_type=business&qualified=true&min_price=100000"
Example response
{
  "data": [
    {
      "id": "2001",
      "parcel_number": "00-0000-000-0000",
      "county_no": 23,
      "address": "100 EXAMPLE ST",
      "city": "MIAMI",
      "zip": "33101",
      "property_type": "commercial",
      "sale_date": "2026-01-15",
      "sale_price": 450000,
      "qualified": true,
      "buyer_type": "business",
      "buyer_entity_id": "1001",
      "buyer_name": "EXAMPLE HOLDINGS LLC"
    }
  ],
  "pagination": {
    "limit": 25,
    "next_cursor": "1001",
    "has_more": true
  }
}
Errors
401Missing or invalid key.
403The key lacks the property-sales scope, or the account does not own the property-sales dataset.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/property-sales/by-entity/{entityId}

All latest property sale rows for one business.

Auth: Bearer key with the property-sales scope, on an account that owns the Property sales dataset.

  • The latest recorded sale per parcel. A buyer's name is returned only when the buyer is a business; person buyers are counted but never named.
ParameterTypeNotes
entityIdintegerThe business id, as returned by the businesses endpoints.
limit (optional)integerRows per page, 1 to 1000. Cut down to your plan's row limit.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/property-sales/by-entity/1001"
Example response
{
  "data": [
    {
      "id": "2001",
      "parcel_number": "00-0000-000-0000",
      "county_no": 23,
      "address": "100 EXAMPLE ST",
      "city": "MIAMI",
      "zip": "33101",
      "property_type": "commercial",
      "sale_date": "2026-01-15",
      "sale_price": 450000,
      "qualified": true,
      "buyer_type": "business",
      "buyer_entity_id": "1001",
      "buyer_name": "EXAMPLE HOLDINGS LLC"
    }
  ]
}
Errors
400entityId is not a number.
401Missing or invalid key.
403The key lacks the property-sales scope, or the account does not own the property-sales dataset.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/property-transfers/search

Search property transfers: recorded deed or mortgage rows, with filters. Paged by cursor.

Auth: Bearer key with the property-transfers scope, on an account that owns the Property sales dataset.

  • Deeds and mortgages recorded with the Broward County Clerk, daily, from October 2026. Grantor and grantee names are returned only for businesses; people are never named.
  • Follow next_cursor until has_more is false. Each row returned counts toward your record credits.
ParameterTypeNotes
recorded_from (optional)dateEarliest recording date, YYYY-MM-DD.
recorded_to (optional)dateLatest recording date, YYYY-MM-DD.
min_price (optional)integerLowest estimated price in dollars (documentary stamps / 0.007).
max_price (optional)integerHighest estimated price in dollars.
kind (optional)stringdeed or mortgage.
county (optional)stringComma list of county numbers.
zip (optional)stringComma list of 5-digit property ZIP codes.
limit (optional)integerRows per page, 1 to 1000. Cut down to your plan's row limit.
cursor (optional)stringThe next_cursor of the previous page. Omit for the first page.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/property-transfers/search?county=16&kind=deed&min_price=100000"
Example response
{
  "data": [
    {
      "instrument": "120000001",
      "kind": "deed",
      "doc_type": "D",
      "recorded_date": "2026-10-14",
      "county_no": 16,
      "parcel_number": "000000000000",
      "parcel_id": "2001",
      "address": "100 EXAMPLE ST",
      "city": "FORT LAUDERDALE",
      "zip": "33301",
      "property_type": "commercial",
      "est_price": 450000,
      "doc_stamps": 3150,
      "grantors": [],
      "grantees": [
        "EXAMPLE HOLDINGS LLC"
      ]
    }
  ],
  "pagination": {
    "limit": 25,
    "next_cursor": "1001",
    "has_more": true
  }
}
Errors
401Missing or invalid key.
403The key lacks the property-transfers scope, or the account does not own the Property sales dataset.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/property-transfers/by-entity/{entityId}

All recorded deed or mortgage rows for one business.

Auth: Bearer key with the property-transfers scope, on an account that owns the Property sales dataset.

  • Deeds and mortgages recorded with the Broward County Clerk, daily, from October 2026. Grantor and grantee names are returned only for businesses; people are never named.
ParameterTypeNotes
entityIdintegerThe business id, as returned by the businesses endpoints.
limit (optional)integerRows per page, 1 to 1000. Cut down to your plan's row limit.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/property-transfers/by-entity/1001"
Example response
{
  "data": [
    {
      "instrument": "120000001",
      "kind": "deed",
      "doc_type": "D",
      "recorded_date": "2026-10-14",
      "county_no": 16,
      "parcel_number": "000000000000",
      "parcel_id": "2001",
      "address": "100 EXAMPLE ST",
      "city": "FORT LAUDERDALE",
      "zip": "33301",
      "property_type": "commercial",
      "est_price": 450000,
      "doc_stamps": 3150,
      "grantors": [],
      "grantees": [
        "EXAMPLE HOLDINGS LLC"
      ]
    }
  ]
}
Errors
400entityId is not a number.
401Missing or invalid key.
403The key lacks the property-transfers scope, or the account does not own the Property sales dataset.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/workforce/search

Search workforce: workforce record rows, with filters. Paged by cursor.

Auth: Bearer key with the workforce scope, on an account that owns the Workforce dataset.

  • Employee-benefit plan participant counts per business, a proxy for headcount.
  • Follow next_cursor until has_more is false. Each row returned counts toward your record credits.
ParameterTypeNotes
naics (optional)stringNAICS code or prefix.
min_participants (optional)integerFewest plan participants.
max_participants (optional)integerMost plan participants.
size_band (optional)stringComma list of size bands.
plan_year (optional)integerPlan year.
limit (optional)integerRows per page, 1 to 1000. Cut down to your plan's row limit.
cursor (optional)stringThe next_cursor of the previous page. Omit for the first page.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/workforce/search?naics=5411&min_participants=50"
Example response
{
  "data": [
    {
      "entity_id": "1001",
      "name": "EXAMPLE HOLDINGS LLC",
      "city": "MIAMI",
      "plan_year": 2024,
      "as_of": "2024-12-31",
      "participants": 120,
      "size_band": "100-249",
      "naics": "541110"
    }
  ],
  "pagination": {
    "limit": 25,
    "next_cursor": "1001",
    "has_more": true
  }
}
Errors
401Missing or invalid key.
403The key lacks the workforce scope, or the account does not own the workforce dataset.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/workforce/by-entity/{entityId}

All workforce record rows for one business.

Auth: Bearer key with the workforce scope, on an account that owns the Workforce dataset.

  • Employee-benefit plan participant counts per business, a proxy for headcount.
ParameterTypeNotes
entityIdintegerThe business id, as returned by the businesses endpoints.
limit (optional)integerRows per page, 1 to 1000. Cut down to your plan's row limit.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/workforce/by-entity/1001"
Example response
{
  "data": [
    {
      "entity_id": "1001",
      "name": "EXAMPLE HOLDINGS LLC",
      "city": "MIAMI",
      "plan_year": 2024,
      "as_of": "2024-12-31",
      "participants": 120,
      "size_band": "100-249",
      "naics": "541110"
    }
  ]
}
Errors
400entityId is not a number.
401Missing or invalid key.
403The key lacks the workforce scope, or the account does not own the workforce dataset.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/ppp/search

Search ppp loans: PPP loan rows, with filters. Paged by cursor.

Auth: Bearer key with the ppp scope, on an account that owns the PPP loans dataset.

  • Business borrowers only. Loans to individuals are excluded, and borrower demographics are never returned.
  • Follow next_cursor until has_more is false. Each row returned counts toward your record credits.
ParameterTypeNotes
min_amount (optional)integerLowest loan amount in dollars.
max_amount (optional)integerHighest loan amount in dollars.
year (optional)integerApproval year, 2020 or 2021.
lender (optional)stringLender name contains this text.
naics (optional)stringNAICS code or prefix.
forgiven (optional)booleantrue for loans with forgiveness, false for those without.
limit (optional)integerRows per page, 1 to 1000. Cut down to your plan's row limit.
cursor (optional)stringThe next_cursor of the previous page. Omit for the first page.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/ppp/search?year=2021&min_amount=50000&forgiven=true"
Example response
{
  "data": [
    {
      "loan_number": "3001",
      "entity_id": "1001",
      "name": "EXAMPLE HOLDINGS LLC",
      "city": "MIAMI",
      "approved_at": "2021-03-10",
      "amount": 85000,
      "jobs": 12,
      "naics": "541110",
      "business_type": "Limited Liability Company(LLC)",
      "status": "Paid in Full",
      "forgiven_amount": 85000,
      "forgiven_at": "2022-01-20",
      "lender": "EXAMPLE BANK"
    }
  ],
  "pagination": {
    "limit": 25,
    "next_cursor": "1001",
    "has_more": true
  }
}
Errors
401Missing or invalid key.
403The key lacks the ppp scope, or the account does not own the ppp dataset.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/ppp/by-entity/{entityId}

All PPP loan rows for one business.

Auth: Bearer key with the ppp scope, on an account that owns the PPP loans dataset.

  • Business borrowers only. Loans to individuals are excluded, and borrower demographics are never returned.
ParameterTypeNotes
entityIdintegerThe business id, as returned by the businesses endpoints.
limit (optional)integerRows per page, 1 to 1000. Cut down to your plan's row limit.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/ppp/by-entity/1001"
Example response
{
  "data": [
    {
      "loan_number": "3001",
      "entity_id": "1001",
      "name": "EXAMPLE HOLDINGS LLC",
      "city": "MIAMI",
      "approved_at": "2021-03-10",
      "amount": 85000,
      "jobs": 12,
      "naics": "541110",
      "business_type": "Limited Liability Company(LLC)",
      "status": "Paid in Full",
      "forgiven_amount": 85000,
      "forgiven_at": "2022-01-20",
      "lender": "EXAMPLE BANK"
    }
  ]
}
Errors
400entityId is not a number.
401Missing or invalid key.
403The key lacks the ppp scope, or the account does not own the ppp dataset.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/sba/search

Search sba loans: SBA 7(a) or 504 loan rows, with filters. Paged by cursor.

Auth: Bearer key with the sba scope, on an account that owns the SBA loans dataset.

  • Business borrowers only; no guarantor or individual details are returned.
  • Follow next_cursor until has_more is false. Each row returned counts toward your record credits.
ParameterTypeNotes
min_amount (optional)integerLowest loan amount in dollars.
max_amount (optional)integerHighest loan amount in dollars.
year (optional)integerApproval year.
lender (optional)stringLender name contains this text.
naics (optional)stringNAICS code or prefix.
program (optional)string7A or 504.
charged_off (optional)booleantrue for charged-off loans, false for the rest.
limit (optional)integerRows per page, 1 to 1000. Cut down to your plan's row limit.
cursor (optional)stringThe next_cursor of the previous page. Omit for the first page.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/sba/search?program=7A&min_amount=100000"
Example response
{
  "data": [
    {
      "id": "4001",
      "entity_id": "1001",
      "name": "EXAMPLE HOLDINGS LLC",
      "city": "MIAMI",
      "program": "7A",
      "amount": 250000,
      "sba_guaranteed": 187500,
      "approved_at": "2019-06-01",
      "term_months": 120,
      "lender": "EXAMPLE BANK",
      "naics": "541110",
      "status": "PIF",
      "paid_in_full_at": "2024-06-01",
      "chargeoff_at": null,
      "jobs": 8
    }
  ],
  "pagination": {
    "limit": 25,
    "next_cursor": "1001",
    "has_more": true
  }
}
Errors
401Missing or invalid key.
403The key lacks the sba scope, or the account does not own the sba dataset.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/sba/by-entity/{entityId}

All SBA 7(a) or 504 loan rows for one business.

Auth: Bearer key with the sba scope, on an account that owns the SBA loans dataset.

  • Business borrowers only; no guarantor or individual details are returned.
ParameterTypeNotes
entityIdintegerThe business id, as returned by the businesses endpoints.
limit (optional)integerRows per page, 1 to 1000. Cut down to your plan's row limit.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/sba/by-entity/1001"
Example response
{
  "data": [
    {
      "id": "4001",
      "entity_id": "1001",
      "name": "EXAMPLE HOLDINGS LLC",
      "city": "MIAMI",
      "program": "7A",
      "amount": 250000,
      "sba_guaranteed": 187500,
      "approved_at": "2019-06-01",
      "term_months": 120,
      "lender": "EXAMPLE BANK",
      "naics": "541110",
      "status": "PIF",
      "paid_in_full_at": "2024-06-01",
      "chargeoff_at": null,
      "jobs": 8
    }
  ]
}
Errors
400entityId is not a number.
401Missing or invalid key.
403The key lacks the sba scope, or the account does not own the sba dataset.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/fmcsa/search

Search fmcsa carriers: motor carrier rows, with filters. Paged by cursor.

Auth: Bearer key with the fmcsa scope, on an account that owns the FMCSA carriers dataset.

  • Carriers registered to a Florida business. Driver names and contact people are never returned.
  • Follow next_cursor until has_more is false. Each row returned counts toward your record credits.
ParameterTypeNotes
min_power_units (optional)integerFewest power units (trucks and tractors).
max_power_units (optional)integerMost power units.
cargo (optional)stringComma list of cargo codes (letters and digits); a carrier matches when it hauls any of them.
active (optional)booleantrue for active carriers, false for inactive.
hazmat (optional)booleantrue for hazardous-materials carriers.
limit (optional)integerRows per page, 1 to 1000. Cut down to your plan's row limit.
cursor (optional)stringThe next_cursor of the previous page. Omit for the first page.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/fmcsa/search?active=true&min_power_units=10"
Example response
{
  "data": [
    {
      "dot_number": "5001",
      "entity_id": "1001",
      "name": "EXAMPLE HOLDINGS LLC",
      "city": "MIAMI",
      "status": "ACTIVE",
      "active": true,
      "added_at": "2015-04-02",
      "mcs150_at": "2025-03-01",
      "power_units": 14,
      "truck_units": 12,
      "drivers": 16,
      "cdl_drivers": 16,
      "fleet_size": "10-24",
      "operation": "Interstate",
      "hazmat": false,
      "cargo": [
        "GenFreight"
      ]
    }
  ],
  "pagination": {
    "limit": 25,
    "next_cursor": "1001",
    "has_more": true
  }
}
Errors
401Missing or invalid key.
403The key lacks the fmcsa scope, or the account does not own the fmcsa dataset.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

GET/v1/fl/fmcsa/by-entity/{entityId}

All motor carrier rows for one business.

Auth: Bearer key with the fmcsa scope, on an account that owns the FMCSA carriers dataset.

  • Carriers registered to a Florida business. Driver names and contact people are never returned.
ParameterTypeNotes
entityIdintegerThe business id, as returned by the businesses endpoints.
limit (optional)integerRows per page, 1 to 1000. Cut down to your plan's row limit.
Example request
curl -H "Authorization: Bearer sk_live_YOUR_KEY" "https://api.llcdrop.com/v1/fl/fmcsa/by-entity/1001"
Example response
{
  "data": [
    {
      "dot_number": "5001",
      "entity_id": "1001",
      "name": "EXAMPLE HOLDINGS LLC",
      "city": "MIAMI",
      "status": "ACTIVE",
      "active": true,
      "added_at": "2015-04-02",
      "mcs150_at": "2025-03-01",
      "power_units": 14,
      "truck_units": 12,
      "drivers": 16,
      "cdl_drivers": 16,
      "fleet_size": "10-24",
      "operation": "Interstate",
      "hazmat": false,
      "cargo": [
        "GenFreight"
      ]
    }
  ]
}
Errors
400entityId is not a number.
401Missing or invalid key.
403The key lacks the fmcsa scope, or the account does not own the fmcsa dataset.
429Over a limit for your account. Wait the number of seconds in the Retry-After header.
503Key check or data temporarily unavailable. Try again shortly.

Not available

These are not part of the API today.

  • Filing event history. You get the current record of a business, not each filing event.
  • General partnerships as their own resource. There is no separate partnerships endpoint.
  • Bulk daily files. The daily CSV comes with the New FL Filings plan, not the API.
  • Async jobs. Every call answers directly, with no job to poll.
  • Contact data. Phone numbers, emails and FEI numbers are not in any response.

Fair use

API access is part of your plan and counts as use of the Service. Use it for your own business within your limits, keep your keys inside your organization, and do not copy the database in bulk or resell what you read unless a signed Data Reseller License allows it. Keys that go over their limits or break the rules can be throttled or suspended. The details are in the Terms of Service.

Help

Questions, a data problem or a limit you need raised? Write to hello@llcdrop.com or use the contact page.