# Tennessee Property Records

> Parcels, current owners and ownership history for Tennessee counties, searchable by address or owner name, past or present. 2,790,853 parcels and 5,078,571 ownership records across 90 counties. Public, no authentication.

## Connect

- MCP (Streamable HTTP): https://tnpropertysearch.app/mcp — `claude mcp add --transport http tn-property https://tnpropertysearch.app/mcp`
- REST: `GET https://tnpropertysearch.app/api/v1/<tool>?param=value` or `POST` the same parameters as a JSON object
- Tool list with JSON schemas: https://tnpropertysearch.app/api/v1/tools
- OpenAPI 3.1: https://tnpropertysearch.app/openapi.json
- Bulk downloads (CSV, gzip, per county): https://tnpropertysearch.app/api/v1/export?county=<name>&dataset=parcels|ownership, or see dataset_info.exports
- Human-readable docs: https://tnpropertysearch.app/agents
- Map app for people (deep links: `?pin=`, `?q=`, `?owner=`): https://tnpropertysearch.app/
- One page per parcel: https://tnpropertysearch.app/property/<pin> (HTML; markdown with `Accept: text/markdown` or `?format=md`), and per county: https://tnpropertysearch.app/counties

## How to use it

Tennessee property records: parcels, current owners and ownership history. Call dataset_info first to see coverage and which counties have former-owner history. Typical flows: address -> search_properties -> get_property; person or company -> search_owners -> owner_portfolio; point on a map -> property_at; market questions -> property_stats or search_ownership_records; what changed lately -> recent_changes. If a record's last_checked matters, refresh_property re-reads it from the county source. Each property includes app_url, a link that opens it in the map app for the user.

- Davidson addresses read '1313 GALLATIN AVE'; most state-sourced counties read 'GALLATIN AVE 1313'. Address matching ignores word order, so '1313 gallatin' finds both.
- Every query word must start a word in the address or name. Words that appear in thousands of records (SMITH, MAIN, LLC, RD) only match when paired with another such word or with a rarer word; add a house number, street or second name.
- Owner names are stored as recorded, usually 'LAST FIRST' ('SMITH JOHN A'); trusts and LLCs as written.
- To find everything a person or company has owned, call search_owners, then owner_portfolio with the owner_key.
- Only Davidson (full) and Williamson (partial) have former owners; Hamilton has sales on the parcel record.
- search_properties takes text (q, address or owner) and/or a location (near + radius_m up to 2 km, or a small bbox). For county-wide filtering by value, acreage, land use or zoning, download the county file listed in dataset_info.exports.
- search_ownership_records over a county and dates reads up to 3 calendar months per call; page through longer periods.
- Hamilton's source records a few parcels' acreage in square feet, so prefer median over totals there.
- Every parcel carries last_checked. A Cloudflare cron re-checks Davidson daily and every other county every few days; refresh_property re-reads a parcel live.
- recent_changes lists owner changes, new parcels and parcels the county stopped listing, as the update jobs find them.

## Ownership history by county

- **full**: Complete chain of title from Metro Nashville's Owner History service, with dates, prices and deed links. Counties: Davidson.
- **partial**: Current owner from the county layer, plus owners recorded in the county's 2022 archive. Counties: Williamson.
- **sales**: Current owner, plus the parcel's sale history (dates, prices, deed book/page) in the parcel's `sales` field. Counties: Hamilton.
- **current**: Current owner only, from the state Comptroller's parcel service. 87 counties.
- Not loaded: Knox, Shelby, Rutherford, Chester, Hickman.

## Tools

### dataset_info

Start here. Describes what data exists: totals, every loaded county with parcel and ownership-record counts, how much ownership history each county has, which fields each county populates, data sources, bulk download files, query tips and usage terms.

  (no parameters)

Example: `GET https://tnpropertysearch.app/api/v1/dataset_info`

Input schema:

```json
{"type":"object","properties":{},"required":[],"additionalProperties":false}
```

### search_properties

Find parcels by address words, current owner name, or location (near a point or inside a small box), optionally limited to a county, city or ZIP. Returns pin, address, owner, county, location and a link to the parcel in the map app. Paginate with next_cursor.

  - `q` (string): Free text matched against the address, or the current owner name.
  - `address` (string): Property address words, any order, e.g. '1313 gallatin'.
  - `owner` (string): Current owner name words, e.g. 'bailey trust'. For former owners use search_owners.
  - `county` (string): County name, or several comma-separated, e.g. 'Davidson,Williamson'.
  - `city` (string): City name (populated mainly in Davidson).
  - `zip` (string): ZIP code(s), comma-separated.
  - `near` (string): Center point 'lat,lon', e.g. '36.1627,-86.7816'.
  - `radius_m` (number): Radius in meters around `near` (default 500, max 2000).
  - `bbox` (string): Bounding box 'west,south,east,north' in degrees (under about 5 km across).
  - `limit` (integer): Results per page, 1–200 (default varies by tool).
  - `cursor` (string): next_cursor from the previous page, to fetch the next page.
  - `sort` (string): relevance (default with text), distance (default with near), address.

Example: `GET https://tnpropertysearch.app/api/v1/search_properties?address=1313%20gallatin&county=Davidson`

Input schema:

```json
{"type":"object","properties":{"q":{"type":"string","description":"Free text matched against the address, or the current owner name."},"address":{"type":"string","description":"Property address words, any order, e.g. '1313 gallatin'."},"owner":{"type":"string","description":"Current owner name words, e.g. 'bailey trust'. For former owners use search_owners."},"county":{"type":"string","description":"County name, or several comma-separated, e.g. 'Davidson,Williamson'."},"city":{"type":"string","description":"City name (populated mainly in Davidson)."},"zip":{"type":"string","description":"ZIP code(s), comma-separated."},"near":{"type":"string","description":"Center point 'lat,lon', e.g. '36.1627,-86.7816'."},"radius_m":{"type":"number","description":"Radius in meters around `near` (default 500, max 2000)."},"bbox":{"type":"string","description":"Bounding box 'west,south,east,north' in degrees (under about 5 km across)."},"limit":{"type":"integer","description":"Results per page, 1–200 (default varies by tool)."},"cursor":{"type":"string","description":"next_cursor from the previous page, to fetch the next page."},"sort":{"type":"string","description":"relevance (default with text), distance (default with near), address.","enum":["relevance","address","distance"]}},"required":[],"additionalProperties":false}
```

### get_property

Everything known about one parcel: full parcel record, every ownership record (current and former, with acquisition dates, prices and deed references/links where the county provides them), sale history for Hamilton, and the county Register of Deeds website. Look up by pin, or by apn plus county.

  - `pin` (string): Parcel id as returned by other tools.
  - `apn` (string): Assessor parcel number.
  - `county` (string): County, to disambiguate apn.
  - `include_geometry` (boolean): Include the boundary rings ([lon,lat] pairs).

Example: `GET https://tnpropertysearch.app/api/v1/get_property?pin=78475`

Input schema:

```json
{"type":"object","properties":{"pin":{"type":"string","description":"Parcel id as returned by other tools."},"apn":{"type":"string","description":"Assessor parcel number."},"county":{"type":"string","description":"County, to disambiguate apn."},"include_geometry":{"type":"boolean","description":"Include the boundary rings ([lon,lat] pairs)."}},"required":[],"additionalProperties":false}
```

### property_at

Which parcel contains a latitude/longitude. Uses the actual parcel boundary, not the nearest centroid.

  - `lat` (number, required): Latitude.
  - `lon` (number, required): Longitude.

Example: `GET https://tnpropertysearch.app/api/v1/property_at?lat=36.1933&lon=-86.7435`

Input schema:

```json
{"type":"object","properties":{"lat":{"type":"number","description":"Latitude."},"lon":{"type":"number","description":"Longitude."}},"required":["lat","lon"],"additionalProperties":false}
```

### search_owners

Find people and companies by name across current AND former ownership records. Each result has an owner_key, how many properties they have ever owned and own now, their counties and first/last acquisition dates. Pass an owner_key to owner_portfolio for the full list.

  - `name` (string, required): Name words in any order, e.g. 'john smith' or 'ryman hospitality'.
  - `county` (string): Limit to county(ies).
  - `current_only` (boolean): Only owners who currently hold property.
  - `limit` (integer): Owners to return, 1–100 (default 20).

Example: `GET https://tnpropertysearch.app/api/v1/search_owners?name=bailey%20family%20trust`

Input schema:

```json
{"type":"object","properties":{"name":{"type":"string","description":"Name words in any order, e.g. 'john smith' or 'ryman hospitality'."},"county":{"type":"string","description":"Limit to county(ies)."},"current_only":{"type":"boolean","description":"Only owners who currently hold property."},"limit":{"type":"integer","description":"Owners to return, 1–100 (default 20)."}},"required":["name"],"additionalProperties":false}
```

### owner_portfolio

Every property an owner (by owner_key) or a mailing address has ever been recorded on, newest first, with whether they still own it, when they acquired it and the recorded price. Includes summary counts. Searching by mailing address groups LLCs and trusts that share a mailbox.

  - `owner_key` (string): owner_key from search_owners (an exact name also works; it is normalized).
  - `mailing` (string): Exact mailing address as stored (from a property or owner record).
  - `county` (string): Limit to county(ies).
  - `current_only` (boolean): Only properties still owned.
  - `limit` (integer): Records per page, 1–1000 (default 200).
  - `cursor` (string): next_cursor from the previous page, to fetch the next page.

Example: `GET https://tnpropertysearch.app/api/v1/owner_portfolio?owner_key=BAILEY%20FAMILY%20TRUST`

Input schema:

```json
{"type":"object","properties":{"owner_key":{"type":"string","description":"owner_key from search_owners (an exact name also works; it is normalized)."},"mailing":{"type":"string","description":"Exact mailing address as stored (from a property or owner record)."},"county":{"type":"string","description":"Limit to county(ies)."},"current_only":{"type":"boolean","description":"Only properties still owned."},"limit":{"type":"integer","description":"Records per page, 1–1000 (default 200)."},"cursor":{"type":"string","description":"next_cursor from the previous page, to fetch the next page."}},"required":[],"additionalProperties":false}
```

### search_ownership_records

Ownership records (one row per owner per parcel) for an owner, owner_key, mailing address or pin, or every transfer recorded in one county over up to 3 calendar months. Filter by price, current vs former, and address; sort by date or price. Use it for questions like 'who bought in Davidson in March 2024 over $1M'.

  - `owner` (string): Owner name words.
  - `owner_key` (string): Exact owner_key.
  - `mailing` (string): Exact mailing address.
  - `address` (string): Property address words (filters the other results).
  - `county` (string): County (one, for date searches).
  - `pin` (string): Parcel pin(s), comma-separated.
  - `date_from` (string): Acquired on or after, YYYY-MM-DD.
  - `date_to` (string): Acquired on or before, YYYY-MM-DD.
  - `min_price` (number): Minimum recorded price.
  - `max_price` (number): Maximum recorded price.
  - `current` (boolean): true = current owners only, false = former owners only.
  - `limit` (integer): Results per page, 1–200 (default varies by tool).
  - `cursor` (string): next_cursor from the previous page, to fetch the next page.
  - `sort` (string): date_desc (default), date_asc, price_desc.

Example: `GET https://tnpropertysearch.app/api/v1/search_ownership_records?county=Davidson&date_from=2024-01-01&date_to=2024-03-31&min_price=1000000&sort=price_desc&limit=10`

Input schema:

```json
{"type":"object","properties":{"owner":{"type":"string","description":"Owner name words."},"owner_key":{"type":"string","description":"Exact owner_key."},"mailing":{"type":"string","description":"Exact mailing address."},"address":{"type":"string","description":"Property address words (filters the other results)."},"county":{"type":"string","description":"County (one, for date searches)."},"pin":{"type":"string","description":"Parcel pin(s), comma-separated."},"date_from":{"type":"string","description":"Acquired on or after, YYYY-MM-DD."},"date_to":{"type":"string","description":"Acquired on or before, YYYY-MM-DD."},"min_price":{"type":"number","description":"Minimum recorded price."},"max_price":{"type":"number","description":"Maximum recorded price."},"current":{"type":"boolean","description":"true = current owners only, false = former owners only."},"limit":{"type":"integer","description":"Results per page, 1–200 (default varies by tool)."},"cursor":{"type":"string","description":"next_cursor from the previous page, to fetch the next page."},"sort":{"type":"string","description":"date_desc (default), date_asc, price_desc.","enum":["date_desc","date_asc","price_desc"]}},"required":[],"additionalProperties":false}
```

### property_stats

Parcel counts, total/average/median appraised value and total acres grouped by county, city, zip, land_use, zoning, owner, mailing or subdivision, statewide or for one county. Use it for 'largest owners in Davidson' or 'value by land use'.

  - `group_by` (string): Field to group on.
  - `county` (string): One county (default: statewide).
  - `limit` (integer): Groups to return, 1–500 (default 25).

Example: `GET https://tnpropertysearch.app/api/v1/property_stats?group_by=owner&county=Davidson&limit=10`

Input schema:

```json
{"type":"object","properties":{"group_by":{"type":"string","description":"Field to group on.","enum":["county","city","zip","land_use","zoning","owner","mailing","subdivision"]},"county":{"type":"string","description":"One county (default: statewide)."},"limit":{"type":"integer","description":"Groups to return, 1–500 (default 25)."}},"required":[],"additionalProperties":false}
```

### refresh_property

Re-read up to 5 parcels from their official county/state source right now (and, for Davidson, the full owner history), then return what changed. Use when last_checked is too old for the question, or the user says a record is out of date.

  - `pins` (string, required): Parcel pin(s), comma-separated (max 5).

Example: `GET https://tnpropertysearch.app/api/v1/refresh_property?pins=78475`

Input schema:

```json
{"type":"object","properties":{"pins":{"type":"string","description":"Parcel pin(s), comma-separated (max 5)."}},"required":["pins"],"additionalProperties":false}
```

### recent_changes

Changes the update jobs detected, newest first: owner_change (with old and new owners), new_parcel, and retired (parcel no longer listed by the county). Filter by county, kind, owner name, date or area.

  - `county` (string): County(ies).
  - `kind` (string): Kind(s), comma-separated: owner_change, new_parcel, retired.
  - `owner` (string): Old or new owner name words.
  - `since` (string): Detected on or after (YYYY-MM-DD).
  - `until` (string): Detected on or before (YYYY-MM-DD).
  - `near` (string): Center point 'lat,lon', e.g. '36.1627,-86.7816'.
  - `radius_m` (number): Radius in meters around `near` (default 500).
  - `bbox` (string): Bounding box 'west,south,east,north'.
  - `limit` (integer): Results per page, 1–200 (default varies by tool).
  - `cursor` (string): next_cursor from the previous page, to fetch the next page.

Example: `GET https://tnpropertysearch.app/api/v1/recent_changes?county=Davidson&kind=owner_change&limit=10`

Input schema:

```json
{"type":"object","properties":{"county":{"type":"string","description":"County(ies)."},"kind":{"type":"string","description":"Kind(s), comma-separated: owner_change, new_parcel, retired."},"owner":{"type":"string","description":"Old or new owner name words."},"since":{"type":"string","description":"Detected on or after (YYYY-MM-DD)."},"until":{"type":"string","description":"Detected on or before (YYYY-MM-DD)."},"near":{"type":"string","description":"Center point 'lat,lon', e.g. '36.1627,-86.7816'."},"radius_m":{"type":"number","description":"Radius in meters around `near` (default 500)."},"bbox":{"type":"string","description":"Bounding box 'west,south,east,north'."},"limit":{"type":"integer","description":"Results per page, 1–200 (default varies by tool)."},"cursor":{"type":"string","description":"next_cursor from the previous page, to fetch the next page."}},"required":[],"additionalProperties":false}
```

### update_status

How fresh the data is: when each county was last checked, the most recent update runs with their status and counts, what is in progress, and the schedule.

  (no parameters)

Example: `GET https://tnpropertysearch.app/api/v1/update_status`

Input schema:

```json
{"type":"object","properties":{},"required":[],"additionalProperties":false}
```

## Fields

### parcels

- `pin`: Parcel id used by every tool. Davidson pins are numeric; others are prefixed (wmsn-, hamilton-, montgomery-, tn-<county id>-).
- `apn`: Assessor parcel number as the county formats it.
- `address`: Property (situs) address.
- `owner`: Current owner as recorded.
- `owners`: All current co-owners, where the source lists several.
- `mailing`: Owner's mailing address; groups entities that share a mailbox.
- `county, city, zip`: Location. city and zip are filled mainly in Davidson.
- `appraised`: Total appraised value (USD), where the county publishes it.
- `acres`: Lot size.
- `land_use, zoning`: Assessor land use and zoning code (Davidson).
- `own_date, sale_price, deed`: Date, price and deed reference of the latest transfer, where available.
- `sales`: Hamilton only: every recorded sale with date, price, deed book and page.
- `subdivision, lot, legal`: Legal description fields, where available.
- `location`: Centroid {lat, lon}.
- `geometry`: Boundary {rings: [[[lon, lat], ...]]}; returned only when include_geometry=true.
- `last_checked`: When this parcel was last confirmed against its county source.
- `history_tier, app_url`: How much ownership history this county has, and a link to the parcel in the map app.

### ownership

- `pin, county, address`: The parcel this record belongs to.
- `owner`: Owner name as recorded.
- `owner_key`: Normalized owner name (upper case, punctuation removed). Exact-match key for owner_portfolio.
- `from_date`: Date this owner acquired the parcel (YYYY-MM-DD).
- `price`: Recorded consideration for that transfer.
- `deed, deed_url`: Deed reference, and a link to the deed image where the county offers one (Davidson).
- `is_current, status`: Whether this owner still holds the parcel (Current / Historical).
- `mailing`: Owner's mailing address on that record.
- `source`: Set when a record came from an archive (e.g. county_2022_archive).

## Counties

county | parcels | ownership records | former-owner records | history | last checked
--- | --- | --- | --- | --- | ---
Davidson | 287841 | 1509143 | 1221917 | full | 2026-11-06
Hamilton | 163067 | 193409 | 10 | sales | 2026-11-01
Williamson | 106285 | 203539 | 42796 | partial | 2026-11-06
Montgomery | 92623 | 139555 | 2 | current | 2026-11-06
Sumner | 86664 | 133809 | 0 | current | 2026-11-06
Sullivan | 78822 | 112296 | 0 | current | 2026-11-01
Sevier | 70705 | 94583 | 0 | current | 2026-11-01
Wilson | 66898 | 106130 | 0 | current | 2026-11-01
Blount | 66487 | 74756 | 0 | current | 2026-11-01
Cumberland | 65797 | 103116 | 0 | current | 2026-11-01
Washington | 61009 | 95516 | 0 | current | 2026-11-01
Maury | 52839 | 69757 | 0 | current | 2026-11-01
Bradley | 51025 | 65020 | 0 | current | 2026-11-01
Madison | 49516 | 58256 | 0 | current | 2026-11-01
Greene | 43055 | 67692 | 0 | current | 2026-11-01
Putnam | 38445 | 60534 | 0 | current | 2026-11-01
Robertson | 37766 | 59706 | 0 | current | 2026-11-01
Hawkins | 36539 | 45593 | 0 | current | 2026-11-01
Loudon | 36529 | 53278 | 0 | current | 2026-11-01
Anderson | 36446 | 57372 | 0 | current | 2026-11-06
Roane | 35864 | 40055 | 0 | current | 2026-11-01
Jefferson | 34869 | 43817 | 0 | current | 2026-11-01
Coffee | 32724 | 43131 | 0 | current | 2026-11-01
Carter | 32007 | 49138 | 0 | current | 2026-11-01
McMinn | 31392 | 48573 | 0 | current | 2026-11-01
Hamblen | 30923 | 37610 | 0 | current | 2026-11-01
Gibson | 30841 | 44252 | 0 | current | 2026-11-01
Tipton | 30135 | 46639 | 0 | current | 2026-11-01
Monroe | 30128 | 44175 | 0 | current | 2026-11-01
Hardin | 28584 | 33040 | 0 | current | 2026-11-01
Dickson | 28415 | 37434 | 0 | current | 2026-11-01
Campbell | 27472 | 36920 | 0 | current | 2026-11-01
Franklin | 26828 | 42359 | 0 | current | 2026-11-01
Fayette | 26348 | 40621 | 0 | current | 2026-11-01
Henry | 25986 | 35488 | 0 | current | 2026-11-01
Lawrence | 25772 | 32251 | 0 | current | 2026-11-01
Cocke | 25264 | 32509 | 0 | current | 2026-11-01
Bedford | 24048 | 33505 | 0 | current | 2026-11-01
Warren | 23839 | 36980 | 0 | current | 2026-11-01
Claiborne | 22530 | 28312 | 0 | current | 2026-11-01
Marion | 22263 | 34048 | 0 | current | 2026-11-01
Cheatham | 21787 | 31268 | 0 | current | 2026-11-01
Dyer | 21595 | 32296 | 0 | current | 2026-11-01
Rhea | 21468 | 33907 | 0 | current | 2026-11-01
Hardeman | 20299 | 28473 | 0 | current | 2026-11-01
Weakley | 20184 | 27725 | 0 | current | 2026-11-01
Obion | 19998 | 29892 | 0 | current | 2026-11-01
Lincoln | 19946 | 31330 | 0 | current | 2026-11-01
Carroll | 19908 | 29206 | 0 | current | 2026-11-01
Marshall | 19511 | 26110 | 0 | current | 2026-11-01
McNairy | 19258 | 24628 | 0 | current | 2026-11-01
Giles | 18828 | 26358 | 0 | current | 2026-11-01
DeKalb | 18294 | 28641 | 0 | current | 2026-11-01
Henderson | 18061 | 23632 | 0 | current | 2026-11-01
White | 17828 | 22637 | 0 | current | 2026-11-01
Benton | 16532 | 19920 | 0 | current | 2026-11-01
Fentress | 16429 | 26028 | 0 | current | 2026-11-01
Grainger | 15609 | 19725 | 0 | current | 2026-11-01
Overton | 15539 | 24967 | 0 | current | 2026-11-01
Scott | 15359 | 19951 | 0 | current | 2026-11-01
Union | 14732 | 22813 | 0 | current | 2026-11-01
Macon | 14421 | 18033 | 0 | current | 2026-11-01
Morgan | 14280 | 18306 | 0 | current | 2026-11-01
Johnson | 14167 | 20768 | 0 | current | 2026-11-01
Decatur | 14118 | 21825 | 0 | current | 2026-11-01
Lauderdale | 13793 | 15841 | 0 | current | 2026-11-01
Humphreys | 13616 | 18783 | 0 | current | 2026-11-01
Polk | 13051 | 20636 | 0 | current | 2026-11-01
Wayne | 13000 | 18752 | 0 | current | 2026-11-01
Sequatchie | 12652 | 19031 | 0 | current | 2026-11-01
Stewart | 12514 | 19923 | 0 | current | 2026-11-01
Smith | 12092 | 16970 | 0 | current | 2026-11-01
Grundy | 11947 | 18409 | 0 | current | 2026-11-01
Haywood | 11384 | 14437 | 0 | current | 2026-11-01
Bledsoe | 11376 | 15654 | 0 | current | 2026-11-01
Unicoi | 10289 | 16140 | 0 | current | 2026-11-01
Crockett | 10154 | 15313 | 0 | current | 2026-11-01
Perry | 9747 | 14810 | 0 | current | 2026-11-01
Meigs | 9484 | 14340 | 0 | current | 2026-11-01
Jackson | 9023 | 13776 | 0 | current | 2026-11-01
Lewis | 8690 | 11324 | 0 | current | 2026-11-01
Cannon | 8507 | 10587 | 0 | current | 2026-11-01
Van Buren | 7331 | 11614 | 0 | current | 2026-11-01
Clay | 7130 | 9049 | 0 | current | 2026-11-01
Houston | 6653 | 9008 | 0 | current | 2026-11-01
Hancock | 6137 | 9077 | 0 | current | 2026-11-01
Pickett | 5922 | 9074 | 0 | current | 2026-11-01
Trousdale | 5467 | 8196 | 0 | current | 2026-11-01
Moore | 4256 | 6677 | 0 | current | 2026-11-06
Lake | 3897 | 5353 | 0 | current | 2026-11-06

## Sources and terms

- Metro Nashville parcels (Davidson): https://maps.nashville.gov/arcgis/rest/services/Cadastral/Parcels/MapServer/0
- Metro Nashville Owner History (ParcelViewer) (Davidson): https://maps.nashville.gov/ParcelViewer/
- Williamson County parcels (Williamson): https://www.williamsoncounty-tn.gov/
- Hamilton County Live Parcels (Hamilton): https://mapsdev.hamiltontn.gov/hcwa03/rest/services/Live_Parcels/MapServer/0
- Montgomery County parcels (Montgomery): https://gis.mcgtn.org/arcgis/rest/services/Parcels/MapServer/0
- TN Comptroller Property Boundaries (public use, non-commercial) (the other loaded counties): https://services1.arcgis.com/YuVBSS7Y1of2Qud1/arcgis/rest/services/Tennessee_Property_Boundaries_Public_Use/FeatureServer/0

Public records published for reference. The state Comptroller layer is published for non-commercial use only; do not resell this data.
