Back to platformWebsite embed · Beta

Add your properties to any website

Once you have properties on EchoPM, you can list them on the site you already run—or any site you choose. Apply still happens on EchoPM.

The problem

Hand-copied listings go stale the day a unit leases

Once units are on EchoPM, you should not rebuild vacancy tables by hand for WordPress, Webflow, Squarespace, or a custom stack. A second inventory is already wrong.

Why EchoPM

Show live EchoPM inventory on the site you already run

Iframe, React SDK, or headless API puts available units on any site you choose. Applications, screening, and leases stay in EchoPM—so ops does not fork.

Typical stack

A marketing site and a leasing file

  • Vacancy tables copied into the CMS and forgotten
  • An apply form on the website that never hits the leasing record
  • Two answers to “what’s available?”
  • A rebuild whenever the website stack changes

On EchoPM

One source of truth, any website

  • Live available units from EchoPM inventory
  • Three ship paths: iframe, React SDK, or API
  • Works on the site you already run
  • Apply still happens on EchoPM—on purpose

See EchoPM vs other platforms

What you get back

Stop updating the website by hand. Keep apply in one system.

  • Time

    Vacancies update when the unit does

    When a unit leases, the embed reflects inventory. You are not editing a table on the marketing site.

  • Effort

    Paste a snippet instead of a second inventory

    Hosted iframe for speed, React SDK for your design system, or headless API when you want full markup control.

  • For renters

    Current openings, one apply path

    They see live units on your site and apply on EchoPM—the same system your team uses for screening and leases.

Three ways to ship

Drop live units onto the site you already run.

Iframe, React SDK, or headless API—same EchoPM inventory. Hosted UI for speed; your own markup when you want full design control.

Copy-paste iframe

Manager → Settings → Developers → API keys → Website embed. Pick a building, create a publishable key, allow your domains, paste the snippet.

  • Works on WordPress, Webflow, Squarespace, custom HTML
  • Production units table via /embed/units
  • Auto-height resize to your page

React SDK (@echopm/react)

npm install @echopm/react — UnitList and PropertyPage default to hosted EchoPM iframes; PropertyCard / SearchWidget for branded layouts.

  • Public on npm as @echopm/react
  • Search-style PropertyCard / PropertyList
  • Theme primary to match your brand

Headless embed API

Call getProperty, searchProperties, and submitLead—or use hooks—and list units with your own components. Publishable key only; no secret REST keys in the browser.

  • createEmbedClient / useEmbedProperty / useEmbedSearch
  • mode="client" render props for custom markup
  • Apply and tour still hand off to EchoPM

On your website

Same units. On the site you choose.

Once properties are on EchoPM, embed a live list, cards, or search. Apply is off in this preview; partners enable it with their embed key.

Real UnitCard components — live vacancies from EchoPM

harborsidepm.com

312BOWERY

New York, NY

Live · EchoPM

Unit 0504

1 bed · 1 bath · 779 sq ft

$2,500

Live inventory · Apply off in this preview

Ship it

Iframe, React, or your own markup.

HTML

Iframe snippet

<iframe
  src="https://www.echopm.app/embed/units?propertyId=YOUR_ID&key=YOUR_KEY"
  title="Available units"
  style="width:100%;border:0;min-height:480px"
  loading="lazy"
></iframe>

npm

@echopm/react

npm install @echopm/react

import { EchoPMProvider, UnitList } from "@echopm/react";

export function AvailableUnits() {
  return (
    <EchoPMProvider publishableKey={process.env.NEXT_PUBLIC_ECHOPM_EMBED_KEY!}>
      <UnitList propertyId="YOUR_PROPERTY_ID" showApply />
    </EchoPMProvider>
  );
}

API

createEmbedClient

import { createEmbedClient } from "@echopm/react";

const client = createEmbedClient({
  publishableKey: process.env.NEXT_PUBLIC_ECHOPM_EMBED_KEY!,
});

const property = await client.getProperty("YOUR_PROPERTY_ID");
const units = property.availableUnits;

// Render with your own components — apply still opens on EchoPM.

Playground: /embed/demo · React SDK docs

Apply stays on EchoPM—on purpose.

Marketing can live on any website you choose. Screening, leases, and payments need one system of record. Embeds hand renters into EchoPM auth so your team never juggles a second apply stack.

See leasing & applications
FAQ

Common questions

Straight answers about how this works on EchoPM.

Apply and schedule tour use EchoPM’s sign-in and dialogs (iframe or hosted flows). That keeps sessions and leasing data in one system—not a fragile copy of your stack.

Have properties on EchoPM? Put them on your site.

Start free. Add an iframe or the React SDK when you are ready.