Opendoor Partner Server Ruby SDK

Standalone Ruby port of packages/server-js-core.

Installation

gem "opendoor-partner-sdk-server-ruby"

Usage

require "opendoor/partner_sdk"

client = Opendoor::PartnerSdk::Client.new(
  api_key: ENV.fetch("OPENDOOR_API_KEY"),
  environment: :staging
)

offer = client.create_offer(
  data: {
    address: {
      street1: "123 Main St",
      city: "Austin",
      state: "TX",
      postalCode: "78701"
    }
  }
)

The timeout: keyword accepts milliseconds (default 30_000), matching @opendoor/partner-sdk-server-js-core.

API Methods

  • get_address_suggestions(query:)
  • create_offer(data:)
  • update_offer(offer_id:, data:)
  • get_offer(offer_id:)
  • get_offer_with_sell_direct_pricing(offer_id:)
  • get_offer_with_products_pricing(offer_id:)
  • check_address_unit(address:)
  • get_address_details(address:, tracking_id: nil)
  • get_homebuilders
  • get_assessment_slots(offer_id:)
  • get_home_detail(opendoor_offer_request_id:)

Errors

  • Opendoor::PartnerSdk::ValidationError for local input validation
  • Opendoor::PartnerSdk::ApiError for network/API failures, GraphQL errors, and invalid JSON (code: "PARSE_ERROR")

License

The Gem is proprietary to Opendoor Labs. Opendoor distributes it only as the bundled package on RubyGems.org under the terms in LICENSE.txt. Development sources and the broader codebase are not offered under an open-source license. Use is limited to integrating with Opendoor partner APIs as described in Opendoor documentation.

Publishing (maintainers)

CI builds and tests this gem on every PR (ci.yml). Releases mirror the JS packages:

Trigger Workflow What gets published
GitHub Release published (semver tag, e.g. v1.2.3) publish.yml — job publish-rubygem Release gem opendoor-partner-sdk-server-ruby at that version
Push to main publish-next.yml — job publish-rubygem-next Prerelease gem X.Y.Z.beta.{run}.{attempt}

GitHub Actions secrets

Secret Required for Where to get it
RUBYGEMS_API_KEY gem push to rubygems.org rubygems.org → Edit profile → API access. Create a key with permission to push gems for this gem name.

Add the secret in the repo: Settings → Secrets and variables → Actions → New repository secret. Name must be exactly RUBYGEMS_API_KEY.

The npm workflows continue to use NPM_TOKEN for JS packages only; Ruby publishing does not use it.

First-time gem name

The owning RubyGems account must be authorized to publish opendoor-partner-sdk-server-ruby (create the gem once or accept ownership transfer per RubyGems policy).