Skip to main content

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 in meta.

Envelope

The data field always contains the actual response. Always read body.data, never body directly.

Errors share the same envelope

Errors omit data and meta, returning only an error object:
See Errors for the full reference.

Headers

Every response includes:

Pagination

List endpoints (GET /api/v1/properties, GET /api/v1/spatial/search/*, etc.) return paginated results.

Offset pagination (default)

Use page and limit query parameters:

Cursor pagination (large result sets)

For result sets above ~10,000 items, offset pagination becomes slow. Use cursor pagination instead:
Pass the cursor on the next request:
When has_more is false, you’ve reached the end.

Timestamps

All timestamps are returned as ISO 8601 strings in UTC:
Parse with:

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 be null. Always check before accessing nested properties: