Skip to content

Field projection

The detail response has 300+ fields. If you only want a few, project them:

GET /v1/properties/{zpid}?fields=zpid,address.streetAddress,price,zestimate
{
"data": {
"zpid": "{zpid}",
"address": { "streetAddress": "350 5th Ave" },
"price": 750000,
"zestimate": 765000
},
"request_id": "..."
}

Syntax

  • Top-level field: price
  • Nested via dot: address.streetAddress
  • Array index via [n]: priceHistory[0].price
  • Whole array: priceHistory (returns the full array)

Where it’s available

EndpointNotes
/v1/properties/by-urlSingle object
/v1/properties/by-addressSingle object
/v1/properties/{zpid}Single object

Sub-resources (e.g. /photos, /schools) are already field-scoped, so ?fields= is unnecessary there.

Unknown fields

Fields that don’t exist in the response are silently dropped, they don’t cause an error. Always test with the field you expect against a known zpid first.