EchoPM
Back to platform

BYOW: Bring your own website

Website embed · Beta

Your website. Live vacancies from EchoPM.

Keep the marketing site you already run. Drop in an iframe, ship React components, or call the embed API and render your own UI. Apply and schedule stay authenticated on EchoPM.

harborsidepm.com

Lakeview Lofts

Chicago, IL — live availability from EchoPM.

Unit 4B

1 bed · 1 bath · 720 sq ft

Available 2026-07-04

$2,150

Unit 7A

2 beds · 2 baths · 980 sq ft

Available 2026-07-04

$2,890

Preview uses real inventory · Apply disabled on this page

Three ways to ship

Iframe, React UI, or your own markup.

Same live inventory either way. Hosted UI for speed; headless data when you want full design control.

Copy-paste iframe

Manager → Property → Settings → Listing → Website embed. 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

What partners ship

Real embed UI—on your domain.

These are live EchoPM components and inventory, not marketing mockups. Apply is off in this preview; partners enable it with their embed key.

Production UnitCard / hosted OpenUnits — live vacancies

harborsidepm.com

Lakeview Lofts

Chicago, IL — live availability from EchoPM.

Unit 4B

1 bed · 1 bath · 720 sq ft

Available 2026-07-04

$2,150

Unit 7A

2 beds · 2 baths · 980 sq ft

Available 2026-07-04

$2,890

Preview uses real inventory · Apply disabled on this page

Ship it

Iframe, React UI, or headless data.

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 your domain. 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.

Put live units on your site this week

Create an embed key in the manager app, or start with the React SDK docs.