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
| Endpoint | Notes |
|---|---|
/v1/properties/by-url | Single object |
/v1/properties/by-address | Single 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.