Private betaFull reference arrives with general availability
Your website, on live OmniPM data. Listings, availability and inquiries through one API.
Keep your site and your developer. Your pages read units, prices and real availability straight from OmniPM, and every inquiry, viewing request and chat lands in your team’s inbox.
GET /properties?area=Mitaka&moveInBy=2026-11-01
Authorization: Bearer <your-website-key>
200 OK
{
"ok": true,
"data": {
"properties": [
{
"unitSlug": "mitaka-garden-204",
"buildingName": "Mitaka Garden",
"unitName": "204",
"type": "apartment",
"nearestStation": { "name": "Mitaka", "walkMinutes": 6 },
"price": 118000,
"size": { "sqm": 25.4, "layout": "1K", "floor": 2 },
"availability": {
"status": "available-from",
"date": "2026-11-01T00:00:00.000Z",
"label": "From Nov 1, 2026"
}
}
],
"pagination": { "page": 1, "limit": 20, "total": 1, "totalPages": 1 }
}
}
- Auth
- Bearer key per website
- Format
- JSON over HTTPS
- Data
- Your company’s only
- Limits
- Rate-limited per key
- Reference
- At general availability
Website API
What a rental website needs, served from the dashboard your team already works in.
Change a rent, start a campaign or log a move-out notice in OmniPM, and your website shows it on its next request. Nothing to copy across.
Listings and search
Filter by area, apartment or sharehouse, layout, bedrooms, price range, move-in date and running campaigns. Search a building, area or station by name, with typo tolerance.
areatypelayoutsbedroomspriceMinpriceMaxmoveInByavailableNowhasCampaignsortsearchUnit pages
Rent, utilities and the building fee, size and floor, nearest station and walk time, amenities, photos, the current campaign and similar units.
Inquiries into the inbox
Inquiries, viewing requests, waiting-list sign-ups and contact forms arrive in OmniPM as conversations, matched to the unit they are about.
Website chat
The AI chat on your site searches your live listings and answers from your guest knowledge base. Each answer uses one AI credit.
Your content
Blog posts, campaigns and job openings written in OmniPM, ready to publish on your own pages.
An inquiry, straight into the inbox
Send the unit’s slug and OmniPM files the inquiry under that building and unit. A missing or unknown slug never loses the lead: OmniPM matches it by name instead.
POST /inquiries
Authorization: Bearer <your-website-key>
Content-Type: application/json
{
"name": "Mara Lindqvist",
"email": "mara@example.com",
"platform": "website",
"unitSlug": "mitaka-garden-204",
"moveInDate": "2026-11-01",
"desiredPeriod": "6 months",
"message": "Is the desk by the window included?",
"locale": "en"
}
200 OK
{
"ok": true,
"data": {
"id": "…",
"matched": {
"building": { "id": "…", "name": "Mitaka Garden" },
"unit": { "id": "…", "name": "204" }
}
}
}
The shape of the API
/propertiesAvailable units, filtered and paginated, each with its availabilityproperties:read/properties?search={term}Look up a building, area or station, with the outcome in one sentenceproperties:read/properties/{id}One unit with photos, fees, campaign and similar unitsproperties:read/buildings/{id}A building page with its units and locationproperties:read/content/{type}Blog posts, campaigns and job openingscontent:read/inquiriesAn inquiry, matched to its unit and filed in the inboxinquiries:write/leads/{kind}Viewing requests, waiting list, contact and newsletter formsleads:write/chatA website chat answer, using one AI creditchat:invoke/eventsPage views and searches for your marketing analyticsanalytics:writePaths are shown in their general form. The full reference — every field, filter and error, with examples — is published with general availability.
Live availability
Availability arrives already worked out. Your site never guesses from a calendar.
OmniPM works out each unit’s availability from its reservations and contracts at the moment you ask, and returns a status, a date and a label ready to show. A unit is listed as available only when it is empty now, or when a move-out notice has confirmed the date.
Four units, four answers
Demo units · today is 10 Octoberavailable-nowAvailable Nowavailable-fromFrom Nov 1, 2026possibly-fromPossibly from Dec 12, 2026occupiedOccupiedavailable-nowListedAvailable now
Vacant today, ready for an immediate move-in.
available-fromListedAvailable from a date
The resident has filed a move-out notice, so the date is confirmed.
possibly-fromSearch onlyPossibly from a date
A fixed term is ending but no notice is filed — the resident may renew. Returned separately, and only when you search.
occupiedCountedOccupied
No vacancy coming up. Counted in search results, never listed.
Search answers in one sentence.
Search for a building, area or station and the response says which of four things happened — with a sentence your site, or a chatbot, can show as it is.
availableAt least one unit is available.2 units available for "Mitaka".possibly_availableNothing free now, but units may free up.No units are available now for "Kanda", but 2 units may become available: …none_availableIt exists, and it’s full."Ebisu Studio" exists but has no units available right now.not_foundNo building, area or station matched.No listing matching "Odaiba Bay" was found.// On every unit the API returns
"availability": {
"status": "possibly-from",
"date": "2026-12-12T00:00:00.000Z",
"dateUntil": null,
"label": "Possibly from Dec 12, 2026"
}
GET /properties?search=Kanda
Authorization: Bearer <your-website-key>
200 OK
{
"ok": true,
"data": {
"properties": [],
"possiblyAvailable": [ … ],
"search": {
"term": "Kanda",
"outcome": "possibly_available",
"message": "No units are available now for \"Kanda\", but 2 units …",
"matchTier": "exact",
"availableCount": 0,
"possiblyAvailableCount": 2,
"occupiedCount": 9
}
}
}
API keys
Keys for each website. Scoped to what that site needs, and revocable in a click.
Create keys in the dashboard, under Settings. A key belongs to your company alone, so every request it makes is limited to your own buildings and units.
API keys
Bearer keys for your websites. A key is shown once, when you create it.
Key for “Ebisu Studio landing page” — copy it now. It won’t be shown again.
••••••••••••••••••••••••••••a91F
- 01
Bearer authentication
Send the key in the Authorization header, over HTTPS, from your server. It never belongs in code that runs in a visitor’s browser.
- 02
Scoped
Give each site only what it needs: read listings, read content, send inquiries and forms, run the chat, send analytics. Anything outside its scopes is refused.
- 03
Shown once, stored as a hash
The full key appears once, when you create it. OmniPM keeps only a hash, so nobody can read it back — us included.
- 04
Revocable
Revoke a key and its next request is refused. Last-used dates show which keys are still in service.
- 05
Rate-limited
Each key has its own request budget, so one busy site can’t slow another. Over the budget, the API answers 429 with a Retry-After header.
When a request is refused
Errors come back as JSON with a plain-English message and the usual status codes.
# No key, or a revoked one
401 Unauthorized
{ "error": "API key revoked" }
# A key without the scope this endpoint needs
403 Forbidden
{ "error": "Missing required scope: inquiries:write" }
# Over this key's request budget
429 Too Many Requests
Retry-After: <seconds>
{ "error": "Too many requests. Please try again later." }
Early access
The documentation is on its way. Beta operators build with us now.
Now · private beta
Early access for beta operators
We issue your keys, share the working reference for the endpoints your site needs, and answer your developer’s questions directly.
General availability
The full public reference
Every endpoint, field, filter and error, with examples, published on this page.
System statusAny time
Or skip the build
We can build the website for you, on your brand and in 13 languages, running on this same API.
Websites and API
Developer questions
Does the API cost extra?
No. It is part of every plan, and connecting your own site costs nothing extra. Website chat answers use AI credits, like every other AI action.
Is availability real-time?
It is worked out from reservations and contracts at the moment of each request. If your site caches responses, visitors see what was cached.
Can our site take bookings?
Your site sends inquiries, viewing requests and waiting-list sign-ups into OmniPM. Bookings are confirmed in OmniPM — by your team, or through a booking link with its own price and expiry.
Which languages does the data come in?
Building, unit, area and station names come in English and Japanese. Your site decides how to present them.
Can one key serve several websites?
It can, but we recommend separate keys for each site: revoke one and the others keep working, and last-used dates tell you which site is calling.
When is the full reference published?
With general availability. Until then, beta operators get the working reference and a direct line to the people who build the API.
Building a site on OmniPM? Apply for the beta and get early API access.