Skip to content

Installation

The SDK is split into packages. Install the ones you need:

Server SDK (backend)

Terminal window
npm install @opendoor/partner-sdk-server-js-core

Use @opendoor/partner-sdk-server-js-core in your backend (Express, Next.js API routes, etc.) to proxy requests to the Opendoor API. This is where your API key lives.

Client SDK (browser)

Terminal window
npm install @opendoor/partner-sdk-client-js-core

Framework-agnostic HTTP client for making typed requests to your backend’s Opendoor proxy endpoints. Does not talk to Opendoor directly. No framework dependency.

UI Components

Terminal window
npm install @opendoor/partner-sdk-client-react @opendoor/partner-sdk-client-js-core

Prebuilt React components (AddressEntry, QualificationQuestions, DtcOnboardingFlow, etc.) that use the client SDK under the hood.

Requirements

  • Node.js 20+ (for JS server SDK, browser client, and UI packages)
  • Ruby 3.1+ (optional — for opendoor-partner-sdk-server-ruby only)
  • React 17+ (for client-react)
  • Vue 3.3+ (for client-vue)

API Keys

Environments

The SDK defaults to staging for safe testing. When you’re ready to go live, set the server client to production (environment: 'production' in Node, environment: :production in Ruby) with your production API key.

Server SDK (Node):

// Staging (default) - no environment flag needed
const client = new OpendoorClient({
apiKey: process.env.OPENDOOR_STAGING_API_KEY!,
});
// Production
const client = new OpendoorClient({
apiKey: process.env.OPENDOOR_API_KEY!,
environment: 'production',
});

Server SDK (Ruby):

# Staging (default)
Opendoor::PartnerSdk::Client.new(api_key: ENV.fetch("OPENDOOR_API_KEY"), environment: :staging)
# Production
Opendoor::PartnerSdk::Client.new(api_key: ENV.fetch("OPENDOOR_API_KEY"), environment: :production)

Client SDK (browser):

// Staging (default)
const client = new OpendoorClient({ baseURL: '/api/opendoor/v1' });
// Production
const client = new OpendoorClient({
baseURL: '/api/opendoor/v1',
environment: 'production',
});

Both the Node and Ruby server clients and the browser client SDK need production mode when you go live: Node uses environment: 'production', Ruby uses environment: :production. The server SDK routes API requests to the correct Opendoor endpoints, and the client SDK routes analytics telemetry to the correct pipeline.