Properties

Look up any property by ID, address, or search across millions of listings with rich detail including price history, tax records, and neighborhood scores.

Get Property by ID

Retrieve comprehensive property data by Straply property ID. Returns the full property record including address, listing details, price history, tax history, and neighborhood scores.

GET /v1/properties/{id}

Path Parameters

Parameter Type Description
id required string The unique Straply property identifier.

Request

curl
curl "https://api.straply.com/v1/properties/sp_8k3j2m" \
  -H "Authorization: Bearer sk_live_your_api_key"

Response

200 OK
{
  "id": "sp_8k3j2m",
  "zpid": 2084541708,
  "address": {
    "streetAddress": "742 Evergreen Terrace",
    "city": "Springfield",
    "state": "IL",
    "zipCode": "62704",
    "county": "Sangamon"
  },
  "coordinates": {
    "latitude": 39.7817,
    "longitude": -89.6501
  },
  "status": "FOR_SALE",
  "listPrice": 425000,
  "zestimate": 418500,
  "bedrooms": 4,
  "bathrooms": 2.5,
  "livingArea": 2450,
  "lotSize": 8712,
  "yearBuilt": 1987,
  "propertyType": "SINGLE_FAMILY",
  "daysOnMarket": 14,
  "priceHistory": [
    {
      "date": "2026-02-24",
      "event": "Listed",
      "price": 425000,
      "source": "MLS"
    },
    {
      "date": "2019-06-15",
      "event": "Sold",
      "price": 335000,
      "source": "MLS"
    }
  ],
  "taxHistory": [
    {
      "year": 2025,
      "taxPaid": 6842,
      "assessedValue": 398000
    }
  ],
  "scores": {
    "walkScore": 62,
    "transitScore": 34,
    "bikeScore": 48
  },
  "lastUpdated": "2026-03-10T08:14:22Z"
}

Look Up by Address

Look up a property using structured address components. This endpoint uses exact matching on the provided fields — no fuzzy matching or autocomplete. All address parts must be provided separately as query parameters.

GET /v1/properties/lookup

Query Parameters

Parameter Type Description
streetAddress required string Street number and name, e.g. 742 Evergreen Terrace.
city required string City name.
state required string Two-letter state abbreviation, e.g. IL.
zipCode string 5-digit ZIP code. Optional but improves match accuracy.

Request

curl
curl "https://api.straply.com/v1/properties/lookup?streetAddress=742+Evergreen+Terrace&city=Springfield&state=IL" \
  -H "Authorization: Bearer sk_live_your_api_key"

Response

Returns the same property object as the Get Property endpoint. If no match is found, returns a 404 error.

200 OK
{
  "id": "sp_8k3j2m",
  "address": {
    "streetAddress": "742 Evergreen Terrace",
    "city": "Springfield",
    "state": "IL",
    "zipCode": "62704"
  },
  "status": "FOR_SALE",
  "listPrice": 425000,
    // ... full property object
}

Search Properties

Search across all properties with flexible filters. At least one geographic filter is required: zipCode, city + state, or state alone. Results are paginated and sorted by relevance by default.

GET /v1/properties

Query Parameters

Geographic filter required. You must provide at least one of: zipCode, city + state, or state.

Parameter Type Description
zipCode string 5-digit ZIP code to search within.
city string City name. Must be combined with state.
state string Two-letter state abbreviation.
status string Listing status. One of: FOR_SALE, PENDING, RECENTLY_SOLD, OFF_MARKET.
propertyType string One of: SINGLE_FAMILY, CONDO, TOWNHOUSE, MULTI_FAMILY, LAND, MANUFACTURED.
minPrice integer Minimum list price in dollars.
maxPrice integer Maximum list price in dollars.
minBeds integer Minimum number of bedrooms.
maxBeds integer Maximum number of bedrooms.
minBaths integer Minimum number of bathrooms.
minSqft integer Minimum living area in square feet.
maxSqft integer Maximum living area in square feet.
minYearBuilt integer Minimum year the property was built.
maxDaysOnMarket integer Maximum number of days the property has been listed.
limit integer Results per page. Default 25, maximum 100.
offset integer Number of results to skip. Default 0.
sort string Sort field. One of: listPrice, daysOnMarket, livingArea, yearBuilt, lastUpdated.
order string Sort direction. One of: asc, desc. Default desc.

Request

curl
curl "https://api.straply.com/v1/properties?zipCode=62704&status=FOR_SALE&minBeds=3&maxPrice=500000&sort=listPrice&order=asc&limit=25" \
  -H "Authorization: Bearer sk_live_your_api_key"

Response

200 OK
{
  "data": [
    {
      "id": "sp_8k3j2m",
      "address": {
        "streetAddress": "742 Evergreen Terrace",
        "city": "Springfield",
        "state": "IL",
        "zipCode": "62704"
      },
      "status": "FOR_SALE",
      "listPrice": 285000,
      "bedrooms": 3,
      "bathrooms": 2,
      "livingArea": 1820,
      "propertyType": "SINGLE_FAMILY"
    },
    {
      "id": "sp_r4t9wp",
      "address": {
        "streetAddress": "1205 W Monroe St",
        "city": "Springfield",
        "state": "IL",
        "zipCode": "62704"
      },
      "status": "FOR_SALE",
      "listPrice": 342000,
      "bedrooms": 4,
      "bathrooms": 2.5,
      "livingArea": 2210,
      "propertyType": "SINGLE_FAMILY"
    }
  ],
  "meta": {
    "total": 147,
    "limit": 25,
    "offset": 0,
    "hasMore": true
  }
}

Pagination

Results are paginated using limit and offset parameters. The meta object in the response tells you the total number of matching results and whether more pages are available.

To fetch the next page, increment offset by the value of limit. For example, to get page 2 with 25 results per page, set offset=25. Continue until hasMore is false.

Fetching page 2
curl "https://api.straply.com/v1/properties?zipCode=62704&status=FOR_SALE&limit=25&offset=25" \
  -H "Authorization: Bearer sk_live_your_api_key"

Tip: The meta.total count reflects the total number of matching properties at query time. Use it to calculate total pages: Math.ceil(total / limit).