County-direct property data, one call away.
Owner, mailing, valuation and parcel records for 2,500+ US counties — current, with full lineage. By API or bulk file.
- 2,500+ counties
- county-direct
- source + pull date on every record
GET https://api.tracts.ai/v1/parcels
?county=12057&apn=U-29-28-19-3CF-000001
Authorization: Bearer tk_live_••••••••Every field, documented.
One consistent schema across all 2,500+ counties. Two lineage fields — _source and _pulled_at — stamped on every record.
apnstringAssessor Parcel Number — county-assigned unique parcel ID
owner_namestringRecorded owner name from county assessor or tax roll
mailing_addressstringOwner mailing address — may differ from situs address
situs_addressstringPhysical property address from county records
land_usestringCounty land-use classification (SFR, MFR, commercial, vacant…)
year_builtintegerYear of construction per county assessor
living_area_sqftintegerHeated/living area in square feet
assessed_valueintegerCounty assessed value in USD
market_valueintegerCounty market/just value in USD
last_sale_datedateMost recent recorded deed transfer date
last_sale_priceintegerRecorded sale price in USD
latitudefloatParcel centroid latitude (WGS 84)
longitudefloatParcel centroid longitude (WGS 84)
absentee_ownerbooleanMailing address differs from situs address
out_of_state_ownerbooleanOwner mailing state differs from property state
_sourcestringOriginating county authority name
⌖ lineage field
_pulled_atdateDate this record was last pulled from the county
⌖ lineage field
2,500+ counties and growing.
- 2,500+US counties
- and expanding continuously
- 67 / 67Florida counties
- complete statewide coverage
- ~10.8MFlorida parcels
- owner · mailing · valuation
Florida is complete. Other states are added continuously — coverage list available on request.
Data, not leads.
Source, not a reseller.
Aggregators sell you a stale tape of unknown vintage with no paper trail. tracts stamps every record with the county it came from and the exact date we pulled it. You know what you have.
County-direct, not a reseller
Records come from county assessors, GIS offices, and tax rolls — not from aggregators or resold tapes. The originating authority is stamped on every row.
Full lineage on every record
Every record carries _source and _pulled_at so you know the originating authority and exactly how fresh the data is. No mystery about provenance.
Current data, not stale tape
We re-pull counties on a rolling schedule — not a once-a-year annual tape. Coverage dates are visible and honest per county.
API + bulk — your workflow
Query up to 1,000 records per API call, or request a full county bulk file. CSV or JSON. No proprietary format or platform lock-in.
# Fetch a county batch
curl \
-X GET "https://api.tracts.ai/v1/parcels
?county=12057&limit=100" \
-H "Authorization: Bearer $TRACTS_API_KEY" \
-H "Accept: application/json"
# Response headers
X-Total-Count: 891432
X-Rate-Limit-Remaining: 9900REST API with clean ergonomics.
Simple auth
Bearer token in the Authorization header. API keys issued per account with configurable scope.
Up to 1,000 records per request
Paginate with limit and offset. X-Total-Count tells you the full depth of any county.
JSON or CSV
Accept: application/json for streaming responses; request bulk CSV files for county-wide exports.
Bulk files on request
Need a full county? Request a bulk export — delivered as gzipped CSV or newline-delimited JSON.
Get the data.
Tell us your use case and we'll set you up with a key and pricing.
Get API access
Tell us your use case and we'll set you up with a key and pricing.
Data, not leads. No spam — we only reach out about your request.