---
title: "Price Compare Search"
method: POST
path: "/priceCompareSearch.do"
tags: ["Shopping and Ticketing"]
---

# Price Compare Search

`POST /priceCompareSearch.do`

**Purpose:**
Search comparable fares for a route/date/airline filter. The endpoint performs synchronous smart search and is intended for fare comparison scenarios.

**Dependency:**
No preceding function needs to be called before this API.

**Important notes:**
- The returned settlement currency is determined by client configuration or the optional `currency` request field.
- Total payable amount for one adult passenger is normally `adultPrice + adultTax + transactionFeePerPax`.
- When `supportCreditTransPayment = 1`, `vendorFare` contains the airline/vendor-side fare. When pass-through payment is not supported, `supportCreditTransPayment = 0` and `vendorFare` may be null or omitted.
- `ancillaryProductElements` depends on client configuration and airline support.
- `links` may include airline terms and conditions.
- When `status = 0` but `routings` is empty, check `noResultReason` for the business reason and possible recent available flight dates.
- Display-currency values are for display only and should not be used for settlement, fare comparison, or accounting.

## Headers

- `Accept` string, required
- `Content-Type` string, required
- `Accept-Encoding` string, required
- `x-atlas-client-id` string, required
- `x-atlas-client-secret` string, required

## Request body

- object
  - `tripType` '1' | '2', required — Trip type. `1` = one-way, `2` = round trip. `retDate` is required when `tripType = 2`.
  - `requestId` string, nullable — Client-side request identifier for tracing and troubleshooting. Optional but recommended.
  - `adultNum` integer, required — Adult passenger count. Must be at least 1. `adultNum + childNum` cannot exceed 9.
  - `childNum` integer, required — Child passenger count. `adultNum + childNum` cannot exceed 9.
  - `infantNum` integer, required — Infant passenger count. Cannot exceed the adult passenger count.
  - `fromCity` string, required — Departure city or airport IATA code in uppercase. If an airport code is supplied here, results are filtered by that airport.
  - `fromAirport` string, nullable — Optional departure airport IATA code. Leave empty when `fromCity` already represents the desired city/airport filter.
  - `toCity` string, required — Arrival city or airport IATA code in uppercase. If an airport code is supplied here, results are filtered by that airport.
  - `toAirport` string, nullable — Optional arrival airport IATA code. Leave empty when `toCity` already represents the desired city/airport filter.
  - `fromDate` string, required — Departure date in `YYYYMMDD` format.
  - `retDate` string, nullable — Return date in `YYYYMMDD` format. Required for round-trip searches; use null or omit for one-way searches.
  - `airlines` string[], nullable — Airline IATA code filter in uppercase. The response only contains flights operated/marketed by the specified airlines when supplied.
  - `fromFlightNumbers` string[], nullable — Optional outbound flight-number filter. Use one string per candidate itinerary. For connecting flights, join segment flight numbers with a comma, e.g. `OD1001,OD1002`.
  - `retFlightNumbers` string[], nullable — Optional return flight-number filter. For connecting flights, join segment flight numbers with a comma.
  - `includeMultipleFareFamily` boolean, nullable — Whether to return multiple fare families for the same flight. `false` returns the lowest fare per flight by default.
  - `currency` string, nullable — Optional settlement currency in ISO 4217 format. Use only when the client has multiple settlement currencies configured with Atlas.
  - `displayCurrency` string, nullable — Optional display currency in ISO 4217 format. Display-currency amounts are for presentation only and should not be used for settlement or accounting.
  - `maxResponseTime` integer, nullable — Optional client-side expected maximum response time in milliseconds. Actual timeout is also controlled by Atlas configuration.
  - `baggagePiece` integer, nullable — Optional requested checked baggage pieces used for filtering or pricing when supported.
  - `baggageWeight` integer, nullable — Optional requested checked baggage weight in kilograms used for filtering or pricing when supported.
  - `requestSource` string, nullable — Traffic source label, e.g. `Google Flights`, `Organic Search`, or `SkyScanner`. Used for analytics and traffic governance.
  - `channel` string, nullable — Optional client channel label used for reporting and traffic segmentation.
  - `mainChannel` string, nullable — Optional primary channel label used for reporting and traffic segmentation.
  - `subChannelID` string, nullable — Optional secondary channel identifier used for reporting and traffic segmentation.
  - `residentCode` string, nullable — Optional resident discount code when an airline or market supports resident fares.

## Response `200`

Successful HTTP response. Business success or failure is indicated by the `status` field in the response body.

- object
  - `status` integer, required — Business status code. `0` means success. Common non-zero values: - `100`: Missing required request data. - `101`: Illegal request data or invalid format. - `102`: Illegal request parameter. - `105`: OD is not in the client's round-trip whitelist. - `106`: Search is not allowed for this client. - `107`: Insufficient balance. - `108`: Route is restricted or blocked by system limitations. - `109`: Search limit exceeded. For price compare, this may also mean daily quota exceeded. - `110`: Too many concurrent requests. - `111`: Real-time search is not allowed. - `112`: Search timed out. - `113`: Airline is under maintenance in Atlas. - `114`: No flights present. - `116`: Search data was not captured. - `123`: Too many requests but too few paid orders. - `124`: Unsupported settlement currency. - `126`: `requestId` does not exist or request is already ended. - `900`: Unauthorized access. - `9999`: Internal system error.
  - `msg` string, nullable, required — Business message. Usually `success` or null for successful responses; contains the error message when `status` is non-zero.
  - `requestId` string, nullable — Atlas request identifier returned for tracing. May be absent when the request fails before request initialization.
  - `clientRequestId` string, nullable — Echo of the client request identifier when provided.
  - `smartEnd` boolean, nullable — Whether the smart-search process has completed for this synchronous response.
  - `routings` object[], required — Available routing and fare options. Empty array means no bookable fare was found; check `noResultReason` when present.
    - `routingIdentifier` string — Opaque routing token. Pass this value to downstream pricing/booking APIs exactly as returned.
    - `supportCreditTransPayment` string — Whether pass-through credit-card transaction payment is supported. `1` = supported, `0` = not supported.
    - `supportPaymentMethods` integer[] — Supported payment method codes for this routing. Values are configured by Atlas and may vary by client/airline.
    - `currency` string — Settlement currency for price fields in this routing.
    - `adultPrice` number — Adult base fare per passenger, excluding tax and transaction fee.
    - `adultTax` integer — Adult tax per passenger.
    - `adultDetails` object[] — Adult fare breakdown items such as base fare and tax.
      - `code` string, required — Price component code, e.g. `farePrice` or `tax`.
      - `type` string, required — Price component type, e.g. `base` or `tax`.
      - `amount` integer, required — Component amount in routing currency.
      - `description` string, required — Human-readable component description when available.
    - `childPrice` number — Child base fare per passenger, excluding tax and transaction fee.
    - `childTax` integer — Child tax per passenger.
    - `childDetails` object[] — Child fare breakdown items such as base fare and tax.
      - `code` string, required — Price component code, e.g. `farePrice` or `tax`.
      - `type` string, required — Price component type, e.g. `base` or `tax`.
      - `amount` integer, required — Component amount in routing currency.
      - `description` string, required — Human-readable component description when available.
    - `infantPrice` number — Infant base fare per passenger, excluding tax and transaction fee.
    - `infantTax` integer — Infant tax per passenger.
    - `infantDetails` object[] — Infant fare breakdown items such as base fare and tax.
      - `code` string, required — Price component code, e.g. `farePrice` or `tax`.
      - `type` string, required — Price component type, e.g. `base` or `tax`.
      - `amount` integer, required — Component amount in routing currency.
      - `description` string, required — Human-readable component description when available.
    - `infantAllowed` boolean — Whether infants are allowed for this routing/fare.
    - `childMandatorySeatingFee` number, nullable — Mandatory child seating fee when applicable; otherwise null.
    - `transactionFeePerPax` integer — Atlas transaction fee per passenger.
    - `transactionFee` integer — Total or configured transaction fee amount for this routing. Interpret together with `transactionFeeMode`.
    - `transactionFeeMode` string — Transaction fee charging mode, e.g. `PER_PAX`.
    - `fromSegments` object[] — Outbound flight segments. Multiple items represent a connecting itinerary.
      - `aircraftCode` string — Aircraft type/code when supplied by the airline or vendor.
      - `arrAirport` string — Arrival airport IATA code.
      - `arrTerminal` string — Arrival terminal when available. Empty string means not supplied.
      - `arrTime` string — Local arrival time in `YYYYMMDDHHmm` format.
      - `cabin` string — Cabin booking code or raw cabin label when available.
      - `cabinClass` integer — Cabin class code. Commonly `1` means economy; actual mapping follows Atlas configuration.
      - `carrier` string — Marketing carrier IATA code.
      - `codeShare` boolean — Whether the segment is code-share.
      - `depAirport` string — Departure airport IATA code.
      - `depTerminal` string — Departure terminal when available. Empty string means not supplied.
      - `depTime` string — Local departure time in `YYYYMMDDHHmm` format.
      - `duration` integer — Segment duration in minutes.
      - `fareFamily` string — Fare family or branded fare name.
      - `flightNumber` string — Marketing flight number.
      - `operatingCarrier` string — Operating carrier IATA code when different from marketing carrier.
      - `operatingFlightnumber` string — Operating flight number when supplied.
      - `seatCount` integer — Available seat count returned by Atlas/vendor for this fare.
      - `segmentIndex` integer — Segment sequence number in the whole itinerary.
      - `stopCities` string — Technical stop city/airport codes when supplied. Empty string means no stop or not supplied.
    - `retSegments` object[] — Return flight segments. Empty or omitted for one-way searches.
      - `aircraftCode` string — Aircraft type/code when supplied by the airline or vendor.
      - `arrAirport` string — Arrival airport IATA code.
      - `arrTerminal` string — Arrival terminal when available. Empty string means not supplied.
      - `arrTime` string — Local arrival time in `YYYYMMDDHHmm` format.
      - `cabin` string — Cabin booking code or raw cabin label when available.
      - `cabinClass` integer — Cabin class code. Commonly `1` means economy; actual mapping follows Atlas configuration.
      - `carrier` string — Marketing carrier IATA code.
      - `codeShare` boolean — Whether the segment is code-share.
      - `depAirport` string — Departure airport IATA code.
      - `depTerminal` string — Departure terminal when available. Empty string means not supplied.
      - `depTime` string — Local departure time in `YYYYMMDDHHmm` format.
      - `duration` integer — Segment duration in minutes.
      - `fareFamily` string — Fare family or branded fare name.
      - `flightNumber` string — Marketing flight number.
      - `operatingCarrier` string — Operating carrier IATA code when different from marketing carrier.
      - `operatingFlightnumber` string — Operating flight number when supplied.
      - `seatCount` integer — Available seat count returned by Atlas/vendor for this fare.
      - `segmentIndex` integer — Segment sequence number in the whole itinerary.
      - `stopCities` string — Technical stop city/airport codes when supplied. Empty string means no stop or not supplied.
    - `rule` object — Fare rules, baggage allowance, refund/change policy, and included service information.
      - `hasBaggage` integer, required — Whether free baggage allowance exists. `1` = yes, `0` = no.
      - `baggageElements` object[], required — Free baggage allowance by segment and passenger type.
        - `segmentNo` integer, required — Segment number this baggage allowance applies to.
        - `baggageType` string, required — Baggage type/category, e.g. `CabinBaggageUnderSeat` or `StandardCheckInBaggage`.
        - `passengerType` integer, required — Passenger type code. Commonly `0` adult, `1` child, `2` infant.
        - `baggagePiece` integer, required — Allowed baggage pieces.
        - `baggageWeight` integer, required — Allowed baggage weight in kilograms.
        - `baggageSize` string, required — Allowed baggage dimensions when available.
      - `refundRules` object[], required — Refund policy rules. Interpret together with status, fee, no-show condition, and rule details.
        - `refundType` integer, required — Refund rule type code configured by Atlas.
        - `refundStatus` string, required — Refund availability status code.
        - `refundMethod` string, required — Refund method when refund is allowed.
        - `refundFee` number, required — Refund fee amount.
        - `currency` string, required — Currency of refund fee.
        - `refNoshow` string, required — No-show refund status code.
        - `refNoShowCondition` integer, required — No-show refund condition code.
        - `refNoshowFee` number, required — No-show refund fee amount.
        - `ruleDetailList` object[], required — Detailed refund rule time windows. `startMinute` and `endMinute` are relative to scheduled departure time.
          - `status` string, required — Rule status code for the time window.
          - `refundMethod` string, required — Refund method for the time window.
          - `startMinute` integer, required — Start of the time window in minutes relative to departure.
          - `endMinute` integer, required — End of the time window in minutes relative to departure.
          - `amount` number, required — Fee amount for this time window.
          - `currency` string, required — Currency of the fee amount.
          - `ruleId` integer, required — Atlas rule identifier when available.
      - `changesRules` object[], required — Change/reissue policy rules. Interpret together with status, fee, no-show condition, and rule details.
        - `changesType` integer, required — Change rule type code configured by Atlas.
        - `changesStatus` string, required — Change availability status code.
        - `changesFee` number, required — Change fee amount.
        - `currency` string, required — Currency of change fee.
        - `revNoshow` string, required — No-show change/reissue status code.
        - `revNoShowCondition` integer, required — No-show change/reissue condition code.
        - `revNoshowFee` number, required — No-show change/reissue fee amount.
        - `ruleDetailList` object[], required — Detailed change rule time windows. `startMinute` and `endMinute` are relative to scheduled departure time.
          - `status` string, required — Rule status code for the time window.
          - `refundMethod` string, nullable, required — Refund/change method for the time window when supplied; otherwise null.
          - `startMinute` integer, required — Start of the time window in minutes relative to departure.
          - `endMinute` integer, required — End of the time window in minutes relative to departure.
          - `amount` number, required — Fee amount for this time window.
          - `currency` string, required — Currency of the fee amount.
          - `ruleId` integer, required — Atlas rule identifier when available.
      - `serviceElements` object[], required — Included service indicators by segment/fare, such as free seat or meal.
        - `hasFreeSeat` integer, required — Whether free seat selection is included. `1` = yes, `0` = no.
        - `hasFreeMeal` integer, required — Whether a free meal is included. `1` = yes, `0` = no.
    - `ancillaryProductElements` object[] — Optional paid ancillary products such as cabin or checked baggage. Availability depends on airline and client configuration.
      - `ancillaryCode` string, required — Airline/vendor ancillary code.
      - `auxBaggageElement` object, required — Baggage details when the ancillary product is baggage.
        - `piece` integer, required — Baggage pieces included in this ancillary product.
        - `weight` integer, required — Baggage weight in kilograms.
        - `isAllWeight` boolean, required — Whether `weight` is the total combined weight for all pieces.
        - `size` string, required — Baggage size limit when available.
      - `canPurchaseWithTicket` integer, required — Whether this ancillary can be purchased together with ticketing. `1` = yes, `0` = no.
      - `canPurchasePostTicket` integer, required — Whether this ancillary can be purchased after ticketing. `1` = yes, `0` = no.
      - `categoryCode` string, required — Ancillary category code, e.g. `StandardCheckInBaggage`.
      - `clientTechnicalServiceFee` integer, required — Client technical service fee amount for this ancillary product.
      - `currency` string, required — Currency of `price`.
      - `maxQty` integer, required — Maximum purchasable quantity.
      - `minQty` integer, required — Minimum purchasable quantity.
      - `price` number, required — Client-facing ancillary price.
      - `productCode` string, required — Atlas/vendor product code for the ancillary product.
      - `segmentIndex` integer, required — Segment index this ancillary applies to.
      - `vendorPrice` number, required — Vendor-side ancillary price.
      - `vendorCurrency` string, required — Currency of `vendorPrice`.
      - `clientTechnicalServiceFeeMode` string, nullable, required — Technical service fee charging mode when supplied; otherwise null.
    - `links` object[] — Related airline links, usually terms and conditions.
      - `carrier` string — Airline IATA code associated with this link.
      - `kind` string — Link type, e.g. `terms`.
      - `link` string — URL.
      - `description` string, nullable — Optional link description.
    - `separateBookings` boolean — Whether outbound and return parts are booked separately.
    - `refreshTime` string — UTC timestamp when this routing/fare was refreshed.
    - `expireTime` string — UTC timestamp after which this routing/fare should no longer be treated as fresh.
    - `ancillarySupported` boolean, nullable — Whether ancillary purchase is supported for this routing when the value is known; otherwise null.
    - `cardChargeList` object[] — Card surcharge information by card type when available.
      - `cardType` string, required — Card type, e.g. `Visa` or `MasterCard`.
      - `percentage` number, required — Percentage surcharge for this card type.
      - `charge` number, nullable, required — Fixed surcharge amount when applicable; otherwise null.
      - `currency` string, required — Currency of fixed surcharge amount when applicable.
    - `vendorFare` object — Vendor-side fare information. Usually present when pass-through payment is supported or vendor fare disclosure is enabled.
      - `vendorAdultPrice` number, required — Vendor adult base fare.
      - `vendorAdultTax` integer, required — Vendor adult tax.
      - `vendorChildPrice` number, required — Vendor child base fare.
      - `vendorChildTax` integer, required — Vendor child tax.
      - `vendorInfantPrice` number, required — Vendor infant base fare.
      - `vendorInfantTax` integer, required — Vendor infant tax.
      - `vendorCurrency` string, required — Vendor fare currency.
  - `noResultReason` object, nullable — Structured no-result reason. Present when `status = 0` and `routings` is empty, or null/absent when routings are returned.
    - `code` 'ROUTE_NOT_SUPPORTED' | 'AIRLINE_NO_FLIGHT' | 'FLIGHT_SOLD_OUT' | 'PRICE_FETCH_FAILED', required — No-result reason code. `ROUTE_NOT_SUPPORTED` means Atlas does not support the city pair. `AIRLINE_NO_FLIGHT` means no flight information was found for the route/date. `FLIGHT_SOLD_OUT` means flights exist but are sold out. `PRICE_FETCH_FAILED` means Atlas could not fetch price for the route/date.
    - `message` string, required — Human-readable explanation of the no-result reason.
    - `recentFlightDates` string[], nullable, required — Recent dates with available flight information in `YYYYMMDD` format when Atlas can provide suggestions; otherwise null or empty.

---

[API](https://skmtc.net/atriptech/apis/default-module.md) · [All operations](https://skmtc.net/atriptech/apis/default-module/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/atriptech/default-module/revisions/8e9a8f8010ab/schema)
