Florida Property API
Endpoints

Tax-Delinquency Counts

Grouped delinquency record counts by status, optionally scoped to a county and/or tax year.

GET /api/v1/tax-delinquencies/counts

Return grouped record counts by delinquency status, optionally scoped to a county slug and/or tax year. Useful for dashboards and for sizing a paginated search sweep before you run it.

Authentication

All endpoints share the base URL https://api.floridapropertyapi.com/v1. Send your API key in the X-API-Key header.

curl -H "X-API-Key: fpapi_test_..." \
  "https://api.floridapropertyapi.com/v1/tax-delinquencies/counts?county=polk&tax_year=2023"
// JavaScript (fetch)
const res = await fetch(
  "https://api.floridapropertyapi.com/v1/tax-delinquencies/counts?county=polk&tax_year=2023",
  { 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/tax-delinquencies/counts",
    params={"county": "polk", "tax_year": 2023},
    headers={"X-API-Key": "fpapi_test_..."},
)
res.raise_for_status()
print(res.json()["data"])

Query Parameters

NameTypeRequiredDefaultDescription
countystringnoCounty slug to scope the counts.
tax_yearintegernoTax year to scope the counts.

Response (200)

Object envelope { data, meta }. data echoes the applied scope (county, tax_yearnull when not set) and an array of { status, count } buckets ordered by descending count.

{
  "data": {
    "county": "polk",
    "tax_year": 2023,
    "counts": [
      { "status": "certificate_sold", "count": 18452 },
      { "status": "delinquent", "count": 7310 },
      { "status": "redeemed", "count": 4129 },
      { "status": "unknown", "count": 86 }
    ]
  },
  "meta": { "request_id": "req_1234567890abcdef12345", "dataset_status": "live" }
}

Rows with no recorded status are bucketed under unknown.

Error Responses

StatusCodeCause
401unauthorizedMissing or invalid API key.
429rate_limitedRate limit exceeded.
500internal_errorServer error — retry with backoff.

Data Coverage

Counts only reflect counties whose delinquency feeds are already loaded — tax-delinquency coverage is rolling out county by county. A county with no feed yet returns empty counts. See Tax-Delinquency Sources for per-county coverage.

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.

On this page