Website Sync

List it once. Your website keeps up.

A canonical listings feed for the sites you own: one stable schema, incremental pulls, CDN-ready photos and access keys you control from the CRM. No re-typing, no stale listings, no scraping your own system.

Sheet 01 · What changes

The week, before and after

This is the interface your team lives in, annotated. The numbers below are the contract this module keeps, every property, every month.

map-ready coordinates
per-unit HMO detail
hotlink to CDN

One projection per property: everything a listing page needs, nothing your CRM wouldn’t show.

1stable schema (listing.v1): what your developer builds does not break underneath them
100listings per page over cursor pagination, with updated_since deltas for cheap pulls
43HMAC-signed webhook events when your systems need push, not polling
Sheet 02 · What’s inside

How website sync works day to day

01

The feed

A pull API built for small, boring, reliable syncs.

  • Filter by purpose or status; withdrawn listings only if you ask
  • updated_since plus cursor paging: a light scheduled pull, not a crawl
  • Schema stamped on every response, so upgrades are deliberate
  • Let, withdrawn or archived: the next pull reflects it automatically
02

Media and keys

Hotlinkable photos; tokens managed in the CRM, not a spreadsheet.

  • Public photo and floor-plan URLs, sized, ordered and primary-flagged
  • A week of caching with ETag revalidation, built to sit behind a CDN
  • Tokens scoped to reading listings, with optional expiry; secret shown once, stored hashed
  • Per-token rate limits, last-used visibility, one-click revocation
Sheet 03 · Questions

Asked before every trial

Will it work with WordPress or our custom-built site?

Yes. It is a JSON API behind a bearer token: anything that can run a scheduled fetch can consume it. The typical integration pulls deltas every few minutes and renders listing pages from the feed.

What happens when a property is let, withdrawn or archived?

Status changes bump the listing’s updated_at, so your next incremental pull picks them up. Withdrawn listings stay out of the feed unless you request them; archived properties drop out entirely.

Who can create and revoke access?

Business admins, from inside the CRM. Each token is scoped to reading listings, can carry an expiry date, shows when it was last used, and can be revoked with one click. The secret is displayed once at creation and stored hashed.

Is this push or pull?

The listings feed is pull: your site polls for deltas on your schedule. When your systems need to know the moment something happens, outbound webhooks cover the rest of the lifecycle with HMAC-signed deliveries, isolated per business.

See it on your own portfolio.

Start a 14-day trial with a free data import, or book a 30-minute demo.

Start free trial
14 days free · No card required · Cancel anytime