A Ruby interface for the MindBody API

gem install mindbody-api -v 1.0.1.alpha


MindBody API

Provides a Ruby interface to the MindBody API


Add this line to your application's Gemfile:

gem 'mindbody-api'

And then execute:

$ bundle

Or install it yourself as:

$ gem install mindbody-api


You must set your MindBody source name, key, and site ids. These values are accessible via the MindBody Partner Page

The easiest way to set these is via three environment variables: MINDBODY_SOURCE_NAME, MINDBODY_SOURCE_KEY, and MINDBODY_SITE_IDS. MINDBODY_SITE_IDS can have any delimiter.

Alternatively, you may set them in an initializer:

MindBody.configure do |config|
  config.site_ids    = -99
  config.source_key  = 'abcd1234'
  config.source_name = 'SuperFoo'
  config.log_level   = :info # Savon logging level. Default is :debug, options are [:debug, :info, :warn, :error, :fatal]

See http://savonrb.com/version2/globals.html for more information on the logging setting.


mindbody-api is laid out into two distinct parts: services and models


The services are direct mirrors of those documented by MindBody in their API documentation. Required data arguments for each service call are defined as arguments for the Ruby methods. Optional arguments should be passed as a string based hash. For example:

client_id = 1234
response = MindBody::Services::ClientService.get_client_visits(client_id, 'StartDate' => Date.today, 'EndDate' => Date.today)
result = response.result
visits = result[:visits]

If any of the service calls need to be passed in a list of something (eg Int32 or Int64) then the option needs to be specified like this:

MindBody::Services::StaffService.get_staff('StaffIDs' => {'long' => [123415123, 123123213]})


When a request comes back from MindBody, the various data types are hydrated into models that are defined in the MindBody::Models namespace.


In theory the gem would track the version of the MindBody API. In practice their version number does not increment in a way that would make sense for a rubygem. So, the gem itself uses semver and makes available a constant API_VERSION that stores the version of the MindBody API.


See the various issues


This gem is written by Stafford Brunk

Bitdeli Badge