Project

repull

0.0
The project is in a healthy, maintained state
Ruby SDK for the Repull API — the unified API for vacation-rental tech. Connect to 50+ PMS platforms and OTA channels (Airbnb, Booking.com, VRBO, Plumguide) through one REST API. Generated from OpenAPI.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 3.6, >= 3.6.0

Runtime

~> 1.0, >= 1.0.1
 Project Readme

Repull Ruby SDK

Status: v0.1.0 — alpha. RubyGems listing pending.

Ruby SDK for Repull — the unified API for vacation-rental tech (50+ PMS platforms, Airbnb / Booking.com / VRBO / Plumguide channels, AI ops, white-label OAuth Connect). Generated from api.repull.dev/openapi.json.

Install

# Once published to RubyGems:
gem install repull

Not yet on RubyGems. Until then, use the gem directly from this repo:

# Gemfile
gem 'repull', git: 'https://github.com/ivannikolovbg/repull-ruby', branch: 'main'

Or build locally:

git clone https://github.com/ivannikolovbg/repull-ruby
cd repull-ruby
bundle install
gem build repull.gemspec
gem install ./repull-0.1.0.gem

Quick start

require 'repull'

config = Repull::Configuration.new
config.access_token = ENV['REPULL_API_KEY']
config.host = 'api.repull.dev'

api = Repull::ReservationsApi.new(Repull::ApiClient.new(config))
result = api.v1_reservations_get(limit: 10)

result.data.each do |r|
  puts "#{r.id}\t#{r.check_in} -> #{r.check_out}\t#{r.platform}"
end

See examples/quickstart.rb and examples/connect_airbnb.rb for runnable scripts.

Authentication

All requests use a Bearer token. Get an API key from repull.dev/dashboard. Sandbox keys start with sk_test_, production keys with sk_live_.

Repull.configure do |c|
  c.access_token = ENV['REPULL_API_KEY']
end

The SDK adds the Authorization: Bearer ... header automatically on every request.

Examples

Script What it does
examples/quickstart.rb Health check + list reservations.
examples/connect_airbnb.rb Mint an Airbnb OAuth Connect session and poll its status.

Run them:

export REPULL_API_KEY=sk_test_...
bundle exec ruby examples/quickstart.rb

What's in the box

The SDK is generated from the OpenAPI spec snapshotted at openapi/v1.json. It exposes one API class per tag:

  • Repull::AIApi
  • Repull::AirbnbApi
  • Repull::AvailabilityApi
  • Repull::BillingApi
  • Repull::BookingComApi
  • Repull::ConnectApi
  • Repull::ConversationsApi
  • Repull::GuestsApi
  • Repull::PlumguideApi
  • Repull::PropertiesApi
  • Repull::ReservationsApi
  • Repull::SystemApi
  • Repull::VRBOApi
  • Repull::WebhooksApi

Per-class method docs live in docs/.

Reference

Full API reference at repull.dev/docs.

Regenerating

The generated client tracks the live OpenAPI spec. To refresh:

./scripts/regen.sh

This re-snapshots openapi/v1.json from https://api.repull.dev/openapi.json and regenerates lib/repull/.

License

MIT.

Status

v0.1.0 — alpha. API surface may shift before v1.0. RubyGems listing pending. File issues at github.com/ivannikolovbg/repull-ruby/issues.


Powered by Repull. AI features powered by Vanio AI.