Counties
List all Florida counties covered by the dataset, or fetch one county by slug — with property-appraiser / tax-collector / certificate-sale URLs and parcel counts.
GET /api/v1/counties
List all 67 Florida counties carried by the dataset, alphabetical by name. Each row exposes the county slug and display name plus modeled coverage metadata: FIPS code, FDOR county number, the official property-appraiser / tax-collector / tax-certificate-sale URLs, the certificate-sale vendor, parcel count, and last import time.
Authentication
curl -H "X-API-Key: fpapi_test_..." \
"https://api.floridapropertyapi.com/v1/counties"
Fetch a single county by its slug:
curl -H "X-API-Key: fpapi_test_..." \
"https://api.floridapropertyapi.com/v1/counties/hillsborough"
// JavaScript (fetch)
const res = await fetch(
"https://api.floridapropertyapi.com/v1/counties",
{ headers: { "X-API-Key": "fpapi_test_..." } },
);
const body = await res.json();
console.log(body.data);
# Python (requests)
import requests
res = requests.get(
"https://api.floridapropertyapi.com/v1/counties",
headers={"X-API-Key": "fpapi_test_..."},
)
res.raise_for_status()
print(res.json()["data"])
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
county | path | string | yes | County slug — /counties/{county} only. |
GET /api/v1/counties takes no parameters.
Response (200)
Object envelope { data, meta }. data is the array of county rows for the list route, or a single county object for /counties/{county}.
{
"data": [
{
"id": "ckhills0001",
"countyName": "Hillsborough",
"countySlug": "hillsborough",
"countyFips": "12057",
"dorCountyNumber": "29",
"propertyAppraiserUrl": "https://www.hcpafl.org/",
"taxCollectorUrl": "https://hillstax.org/",
"taxCertificateSaleUrl": "https://hillsborough.realtaxdeed.com/",
"taxCertificateVendor": "RealAuction",
"parcelCount": 547213,
"lastImportAt": "2026-06-20T05:00:00.000Z",
"createdAt": "2026-01-12T00:00:00.000Z",
"updatedAt": "2026-06-20T05:00:00.000Z"
}
],
"meta": { "request_id": "req_1234567890abcdef12345", "dataset_status": "live" }
}
Error Responses
| Status | Code | Cause |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
404 | not_found | No county with that slug (/counties/{county}). |
429 | rate_limited | Rate limit exceeded. |
500 | internal_error | Server error — retry with backoff. |
Data Coverage
All 67 Florida counties are present. Parcel-roll coverage is live statewide; the parcelCount and lastImportAt fields reflect each county's loaded parcels. Sales history is importing and tax-delinquency coverage is rolling out county by county.
Rate Limits
Every /api/v1/* response (including 429) carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers, plus the IETF RateLimit structured field. See Rate Limits for per-tier quotas and backoff guidance.