<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="qpxExpress_v1.html">QPX Express API</a> . <a href="qpxExpress_v1.trips.html">trips</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#search">search(body)</a></code></p>
<p class="firstline">Returns a list of flights.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="search">search(body)</code>
  <pre>Returns a list of flights.

Args:
  body: object, The request body. (required)
    The object takes the form of:

{ # A QPX Express search request.
    "request": { # A QPX Express search request, which will yield one or more solutions. # A QPX Express search request. Required values are at least one adult or senior passenger, an origin, a destination, and a date.
      "passengers": { # The number and type of passengers. Unfortunately the definition of an infant, child, adult, and senior citizen varies across carriers and reservation systems. # Counts for each passenger type in the request.
        "kind": "qpxexpress#passengerCounts", # Identifies this as a passenger count object, representing the number of passengers. Value: the fixed string qpxexpress#passengerCounts.
        "infantInLapCount": 42, # The number of passengers that are infants travelling in the lap of an adult.
        "seniorCount": 42, # The number of passengers that are senior citizens.
        "infantInSeatCount": 42, # The number of passengers that are infants each assigned a seat.
        "childCount": 42, # The number of passengers that are children.
        "adultCount": 42, # The number of passengers that are adults.
      },
      "slice": [ # The slices that make up the itinerary of this trip. A slice represents a traveler's intent, the portion of a low-fare search corresponding to a traveler's request to get between two points. One-way journeys are generally expressed using one slice, round-trips using two. An example of a one slice trip with three segments might be BOS-SYD, SYD-LAX, LAX-BOS if the traveler only stopped in SYD and LAX just long enough to change planes.
        { # Criteria a desired slice must satisfy.
          "origin": "A String", # Airport or city IATA designator of the origin.
          "preferredCabin": "A String", # Prefer solutions that book in this cabin for this slice. Allowed values are COACH, PREMIUM_COACH, BUSINESS, and FIRST.
          "kind": "qpxexpress#sliceInput", # Identifies this as a slice input object, representing the criteria a desired slice must satisfy. Value: the fixed string qpxexpress#sliceInput.
          "alliance": "A String", # Slices with only the carriers in this alliance should be returned; do not use this field with permittedCarrier. Allowed values are ONEWORLD, SKYTEAM, and STAR.
          "destination": "A String", # Airport or city IATA designator of the destination.
          "maxStops": 42, # The maximum number of stops you are willing to accept in this slice.
          "permittedDepartureTime": { # Two times in a single day defining a time range. # Slices must depart in this time of day range, local to the point of departure.
            "latestTime": "A String", # The latest time of day in HH:MM format.
            "kind": "qpxexpress#timeOfDayRange", # Identifies this as a time of day range object, representing two times in a single day defining a time range. Value: the fixed string qpxexpress#timeOfDayRange.
            "earliestTime": "A String", # The earliest time of day in HH:MM format.
          },
          "permittedCarrier": [ # A list of 2-letter IATA airline designators. Slices with only these carriers should be returned.
            "A String",
          ],
          "maxConnectionDuration": 42, # The longest connection between two legs, in minutes, you are willing to accept.
          "date": "A String", # Departure date in YYYY-MM-DD format.
          "prohibitedCarrier": [ # A list of 2-letter IATA airline designators. Exclude slices that use these carriers.
            "A String",
          ],
        },
      ],
      "saleCountry": "A String", # IATA country code representing the point of sale. This determines the "equivalent amount paid" currency for the ticket.
      "maxPrice": "A String", # Do not return solutions that cost more than this price. The alphabetical part of the price is in ISO 4217. The format, in regex, is [A-Z]{3}\d+(\.\d+)? Example: $102.07
      "solutions": 42, # The number of solutions to return, maximum 500.
      "refundable": True or False, # Return only solutions with refundable fares.
    },
  }


Returns:
  An object of the form:

    { # A QPX Express search response.
    "kind": "qpxExpress#tripsSearch", # Identifies this as a QPX Express API search response resource. Value: the fixed string qpxExpress#tripsSearch.
    "trips": { # A QPX Express search response. # All possible solutions to the QPX Express search request.
      "tripOption": [ # A list of priced itinerary solutions to the QPX Express query.
        { # Trip information.
          "saleTotal": "A String", # The total price for all passengers on the trip, in the form of a currency followed by an amount, e.g. USD253.35.
          "kind": "qpxexpress#tripOption", # Identifies this as a trip information object. Value: the fixed string qpxexpress#tripOption.
          "slice": [ # The slices that make up this trip's itinerary.
            { # Information about a slice. A slice represents a traveller's intent, the portion of a low-fare search corresponding to a traveler's request to get between two points. One-way journeys are generally expressed using 1 slice, round-trips using 2. For example, if a traveler specifies the following trip in a user interface:
                # | Origin | Destination | Departure Date | | BOS | LAX | March 10, 2007 | | LAX | SYD | March 17, 2007 | | SYD | BOS | March 22, 2007 |
                # then this is a three slice trip.
              "duration": 42, # The duration of the slice in minutes.
              "kind": "qpxexpress#sliceInfo", # Identifies this as a slice object. A slice represents a traveller's intent, the portion of a low-fare search corresponding to a traveler's request to get between two points. One-way journeys are generally expressed using 1 slice, round-trips using 2. Value: the fixed string qpxexpress#sliceInfo.
              "segment": [ # The segment(s) constituting the slice.
                { # Details of a segment of a flight; a segment is one or more consecutive legs on the same flight. For example a hypothetical flight ZZ001, from DFW to OGG, would have one segment with two legs: DFW to HNL (leg 1), HNL to OGG (leg 2), and DFW to OGG (legs 1 and 2).
                  "kind": "qpxexpress#segmentInfo", # Identifies this as a segment object. A segment is one or more consecutive legs on the same flight. For example a hypothetical flight ZZ001, from DFW to OGG, could have one segment with two legs: DFW to HNL (leg 1), HNL to OGG (leg 2). Value: the fixed string qpxexpress#segmentInfo.
                  "bookingCodeCount": 42, # The number of seats available in this booking code on this segment.
                  "flight": { # A flight is a sequence of legs with the same airline carrier and flight number. (A leg is the smallest unit of travel, in the case of a flight a takeoff immediately followed by a landing at two set points on a particular carrier with a particular flight number.) The naive view is that a flight is scheduled travel of an aircraft between two points, with possibly intermediate stops, but carriers will frequently list flights that require a change of aircraft between legs. # The flight this is a segment of.
                    "carrier": "A String",
                    "number": "A String", # The flight number.
                  },
                  "leg": [ # The legs composing this segment.
                    { # Information about a leg. (A leg is the smallest unit of travel, in the case of a flight a takeoff immediately followed by a landing at two set points on a particular carrier with a particular flight number.)
                      "origin": "A String", # The leg origin as a city and airport.
                      "originTerminal": "A String", # The terminal the flight is scheduled to depart from.
                      "departureTime": "A String", # The scheduled departure time of the leg, local to the point of departure.
                      "destinationTerminal": "A String", # The terminal the flight is scheduled to arrive at.
                      "secure": True or False, # Whether passenger information must be furnished to the United States Transportation Security Administration (TSA) prior to departure.
                      "connectionDuration": 42, # Duration of a connection following this leg, in minutes.
                      "destination": "A String", # The leg destination as a city and airport.
                      "kind": "qpxexpress#legInfo", # Identifies this as a leg object. A leg is the smallest unit of travel, in the case of a flight a takeoff immediately followed by a landing at two set points on a particular carrier with a particular flight number. Value: the fixed string qpxexpress#legInfo.
                      "meal": "A String", # A simple, general description of the meal(s) served on the flight, for example: "Hot meal".
                      "aircraft": "A String", # The aircraft (or bus, ferry, railcar, etc) travelling between the two points of this leg.
                      "mileage": 42, # The number of miles in this leg.
                      "changePlane": True or False, # Whether you have to change planes following this leg. Only applies to the next leg.
                      "arrivalTime": "A String", # The scheduled time of arrival at the destination of the leg, local to the point of arrival.
                      "duration": 42, # The scheduled travelling time from the origin to the destination.
                      "operatingDisclosure": "A String", # Department of Transportation disclosure information on the actual operator of a flight in a code share. (A code share refers to a marketing agreement between two carriers, where one carrier will list in its schedules (and take bookings for) flights that are actually operated by another carrier.)
                      "onTimePerformance": 42, # In percent, the published on time performance on this leg.
                      "id": "A String", # An identifier that uniquely identifies this leg in the solution.
                    },
                  ],
                  "subjectToGovernmentApproval": True or False, # Whether the operation of this segment remains subject to government approval.
                  "connectionDuration": 42, # In minutes, the duration of the connection following this segment.
                  "bookingCode": "A String", # The booking code or class for this segment.
                  "duration": 42, # The duration of the flight segment in minutes.
                  "id": "A String", # An id uniquely identifying the segment in the solution.
                  "cabin": "A String", # The cabin booked for this segment.
                  "marriedSegmentGroup": "A String", # The solution-based index of a segment in a married segment group. Married segments can only be booked together. For example, an airline might report a certain booking code as sold out from Boston to Pittsburgh, but as available as part of two married segments Boston to Chicago connecting through Pittsburgh. For example content of this field, consider the round-trip flight ZZ1 PHX-PHL ZZ2 PHL-CLT ZZ3 CLT-PHX. This has three segments, with the two outbound ones (ZZ1 ZZ2) married. In this case, the two outbound segments belong to married segment group 0, and the return segment belongs to married segment group 1.
                },
              ],
            },
          ],
          "id": "A String", # Identifier uniquely identifying this trip in a response.
          "pricing": [ # Per passenger pricing information.
            { # The price of one or more travel segments. The currency used to purchase tickets is usually determined by the sale/ticketing city or the sale/ticketing country, unless none are specified, in which case it defaults to that of the journey origin country.
              "fare": [ # The fare used to price one or more segments.
                { # Complete information about a fare used in the solution to a low-fare search query. In the airline industry a fare is a price an airline charges for one-way travel between two points. A fare typically contains a carrier code, two city codes, a price, and a fare basis. (A fare basis is a one-to-eight character alphanumeric code used to identify a fare.)
                  "basisCode": "A String",
                  "origin": "A String", # The city code of the city the trip begins at.
                  "kind": "qpxexpress#fareInfo", # Identifies this as a fare object. Value: the fixed string qpxexpress#fareInfo.
                  "destination": "A String", # The city code of the city the trip ends at.
                  "private": True or False, # Whether this is a private fare, for example one offered only to select customers rather than the general public.
                  "carrier": "A String", # The carrier of the aircraft or other vehicle commuting between two points.
                  "id": "A String", # A unique identifier of the fare.
                },
              ],
              "fareCalculation": "A String", # The horizontal fare calculation. This is a field on a ticket that displays all of the relevant items that go into the calculation of the fare.
              "kind": "qpxexpress#pricingInfo", # Identifies this as a pricing object, representing the price of one or more travel segments. Value: the fixed string qpxexpress#pricingInfo.
              "segmentPricing": [ # The per-segment price and baggage information.
                { # The price of this segment.
                  "kind": "qpxexpress#segmentPricing", # Identifies this as a segment pricing object, representing the price of this segment. Value: the fixed string qpxexpress#segmentPricing.
                  "fareId": "A String", # A segment identifier unique within a single solution. It is used to refer to different parts of the same solution.
                  "freeBaggageOption": [ # Details of the free baggage allowance on this segment.
                    { # Information about free baggage allowed on one segment of a trip.
                      "kilosPerPiece": 42, # The maximum number of kilos any one piece of baggage may weigh.
                      "pounds": 42, # The number of pounds of free baggage allowed.
                      "kind": "qpxexpress#freeBaggageAllowance", # Identifies this as free baggage object, allowed on one segment of a trip. Value: the fixed string qpxexpress#freeBaggageAllowance.
                      "pieces": 42, # The number of free pieces of baggage allowed.
                      "bagDescriptor": [ # A representation of a type of bag, such as an ATPCo subcode, Commercial Name, or other description.
                        { # Information about an item of baggage.
                          "count": 42, # How many of this type of bag will be checked on this flight.
                          "subcode": "A String", # The standard IATA subcode used to identify this optional service.
                          "kind": "qpxexpress#bagDescriptor", # Identifies this as a baggage object. Value: the fixed string qpxexpress#bagDescriptor.
                          "commercialName": "A String", # Provides the commercial name for an optional service.
                          "description": [ # A description of the baggage.
                            "A String",
                          ],
                        },
                      ],
                      "kilos": 42, # The maximum number of kilos all the free baggage together may weigh.
                    },
                  ],
                  "segmentId": "A String", # Unique identifier in the response of this segment.
                },
              ],
              "saleTotal": "A String", # Total per-passenger price (fare and tax) in the sale or equivalent currency.
              "passengers": { # The number and type of passengers. Unfortunately the definition of an infant, child, adult, and senior citizen varies across carriers and reservation systems. # The number of passengers to which this price applies.
                "kind": "qpxexpress#passengerCounts", # Identifies this as a passenger count object, representing the number of passengers. Value: the fixed string qpxexpress#passengerCounts.
                "infantInLapCount": 42, # The number of passengers that are infants travelling in the lap of an adult.
                "seniorCount": 42, # The number of passengers that are senior citizens.
                "infantInSeatCount": 42, # The number of passengers that are infants each assigned a seat.
                "childCount": 42, # The number of passengers that are children.
                "adultCount": 42, # The number of passengers that are adults.
              },
              "tax": [ # The taxes used to calculate the tax total per ticket.
                { # Tax information.
                  "kind": "qpxexpress#taxInfo", # Identifies this as a tax information object. Value: the fixed string qpxexpress#taxInfo.
                  "code": "A String", # The code to enter in the ticket's tax box.
                  "country": "A String", # For government charges, the country levying the charge.
                  "salePrice": "A String", # The price of the tax in the sales or equivalent currency.
                  "chargeType": "A String", # Whether this is a government charge or a carrier surcharge.
                  "id": "A String", # Identifier uniquely identifying this tax in a response. Not present for unnamed carrier surcharges.
                },
              ],
              "ptc": "A String", # The passenger type code for this pricing. An alphanumeric code used by a carrier to restrict fares to certain categories of passenger. For instance, a fare might be valid only for senior citizens.
              "saleFareTotal": "A String", # The total fare in the sale or equivalent currency.
              "baseFareTotal": "A String", # The total fare in the base fare currency (the currency of the country of origin). This element is only present when the sales currency and the currency of the country of commencement are different.
              "refundable": True or False, # Whether the fares on this pricing are refundable.
              "saleTaxTotal": "A String", # The taxes in the sale or equivalent currency.
              "latestTicketingTime": "A String", # The latest ticketing time for this pricing assuming the reservation occurs at ticketing time and there is no change in fares/rules. The time is local to the point of sale (POS).
            },
          ],
        },
      ],
      "kind": "qpxexpress#tripOptions", # Identifies this as a QPX Express trip response object, which consists of zero or more solutions. Value: the fixed string qpxexpress#tripOptions.
      "data": { # Detailed information about components found in the solutions of this response, including a trip's airport, city, taxes, airline, and aircraft. # Informational data global to list of solutions.
        "city": [ # The city that is either the origin or destination of part of a trip.
          { # Information about a city that might be useful to an end-user; typically the city of an airport.
            "country": "A String", # The two-character country code of the country the city is located in. For example, US for the United States of America.
            "kind": "qpxexpress#cityData", # Identifies this as a city, typically with one or more airports. Value: the fixed string qpxexpress#cityData.
            "code": "A String", # The IATA character ID of a city. For example, for Boston this is BOS.
            "name": "A String", # The full name of a city. An example would be: New York.
          },
        ],
        "kind": "qpxexpress#data", # Identifies this as QPX Express response resource, including a trip's airport, city, taxes, airline, and aircraft. Value: the fixed string qpxexpress#data.
        "tax": [ # The taxes due for flying between an origin and a destination.
          { # Tax data.
            "kind": "qpxexpress#taxData", # Identifies this as a tax data object, representing some tax. Value: the fixed string qpxexpress#taxData.
            "id": "A String", # An identifier uniquely identifying a tax in a response.
            "name": "A String", # The name of a tax.
          },
        ],
        "airport": [ # The airport of an origin or destination.
          { # An airport.
            "city": "A String", # The city code an airport is located in. For example, for JFK airport, this is NYC.
            "kind": "qpxexpress#airportData", # Identifies this as an airport object. Value: the fixed string qpxexpress#airportData.
            "code": "A String", # An airport's code. For example, for Boston Logan airport, this is BOS.
            "name": "A String", # The name of an airport. For example, for airport BOS the name is "Boston Logan International".
          },
        ],
        "aircraft": [ # The aircraft that is flying between an origin and destination.
          { # The make, model, and type of an aircraft.
            "kind": "qpxexpress#aircraftData", # Identifies this as an aircraftData object. Value: the fixed string qpxexpress#aircraftData
            "code": "A String", # The aircraft code. For example, for a Boeing 777 the code would be 777.
            "name": "A String", # The name of an aircraft, for example Boeing 777.
          },
        ],
        "carrier": [ # The airline carrier of the aircraft flying between an origin and destination. Allowed values are IATA carrier codes.
          { # Information about a carrier (ie. an airline, bus line, railroad, etc) that might be useful to display to an end-user.
            "kind": "qpxexpress#carrierData", # Identifies this as a kind of carrier (ie. an airline, bus line, railroad, etc). Value: the fixed string qpxexpress#carrierData.
            "code": "A String", # The IATA designator of a carrier (airline, etc). For example, for American Airlines, the code is AA.
            "name": "A String", # The long, full name of a carrier. For example: American Airlines.
          },
        ],
      },
      "requestId": "A String", # An identifier uniquely identifying this response.
    },
  }</pre>
</div>

</body></html>