Skip to content

Architecture

Integration pattern

Your frontend renders SDK components. Those components talk to your backend, not to Opendoor. Your backend uses the server SDK to forward requests to the Opendoor API.

Browser (React / Vue)
→ client-js-core → your backend → server-js-core → Opendoor API

The API key stays on your server. The browser SDK only knows about your backend’s URL.

Packages

server-js-core — Node.js client for your backend. Wraps the Opendoor Partnerships API (GraphQL for offers, REST for address autocomplete). You set up proxy routes like POST /api/opendoor/v1/offer/create and the SDK handles the rest.

client-js-core — Browser HTTP client. Makes typed fetch calls to your backend at /api/opendoor/v1/*. No framework dependency — works with React, Vue, or anything else. Also defines the OpendoorAppearance theming contract shared across all UI packages.

client-react — React components: AddressEntry, AddressMap, AddressUnitConfirmation, QualificationQuestions, DtcOnboardingFlow. Wrapped in an OpendoorProvider context. Themed via the appearance prop.

client-vue — Vue 3 components: AddressEntry, AddressMap, AddressUnitConfirmation, DtcOnboardingFlow. These render identically to their React counterparts — partners switching frameworks get the same UI without re-implementing anything. Uses provide/inject and @kebab-case emits instead of React Context and callback props.

Telemetry

SDK components send anonymous usage events to Opendoor (page views, button clicks, field identifiers, address data on selection). This powers conversion funnel reporting.

Not collected: personal info, answer values, API keys, cookies. Telemetry uses an anonymous localStorage identifier on your domain.

Your own analytics

Use lifecycle callbacks to pipe events to your analytics:

  • onReady / @ready — component mounted
  • onAddressSelect / @address-select — address chosen
  • onPageChange / @page-change — page navigation
  • onSubmit / @submit — questionnaire completed

See the component guides for the full callback reference.