Response format
Every JSON response from the Prop AI Deals API is wrapped in a consistent envelope. Errors share the same shape across all endpoints, and metadata about the request (latency, usage, request ID) lives inmeta.
Envelope
Thedatafield always contains the actual response. Always readbody.data, neverbodydirectly.
Errors share the same envelope
Errors omitdata and meta, returning only an error object:
Headers
Every response includes:Pagination
List endpoints (GET /api/v1/properties, GET /api/v1/spatial/search/*, etc.) return paginated results.
Offset pagination (default)
Usepage and limit query parameters:
Cursor pagination (large result sets)
For result sets above ~10,000 items, offset pagination becomes slow. Use cursor pagination instead:has_more is false, you’ve reached the end.
Timestamps
All timestamps are returned as ISO 8601 strings in UTC:Money values
Prices are returned as integers (pounds, no pence) in the*_numeric fields. The string price field is a formatted display string (“£450,000”) and should never be parsed for calculations.
Coordinates
Latitude and longitude are returned as floats in WGS84 (EPSG:4326) — the same projection used by Google Maps, Mapbox, and Leaflet:Field availability
Not every property has every field populated. Optional fields can benull. Always check before accessing nested properties: