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. Create a key
Open Settings, API keys, create a key with the data scope and copy it. It is shown once. -
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. 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.
| Plan | Requests per minute | Requests per day | Requests per month | Rows per call | Max offset | Daily filings window (days) | Active keys |
|---|---|---|---|---|---|---|---|
| Basic | 10 | 500 | 5,000 | 50 | 500 | 30 | 1 |
| Starter | 20 | 1,000 | 10,000 | 50 | 1,000 | 30 | 2 |
| Agency | 60 | 5,000 | 50,000 | 100 | 2,000 | 90 | 5 |
| Enterprise | 120 | 20,000 | 200,000 | 100 | 5,000 | 365 | 20 |
- 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"
}
| Status | Meaning |
|---|---|
| 400 | The query is invalid: an unknown parameter, a value out of bounds, or a missing narrowing filter. |
| 401 | The key is missing or not valid. |
| 403 | Your 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. |
| 404 | The business, county or route does not exist. |
| 429 | Your account is over a limit. The Retry-After header gives the seconds to wait before you call again. |
| 503 | Key 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
| 401 | Missing or invalid key. |
|---|---|
| 403 | The account's plan does not include API access. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| q (optional) | string | Start of the business name, 2 to 80 characters. Lets filed_from and filed_to be free. |
| city (optional) | string | City name, up to 40 characters. Narrows the search on its own. |
| zip (optional) | string | A 5-digit ZIP code, or a prefix of 3 to 4 digits. Narrows the search on its own. |
| county (optional) | string | Florida county name, up to 40 characters, for example Broward. Does not narrow a search on its own. |
| filed_from (optional) | date | First filing date, YYYY-MM-DD. Required when there is no q, city or zip and you search by date. |
| filed_to (optional) | date | Last filing date, YYYY-MM-DD. Defaults to today in Eastern time. Needs filed_from when there is no q. |
| type (optional) | string | One of llc, corporation, partnership, nonprofit, fictitious, trust. The values are listed by GET /v1/fl/entity-types. |
| industry (optional) | string | A key from GET /v1/fl/industries: a sector, a sector.type key or a named segment. |
| status (optional) | string | active (default) or all. all includes dissolved businesses and needs a q of 2 or more characters. |
| officer (optional) | string | Full 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) | string | With officer: true drops dissolved businesses, false (default) keeps them. |
| limit (optional) | integer | Rows 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) | integer | Rows 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
| 400 | Invalid 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. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The plan or scope does not allow API access, or filed_from is older than your plan's daily window. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| document_number | string | The 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
| 400 | document_number is not 6 to 12 letters or digits. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The account's plan does not include API access, or the key lacks the data scope. |
| 404 | No business has that document number. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| id | integer | The 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
| 400 | id is not a positive integer. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The account's plan does not include API access, or the key lacks the data scope. |
| 404 | No business has that id. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| id | integer | The 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
| 400 | id is not a positive integer. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The account's plan does not include API access, or the key lacks the data scope. |
| 404 | No business has that id. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| id | integer | The 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
| 400 | id is not a positive integer. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The account's plan does not include API access, or the key lacks the data scope. |
| 404 | No business has that id. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| address (optional) | string | Street line, for example 2001 MERIDIAN AVE. Needs zip. |
| zip (optional) | string | Exact 5-digit ZIP. Needs address. |
| unit (optional) | string | Unit, for example 301. Narrows an address lookup to that unit. |
| owner (optional) | string | Start of the owner name, 3 to 80 characters, for example tenenbaum meir. |
| zip_prefix (optional) | string | With 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
| 400 | Invalid query: an unknown parameter, address without zip, both lookups at once, or neither. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The account's plan does not include API access, or the key lacks the data scope. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| key | string | The 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
| 400 | key is not <county_no>-<parcel_id>. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The account's plan does not include API access, or the key lacks the data scope. |
| 404 | No parcel has that key. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| name | string | The lead's full name, 3 to 80 characters, for example Meir Tenenbaum. |
| parcel (optional) | string | A parcel key, county number and parcel id joined by a hyphen, for example 23-0232341690020. |
| zip (optional) | string | Exact 5-digit ZIP. Needs address. |
| address (optional) | string | Street 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
| 400 | Invalid query: name missing or out of range, malformed parcel or zip, or an unknown parameter. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The account's plan does not include API access, or the key lacks the data scope. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| days (optional) | integer | Days 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
| 400 | days is not a whole number in range. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The account's plan does not include API access, or the key lacks the data scope. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| date | date | The filing day, YYYY-MM-DD. |
| limit (optional) | integer | Rows 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) | integer | Rows 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
| 400 | date is not a real YYYY-MM-DD day or is in the future, or limit or offset is out of bounds. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The plan or scope does not allow API access, or the date is older than your plan's daily window. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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
| 401 | Missing or invalid key. |
|---|---|
| 403 | The account's plan does not include API access, or the key lacks the data scope. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| key | string | A 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
| 400 | key is not a valid county key. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The account's plan does not include API access, or the key lacks the data scope. |
| 404 | Unknown county. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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
| 401 | Missing or invalid key. |
|---|---|
| 403 | The account's plan does not include API access, or the key lacks the data scope. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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
| 401 | Missing or invalid key. |
|---|---|
| 403 | The account's plan does not include API access, or the key lacks the data scope. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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
| 401 | Missing or invalid key. |
|---|---|
| 403 | The account's plan does not include API access, or the key lacks the data scope. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| status (optional) | string | Comma list of live, parked, no_dns, no_site. |
| has_email (optional) | boolean | true for businesses with a known email, false for those without. The address is not returned. |
| limit (optional) | integer | Rows per page, 1 to 1000. Cut down to your plan's row limit. |
| cursor (optional) | string | The 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
| 401 | Missing or invalid key. |
|---|---|
| 403 | The key lacks the websites scope, or the account does not own the websites dataset. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| entityId | integer | The business id, as returned by the businesses endpoints. |
| limit (optional) | integer | Rows 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
| 400 | entityId is not a number. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The key lacks the websites scope, or the account does not own the websites dataset. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| sale_from (optional) | date | Earliest sale date, YYYY-MM-DD. |
| sale_to (optional) | date | Latest sale date, YYYY-MM-DD. |
| min_price (optional) | integer | Lowest sale price in dollars. |
| max_price (optional) | integer | Highest sale price in dollars. |
| qualified (optional) | boolean | true for arm's-length (qualified) sales only. |
| county (optional) | string | Comma list of county numbers. |
| buyer_type (optional) | string | business or person. |
| limit (optional) | integer | Rows per page, 1 to 1000. Cut down to your plan's row limit. |
| cursor (optional) | string | The 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
| 401 | Missing or invalid key. |
|---|---|
| 403 | The key lacks the property-sales scope, or the account does not own the property-sales dataset. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| entityId | integer | The business id, as returned by the businesses endpoints. |
| limit (optional) | integer | Rows 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
| 400 | entityId is not a number. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The key lacks the property-sales scope, or the account does not own the property-sales dataset. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| recorded_from (optional) | date | Earliest recording date, YYYY-MM-DD. |
| recorded_to (optional) | date | Latest recording date, YYYY-MM-DD. |
| min_price (optional) | integer | Lowest estimated price in dollars (documentary stamps / 0.007). |
| max_price (optional) | integer | Highest estimated price in dollars. |
| kind (optional) | string | deed or mortgage. |
| county (optional) | string | Comma list of county numbers. |
| zip (optional) | string | Comma list of 5-digit property ZIP codes. |
| limit (optional) | integer | Rows per page, 1 to 1000. Cut down to your plan's row limit. |
| cursor (optional) | string | The 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
| 401 | Missing or invalid key. |
|---|---|
| 403 | The key lacks the property-transfers scope, or the account does not own the Property sales dataset. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| entityId | integer | The business id, as returned by the businesses endpoints. |
| limit (optional) | integer | Rows 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
| 400 | entityId is not a number. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The key lacks the property-transfers scope, or the account does not own the Property sales dataset. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| naics (optional) | string | NAICS code or prefix. |
| min_participants (optional) | integer | Fewest plan participants. |
| max_participants (optional) | integer | Most plan participants. |
| size_band (optional) | string | Comma list of size bands. |
| plan_year (optional) | integer | Plan year. |
| limit (optional) | integer | Rows per page, 1 to 1000. Cut down to your plan's row limit. |
| cursor (optional) | string | The 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
| 401 | Missing or invalid key. |
|---|---|
| 403 | The key lacks the workforce scope, or the account does not own the workforce dataset. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| entityId | integer | The business id, as returned by the businesses endpoints. |
| limit (optional) | integer | Rows 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
| 400 | entityId is not a number. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The key lacks the workforce scope, or the account does not own the workforce dataset. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| min_amount (optional) | integer | Lowest loan amount in dollars. |
| max_amount (optional) | integer | Highest loan amount in dollars. |
| year (optional) | integer | Approval year, 2020 or 2021. |
| lender (optional) | string | Lender name contains this text. |
| naics (optional) | string | NAICS code or prefix. |
| forgiven (optional) | boolean | true for loans with forgiveness, false for those without. |
| limit (optional) | integer | Rows per page, 1 to 1000. Cut down to your plan's row limit. |
| cursor (optional) | string | The 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
| 401 | Missing or invalid key. |
|---|---|
| 403 | The key lacks the ppp scope, or the account does not own the ppp dataset. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| entityId | integer | The business id, as returned by the businesses endpoints. |
| limit (optional) | integer | Rows 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
| 400 | entityId is not a number. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The key lacks the ppp scope, or the account does not own the ppp dataset. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| min_amount (optional) | integer | Lowest loan amount in dollars. |
| max_amount (optional) | integer | Highest loan amount in dollars. |
| year (optional) | integer | Approval year. |
| lender (optional) | string | Lender name contains this text. |
| naics (optional) | string | NAICS code or prefix. |
| program (optional) | string | 7A or 504. |
| charged_off (optional) | boolean | true for charged-off loans, false for the rest. |
| limit (optional) | integer | Rows per page, 1 to 1000. Cut down to your plan's row limit. |
| cursor (optional) | string | The 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
| 401 | Missing or invalid key. |
|---|---|
| 403 | The key lacks the sba scope, or the account does not own the sba dataset. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| entityId | integer | The business id, as returned by the businesses endpoints. |
| limit (optional) | integer | Rows 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
| 400 | entityId is not a number. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The key lacks the sba scope, or the account does not own the sba dataset. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| min_power_units (optional) | integer | Fewest power units (trucks and tractors). |
| max_power_units (optional) | integer | Most power units. |
| cargo (optional) | string | Comma list of cargo codes (letters and digits); a carrier matches when it hauls any of them. |
| active (optional) | boolean | true for active carriers, false for inactive. |
| hazmat (optional) | boolean | true for hazardous-materials carriers. |
| limit (optional) | integer | Rows per page, 1 to 1000. Cut down to your plan's row limit. |
| cursor (optional) | string | The 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
| 401 | Missing or invalid key. |
|---|---|
| 403 | The key lacks the fmcsa scope, or the account does not own the fmcsa dataset. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.
| Parameter | Type | Notes |
|---|---|---|
| entityId | integer | The business id, as returned by the businesses endpoints. |
| limit (optional) | integer | Rows 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
| 400 | entityId is not a number. |
|---|---|
| 401 | Missing or invalid key. |
| 403 | The key lacks the fmcsa scope, or the account does not own the fmcsa dataset. |
| 429 | Over a limit for your account. Wait the number of seconds in the Retry-After header. |
| 503 | Key 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.