tracts.ai API
API Reference

Parcels

Retrieve parcel records for a county with full data lineage.

GET /parcels

Returns parcel records for the specified county. Each record includes public-records property fields and data-lineage metadata.

Request

curl -G https://api.tracts.ai/parcels \
  --data-urlencode 'county=Hillsborough, FL' \
  --data-urlencode 'limit=100' \
  -H 'x-api-key: YOUR_API_KEY'

Query parameters

ParameterTypeRequiredDescription
countystringYesCounty name in "Name, ST" format — e.g. "Hillsborough, FL". Must match a configured county from the /counties endpoint.
limitintegerNoNumber of records to return. Range: 1–1000. Default: 100.

Response

{
  "data": [
    {
      "provenance": {
        "countyFips": "12057",
        "countyName": "Hillsborough County",
        "state": "FL",
        "source": "arcgis",
        "sourceUrl": "https://services.arcgis.com/.../FeatureServer/0",
        "fetchedAt": "2026-06-30T00:00:00.000Z"
      },
      "apn": "U-01-29-18-ZZZ-000000-00000.0",
      "altId": null,
      "ownerName": "SMITH JOHN A",
      "ownerName2": null,
      "mailingAddress": "456 Out-of-State Rd",
      "mailingCity": "Atlanta",
      "mailingState": "GA",
      "mailingZip": "30301",
      "situsAddress": "123 Main St",
      "situsCity": "Tampa",
      "situsState": "FL",
      "situsZip": "33602",
      "latitude": 27.9506,
      "longitude": -82.4572,
      "landUse": "SINGLE FAMILY",
      "yearBuilt": 1985,
      "livingAreaSqft": 1820,
      "lotSizeAcres": 0.16,
      "bedrooms": null,
      "bathrooms": null,
      "assessedValue": 485000,
      "marketValue": 520000,
      "landValue": 120000,
      "improvementValue": 365000,
      "taxYear": 2025,
      "lastSaleDate": "2020-05-14",
      "lastSalePrice": 410000,
      "absenteeOwner": true,
      "raw": {}
    }
  ],
  "meta": {
    "county": "Hillsborough County",
    "state": "FL",
    "source": "arcgis",
    "sourceUrl": "https://services.arcgis.com/.../FeatureServer/0",
    "total": null,
    "returned": 1,
    "pulledAt": "2026-06-30T00:00:00.000Z"
  }
}

Parcel fields

FieldTypeDescription
provenanceobjectSource lineage for this record
provenance.countyFipsstring5-digit county FIPS
provenance.countyNamestringCounty name
provenance.statestringTwo-letter state code
provenance.sourcestringSource adapter, e.g. arcgis, ckan, or socrata
provenance.sourceUrlstringURL of the originating public data portal or dataset
provenance.fetchedAtstringISO 8601 UTC timestamp for this record fetch
apnstring | nullCounty-assigned parcel identification number
altIdstring | nullAlternate parcel or property identifier
ownerNamestring | nullAssessed owner name as recorded by the county
ownerName2string | nullSecondary owner name when published
mailingAddressstring | nullOwner mailing street address
mailingCitystring | nullOwner mailing city
mailingStatestring | nullOwner mailing state
mailingZipstring | nullOwner mailing ZIP
situsAddressstring | nullProperty street address
situsCitystring | nullProperty city
situsStatestring | nullProperty state
situsZipstring | nullProperty ZIP
latitudenumber | nullLatitude when published or derivable
longitudenumber | nullLongitude when published or derivable
landUsestring | nullLand use classification from the assessor
yearBuiltinteger | nullYear the primary structure was built
livingAreaSqftnumber | nullLiving area in square feet
lotSizeAcresnumber | nullLot size in acres
bedroomsinteger | nullBedroom count when published
bathroomsnumber | nullBathroom count when published
assessedValuenumber | nullTotal assessed value in USD
marketValuenumber | nullMarket value in USD when published
landValuenumber | nullLand-only assessed value in USD
improvementValuenumber | nullImprovement assessed value in USD
taxYearinteger | nullAssessor tax year
lastSaleDatestring | nullLast sale date as YYYY-MM-DD when published
lastSalePricenumber | nullLast sale price in USD when published
absenteeOwnerboolean | nullDerived owner-occupancy signal when enough address data exists
rawobjectOriginal source attributes, preserved without normalization

Meta fields

FieldTypeDescription
countystringCounty name
statestringTwo-letter state code
sourcestringName of the data source for this county
sourceUrlstringURL of the originating portal
totalinteger | nullTotal parcel count. null on normal API calls because count queries are skipped for speed.
returnedintegerNumber of records in this response
pulledAtstringISO 8601 UTC timestamp of this API pull

Notes on null fields

Fields are null when the county assessor does not publish that attribute, or when it could not be parsed from the source. Field availability varies by county. The provenance block is always present.

Error responses

StatusCodeMeaning
400missing_countyThe county parameter was not provided
400invalid_countyThe county does not match any known county
400invalid_limitlimit is outside the 1–1000 range
401missing_keyNo API key provided
403invalid_keyKey is invalid, expired, or revoked
404no_sourceNo parcel data source is configured for the county
429rate_limit_exceededHourly rate limit exceeded
429monthly_quota_exceededMonthly plan quota exceeded
502upstream_errorCounty source failed or timed out
{
  "error": {
    "code": "invalid_county",
    "message": "Unknown county: \"Broward, FL\". Use \"Name, ST\" or a 5-digit FIPS."
  }
}

On this page