Skip to main content

Overview

The property endpoints serve several hundred attributes, selected with the attributes parameter as dotted paths:
{
  "area": [{ "type": "postcode", "value": "SW1A" }],
  "attributes": ["address", "epc.rating.current.band", "pricing.currentSale"],
  "limit": 25
}
Two tools tell you exactly what is available:
  • The attribute catalogueGET /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

curl https://api.vepler.com/v1/property/attributes \
  -H "x-api-key: $VEPLER_API_KEY"
The response covers, for every attribute:
FieldMeaning
pathThe dotted path accepted by attributes
typeJSON type of the value
tierThe billing tier requesting it triggers
requiresPermissionExtended permission needed, or null
Plus the request vocabulary for POST /v1/property/query:
  • filterFields — the whitelisted aliases accepted by query[].groups[].conditions[].field. Filtering uses different names from attribute paths — you project roomDetails.beds but filter on beds. Fields outside this list are rejected.
  • sortFields — the fields accepted by sort[].field.
  • comparators — the operators accepted by conditions.
  • tiers — credit price per tier, and pencePerCredit to 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 a 403.
The catalogue endpoint is free to call and safe to cache.

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’s tiers 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.