Businesses
GET/api/v1/businesses/search
Search Florida business records with advanced filtering, sorting, and pagination. Supports full-text search, geographic filters, entity type filters, and date range queries. Returns comprehensive business data including names, addresses, status, and filing dates.
Parameters for GET /api/v1/businesses/search| Name | Type | Description |
|---|
| q | string | Search query for business name (minimum 3 characters, e.g., 'acme', 'consulting') |
| city | string | Filter by city (e.g., 'Miami', 'Tampa', 'Jacksonville') |
| county | string | Filter by county (e.g., 'Miami-Dade', 'Broward', 'Orange') |
| zip | string | Filter by ZIP code (5 digits, e.g., '33101') |
| entity_type | string | Filter by entity type (e.g., 'Florida Limited Liability Company', 'Florida Profit Corporation') |
| status | string | Filter by business status: 'Active' or 'Inactive' |
| filing_date_from | string | Filter by filing date from (YYYY-MM-DD, e.g., '2024-01-01') |
| filing_date_to | string | Filter by filing date to (YYYY-MM-DD, e.g., '2024-12-31') |
| page | number | Page number (default: 1) |
| limit | number | Results per page (max 100, default: 25) |
| sort | string | Sort field with - for descending: business_name, -business_name, filing_date, -filing_date |
GET/api/v1/businesses/{id}
Get detailed business information by document number including entity status, filing dates, and related filing records.
Parameters for GET /api/v1/businesses/{id}| Name | Type | Description |
|---|
| id | string | Business document number (e.g., 'P12000123456' for corporations, 'L12000123456' for LLCs) |
GET/api/v1/businesses/autocomplete
Fast autocomplete search optimized for typeahead functionality. Returns business name suggestions with minimal latency (<100ms typical response time).
Parameters for GET /api/v1/businesses/autocomplete| Name | Type | Description |
|---|
| q | string | Search query (minimum 2 characters, e.g., 'ac' for 'acme') |
| limit | number | Maximum suggestions to return (max 20, default: 10) |
Export files
GET/api/v1/exports/available
Requires an API-enabled plan (Professional or trial). List all pre-generated daily export files available for download. Files are organized by entity type, data type, format, and date. Refreshed with each daily import. Use this to discover what data is available before downloading.
Parameters for GET /api/v1/exports/available| Name | Type | Description |
|---|
| entity_type | string | Filter by entity type: corporate, federal_lien, fictitious_name, general_partnership, mark |
| data_type | string | Filter by data type: filings, events, debtors, secured |
| format | string | Filter by file format: csv, xlsx, json |
| date | string | Filter by specific date (YYYYMMDD format, e.g., 20241002) |
POST/api/v1/exports/download
Requires an API-enabled plan (Professional or trial). Turn an export file key into a download URL. Accepts the keys returned by /api/v1/exports/available and your own emailed export bundles; any other key returns 400. The URL expires, and until it does it works without an account, so treat it as a credential and do not paste it anywhere public.
Parameters for POST /api/v1/exports/download| Name | Type | Description |
|---|
| s3_key | string | A key from the /api/v1/exports/available response (e.g., 'raw/record_type=data_exports/state=FL/corporate/filings/csv/corporate_filings_20241002.csv') |
| expires_in | number | URL expiration in seconds (60-86400, default: 3600 = 1 hour) |
GET/api/v1/exports/dates
Requires an API-enabled plan (Professional or trial). Get a list of all available export dates for a specific entity type, data type, and format combination. Returns dates in YYYYMMDD format sorted newest first. Useful for discovering historical data availability.
Parameters for GET /api/v1/exports/dates| Name | Type | Description |
|---|
| entity_type | string | Entity type: corporate, federal_lien, fictitious_name, general_partnership, mark - REQUIRED |
| data_type | string | Data type: filings, events, debtors, secured - REQUIRED |
| format | string | File format: csv, xlsx, json - REQUIRED |
Combined records
GET/api/v1/combined/search
Search every record type in a single call (corporate filings, fictitious names (DBAs), federal tax liens, and general partnerships) with an event-derived status. Returns paginated, cross-referenced results. Scope: search:execute:advanced.
Parameters for GET /api/v1/combined/search| Name | Type | Description |
|---|
| q | string | Free-text search across primary name, responsible party, and document number (e.g., 'acme') |
| recordType | string | Limit to one type: all, corporate, fictitious_name, federal_tax_lien, general_partnership (default: all) |
| status | string | Event-derived status, e.g. ACTIVE, DISSOLVED |
| county | string | Filter by Florida county (e.g., 'Orange') |
| city | string | Filter by city (e.g., 'Orlando') |
| dateFrom | string | Filing date from (YYYY-MM-DD) |
| dateTo | string | Filing date to (YYYY-MM-DD) |
| hasEvents | boolean | Only records that have (true) or lack (false) events |
| page | number | Page number (default: 1) |
| limit | number | Results per page (max 100, default: 50) |
| sortBy | string | Sort field: filing_date, primary_name, status, county, total_events (default: filing_date) |
| sortOrder | string | asc or desc (default: desc) |
GET/api/v1/combined/{recordType}/{documentNumber}
Full detail for a single combined record, including its event history and derived status. Scope: search:execute:advanced.
Parameters for GET /api/v1/combined/{recordType}/{documentNumber}| Name | Type | Description |
|---|
| recordType | string | corporate, fictitious_name, federal_tax_lien, or general_partnership |
| documentNumber | string | Document / corporation / lien number (e.g., 'P12000123456') |
GET/api/v1/combined/filters
Available filter values (record types, statuses, counties, states) for the combined-records search UI. Scope: search:execute:advanced.
No parameters
GET/api/v1/combined/stats
Aggregate counts across the unified record set, by record type and event-derived status. Scope: search:execute:advanced.
No parameters
Entities
GET/api/v1/entity/{documentNumber}/timeline
A single chronological stream of every event across an entity's lifecycle (filings, corporate events, federal tax liens, and DBAs) plus related entities discovered along the way. Scope: events:read.
Parameters for GET /api/v1/entity/{documentNumber}/timeline| Name | Type | Description |
|---|
| documentNumber | string | Entity document number (e.g., 'P12000123456') |
| order | string | asc (oldest first) or desc (newest first, default) |
| categories | string | Comma-separated event categories to include |
| entityTypes | string | Comma-separated entity types to include |
| dateFrom | string | Only events on/after this date (YYYY-MM-DD) |
| dateTo | string | Only events on/before this date (YYYY-MM-DD) |
GET/api/v1/entity/search
Search corporate entities by name or document number, county, and filing type. Paginated. Scope: corporate:read.
Parameters for GET /api/v1/entity/search| Name | Type | Description |
|---|
| q | string | Name (partial match) or exact document number (min 2 chars) |
| county | string | Filter by Florida county |
| type | string | Filing type code (e.g., 'FLAL') |
| page | number | Page number (default: 1) |
| limit | number | Results per page (max 100, default: 25) |
GET/api/v1/entity/{documentNumber}
Core entity record by document number, from the corporate search materialized view. Scope: corporate:read.
Parameters for GET /api/v1/entity/{documentNumber}| Name | Type | Description |
|---|
| documentNumber | string | Entity document number (e.g., 'P12000123456') |
GET/api/v1/entity/{documentNumber}/full
One comprehensive profile composing entity, lifecycle, enrichment, officers, registered agent, annual reports, events, liens, DBA names, partnerships, trademarks, and due-diligence indicators. Scope: corporate:read.
Parameters for GET /api/v1/entity/{documentNumber}/full| Name | Type | Description |
|---|
| documentNumber | string | Entity document number (e.g., 'P12000123456') |
GET/api/v1/entity/{documentNumber}/events
Raw corporate-event history for a single entity (filings, dissolutions, reinstatements, name changes, mergers). Paginated. Scope: events:read.
Parameters for GET /api/v1/entity/{documentNumber}/events| Name | Type | Description |
|---|
| documentNumber | string | Entity document number (e.g., 'P12000123456') |
| page | number | Page number (default: 1) |
| limit | number | Results per page (max 100, default: 25) |
GET/api/v1/entity/{documentNumber}/risk-signals
Computed risk indicators for an entity (public-record due-diligence signals; not a consumer report). Scope: corporate:read.
Parameters for GET /api/v1/entity/{documentNumber}/risk-signals| Name | Type | Description |
|---|
| documentNumber | string | Entity document number (e.g., 'P12000123456') |
GET/api/v1/entity/{documentNumber}/verify
The single 'is this entity safe to transact with?' call: entity + liens + status history + risk indicators + a green/yellow/red verdict and a provenance block. Entity (business) verification, not a consumer report. Scope: corporate:read.
Parameters for GET /api/v1/entity/{documentNumber}/verify| Name | Type | Description |
|---|
| documentNumber | string | Entity document number (e.g., 'P12000123456') |
GET/api/v1/entity/{documentNumber}/pdf
Generate and download a verification PDF for an entity. Returns application/pdf. Scope: corporate:read.
Parameters for GET /api/v1/entity/{documentNumber}/pdf| Name | Type | Description |
|---|
| documentNumber | string | Entity document number (e.g., 'P12000123456') |
Relationship graphs
GET/api/v1/graph/officer/{normalizedName}
Relationship graph centred on an officer: officer → entities → co-officers. Returns { root, nodes, edges, stats } for network visualization or traversal. Every hop is bounded; stats.truncated flags a partial view. Scope: officers:read.
Parameters for GET /api/v1/graph/officer/{normalizedName}| Name | Type | Description |
|---|
| normalizedName | string | Normalized (lowercase) officer name, as returned by /api/v1/officer/search (e.g., 'john smith') |
| includeNeighbors | boolean | Expand the second hop of co-officers (default: true) |
| limit | number | First-hop cap: entities (default: 100, max 250) |
| neighborLimit | number | Second-hop cap: co-officers (default: 300, max 1000) |
GET/api/v1/graph/entity/{documentNumber}
Relationship graph centred on an entity: its officers, then the other entities those officers are tied to. Returns { root, nodes, edges, stats, provenance }. Every edge includes a sourceDocumentNumber so it can be traced to the filing that evidences it. Scope: officers:read.
Parameters for GET /api/v1/graph/entity/{documentNumber}| Name | Type | Description |
|---|
| documentNumber | string | Entity document number (e.g., 'P12000123456') |
| includeNeighbors | boolean | Expand the second hop of related entities (default: true) |
| limit | number | First-hop cap: officers (default: 100, max 250) |
| neighborLimit | number | Second-hop cap: related entities (default: 300, max 1000) |
Enrichment signals
GET/api/v1/enrichment/address-cluster/{documentNumber}
How many entities share this entity's normalized principal address, a mass-registration / shell-cluster signal. Returns the count, a massRegistration flag, and a source field ('mv' or 'live') for traceability. Scope: corporate:read.
Parameters for GET /api/v1/enrichment/address-cluster/{documentNumber}| Name | Type | Description |
|---|
| documentNumber | string | Entity document number (e.g., 'P12000123456') |
GET/api/v1/enrichment/registered-agent/{documentNumber}
How many entities this entity's registered agent represents, with an isCommercialAgent flag. Useful for distinguishing commercial registered-agent firms from individuals. Scope: corporate:read.
Parameters for GET /api/v1/enrichment/registered-agent/{documentNumber}| Name | Type | Description |
|---|
| documentNumber | string | Entity document number (e.g., 'P12000123456') |
GET/api/v1/enrichment/lien-exposure/{documentNumber}
Federal-tax-lien exposure for one entity: whether it carries liens, how many are still active, and when the most recent was filed. De-duplicated by lien. An entity-level due-diligence indicator, not a consumer report. Scope: legal:read.
Parameters for GET /api/v1/enrichment/lien-exposure/{documentNumber}| Name | Type | Description |
|---|
| documentNumber | string | Corporate document/registration number (e.g., 'L26000287451') |
Officers
GET/api/v1/officer/search
Find officers by name (returns normalized officer names plus velocity metrics, for use with the velocity and relationship-graph endpoints). Scope: officers:read.
Parameters for GET /api/v1/officer/search| Name | Type | Description |
|---|
| name | string | Officer name (partial match, min 2 chars) |
| limit | number | Maximum results (max 100, default: 25) |
GET/api/v1/officer/{normalizedName}
Officer profile plus every linked entity (per-corporation relationships). Scope: officers:read.
Parameters for GET /api/v1/officer/{normalizedName}| Name | Type | Description |
|---|
| normalizedName | string | Normalized (lowercase) officer name from /api/v1/officer/search |
| timeRange | string | Optional: day, week, month, quarter, halfyear, year, max |
GET/api/v1/officer/top
Top officers ranked by number of associated entities. Scope: officers:read.
Parameters for GET /api/v1/officer/top| Name | Type | Description |
|---|
| limit | number | Maximum results (max 500, default: 100) |
| activeOnly | boolean | Only officers with active businesses (default: false) |
| timeRange | string | Optional: day, week, month, quarter, halfyear, year, max |
GET/api/v1/officer/velocity/top
Officers with the most recent filing activity (90-day velocity), with geographic spread and entity-type metrics. Scope: officers:read.
Parameters for GET /api/v1/officer/velocity/top| Name | Type | Description |
|---|
| limit | number | Maximum results (max 100, default: 25) |
GET/api/v1/officer/velocity/search
Fuzzy-search officers and return their velocity / geographic-spread metrics. Scope: officers:read.
Parameters for GET /api/v1/officer/velocity/search| Name | Type | Description |
|---|
| name | string | Officer name (min 2 chars) |
| limit | number | Maximum results (max 100, default: 25) |
Filing alerts
GET/api/v1/alerts/filing
List the authenticated user's saved new-filing alert preferences. Scope: filings:read.
No parameters
POST/api/v1/alerts/filing
Create a new-filing alert preference. Frequency is fixed to weekly; notifications are email-only. Scope: filings:read.
Parameters for POST /api/v1/alerts/filing| Name | Type | Description |
|---|
| counties | array | Florida county names |
| entityTypes | array | Filing type codes |
| metroAreas | array | Metro area names |
| notifyEmail | string | Email address to notify |
PUT/api/v1/alerts/filing/{prefId}
Update a saved alert preference (frequency and notifyInApp are ignored, fixed to weekly, email-only). Scope: filings:read.
Parameters for PUT /api/v1/alerts/filing/{prefId}| Name | Type | Description |
|---|
| prefId | string | Alert preference ID |
DELETE/api/v1/alerts/filing/{prefId}
Delete a saved alert preference. Scope: filings:read.
Parameters for DELETE /api/v1/alerts/filing/{prefId}| Name | Type | Description |
|---|
| prefId | string | Alert preference ID |
API keys
GET/api/v1/api-keys/user
List API keys for the authenticated user. Requires a dashboard session. Key management is deliberately out of reach of API keys, so a leaked key cannot mint more keys. Key hashes are never returned.
No parameters
GET/api/v1/api-keys/permissions/available
The scopes your plan can grant to a new API key, and the selection the create form starts from. That starting selection is your full plan entitlement, so narrow it to the scopes the key actually needs. Requires a dashboard session.
No parameters
POST/api/v1/api-keys
Create a new API key. Requested scopes are capped to your plan entitlement; when none are supplied the full plan set is granted, so name the scopes you need. The plaintext key is returned once and never again. Requires a dashboard session.
Parameters for POST /api/v1/api-keys| Name | Type | Description |
|---|
| name | string | Key name (letters, numbers, spaces, hyphens, underscores, periods, parentheses) |
| permissions | array | Requested scopes (capped to your plan; defaults to the full plan set if omitted) |
| expiresAt | string | Optional ISO-8601 expiry |
| rateLimitPerMinute | number | Per-minute cap for this key (default: 100). Applies under your plan limit, so it can narrow this key but not raise the plan. |
| rateLimitPerHour | number | Per-hour cap for this key (default: 1000). Applies under your plan limit. |
| rateLimitPerDay | number | Per-day cap for this key (default: 10000). Applies under your plan limit. |
| allowedOrigins | array | Optional browser origins, exact host or a subdomain of one (max 10). When set, a request that sends no Origin or Referer is refused. |
DELETE/api/v1/api-keys/{id}
Revoke one of your API keys by ID. Requires a dashboard session; the key must belong to you.
Parameters for DELETE /api/v1/api-keys/{id}| Name | Type | Description |
|---|
| id | string | API key ID |