Listings widget

Show your brokerage's listings on your own website. A brokerage admin creates the key and names the sites in Console, Website widget.

Rule
What shows
What it means
Your brokerage's homes that are Active or Pending and publicly marketed, newest change first, up to 60.
Rule
What never shows
What it means
Members only and Coming Soon homes, closed or withdrawn homes, and anything in a sandbox.
Rule
Allowed domains
What it means
Up to 10 per key: example.com, www.example.com, or *.example.com for its subdomains. Naming example.com also allows www.example.com, and the other way round. Shared suffixes such as *.co.uk or *.github.io are refused. https only; localhost works while building.
Rule
The key
What it means
Public by design: it sits in your page source and reads only what you already market. Revoke it in the console and every site using it stops.
Rule
Photos
What it means
Signed links that stop working as soon as a home leaves the public feed.
Rule
Each home
What it means
Links to its official listing page on ListOnce, in a new tab.
Rule
Rate limits
What it means
120 requests a minute per visitor address, 3,000 a minute per key. Over that, 429 for the rest of the minute.

Script

Draws a card grid that fits the width of its container, inside a shadow root so the styles of your page and ours stay apart. Put the div where the listings go; more than one div per page works.

HTML
<div data-listonce-widget="olw_xxxxxxxxxxxxxxxxxxxxxxxx"></div>
<script src="https://listonce.io/widget.js" async></script>

Iframe

For site builders that do not allow scripts. The widget sends frame-ancestors with your allowed domains, so browsers refuse to show it on any other site.

HTML
<iframe src="https://listonce.io/w/olw_xxxxxxxxxxxxxxxxxxxxxxxx" title="Our listings" loading="lazy" style="width:100%;height:760px;border:0"></iframe>

JSON

The script reads GET /api/widget/listings?key=…. It answers only browser pages on an allowed domain: CORS echoes your origin once it is on the list, and a request with neither Origin nor Referer gets 403. A script outside a browser can send any Origin it likes, so these checks stop other websites, not scrapers; the key only ever reads homes you already market publicly. For anything beyond the widget, use the API with a key of your own.

200 application/json
{
  "brokerage": "Northgate Homes Group",
  "listings": [
    {
      "key": "OL-5RB2NH",
      "status": "Active",
      "price": 512000,
      "street": "1902 Mesquite Bend",
      "city": "Phoenix",
      "state": "AZ",
      "zip": "85022",
      "beds": 3,
      "baths": 2,
      "sqft": 1760,
      "tint": 0,
      "photo": "https://listonce.io/m/OLP-XXXXXXXXXX.jpg?a=p&e=...&s=...",
      "url": "https://listonce.io/l/OL-5RB2NH"
    }
  ]
}
Status
403
When
The page is not on the key's allowed domains
Status
404
When
No such key, or it was revoked
Status
429
When
Over a rate limit; try again next minute