Tax Delinquencies by Parcel
All delinquent-tax / tax-certificate records for a single county parcel id. Returns an empty list (not 404) when the parcel is current on taxes.
GET /api/v1/tax-delinquencies/by-parcel
Return every delinquent-tax / tax-certificate record tied to a single county parcel id. This endpoint never 404s or 500s on a coverage gap: it returns an empty data array when the county has no delinquency feed, or when the parcel is current on its taxes.
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/by-parcel?county=polk&parcel_id=262813-000000-012345"
// JavaScript (fetch)
const res = await fetch(
"https://api.floridapropertyapi.com/v1/tax-delinquencies/by-parcel?county=polk&parcel_id=262813-000000-012345",
{ 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/by-parcel",
params={"county": "polk", "parcel_id": "262813-000000-012345"},
headers={"X-API-Key": "fpapi_test_..."},
)
res.raise_for_status()
print(res.json()["data"])
Query Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
parcel_id | string | yes | — | County-assigned parcel id. |
county | string | no | — | County slug to scope the lookup (recommended). |
limit | integer | no | 25 | Page size. |
offset | integer | no | 0 | Pagination offset. |
Response (200)
List envelope { data: DelinquencyHit[], pagination, meta } — same row shape as Search Tax Delinquencies.
{
"data": [
{
"id": "txd_5b1e7c44",
"county_slug": "polk",
"county_parcel_id": "262813-000000-012345",
"tax_year": 2023,
"status": "certificate_sold",
"delinquent_amount": 3284.17,
"total_due": 3512.44,
"certificate_number": "2024-04821",
"certificate_sale_date": "2024-06-01",
"owner_name": "DOE JANE",
"site_address_full": "456 ORANGE AVE, LAKELAND FL 33801",
"source_vendor": "LienHub"
}
],
"pagination": { "limit": 25, "offset": 0, "total": 1, "has_more": false },
"meta": { "request_id": "req_1234567890abcdef12345", "dataset_status": "live" }
}
A current parcel (or an uncovered county) returns { "data": [], "pagination": { "limit": 25, "offset": 0, "total": 0, "has_more": false }, "meta": { ... } }.
Error Responses
| Status | Code | Cause |
|---|---|---|
400 | bad_request | Missing parcel_id. |
401 | unauthorized | Missing or invalid API key. |
429 | rate_limited | Rate limit exceeded. |
500 | internal_error | Server error — retry with backoff. |
Data Coverage
Tax-delinquency coverage is rolling out county by county. This endpoint returns an empty data array (never a 404) when the county has no delinquency feed loaded yet or the parcel is current on its taxes. 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.