0.0
No commit activity in last 3 years
No release in over 3 years
Expediacom is a lightweight flexible Ruby SDK for the official Expedia.com API
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.10
>= 0
~> 10.0

Runtime

 Project Readme

Expedia Api

Build Status

This is a ruby wrapper for the official Expedia.com API. Please note that the Expedia.com API is a different than the one provided by the Expedia Affiliate Network. They are different companies. If you want to use the EAN Api please use expedia gem.

Installation

Add this line to your application's Gemfile:

gem 'expedia_api'

And then execute:

$ bundle

Or install it yourself as:

$ gem install expedia_api

Usage

Create an initializer that sets your API key:

config/initializers/expedia_api.rb

Set the API key:

Expedia.api_key = 'my_api_key'

Then when using the API create a new client object:

client = ExpediaApi::Client.new

Search Hotels:

client.get_list({})

Search Packages:

client.search_packages({})

The parameters you can pass to get_list are the following:

location:
  example:
    40.714269,-74.005973
  description:
    The composition of latitude and longitude values
    identifying the center point of a hotel search radius (circle). The
    latitude and longitude values are joined together with a comma (,)
    character.
  remark:
    When this parameter is used, the RADIUS parameter is required.
radius:
  example:
    10km
  description:
    The size of the hotel search radius around the specified latitude
    and longitude, along with its associated unit of measure.
    The units default to kilometers if a value isn't provided in the composition.
    Valid units are KM and MI.
  remark:
    Radius must be less than 200.0km/124.30081 miles. The radius only
    applies to the LOCATION parameter.
hotelids:
  example:
    28082, 11133
  description:
    Comma-separated list of Hotel IDs for which to return results.
regionids:
  example:
    8816, 1234
  description:
    Comma-separated list of Expedia Region IDs. Searching is done for
    all hotels in the regions.
dates:
  example:
    2011-01-19,2011-01-20
  description:
    Comma separated list of check- in/check-out dates for hotel stay
    in an ISO 8601 Date format [YYYY-MM-DD]. If this parameter is not
    included, a dateless search will be conducted which returns a
    featured offer for each of the hotels found.
  remark:
    Max advance search window is 330 days.
language:
  example:
    en-US
  description:
    language is composed of language code and country code, connected by
    "-". Must be a valid language for the Point of Sale. For example,
    "fr-FR"/"fr- CA" is a valid language for France/Canada site, but
    could not be "fr-US". If no language is specified, a default
    language will be used.
currency:
  example:
    USD
  description:
    Value should be a standard ISO. 3 letter currency code, e.g. CAD -
    Canadian dollar, USD - US dollar
    If not specified for dated searches, USD will be returned.
    If not specified for dateless searches, the pos native currency
    will be returned.
adults:
  example:
    2,1
  description:
    Comma-separated list that specifies the number of adults staying in
    each of the rooms to be requested.
  remark:
    Default value will be 2 if not specified. It indicates only one room
    is required and there are two adults staying in the room. Up to 8
    rooms can be requested at a time.
    Example:
    adults=2,2,2,2 (four rooms with two adults in each room))
availonly:
  example:
    true
  description:
    return available hotels only. default: true

Please refer to the official API documentation by the Expedia.com team for more parameters.

You can also setup an http proxy. Expedia whitelists IPs that are able to access their API.

  ExpediaApi.proxy_uri      = "http://proxy_uri.com:3128"
  ExpediaApi.proxy_password = "foobar"
  ExpediaApi.proxy_user     = "foobar"

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on.