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_homebuildersget_assessment_slots(offer_id:)get_home_detail(opendoor_offer_request_id:)
Errors
Opendoor::PartnerSdk::ValidationErrorfor local input validationOpendoor::PartnerSdk::ApiErrorfor 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).