API Reference

PropertyTensor API

A single REST API for US property data: valuations, profiles, comparables, active listings, and hyperlocal market analytics. Every response is predictable JSON (or a PDF for reports), so there is nothing to scrape or parse.

Base URL

All requests go to

https://api.propertytensor.com

Authentication

Send your key on every request in the header

X-API-Key: your_api_key_here

Addresses In, Data Out

Property endpoints take a plain address and resolve it automatically — no IDs or URLs required.

Conventions

  • All endpoints accept GET (parameters as query string). Property endpoints also accept POST with a JSON body.
  • Property-level endpoints take an address. It is resolved to the best matching property automatically.
  • Responses are JSON, except /api/v1/report/sold which returns a PDF.
  • Errors return a JSON body { "message": "..." } with an appropriate status: 400 (missing/invalid parameter), 404 (address not found), 401 (bad API key).

Endpoints

GET/api/v1/properties/valuation

Property Valuation (AVM)

Automated valuation for a single property. Returns the estimated market value plus a high/low range, forecast standard deviation (FSD), and a 0-100 confidence score.

Parameters

NameTypeRequiredDescription
addressstringrequiredFull property address (street, city, state, ZIP).
Example request
curl -X GET \
  "https://api.propertytensor.com/api/v1/properties/valuation?address=915 Stefan Walk, Cumming, GA 30040" \
  -H "X-API-Key: your_api_key_here"
Example response
{
  "value": 458814,
  "value_low": 438741,
  "value_high": 479805,
  "fsd": 0.0447,
  "confidence": "high",
  "confidence_score": 96,
  "as_of": "2026-07-06"
}
GET/api/v1/properties/profile/core

Core Property Profile

The essential facts for a property: beds, baths, living area, year built, lot size, property type, geolocation, and assigned schools.

Parameters

NameTypeRequiredDescription
addressstringrequiredFull property address (street, city, state, ZIP).
Example request
curl -X GET \
  "https://api.propertytensor.com/api/v1/properties/profile/core?address=915 Stefan Walk, Cumming, GA 30040" \
  -H "X-API-Key: your_api_key_here"
Example response
{
  "street": "915 STEFAN WALK",
  "city": "CUMMING",
  "state": "GA",
  "zipcode": "30040",
  "beds": 3.0,
  "baths": 2.5,
  "sqft": 2607.0,
  "yearBuilt": 1999.0,
  "lotSize": 33105.0,
  "propertyType": "Single Family",
  "latitude": "34.2230649",
  "longitude": "-84.118296",
  "Subdivision": "PARKSIDE AT PILGRIM MILL",
  "elementary_school": ["Cumming Elementary School"],
  "middle_school": ["Otwell Middle School"],
  "high_school": ["Forsyth Central High School"]
}
GET/api/v1/properties/profile/detail

Detailed Property Profile

The full structured record for a property (150+ fields): sold history, tax history and assessment, HOA, zoning, construction and systems, interior/exterior features, and amenities.

Parameters

NameTypeRequiredDescription
addressstringrequiredFull property address (street, city, state, ZIP).
Example request
curl -X GET \
  "https://api.propertytensor.com/api/v1/properties/profile/detail?address=915 Stefan Walk, Cumming, GA 30040" \
  -H "X-API-Key: your_api_key_here"
Example response
{
  "street": "915 Stefan Walk",
  "city": "Cumming",
  "state": "GA",
  "zipcode": "30040",
  "beds": "3",
  "baths": "2.5",
  "sqft": "2607",
  "yearBuilt": "1999",
  "last_sold_price": 372000,
  "last_sold_date": "2019-08-30",
  "sold_history_ts": [ /* ... */ ],
  "tax_history_ts": [ /* ... */ ],
  "hoa_fee": "550",
  "county": "Forsyth",
  "zoning_code": "RES",
  "heating_type": "Forced Air",
  "roof_type": "Composition"
  /* 150+ fields total */
}
GET/api/v1/listings

Active Listings

Currently active listings in a ZIP code. Filter by property type, bed/bath/sqft ranges, and paginate. Only single family, condo, and townhouse listings are returned.

Parameters

NameTypeRequiredDescription
zipcodestringrequired5-digit ZIP code to search within.
property_typestringoptional"single family", "condo", or "townhouse". Defaults to all three.
beds_minnumberoptionalMinimum number of bedrooms.
beds_maxnumberoptionalMaximum number of bedrooms.
baths_minnumberoptionalMinimum number of bathrooms.
baths_maxnumberoptionalMaximum number of bathrooms.
sqft_minnumberoptionalMinimum living area (sqft).
sqft_maxnumberoptionalMaximum living area (sqft).
pagenumberoptionalPage number, 1-indexed. Defaults to 1.
page_sizenumberoptionalRecords per page. Max 50 (default).
Example request
curl -X GET \
  "https://api.propertytensor.com/api/v1/listings?zipcode=30040&property_type=single family&beds_min=3&page_size=50" \
  -H "X-API-Key: your_api_key_here"
Example response
{
  "zipcode": "30040",
  "page": 1,
  "page_size": 50,
  "total": 708,
  "total_pages": 15,
  "listings": [
    {
      "address": "6570 Five Oaks Rd, Cumming, GA 30040",
      "price": 2795000.0,
      "beds": 5.0,
      "baths": 6.0,
      "sqft": 4762.0,
      "lotsize": 6534.0,
      "propertytype": "Single Family",
      "city": "Cumming",
      "state": "GA",
      "zip": "30040",
      "latitude": 34.18661,
      "longitude": -84.22003
    }
  ]
}
GET/api/v1/properties/comparables

Comparable Sales

Comparable sales (comps) for a property — similar nearby homes with price, beds/baths, sqft, lot size, HOA, and school ratings — plus the subject property for reference.

Parameters

NameTypeRequiredDescription
addressstringrequiredFull property address (street, city, state, ZIP).
Example request
curl -X GET \
  "https://api.propertytensor.com/api/v1/properties/comparables?address=915 Stefan Walk, Cumming, GA 30040" \
  -H "X-API-Key: your_api_key_here"
Example response
{
  "comparables_subject": { "address": "915 Stefan Walk, Cumming, GA 30040", /* ... */ },
  "comparables": [
    {
      "address": "1950 Stonewyck Ct, Cumming, GA 30041",
      "price": 485000.0,
      "beds": 4.0,
      "baths": 3.0,
      "sqft": 2676.0,
      "lotsize": 20473.0,
      "hoa": "71.0",
      "top_elementary_school": "Mashburn Elementary School",
      "top_middle_school": "Lakeside Middle School",
      "top_high_school": "Forsyth Central High School"
    }
  ]
}
GET/api/v1/report/sold

Hyperlocal Market Report (PDF)

A downloadable PDF market report for a ZIP code, covering the last 6 full calendar months. The response is a binary PDF (Content-Type: application/pdf), so write it to a file.

Returns a PDF file, not JSON. The reporting window is fixed to the last 6 full calendar months.

Parameters

NameTypeRequiredDescription
zipcodestringrequired5-digit ZIP code the report covers.
statestringoptional2-letter state code (e.g. GA).
Example request
curl -X GET \
  "https://api.propertytensor.com/api/v1/report/sold?state=GA&zipcode=30040" \
  -H "X-API-Key: your_api_key_here" \
  -o market_report.pdf
Example response
# Binary PDF written to market_report.pdf
# Content-Type: application/pdf
# Content-Disposition: attachment; filename="..."
GET/api/v1/analytics/market

Market Timeseries

A time series of market indicators for a state or ZIP code: median sale/list price, homes sold, days on market, absorption rate, months of supply, and more.

Parameters

NameTypeRequiredDescription
zipcodestringoptional5-digit ZIP code. Provide state or zipcode.
statestringoptional2-letter state code. Provide state or zipcode.
timeframestringoptional"monthly" (default) or "weekly".
Example request
curl -X GET \
  "https://api.propertytensor.com/api/v1/analytics/market?zipcode=30040&timeframe=monthly" \
  -H "X-API-Key: your_api_key_here"
Example response
{
  "data": [
    {
      "date": "2025-10-01",
      "median_sale_price": 599000.0,
      "median_listing_price": 649794.5,
      "homes_sold": 79.0,
      "new_listings": 136.0,
      "active_listings": 244.0,
      "pending_sales": 90.0,
      "median_dom": 30.5,
      "absorption_rate": 0.32,
      "months_of_supply": 3.09,
      "sale_to_list_ratio": 0.96
    }
  ]
}
GET/api/v1/analytics/sold

Sold Analytics

A hyperlocal sold-market report as structured JSON: headline KPIs, sales trend, price/beds/baths/DOM distributions, top neighborhoods, and top agents & brokerages.

Parameters

NameTypeRequiredDescription
zipcodestringoptional5-digit ZIP code. Provide state or zipcode.
statestringoptional2-letter state code. Provide state or zipcode.
start_datestringoptionalYYYY-MM-DD. Defaults to the last full calendar month.
end_datestringoptionalYYYY-MM-DD. Defaults to the last full calendar month.
Example request
curl -X GET \
  "https://api.propertytensor.com/api/v1/analytics/sold?zipcode=30040&start_date=2026-06-01&end_date=2026-06-30" \
  -H "X-API-Key: your_api_key_here"
Example response
{
  "date_range": { "start": "2026-06-01", "end": "2026-06-30" },
  "kpi": { "median_price": 512000, "homes_sold": 89, "median_dom": 18 /* ... */ },
  "sales_trend": [ /* ... */ ],
  "price_distribution": [ /* ... */ ],
  "beds_distribution": [ /* ... */ ],
  "top_neighborhoods": [ /* ... */ ],
  "top_seller_agents": [ /* ... */ ]
}

Ready to build?

Grab a free API key and try any endpoint live in the playground.