api-flow
Version:
A flow written in ES6 using Immutable to convert between API description formats (Swagger, etc.) and other programs such as cURL command lines.
1,348 lines (1,347 loc) • 298 kB
JSON
{
"swagger": "2.0",
"info": {
"description": "Expedia Mobile API Documentation. <br><font color=\"blue\"> (Note: In case of authorization exception, just <a href=\"/static/mobile/swaggerui/#!/User/signin-user\">Sign-In</a>)</font>",
"version": "0.0.1",
"title": "Flights, Hotels, LX, Cars, Rails, Packages, Trips, User API"
},
"schemes": [
"https"
],
"paths": {
"/api/flight/search": {
"get": {
"tags": [
"Flights"
],
"summary": "Search",
"description": "Mobile API Flights",
"operationId": "flights-search",
"produces": [
"application/json"
],
"parameters": [
{
"in": "query",
"name": "departureDate",
"description": "Date the customer wants to leave for their flight on, in ISO format.",
"type": "string",
"required": true,
"defaultValue": "2015-12-15"
},
{
"in": "query",
"name": "returnDate",
"description": "Date the customer wants to return on. If present indicates a round trip search. If not supplied, then it's a one-way search.",
"type": "string"
},
{
"in": "query",
"name": "departureAirport",
"description": "The three letter airport code for where the customer is leaving from.",
"type": "string",
"required": true,
"defaultValue": "SFO"
},
{
"in": "query",
"name": "arrivalAirport",
"description": "The three letter airport code to where the customer is going.",
"type": "string",
"required": true,
"defaultValue": "BOS"
},
{
"in": "query",
"name": "prettyPrint",
"description": "Controls JSON response formatting. When set to true, its human-readable.",
"type": "boolean"
},
{
"in": "query",
"name": "numberOfAdultTravelers",
"description": "Number of Adult Travelers (Default: 1)",
"type": "integer"
},
{
"in": "query",
"name": "childTravelerAge",
"description": "childTravelerAge represents the age of a single child traveler. You are required to specify the age of all child travelers. That means you must specify this parameter for each child that will be flying. Valid values are 0-17 (0 for an infant under the age of one year).",
"type": "integer"
},
{
"in": "query",
"name": "infantSeatingInLap",
"description": "Set to true if infant(s) are without a reserved seat (in an adult's lap).(Default: false - Infant(s) in a reserved seat)",
"type": "boolean"
},
{
"in": "query",
"name": "lccAndMerchantFareCheckoutAllowed",
"description": "flag to indicate whether lcc and merchant fares should be returned in search response",
"type": "boolean"
},
{
"in": "query",
"name": "correlationId",
"description": "Optional parameter to define a correlation between a hotel search and a flight search",
"type": "string"
},
{
"in": "query",
"name": "maxOfferCount",
"description": "Maximum number of offers to return. (Default: 111, Max: 2000)",
"type": "integer"
},
{
"in": "query",
"name": "showRefundableFlight",
"description": "Set to true to return only refundable(Free cancellation available) flights in the search response .(Default:False)",
"type": "boolean"
},
{
"in": "query",
"name": "nonStopFlight",
"description": "Set to true to return only non stop flights in the search response .(Default:False)",
"type": "boolean"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "#/definitions/flightSearchResponse"
}
}
}
}
},
"/api/flight/trip/create": {
"post": {
"tags": [
"Flights"
],
"summary": "Create A Trip",
"description": "Mobile API Flights Create Trip Operation",
"operationId": "flights-create-trip",
"consumes": [
"application/x-www-form-urlencoded"
],
"produces": [
"application/json"
],
"parameters": [
{
"in": "formData",
"name": "productKey",
"description": "The product key, obtained from /api/flight/search, we are going to create a trip for. The productKey or mobileShoppingKey is required.",
"type": "string",
"required": true
},
{
"in": "formData",
"name": "mobileShoppingKey",
"description": "The mobile shopping key we are going to create a trip for. The productKey or mobileShoppingKey is required.",
"type": "string"
},
{
"in": "formData",
"name": "tripTitle",
"description": "The name of this itinerary as it will appear to customer service and in the itinerary list. Upto 255 characters that must be one of these: .,a-zA-Z0-9'- #",
"type": "string"
},
{
"in": "formData",
"name": "withInsurance",
"description": "Whether to return the available insurance options for this trip. Currently this only works for flights. (Default: false)",
"type": "boolean"
},
{
"in": "formData",
"name": "qualifyAirAttach",
"description": "Whether to return a qualified air attach product for this trip. It will use the same rate plan and room type codes as the productKey sent in the request. But the product key that will be used to get the air attached product will be different.",
"type": "boolean"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "apiCreateTripResponse"
}
}
}
}
},
"/api/flight/trip/cardFee": {
"post": {
"tags": [
"Flights"
],
"summary": "Get the credit card fee for a trip",
"description": "This api provides an accurate credit card fee that a user would have to pay when booking a trip.",
"operationId": "flights-trip-fee",
"consumes": [
"application/x-www-form-urlencoded"
],
"produces": [
"application/json"
],
"parameters": [
{
"in": "formData",
"name": "tripId",
"description": "The id of the trip to get the credit card fee for.",
"type": "string",
"required": true
},
{
"in": "formData",
"name": "creditCardId",
"description": "This is a string that identifies the credit card that will be used to pay for the trip. It can be either the first 6 digits of a credit card number, called the bin prefix. Or it can be the paymentsInstrumentsId of a stored credit card in a user's account. The paymentsInstrumentsId can be found in the list of storedCreditCards from the sign-in response.",
"type": "string"
},
{
"in": "formData",
"name": "clientId",
"description": "Client Id",
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "cardFee"
}
}
}
}
},
"/api/flight/details": {
"get": {
"tags": [
"Flights"
],
"summary": "Details",
"description": "Mobile API Flight Details Operation",
"operationId": "flights-details",
"produces": [
"application/json"
],
"parameters": [
{
"in": "query",
"name": "departureDate",
"description": "Date the customer wants to leave for their flight on, in ISO format.",
"type": "string",
"required": true,
"defaultValue": "2015-12-15"
},
{
"in": "query",
"name": "returnDate",
"description": "Date the customer wants to return on. If present indicates a round trip search. If not supplied, then it's a one-way search.",
"type": "string"
},
{
"in": "query",
"name": "productKey",
"description": "A productKey, obtained from a call to flight search, within the past 20 minutes. Required. If the price has changed since the key was issued, a price change error will be thrown (eventually; not implemented yet). If the key has expired, this will (eventually, not implemented yet) return product key expired.",
"type": "string",
"required": true
},
{
"in": "query",
"name": "departureAirport",
"description": "The three letter airport code for where the customer is leaving from.",
"type": "string",
"required": true,
"defaultValue": "SFO"
},
{
"in": "query",
"name": "arrivalAirport",
"description": "The three letter airport code for where the customer is going.",
"type": "string",
"required": true,
"defaultValue": "BOS"
},
{
"in": "query",
"name": "numberOfAdultTravelers",
"description": "Number of Adult Travelers (Default: 1)",
"type": "string"
},
{
"in": "query",
"name": "childTravelerAge",
"description": "childTravelerAge represents the age of a single child traveler. You are required to specify the age of all child travelers. That means you must specify this parameter for each child that will be flying. Valid values are 0-17 (0 for an infant under the age of one year).",
"type": "string"
},
{
"in": "query",
"name": "infantSeatingInLap",
"description": "Set to true if infant(s) are without a reserved seat (in an adult's lap).(Default: false - Infant(s) in a reserved seat)",
"type": "string"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "flightDetailJsonResponse"
}
}
}
}
},
"/api/flight/image": {
"get": {
"tags": [
"Flights"
],
"summary": "Flight Image",
"description": "Mobile API Flight Image Operation",
"operationId": "flights-image",
"produces": [
"application/json"
],
"parameters": [
{
"in": "query",
"name": "destinationCode",
"description": "The three letter airport code or metro code of the destination. ",
"type": "string",
"required": true,
"defaultValue": "SFO"
},
{
"in": "query",
"name": "imageWidth",
"description": "Requested width of the image.",
"type": "integer",
"required": true,
"defaultValue": "640"
},
{
"in": "query",
"name": "imageHeight",
"description": "Requested height of the image.",
"type": "integer",
"required": true,
"defaultValue": "960"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "imageJsonResponse"
}
}
}
}
},
"/api/mobile/image": {
"get": {
"tags": [
"Flights"
],
"summary": "Mobile Image",
"description": "Mobile API Flight Mobile Image Operation",
"operationId": "flights-mobile-image",
"produces": [
"application/json"
],
"parameters": [
{
"in": "query",
"name": "imageCode",
"description": "image primary key, for example CAR:ECONOMY ACTIVITY:DISNEY DESTINATION:JFK DESTINATIONMOBILEWEB:JFK CARMOBILEWEB:MINI",
"type": "string",
"required": true,
"defaultValue": "CAR:ECONOMY"
},
{
"in": "query",
"name": "imageType",
"description": "type of image. examples DESTINATION DESTINATIONMOBILEWEB CAR CARMOBILEWEB ACTIVITY",
"type": "string",
"required": true,
"defaultValue": "DESTINATION"
},
{
"in": "query",
"name": "imageWidth",
"description": "Requested width of the image.",
"type": "integer",
"required": true,
"defaultValue": "640"
},
{
"in": "query",
"name": "imageHeight",
"description": "Requested height of the image.",
"type": "integer",
"required": true,
"defaultValue": "960"
}
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "imageJsonResponse"
}
}
}
}
},
"/api/flight/airportDropDown": {
"get": {
"tags": [
"Flights"
],
"summary": "Airport Dropdown",
"description": "Mobile API Flight Airport Dropdown Operation",
"operationId": "flights-airport-dropdown",
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "airportDropDownDataResponse"
}
}
}
}
},
"/api/flight/checkout": {
"post": {
"tags": [
"Flights"
],
"summary": "Mobile Flight Checkout",
"description": "Checkout a previously created flight trip, requiring payment fields, the trip id, and the passenger fields",
"operationId": "flights-checkout",
"produces": [
"application/json"
],
"parameters": [
{
"in": "formData",
"name": "tripId",
"description": "The trip ID of an existing trip, from /api/flight/trip/create.",
"type": "string",
"required": true
},
{
"in": "formData",
"name": "expectedTotalFare",
"description": "The expected total price of the trip, matching exactly whatever the user last saw. No leading zeros, no thousands separators, and 2 decimal places of precision. This is obtained from /api/flight/trip/create.",
"type": "string",
"required": true
},
{
"in": "formData",
"name": "expectedFareCurrencyCode",
"description": "Three letter 4217 ISO currency code of the expected total price. This should be whatever was returned by the server. Conversions will not be done. This is obtained from /api/flight/trip/create.",
"type": "string",
"required": true
},
{
"in": "formData",
"name": "expectedCardFee",
"description": "The expected credit card fee, as returned by the createTrip call in the validFormsOfPayment object for whatever credit card the user is paying with. No leading zeros, no thousands separators, and 2 decimal places of precision.",
"type": "string"
},
{
"in": "formData",
"name": "expectedCardFeeCurrencyCode",
"description": "Three letter 4217 ISO currency code of the expected credit card fee. This should be whatever was returned by the server. Conversions will not be done.",
"type": "string"
},
{
"in": "formData",
"name": "doIThinkImSignedIn",
"description": "As a client I am checking-out with the assumption that I am signed in",
"type": "boolean"
},
{
"in": "formData",
"name": "tealeafTransactionId",
"description": "The unique transaction ID used in TeaLeaf PSR tracking",
"type": "string"
},
{
"in": "formData",
"name": "omniturePartnerId",
"description": "Omniture partner identification string",
"type": "string"
},
{
"in": "formData",
"name": "sendEmailConfirmation",
"description": "Used to check if confirmation email needs to be sent or not.",
"type": "boolean"
},
{
"in": "formData",
"name": "mainFlightPassenger[0].phoneCountryCode",
"description": "Country code of the phone of the main flight passenger",
"type": "string"
},
{
"in": "formData",
"name": "mainFlightPassenger[0].phone",
"description": "Phone number of the main flight passenger",
"type": "string"
},
{
"in": "formData",
"name": "mainFlightPassenger[0].email",
"description": "Email address of the main flight passenger",
"type": "string"
},
{
"in": "formData",
"name": "mainFlightPassenger[0].password",
"description": "Password of the main flight passenger",
"type": "string"
},
{
"in": "formData",
"name": "mainFlightPassenger[0].expediaEmailOptIn",
"description": "If the main flight passenger wishes to opt out for Expedia emails or not",
"type": "boolean"
},
{
"in": "formData",
"name": "associatedFlightPassengers[0].title",
"description": "Title of the associated flight passenger fields.",
"type": "string"
},
{
"in": "formData",
"name": "associatedFlightPassengers[0].gender",
"description": "Gender of the associated flight passenger fields.",
"type": "string"
},
{
"in": "formData",
"name": "associatedFlightPassengers[0].birthDate",
"description": "Birth date of the associated flight passenger fields.",
"type": "string"
},
{
"in": "formData",
"name": "associatedFlightPassengers[0].seatPreference",
"description": "Seat preference of the associated flight passenger fields.",
"type": "string"
},
{
"in": "formData",
"name": "associatedFlightPassengers[0].passengerCategory",
"description": ":Passenger category of the associated flight passenger fields.",
"type": "string"
},
{
"in": "formData",
"name": "associatedFlightPassengers[0].passportCountryCode",
"description": "Passport country code of the associated flight passenger fields.",
"type": "string"
},
{
"in": "formData",
"name": "associatedFlightPassengers[0].TSARedressNumber",
"description": "TSA redress number of the associated flight passenger fields.",
"type": "string"
},
{
"in": "formData",
"name": "associatedFlightPassengers[0].knownTravelerNumber",
"description": "knownTravelerNumber(PreCheckNumber) of the associated flight passenger fields.",
"type": "integer"
},
{
"in": "formData",
"name": "associatedFlightPassengers[0].specialAssistanceOption",
"description": "Special assistance option for the associated flight passenger fields.",
"type": "string"
},
{
"in": "formData",
"name": "validateWithChildren",
"description": "Set this flag to true to enable child validation logic on the server. If you wish to book with child passengers then you must set this flag to true. (default: false)",
"type": "boolean"
},
{
"in": "formData",
"name": "phoneCountryCode",
"description": "Country code of the phone of the main flight passenger",
"type": "string",
"required": true,
"defaultValue": "+1"
},
{
"in": "formData",
"name": "phone",
"description": "Phone number of the main flight passenger",
"type": "string",
"required": true,
"defaultValue": "1234567890"
},
{
"in": "formData",
"name": "email",
"description": "Email address of the main flight passenger",
"type": "string",
"required": true,
"defaultValue": "test@expedia.com"
},
{
"in": "formData",
"name": "password",
"description": "Password of the main flight passenger",
"type": "string"
},
{
"in": "formData",
"name": "expediaEmailOptIn",
"description": "If the main flight passenger wishes to opt out for Expedia emails or not",
"type": "boolean"
},
{
"in": "formData",
"name": "title",
"description": "Title of the associated flight passenger fields.",
"type": "string"
},
{
"in": "formData",
"name": "gender",
"description": "Gender of the associated flight passenger fields.",
"type": "string",
"enum": [
"MALE",
"FEMALE"
],
"required": true
},
{
"in": "formData",
"name": "birthDate",
"description": "Birth date of the associated flight passenger fields.",
"type": "string",
"required": true,
"defaultValue": "1989-12-12"
},
{
"in": "formData",
"name": "seatPreference",
"description": "Seat preference of the associated flight passenger fields.",
"type": "string"
},
{
"in": "formData",
"name": "passengerCategory",
"description": ":Passenger category of the associated flight passenger fields.",
"type": "string"
},
{
"in": "formData",
"name": "passportCountryCode",
"description": "Passport country code of the associated flight passenger fields.",
"type": "string"
},
{
"in": "formData",
"name": "TSARedressNumber",
"description": "TSA redress number of the associated flight passenger fields.",
"type": "string"
},
{
"in": "formData",
"name": "knownTravelerNumber",
"description": "knownTravelerNumber(PreCheckNumber) of the associated flight passenger fields.",
"type": "integer"
},
{
"in": "formData",
"name": "specialAssistanceOption",
"description": "Special assistance option for the associated flight passenger fields.",
"type": "string"
},
{
"in": "formData",
"name": "firstName",
"description": "The first name of the traveler",
"type": "string",
"required": "true",
"defaultValue": "Andrew"
},
{
"in": "formData",
"name": "middleName",
"description": "The middle name of the traveler. ",
"type": "string"
},
{
"in": "formData",
"name": "lastName",
"description": "The last name of the traveler.",
"type": "string",
"required": "true",
"defaultValue": "Lappin"
},
{
"in": "formData",
"name": "streetAddress",
"description": "The street part of the credit card owner's billing address..",
"type": "string",
"required": true,
"defaultValue": "Test Street"
},
{
"in": "formData",
"name": "streetAddress2",
"description": "Apartment or suite number of the traveler's billing address.",
"type": "string"
},
{
"in": "formData",
"name": "city",
"description": "The city of the traveler's billing address.",
"type": "string",
"required": true,
"defaultValue": "San Francisco"
},
{
"in": "formData",
"name": "state",
"description": "The state (or province) of the traveler's billing address.",
"type": "string",
"required": true,
"defaultValue": "CA"
},
{
"in": "formData",
"name": "country",
"description": "The 3 letter country code of the traveler's billing address.",
"type": "string",
"required": true,
"defaultValue": "USA"
},
{
"in": "formData",
"name": "postalCode",
"description": "The postal code of the traveler's billing address. Required only postalCode only checkout.",
"type": "string",
"required": true,
"defaultValue": "94111"
},
{
"in": "formData",
"name": "creditCardNumber",
"description": "The credit card number used for this booking, if checking out with a new card. This field is required for guest checkout.",
"type": "string",
"required": true,
"defaultValue": "4111111111111111"
},
{
"in": "formData",
"name": "expirationDateYear",
"description": "The 4 digit expiration date year of the credit card used for this booking. This field is required for guest checkout.",
"type": "integer",
"required": true,
"defaultValue": "2025"
},
{
"in": "formData",
"name": "expirationDateMonth",
"description": "The expiration date month of the credit card used for this booking. This field is required guest for checkout.",
"type": "integer",
"required": true,
"defaultValue": "12"
},
{
"in": "formData",
"name": "cvv",
"description": "The CVV of the traveler's credit card used for this booking.",
"type": "string",
"required": "true",
"defaultValue": "111"
},
{
"in": "formData",
"name": "storedCreditCardId",
"description": "The GUID for the stored credit card information to be used for payment. The retrieved credit card information should trump the other credit card parameter in this request.",
"type": "string"
},
{
"in": "formData",
"name": "storeCreditCardInUserProfile",
"description": "Indicates whether to save the credit card information as a stored credit card in the user profile. This is ignored if the user is not signed in.",
"type": "boolean"
},
{
"in": "formData",
"name": "nameOnCard",
"description": "The card holder's name",
"type": "string",
"required": true,
"defaultValue": "Andrew Lappin"
},
{
"in": "formData",
"name": "prettyPrint",
"description": "If true, return JSON with tabs, spaces and newlines to be human readable",
"type": "boolean"
},
{
"in": "formData",
"name": "suppressFinalBooking",
"description": "If true, do not actually charge for and book the trip, stop after creating the itinerary. Used for testing on the checkout call only. Checkout will return 00000 for the OMS order ID when this is true",
"type": "boolean"
}
],
"responses": {
"200-OK": {
"description": "successful operation",
"schema": {
"$ref": "apiCheckoutResponseFlightOkResponse"
}
},
"200-PriceChange": {
"description": "successful operation",
"schema": {
"$ref": "apiCheckoutResponseFlightPriceChangeResponse"
}
}
}
}
},
"/m/api/flight/trip/V2/create": {
"post": {
"tags": [
"Flights"
],
"summary": "Create a trip for partner",
"description": "Creates a flight trip, passing a product key and all required fields.",
"operationId": "flights-checkout",
"produces": [
"application/json"
],
"parameters": [
{
"in": "formData",
"name": "productKey",
"description": "The product key we are going to create a trip for. The productKey or mobileShoppingKey is required.",
"type": "string"
},
{
"in": "formData",
"name": "numberOfAdultTravelers",
"description": "Number of Adult Travelers (Default: 1).",
"type": "integer"
},
{
"in": "formData",
"name": "childTravelerAge[0]",
"description": "childTravelerAge represents the age of a single child traveler. You are required to specify the age of all child travelers. That means you must specify this parameter for each child that will be flying. Valid values are 0-17 (0 for an infant under the age of one year). If you would like to specify 3 child travelers with the ages of 1, 3 and 8 years, then your query string should contain:childTravelerAge=1&childTravelerAge=3&childTravelerAge=8",
"type": "integer"
},
{
"in": "formData",
"name": "infantSeatingInLap",
"description": "Set to true if infant(s) are without a reserved seat (in an adult's lap).(Default: false - Infant(s) in a reserved seat)",
"type": "boolean",
"defaultValue": "false"
},
{
"in": "formData",
"name": "tripTitle",
"description": "The name of this itinerary as it will appear to customer service and in the itinerary list. Upto 255 characters that must be one of these: .,a-zA-Z0-9'- #",
"type": "string"
},
{
"in": "formData",
"name": "withInsurance",
"description": "Whether to return the available insurance options for this trip. Currently this only works for flights. (Default: false)",
"type": "boolean",
"defaultValue": false
}
],
"responses": {
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "apiCreateTripResponse"
}
}
}
}
}
},
"/m/api/hotel/search": {
"get": {
"tags": [
"Hotels"
],
"summary": "Search",
"description": "Mobile API Hotels Search\n\nThere are multiple successful responses for this operation.\nSee the examples below for more information.",
"operationId": "hotels-search",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"in": "query",
"name": "tripId",
"description": "This field is optional and will default to the the POS default PriceType.",
"type": "string",
"enum": [
"BASE_PRICE_ONLY",
"TOTAL_PRICE",
"DEFAULT_POS_PRICE_TYPE_WITH_FEES"
]
},
{
"in": "query",
"name": "city",
"description": "A string to identify the city to search.",
"type": "string",
"required": true,
"defaultValue": "SFO"
},
{
"in": "query",
"name": "regionId",
"description": "An Expedia region ID to limit the search to a particular region.",
"type": "string"
},
{
"in": "query",
"name": "latitude",
"description": "Latitude to be used in combination with longitude for a coordinate search.",
"type": "string"
},
{
"in": "query",
"name": "longitude",
"description": "Longitude to be used in combination with latitude for a coordinate search.",
"type": "string"
},
{
"in": "query",
"name": "correlationId",
"description": "Define a correlation between a hotel search and a flight search.",
"type": "string"
},
{
"in": "query",
"name": "filterUnavailable",
"description": "Unavailable hotels will be removed from the response if set to true. The default is false if not specified.",
"type": "boolean"
},
{
"in": "query",
"name": "filterHotelName",
"description": "Hotel name used to filter the search results.",
"type": "string"
},
{
"in": "query",
"name": "filterInventoryType",
"description": "A parameter to filter by inventory type. Only supports MERCHANT right now, all other values are just ignored.",
"type": "string"
},
{
"in": "query",
"name": "filterPrice",
"description": "Used to filter by price, make sure it matches filterPriceBuckets if counts are desired. Must contain 1 or 2 numbers. 1 number means there is no max price, min price must be greater than or equal to 0.",
"type": "string"
},
{
"in": "query",
"name": "filterPriceBuckets",
"description": "Used to define custom price filter buckets. if not provided then the default price filter buckets for the POS will be used. No need to define 0, each value in price bucket is minimum of price range. Note that price range can be decimal format but buckets must be integer. If supplied 4 values are required as input.",
"type": "string"
},
{
"in": "query",
"name": "filterStarRatings",
"description": "Used to filter by star rating. Must be in increments of 5 and separated by commas(minStarRating=0 and maxStarRating=50). Ex. '0,5,10' means 0, 0.5 and 1 star hotels",
"type": "string"
},
{
"in": "query",
"name": "filterAmenities",
"description": "Used to filter by amenities. Must be as a list of amenity ids separated by commas. Please note that there is no way at this time to validate the ids are actually valid.",
"type": "string"
},
{
"in": "query",
"name": "sortOrder",
"description": "Order to sort the list of hotels by Expedia picks, star rating, price and guest rating.",
"type": "boolean"
},
{
"in": "query",
"name": "sortOrderFilter",
"description": "A post process sort order filter used to apply post sort order filtering to the sorted (sortOrder) search results.",
"type": "string"
},
{
"in": "query",
"name": "resultsPerPage",
"description": "The number of hotels to return per page. A value of -1 (negative one) is reserved to mean Return ALL matching hotels. The default value is 25 (twenty five).",
"type": "integer"
},
{
"in": "query",
"name": "pageIndex",
"description": "The zero-based index of the page that you are requesting. The default value is 0 (zero).",
"type": "integer"
},
{
"in": "query",
"name": "forceV2Search",
"description": "A flag to indicate whether the api should do a domain V2 search for the mobile app.",
"type": "boolean"
},
{
"in": "query",
"name": "returnOpaqueHotels",
"description": "Return Opaque hotels if set to true.",
"type": "boolean"
},
{
"in": "query",
"name": "hgid",
"description": "If the hotel group ID parameter (hgid) is present it will take precedence over city, location or lat/long",
"type": "string"
},
{
"in": "query",
"name": "airAttachQualificationCode",
"description": "Qualification code needed to get air attached hotel prices",
"type": "string"
},
{
"in": "query",
"name": "enableSponsoredListings",
"description": "Used to check for sponsoredListing. By default the value would be false",
"type": "boolean"
},
{
"in": "query",
"name": "sourceType",
"description": "Source type for the request",
"type": "string",
"enum": [
"mobileapp",
"mobileweb"
]
},
{
"in": "query",
"name": "checkInDate",
"description": "Check in date in ISO format (yyyy-MM-dd)",
"type": "string",
"required": true,
"defaultValue": "2015-12-01"
},
{
"in": "query",
"name": "checkOutDate",
"description": "Check out date in ISO format (yyyy-MM-dd)",
"type": "string",
"required": true,
"defaultValue": "2015-12-03"
},
{
"in": "query",
"name": "room1",
"description": "[Optional if room field is specified] A Comma Separated Value of #OfAdults, followed by children's ages for all children that are 18 and under. If the child is under 1 then specify as 0. For example 2,12,2,3,0. If it's just adults an example would be 2.",
"type": "string",
"defaultValue": "2"
},
{
"in": "query",
"name": "room",
"description": "[Optional if room1 field is specified] A Comma Separated Value of #OfAdults, followed by children's ages for all children that are 18 and under. If the child is under 1 then specify as 0. For example 2,12,2,3,0. If it's just adults an example would be 2.",
"type": "string"
}
],
"responses": {
"200-OK": {
"schema": {
"$ref": "#/definitions/hotelSearchResponse"
}
},
"200-Ambiguous": {
"schema": {
"$ref": "#/definitions/hotelAmbiguousResponse"
}
}
}
}
},
"/m/api/hotel/offers": {
"get": {
"tags": [
"Hotels"
],
"summary": "Get Offers",
"description": "Mobile API Hotels Offers",
"operationId": "hotels-offers",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"in": "query",
"name": "hotelId",
"description": "a 32-bit integer, currently between 1 through 7 digit number",
"type": "string",
"required": true
},
{
"in": "query",
"name": "priceType",
"description": "Price Type, can only be TOTAL_PRICE or BASE_PRICE_ONLY",
"type": "string",
"enum": [
"TOTAL_PRICE",
"BASE_PRICE_ONLY"
]
},
{
"in": "query",
"name": "useCacheForAirAttach",
"description": "[Optional] If this flag is set then the hotel offers (on a successful offers call) and the search fields will be cached. There is a possiblilty that theywill be used later in the create trip calls",
"type": "boolean"
},
{
"in": "query",
"name": "sourceType",
"description": "Source Type, for example mobilweb or mobileapp",
"type": "string"
},
{
"in": "query",
"name": "checkInDate",
"description": "Checkin Date",
"type": "string",
"required": true,
"defaultValue": "2015-12-01"
},
{
"in": "query",
"name": "checkOutDate",
"description": "Checkout Date",
"type": "string",
"required": true,
"defaultValue": "2015-12-03"
},
{
"in": "query",
"name": "room1",
"description": "[Optional if room field is specified] A Comma Separated Value of #OfAdults, followed by children's ages for all children that are 18 and under. If the child is under 1 then specify as 0. For example 2,12,2,3,0. If it's just adults an example would be 2.",
"type": "string",
"defaultValue": "2"
},
{
"in": "query",
"name": "room",
"description": "[Optional if room1 field is specified] A Comma Separated Value of #OfAdults, followed by children's ages for all children that are 18 and under. If the child is under 1 then specify as 0. For example 2,12,2,3,0. If it's just adults an example would be 2.",
"type": "string"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"$ref": "jsonGetOfferResponse"
}
}
}
}
},
"/m/api/hotel/trip/create": {
"post": {
"tags": [
"Hotels"
],
"summary": "Create A Trip",
"description": "Mobile API Hotels Create Trip",
"operationId": "hotels-create-trip",
"consumes": [
"application/x-www-form-urlencoded"
],
"produces": [
"application/json"
],
"parameters": [
{
"in": "formData",
"name": "productKey",
"description": "The product key, obtained by calling /m/api/hotel/offers, we are going to create a trip for.",
"type": "string",
"required": true
},
{
"in": "formData",
"name": "tripTitle",
"description": "[Optional] The name of this itinerary as it will appear to customer service and in the itinerary list. Upto 255 characters that must be one of these: .,a-zA-Z0-9'- #",
"type": "string"
},
{
"in": "formData",
"name": "withInsurance",
"description": "[Optional] Whether to return the available insurance options for this trip. Currently this only works for flights. (Default: false)",
"type": "boolean"
},
{
"in": "formData",
"name": "qualifyAirAttach",
"description": "[Optional] Whether to return a qualified air attach product for this trip. It will use the same rate plan and room type codes as the productKey sent in the request. But the product key that will be used to get the air attached product will be different",
"type": "boolean"
},
{
"in": "formData",
"name": "roomInfoFields[0].room",
"description": "A Comma Separated Value of #OfAdults, followed by children's ages for all children that are 18 and under. If the child is under 1 then specify as 0. For example 2,12,2,3,0. If it's just adults an example would be 2.",
"type": "array",
"items": {
"type": "string"
},
"required": true,
"defaultValue": "2"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"$ref": "jsonCreateTripResponse"
}
}
}
}
},
"/m/api/hotel/trip/checkout": {
"post": {
"tags": [
"Hotels"
],
"summary": "Checkout",
"description": "Mobile API Hotels Checkout",
"operationId": "hotels-checkout",
"consumes": [
"application/x-www-form-urlencoded"
],
"produces": [
"application/json"
],
"parameters": [
{
"in": "formData",
"name": "tripId",
"description": "The trip ID of an existing trip, from /m/api/hotel/trip/create.",
"type": "string",
"required": true
},
{
"in": "formData",
"name": "checkInDate",
"description": "Check in date in ISO format (yyyy-MM-dd)",
"type": "string",
"required": true,
"defaultValue": "2015-12-12"
},
{
"in": "formData",
"name": "checkOutDate",
"description": "Check out date in ISO format (yyyy-MM-DD)",
"type": "string",
"required": true,
"defaultValue": "2015-12-14"
},
{
"in": "formData",
"name": "rooms",
"description": "A list of room preferences to be applied to the rooms being booked.",
"type": "string"
},
{
"in": "formData",
"name": "sendEmailConfirmation",
"description": "Used to check if confirmation email needs to be sent or not.",
"type": "boolean"
},
{
"in": "formData",
"name": "bedTypeId",
"description": "Parameter that indicates the selected bed Type. Defaults to the first available bed type of the hotel offer. [Deprecated]. Pass bedTypeId for each room.",
"type": "integer"
},
{
"in": "formData",
"name": "phoneCountryCode",
"description": "The country code of the phone number of the traveler. Only the numeric values in this field are used. +44 results in 44",
"type": "integer",
"required": true,
"defaultValue": "+1"
},
{
"in": "formData",
"name": "phone",
"description": "The phone number of the traveler. Only the numeric values in this field are used. ",
"type": "integer",
"required": true,
"defaultValue": "123457890"
},
{
"in": "formData",
"name": "email",
"description": "This passenger's email address. Required, although ignored for logged in users, as it will use their email on file instead.",
"type": "string",
"required": true,
"defaultValue": "test@expedia.com"
},
{
"in": "formData",
"name": "password",
"description": "The password provided by the expedia user. This would imply that a user needs to be created with the above email id and this password. To be done only if this is a guest request.",
"type": "string"
},
{
"in": "formData",
"name": "expediaEmailOptIn",
"description": "Whether to opt-in the user's email to travel deals",
"type": "string"
},
{
"in": "formData",
"name": "firstName",
"description": "The first name of the traveler",
"type": "string",
"required": true,
"defaultValue": "Andrew"
},
{
"in": "formData",
"name": "middleName",
"descript