OmniPM

Properties

Query the catalogue of buildings and units, with the filters a search page needs.

GET /api/agent/properties
Authorization: Bearer <key>

Requires the properties:read scope. Returns units from your workspace's catalogue only.

Filters

All optional, all query-string parameters.

ParameterTypeNotes
area / areasstringOne area, or a comma-separated list.
priceMin, priceMaxintegerWhole yen, non-negative. A negative or non-numeric value is a 400.
typeapartment | sharehouseAnything else is rejected.
layout / layoutsstringOne layout, or a comma-separated list.
bedroomsinteger
moveInByISO dateMust parse as a date, or 400.
availableNowtruePresent and true to filter; anything else is ignored.
hasCampaigntrueSame.
searchstringFree text.
sortprice-asc | price-desc | size-asc | size-desc
page, limitintegerSee below.

The singular and plural forms are alternatives, not additions — areas takes precedence over area when both are sent. Send one.

Pagination

limit is capped at 500, deliberately higher than a human-facing page size: a first-party sync tool should be able to pull an entire catalogue in one request rather than making fifty and spending its rate budget on pagination.

Ask for more than 500 and you get 500 — not an error.

The response carries the total, so a client can decide whether to page at all.

Availability in the response

Alongside the matching units, the response distinguishes confirmed from possible availability.

A "possibly available" unit is one where a resident has mentioned they intend to leave, without filing notice. It is a lead, not a fact — the date can move or never happen. Do not present it to a prospective resident as a date they can move in on. See Availability.

The site endpoints

For driving a public website there is a parallel set under /api/agent/site/* — units, buildings, blog posts, campaigns, positions, services, sitemap data and site configuration. They return presentation-shaped payloads with public URLs already built, rather than raw catalogue records.

Those endpoints use content:read for editorial content and properties:read for listings, which is why a website is normally provisioned with a read key covering both. See Authentication.

On this page