Florida Property API
Endpoints

Search Parcels

Search Florida property parcels by owner name or site address (fuzzy), county, DOR use code, city/zip, value ranges, last-sale filters, and PostGIS spatial predicates.

GET /api/v1/parcels/search

Search Florida statewide parcels (property-appraiser / FDOR assessment-roll data) by owner name or site address (fuzzy via pg_trgm), county, DOR use code, city/zip, just/assessed-value ranges, last-sale date/price ranges, and spatial predicates (near + radius_m, bbox, point-in-polygon). county and use_code accept repeated keys or CSV. Optional facet counts are returned when facets is set.

Authentication

Send your API key in the X-API-Key header.

curl -H "X-API-Key: fpapi_test_..." \
  "https://api.floridapropertyapi.com/v1/parcels/search?county=hillsborough&query=BAYSHORE&limit=10"

Query Parameters

NameTypeRequiredDefaultDescription
querystring (1-200 chars)noOwner name or site address (case-insensitive fuzzy match).
countystring | string[]noCounty slug(s), e.g. hillsborough. Repeatable or CSV.
use_codestring | string[]noProperty use code(s). Repeatable or CSV.
dor_use_codestring | string[]noFDOR (DOR) use code(s), e.g. 0100. Repeatable or CSV.
citystring (≤80 chars)noSite city filter.
zipstring (≤10 chars)noSite ZIP filter.
just_value_minnumbernoMinimum just (market) value.
just_value_maxnumbernoMaximum just (market) value.
assessed_minnumbernoMinimum assessed value.
assessed_maxnumbernoMaximum assessed value.
sale_afterdate (YYYY-MM-DD)noOnly parcels whose last sale is on/after this date.
sale_beforedate (YYYY-MM-DD)noOnly parcels whose last sale is on/before this date.
sale_price_minnumbernoMinimum last-sale price.
sale_price_maxnumbernoMaximum last-sale price.
sortstringnoSort key (e.g. just_value_desc, last_sale_date_desc).
facetsstring[]noFacet fields to count (e.g. county, dor_use_code). Adds facets block.
nearstring "lat,lng"noCenter point for radius search. Pair with radius_m.
radius_mnumber (positive)noRadius in meters around near.
bboxstring "minLng,minLat,maxLng,maxLat"noBounding box filter.
pointstring "lng,lat"noPoint-in-polygon: parcels whose geometry contains this point.
limitinteger 1-500no25Page size.
offsetinteger ≥ 0no0Pagination offset.

Response (200)

List envelope { data: ParcelHit[], pagination, meta }. geometry is null in search results (the GeoJSON polygon is only hydrated on the parcel detail read). When facets is set, a top-level facets object is appended.

{
  "data": [
    {
      "parcel_id": "192829-5040-001000-0010",
      "county_slug": "hillsborough",
      "county_name": "Hillsborough",
      "owner_name": "SMITH JOHN A & MARY B",
      "site_address_full": "123 BAYSHORE BLVD",
      "site_city": "TAMPA",
      "site_state": "FL",
      "site_zip": "33606",
      "dor_use_code": "0100",
      "property_use_code": "01",
      "land_use_description": "SINGLE FAMILY",
      "just_value": 485000,
      "assessed_value": 412300,
      "taxable_value": 387300,
      "year_built": 1998,
      "last_sale_date": "2021-04-15",
      "last_sale_price": 460000,
      "centroid_lat": 27.9221,
      "centroid_lng": -82.4839,
      "geometry": null
    }
  ],
  "pagination": { "limit": 25, "offset": 0, "total": 1, "has_more": false },
  "meta": { "request_id": "req_1234567890abcdef12345", "dataset_status": "live" }
}

Error Responses

StatusCodeCause
400bad_requestInvalid query parameters.
401unauthorizedMissing or invalid API key.
429rate_limitedQuota or rate limit exceeded.
500internal_errorServer error — retry with backoff.

Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers.

On this page