Overview
The property endpoints serve several hundred attributes, selected with theattributes parameter as dotted paths:
- The attribute catalogue —
GET /v1/property/attributes, a free, machine-readable list of every attribute. - The query builder — a visual composer in the dashboard that shows live per-record cost as you pick attributes and generates the request for you.
The attribute catalogue
| Field | Meaning |
|---|---|
path | The dotted path accepted by attributes |
type | JSON type of the value |
tier | The billing tier requesting it triggers |
requiresPermission | Extended permission needed, or null |
POST /v1/property/query:
filterFields— the whitelisted aliases accepted byquery[].groups[].conditions[].field. Filtering uses different names from attribute paths — you projectroomDetails.bedsbut filter onbeds. Fields outside this list are rejected.sortFields— the fields accepted bysort[].field.comparators— the operators accepted by conditions.tiers— credit price per tier, andpencePerCreditto convert to GBP.grantedPermissions— the extended permissions your key holds. Attributes gated behind a permission you do not hold are silently omitted from responses, never a403.
Cost model
Attributes are priced in cumulative tiers, per property record returned. Requesting anything beyond the core identity/address set triggers the corresponding tier; any paid tier also charges Property detail, and Core is always charged. The catalogue’stiers array carries the current credit prices — or open the query builder to see the total move as you select.
Requesting whole groups
A parent path serves the entire object beneath it —"attributes": ["epc"] returns the full EPC block. The query builder does this automatically when you select every field in a group.