List integrations
Connections attached to the property, with secrets stripped. Tour-capable entries carry the `id` you pass as `connection_id` to the tour endpoints. Scoped to the portfolio: `{property}` is a slug resolved against the properties attached to `{connection}`, so a slug outside this portfolio is a `404` rather than another site's property.
/api/v1/connection/{connection}/property/{property}/integrationsConnections attached to the property, with secrets stripped. Tour-capable entries carry the id you pass as connection_id to the tour endpoints. Scoped to the portfolio: {property} is a slug resolved against the properties attached to {connection}, so a slug outside this portfolio is a 404 rather than another site's property.
Path Parameters
Connection UUID.
uuidProperty slug, resolved against the properties attached to {connection}. A slug outside that portfolio is a 404. Slug only — a UUID does not resolve here.
Response Body
application/json
application/json
curl -X GET "https://example.com/api/v1/connection/497f6eca-6276-4993-bfeb-53cbbbba6f08/property/1520-gough-street/integrations"{ "data": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "type": "string", "key": "string", "name": "string", "category": "string", "enabled": true, "settings": {}, "tour_types": [ { "type": "in_person_tour", "label": "string", "redirect_url": "http://example.com", "schema": { "fields": [ { "type": "string", "name": "string", "data": { "label": "string", "required": true, "width": "full", "placeholder": "string", "minimum_date": "string", "multiline": true, "rules": [ "string" ] } } ] } } ] } ]}List lead sources GET
Lead sources configured on the property. Use a source's `code` as `resi_source_key` when submitting leads so your traffic is attributed. Scoped to the portfolio: `{property}` is a slug resolved against the properties attached to `{connection}`, so a slug outside this portfolio is a `404` rather than another site's property.
Get a unit's lease-term price matrix GET
Term-by-term pricing for one unit, ordered by lease start date. **Two behaviors to design around.** 1. *Live PMS fallback.* When Resi holds no stored matrix for the unit, it queries the property's PMS connection in real time and normalizes the result. That is materially slower than a database read and depends on the PMS being reachable. Set a generous client timeout; never call this in a loop across a portfolio. 2. *An empty array is a legitimate answer.* No PMS connection, no matrix from the provider, or a unit without term pricing all return `[]`. Fall back to the unit's rent range rather than showing nothing. Call it lazily on unit detail and cache per unit per day. Scoped to the portfolio: `{property}` is a slug resolved against the properties attached to `{connection}`, so a slug outside this portfolio is a `404` rather than another site's property. `{unit}` is a slug too, resolved against the route property's units — unlike the unscoped route, a unit served through a merged connection is not reachable here.