BizFile API
Business Entity Lookup API
The BizFile API provides programmatic access to US business entity filings aggregated from Secretary of State offices. Search, verify, and retrieve business registration data through a single, normalized REST API.
Authentication
All API requests require an API key sent in the Authorization header using the Bearer scheme.
curl https://api.bizfileapi.com/api/v1/search?state=FL&name=acme \ -H "Authorization: Bearer bfa_live_sk_abc123..."
const res = await fetch(
"https://api.bizfileapi.com/api/v1/search?state=FL&name=acme",
{
headers: {
Authorization: "Bearer bfa_live_sk_abc123..."
}
}
);
const data = await res.json();
import requests
resp = requests.get(
"https://api.bizfileapi.com/api/v1/search",
params={"state": "FL", "name": "acme"},
headers={"Authorization": "Bearer bfa_live_sk_abc123..."}
)
data = resp.json()
Base URL
All endpoints are relative to the following base URL:
Rate Limits
Rate limits vary by plan. When you exceed a limit, the API returns 429 Too Many Requests.
| Plan | Requests / min | Requests / day |
|---|---|---|
| Free | 10 | 100 |
| Starter | 60 | 1,000 |
| Growth | 120 | 10,000 |
| Scale | 300 | 50,000 |
Rate Limit Headers
Every response includes the following headers:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the current window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Search Entities
Search for business entities by state and name. Returns paginated results.
Parameters
FL, WA).active, inactive, or dissolved.llc, corporation, lp, nonprofit, gp, trust.1.25.Example Request
curl "https://api.bizfileapi.com/api/v1/search?state=FL&name=acme&status=active" \ -H "Authorization: Bearer bfa_live_sk_abc123..."
const params = new URLSearchParams({
state: "FL",
name: "acme",
status: "active"
});
const res = await fetch(
`https://api.bizfileapi.com/api/v1/search?${params}`,
{
headers: {
Authorization: "Bearer bfa_live_sk_abc123..."
}
}
);
const data = await res.json();
import requests
resp = requests.get(
"https://api.bizfileapi.com/api/v1/search",
params={
"state": "FL",
"name": "acme",
"status": "active"
},
headers={"Authorization": "Bearer bfa_live_sk_abc123..."}
)
data = resp.json()
Example Response
{
"data": [
{
"id": "fl_L21000483271",
"name": "ACME SOLUTIONS LLC",
"state": "FL",
"type": "llc",
"status": "active",
"filing_date": "2021-03-15",
"document_number": "L21000483271",
"principal_address": {
"street": "100 SE 2nd St, Suite 2000",
"city": "Miami",
"state": "FL",
"zip": "33131"
}
},
{
"id": "fl_L19000227845",
"name": "ACME DEVELOPMENT GROUP LLC",
"state": "FL",
"type": "llc",
"status": "active",
"filing_date": "2019-08-22",
"document_number": "L19000227845",
"principal_address": {
"street": "401 E Las Olas Blvd, Suite 1400",
"city": "Fort Lauderdale",
"state": "FL",
"zip": "33301"
}
}
],
"pagination": {
"page": 1,
"per_page": 25,
"total": 2,
"total_pages": 1
}
}
Entity Detail
Retrieve full details for a single entity, including registered agent and officer information.
Parameters
fl_L21000483271).Example Request
curl "https://api.bizfileapi.com/api/v1/entity/fl_L21000483271" \ -H "Authorization: Bearer bfa_live_sk_abc123..."
const res = await fetch(
"https://api.bizfileapi.com/api/v1/entity/fl_L21000483271",
{
headers: {
Authorization: "Bearer bfa_live_sk_abc123..."
}
}
);
const data = await res.json();
import requests
resp = requests.get(
"https://api.bizfileapi.com/api/v1/entity/fl_L21000483271",
headers={"Authorization": "Bearer bfa_live_sk_abc123..."}
)
data = resp.json()
Example Response
{
"data": {
"id": "fl_L21000483271",
"name": "ACME SOLUTIONS LLC",
"state": "FL",
"type": "llc",
"status": "active",
"filing_date": "2021-03-15",
"document_number": "L21000483271",
"last_annual_report": "2025-04-10",
"principal_address": {
"street": "100 SE 2nd St, Suite 2000",
"city": "Miami",
"state": "FL",
"zip": "33131"
},
"mailing_address": {
"street": "100 SE 2nd St, Suite 2000",
"city": "Miami",
"state": "FL",
"zip": "33131"
},
"registered_agent": {
"name": "REGISTERED AGENTS INC.",
"address": {
"street": "1200 Brickell Ave, Suite 1950",
"city": "Miami",
"state": "FL",
"zip": "33131"
}
},
"officers": [
{
"name": "Jane Smith",
"title": "Managing Member",
"address": {
"street": "100 SE 2nd St, Suite 2000",
"city": "Miami",
"state": "FL",
"zip": "33131"
}
},
{
"name": "John Doe",
"title": "Authorized Member",
"address": {
"street": "100 SE 2nd St, Suite 2000",
"city": "Miami",
"state": "FL",
"zip": "33131"
}
}
]
}
}
Bulk Search
Submit up to 100 search queries in a single request. Each query runs independently and returns its own result set.
Request Body
state and name. Max 100 queries per request.Example Request
curl -X POST "https://api.bizfileapi.com/api/v1/bulk" \
-H "Authorization: Bearer bfa_live_sk_abc123..." \
-H "Content-Type: application/json" \
-d '{
"queries": [
{ "state": "FL", "name": "acme" },
{ "state": "WA", "name": "cascade ventures" }
]
}'
const res = await fetch(
"https://api.bizfileapi.com/api/v1/bulk",
{
method: "POST",
headers: {
Authorization: "Bearer bfa_live_sk_abc123...",
"Content-Type": "application/json"
},
body: JSON.stringify({
queries: [
{ state: "FL", name: "acme" },
{ state: "WA", name: "cascade ventures" }
]
})
}
);
const data = await res.json();
import requests
resp = requests.post(
"https://api.bizfileapi.com/api/v1/bulk",
headers={
"Authorization": "Bearer bfa_live_sk_abc123...",
"Content-Type": "application/json"
},
json={
"queries": [
{"state": "FL", "name": "acme"},
{"state": "WA", "name": "cascade ventures"}
]
}
)
data = resp.json()
Example Response
{
"results": [
{
"query": { "state": "FL", "name": "acme" },
"data": [ ... ],
"total": 47
},
{
"query": { "state": "WA", "name": "cascade ventures" },
"data": [ ... ],
"total": 12
}
]
}
Data Coverage
The following states are currently indexed. Coverage is expanding regularly.
| State | Entities Indexed | Last Updated |
|---|---|---|
| Florida (FL) | 2,500,000+ | Daily |
| Colorado (CO) | 900,000+ | Daily |
| Washington (WA) | 800,000+ | Daily |
| Wyoming (WY) | 200,000+ | Daily |
Entity Types
The type field on entity records will be one of the following values:
| Value | Description |
|---|---|
llc | Limited Liability Company |
corporation | Corporation (C-Corp or S-Corp) |
lp | Limited Partnership |
nonprofit | Nonprofit Corporation |
gp | General Partnership |
trust | Business Trust |
Entity Statuses
The status field indicates the current standing of the entity with the state.
| Value | Description |
|---|---|
active | Entity is in good standing and currently registered |
inactive | Entity exists but is not in good standing (e.g. missed annual report) |
dissolved | Entity has been dissolved, revoked, or voluntarily withdrawn |
Error Codes
The API uses standard HTTP status codes. Error responses include a JSON body with a message field.
{
"error": {
"code": 401,
"message": "Invalid or missing API key."
}
}
| Code | Meaning | Common Cause |
|---|---|---|
| 400 | Bad Request | Missing required parameter or invalid value |
| 401 | Unauthorized | Missing or invalid API key |
| 403 | Forbidden | API key does not have access to the requested resource |
| 404 | Not Found | Entity ID does not exist |
| 429 | Too Many Requests | Rate limit exceeded — check X-RateLimit-Reset header |
| 500 | Internal Server Error | Something went wrong on our end — retry or contact support |
Pricing
Choose a plan that fits your usage. All plans include access to every endpoint and state.
Free
No overage
Community support
Starter
$0.05 per extra request
Email support
Growth
$0.03 per extra request
Priority support
Scale
$0.015 per extra request
Priority support
Need higher volume? Contact us for a custom Enterprise plan with dedicated infrastructure and SLA guarantees.