{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amadeus/refs/heads/main/json-schema/flight-choice-prediction-flight-offers-search-reply-schema.json",
  "title": "FlightOffersSearchReply",
  "description": "FlightOffersSearchReply schema from Flight Choice Prediction",
  "properties": {
    "warnings": {
      "type": "array",
      "items": {
        "properties": {
          "status": {
            "description": "the HTTP status code applicable to this error",
            "type": "integer",
            "example": 1
          },
          "code": {
            "description": "an application-specific error code",
            "type": "integer",
            "format": "int64",
            "example": 1
          },
          "title": {
            "description": "a short summary of the error",
            "type": "string",
            "example": "string-value"
          },
          "detail": {
            "description": "explanation of the error",
            "type": "string",
            "example": "string-value"
          },
          "source": {
            "type": "object",
            "title": "Issue_Source",
            "description": "an object containing references to the source of the error",
            "maxProperties": 1,
            "properties": {
              "pointer": {
                "description": "a JSON Pointer [RFC6901] to the associated entity in the request document",
                "type": "string",
                "example": "string-value"
              },
              "parameter": {
                "description": "a string indicating which URI query parameter caused the issue",
                "type": "string",
                "example": "string-value"
              },
              "example": {
                "description": "a string indicating an example of the right value",
                "type": "string",
                "example": "string-value"
              }
            }
          }
        }
      }
    },
    "meta": {
      "type": "object",
      "title": "Collection_Meta",
      "description": "meta information",
      "properties": {
        "count": {
          "type": "integer",
          "example": 1
        },
        "links": {
          "title": "CollectionLinks",
          "properties": {
            "self": {
              "type": "string",
              "format": "uri",
              "example": "https://test.api.amadeus.com/v1/area/resources?..."
            },
            "next": {
              "type": "string",
              "format": "uri",
              "example": "https://test.api.amadeus.com/v1/area/resources?..."
            },
            "previous": {
              "type": "string",
              "format": "uri",
              "example": "https://test.api.amadeus.com/v1/area/resources?..."
            },
            "last": {
              "type": "string",
              "format": "uri",
              "example": "https://test.api.amadeus.com/v1/area/resources?..."
            },
            "first": {
              "type": "string",
              "format": "uri",
              "example": "https://test.api.amadeus.com/v1/area/resources?..."
            },
            "up": {
              "type": "string",
              "format": "uri",
              "example": "https://test.api.amadeus.com/v1/area/resources?..."
            }
          },
          "example": {
            "self": "https://test.api.amadeus.com/v1/area/resources?param=value"
          }
        },
        "oneWayCombinations": {
          "type": "array",
          "items": {
            "title": "oneWayCombinations",
            "properties": {
              "originDestinationId": {
                "type": "string",
                "example": "12345"
              },
              "flightOfferIds": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "data": {
      "type": "array",
      "items": {
        "title": "Flight-offer",
        "type": "object",
        "required": [
          "type",
          "id",
          "source"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "the resource name",
            "example": "flight-offer"
          },
          "id": {
            "description": "Id of the flight offer",
            "type": "string",
            "example": "1"
          },
          "choiceProbability": {
            "type": "string",
            "description": "the choice probability of this Flight Offer. The value is between 1 (100% chance the FlightOffer will be selected) and 0 (no change the FlightOffer will be selected)",
            "example": "0.42"
          },
          "source": {
            "$ref": "#/definitions/FlightOfferSource"
          },
          "instantTicketingRequired": {
            "description": "If true, inform that a ticketing will be required at booking step.",
            "type": "boolean",
            "example": false
          },
          "disablePricing": {
            "description": "BOOK step ONLY - If true, allows to book a PNR without pricing. Only for the source \"GDS\"",
            "type": "boolean",
            "example": false
          },
          "nonHomogeneous": {
            "description": "If true, upon completion of the booking, this pricing solution is expected to yield multiple records (a record contains booking information confirmed and stored, typically a Passenger Name Record (PNR), in the provider GDS or system)",
            "type": "boolean",
            "example": false
          },
          "oneWay": {
            "description": "If true, the flight offer fulfills only one originDestination and has to be combined with other oneWays to complete the whole journey.",
            "type": "boolean",
            "example": false
          },
          "paymentCardRequired": {
            "description": "If true, a payment card is mandatory to book this flight offer",
            "type": "boolean",
            "example": false
          },
          "lastTicketingDate": {
            "description": "If booked on the same day as the search (with respect to timezone), this flight offer is guaranteed to be thereafter valid for ticketing until this date (included). Unspecified when it does not make sense for this flight offer (e.g. no control over ticketing once booked). YYYY-MM-DD format, e.g. 2019-06-07",
            "type": "string",
            "example": "2018-06-19T00:00:00.000Z"
          },
          "numberOfBookableSeats": {
            "description": "Number of seats bookable in a single request. Can not be higher than 9.",
            "type": "number",
            "example": 9,
            "minimum": 1,
            "maximum": 9
          },
          "itineraries": {
            "type": "array",
            "minItems": 1,
            "maxItems": 250,
            "items": {
              "title": "Itineraries",
              "type": "object",
              "properties": {
                "duration": {
                  "description": "duration in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) PnYnMnDTnHnMnS format, e.g. PT2H10M for a duration of 2h10m",
                  "type": "string",
                  "example": "PT2H10M"
                },
                "segments": {
                  "title": "Segments",
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 9,
                  "items": {
                    "$ref": "#/definitions/Segment"
                  }
                }
              },
              "required": [
                "segments"
              ]
            }
          },
          "price": {
            "$ref": "#/definitions/Extended_Price"
          },
          "pricingOptions": {
            "title": "PricingOptions",
            "type": "object",
            "properties": {
              "fareType": {
                "description": "type of fare of the flight-offer",
                "$ref": "#/definitions/PricingOptionsFareType"
              },
              "corporateCodes": {
                "type": "array",
                "description": "Allow Corporate negotiated fares using one or more corporate number (corporate code).",
                "items": {
                  "type": "string"
                },
                "example": [
                  "123456"
                ]
              },
              "includedCheckedBagsOnly": {
                "type": "boolean",
                "description": "If true, returns the flight-offers with included checked bags only",
                "example": true
              },
              "refundableFare": {
                "type": "boolean",
                "description": "If true, returns the flight-offers with refundable fares only",
                "example": true
              },
              "noRestrictionFare": {
                "type": "boolean",
                "description": "If true, returns the flight-offers with no restriction fares only",
                "example": true
              },
              "noPenaltyFare": {
                "type": "boolean",
                "description": "If true, returns the flight-offers with no penalty fares only",
                "example": true
              }
            }
          },
          "validatingAirlineCodes": {
            "description": "This option ensures that the system will only consider these airlines.",
            "type": "array",
            "minItems": 1,
            "maxItems": 9,
            "items": {
              "type": "string"
            },
            "example": [
              "AF"
            ]
          },
          "travelerPricings": {
            "title": "TravelerPricings",
            "description": "Fare information for each traveler/segment",
            "type": "array",
            "minItems": 1,
            "maxItems": 18,
            "items": {
              "title": "TravelerPricing",
              "required": [
                "travelerId",
                "fareOption",
                "travelerType",
                "fareDetailsBySegment"
              ],
              "properties": {
                "travelerId": {
                  "type": "string",
                  "example": "1",
                  "description": "Id of the traveler"
                },
                "fareOption": {
                  "$ref": "#/definitions/TravelerPricingFareOption"
                },
                "travelerType": {
                  "$ref": "#/definitions/TravelerType"
                },
                "associatedAdultId": {
                  "type": "string",
                  "description": "if type=\"HELD_INFANT\", corresponds to the adult traveler's id who will share the seat",
                  "example": "12345"
                },
                "price": {
                  "description": "price detail of the traveler",
                  "$ref": "#/definitions/Price"
                },
                "fareDetailsBySegment": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 18,
                  "items": {
                    "title": "FareDetailsBySegment",
                    "description": "Fare details of the segment",
                    "required": [
                      "segmentId"
                    ],
                    "properties": {
                      "segmentId": {
                        "type": "string",
                        "example": "1",
                        "description": "Id of the segment"
                      },
                      "cabin": {
                        "$ref": "#/definitions/TravelClass"
                      },
                      "fareBasis": {
                        "description": "Fare basis specifying the rules of a fare. Usually, though not always, is composed of the booking class code followed by a set of letters and digits representing other characteristics of the ticket, such as refundability, minimum stay requirements, discounts or special promotional elements.",
                        "type": "string",
                        "example": "ANNNNF4K",
                        "pattern": "[[A-Z0-9]{1,18}"
                      },
                      "brandedFare": {
                        "description": "The name of the Fare Family corresponding to the fares. Only for the GDS provider and if the airline has fare families filled",
                        "type": "string",
                        "example": "LIGHTONE"
                      },
                      "class": {
                        "description": "The code of the booking class, a.k.a. class of service or Reservations/Booking Designator (RBD)",
                        "type": "string",
                        "example": "A",
                        "pattern": "[A-Z]{1}"
                      },
                      "isAllotment": {
                        "description": "True if the corresponding booking class is in an allotment",
                        "type": "boolean",
                        "example": true
                      },
                      "allotmentDetails": {
                        "title": "AllotmentDetails",
                        "type": "object",
                        "properties": {
                          "tourName": {
                            "type": "string",
                            "example": "Sample Name"
                          },
                          "tourReference": {
                            "type": "string",
                            "example": "string-value"
                          }
                        }
                      },
                      "sliceDiceIndicator": {
                        "$ref": "#/definitions/SliceDiceIndicator"
                      },
                      "includedCheckedBags": {
                        "title": "includedCheckedBags",
                        "$ref": "#/definitions/BaggageAllowance",
                        "description": "Details of the included checked bags"
                      },
                      "additionalServices": {
                        "type": "object",
                        "title": "AdditionalServicesRequest",
                        "properties": {
                          "chargeableCheckedBags": {
                            "title": "chargeableCheckedBags",
                            "$ref": "#/definitions/BaggageAllowance",
                            "description": "Details of chargeable checked bags"
                          },
                          "chargeableSeatNumber": {
                            "type": "string",
                            "description": "seat number",
                            "example": "33D",
                            "pattern": "[1-9][0-9]{0,2}[A-Z]?"
                          },
                          "otherServices": {
                            "type": "array",
                            "description": "Other services to add",
                            "items": {
                              "$ref": "#/definitions/ServiceName"
                            },
                            "example": [
                              "PRIORITY_BOARDING"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "fareRules": {
            "description": "Fare rules of the flight offer",
            "$ref": "#/definitions/FareRules"
          }
        }
      }
    },
    "dictionaries": {
      "type": "object",
      "properties": {
        "locations": {
          "additionalProperties": {
            "$ref": "#/definitions/LocationValue"
          }
        },
        "aircraft": {
          "additionalProperties": {
            "description": "the manufacturer/model of aircraft",
            "type": "string"
          }
        },
        "currencies": {
          "additionalProperties": {
            "type": "string",
            "example": "EUR"
          }
        },
        "carriers": {
          "additionalProperties": {
            "description": "the carrier name",
            "type": "string"
          }
        }
      }
    }
  },
  "required": [
    "data"
  ],
  "example": {
    "meta": {
      "count": 2
    },
    "data": [
      {
        "type": "flight-offer",
        "id": "1",
        "source": "GDS",
        "instantTicketingRequired": false,
        "nonHomogeneous": false,
        "oneWay": false,
        "lastTicketingDate": "2020-01-16",
        "numberOfBookableSeats": 7,
        "itineraries": [
          {
            "duration": "PT15H55M",
            "segments": [
              {
                "departure": {
                  "iataCode": "GIG",
                  "terminal": "2",
                  "at": "2020-08-01T21:50:00"
                },
                "arrival": {
                  "iataCode": "LHR",
                  "terminal": "5",
                  "at": "2020-08-02T13:10:00"
                },
                "carrierCode": "BA",
                "number": "248",
                "aircraft": {
                  "code": "788"
                },
                "operating": {
                  "carrierCode": "BA"
                },
                "duration": "PT11H20M",
                "id": "1",
                "numberOfStops": 0,
                "blacklistedInEU": false
              },
              {
                "departure": {
                  "iataCode": "LHR",
                  "terminal": "5",
                  "at": "2020-08-02T15:15:00"
                },
                "arrival": {
                  "iataCode": "MAD",
                  "terminal": "4S",
                  "at": "2020-08-02T18:45:00"
                },
                "carrierCode": "BA",
                "number": "462",
                "aircraft": {
                  "code": "321"
                },
                "operating": {
                  "carrierCode": "BA"
                },
                "duration": "PT2H30M",
                "id": "2",
                "numberOfStops": 0,
                "blacklistedInEU": false
              }
            ]
          },
          {
            "duration": "PT13H35M",
            "segments": [
              {
                "departure": {
                  "iataCode": "MAD",
                  "terminal": "4S",
                  "at": "2020-08-05T23:55:00"
                },
                "arrival": {
                  "iataCode": "GRU",
                  "terminal": "3",
                  "at": "2020-08-06T05:40:00"
                },
                "carrierCode": "IB",
                "number": "6827",
                "aircraft": {
                  "code": "346"
                },
                "operating": {
                  "carrierCode": "IB"
                },
                "duration": "PT10H45M",
                "id": "5",
                "numberOfStops": 0,
                "blacklistedInEU": false
              },
              {
                "departure": {
                  "iataCode": "GRU",
                  "terminal": "2",
                  "at": "2020-08-06T07:30:00"
                },
                "arrival": {
                  "iataCode": "GIG",
                  "terminal": "2",
                  "at": "2020-08-06T08:30:00"
                },
                "carrierCode": "LA",
                "number": "4508",
                "aircraft": {
                  "code": "320"
                },
                "duration": "PT1H",
                "id": "6",
                "numberOfStops": 0,
                "blacklistedInEU": false
              }
            ]
          }
        ],
        "price": {
          "currency": "USD",
          "total": "3842.10",
          "base": "3661.00",
          "fees": [
            {
              "amount": "0.00",
              "type": "SUPPLIER"
            },
            {
              "amount": "0.00",
              "type": "TICKETING"
            }
          ],
          "grandTotal": "3842.10"
        },
        "pricingOptions": {
          "fareType": [
            "PUBLISHED"
          ],
          "includedCheckedBagsOnly": false
        },
        "validatingAirlineCodes": [
          "BA"
        ],
        "travelerPricings": [
          {
            "travelerId": "1",
            "fareOption": "STANDARD",
            "travelerType": "ADULT",
            "price": {
              "currency": "USD",
              "total": "2178.55",
              "base": "2088.00"
            },
            "fareDetailsBySegment": [
              {
                "segmentId": "1",
                "cabin": "BUSINESS",
                "fareBasis": "RNNZ60S3",
                "brandedFare": "BUSINESS",
                "class": "R",
                "includedCheckedBags": {
                  "quantity": 2
                }
              },
              {
                "segmentId": "2",
                "cabin": "BUSINESS",
                "fareBasis": "RNNZ60S3",
                "brandedFare": "BUSINESS",
                "class": "J",
                "includedCheckedBags": {
                  "quantity": 2
                }
              },
              {
                "segmentId": "5",
                "cabin": "ECONOMY",
                "fareBasis": "VDH0NNM3",
                "brandedFare": "BAGSEAT",
                "class": "V",
                "includedCheckedBags": {
                  "quantity": 1
                }
              },
              {
                "segmentId": "6",
                "cabin": "ECONOMY",
                "fareBasis": "VDH0NNM3",
                "brandedFare": "BAGSEAT",
                "class": "V",
                "includedCheckedBags": {
                  "quantity": 1
                }
              }
            ]
          },
          {
            "travelerId": "2",
            "fareOption": "STANDARD",
            "travelerType": "CHILD",
            "price": {
              "currency": "USD",
              "total": "1663.55",
              "base": "1573.00"
            },
            "fareDetailsBySegment": [
              {
                "segmentId": "1",
                "cabin": "BUSINESS",
                "fareBasis": "RNNZ60S3",
                "brandedFare": "BUSINESS",
                "class": "R"
              },
              {
                "segmentId": "2",
                "cabin": "BUSINESS",
                "fareBasis": "RNNZ60S3",
                "brandedFare": "BUSINESS",
                "class": "J"
              },
              {
                "segmentId": "5",
                "cabin": "ECONOMY",
                "fareBasis": "VDH0NNM3",
                "brandedFare": "BAGSEAT",
                "class": "V"
              },
              {
                "segmentId": "6",
                "cabin": "ECONOMY",
                "fareBasis": "VDH0NNM3",
                "brandedFare": "BAGSEAT",
                "class": "V"
              }
            ]
          }
        ]
      },
      {
        "type": "flight-offer",
        "id": "2",
        "source": "GDS",
        "instantTicketingRequired": false,
        "nonHomogeneous": false,
        "oneWay": false,
        "lastTicketingDate": "2020-01-16",
        "numberOfBookableSeats": 7,
        "itineraries": [
          {
            "duration": "PT15H55M",
            "segments": [
              {
                "departure": {
                  "iataCode": "GIG",
                  "terminal": "2",
                  "at": "2020-08-01T21:50:00"
                },
                "arrival": {
                  "iataCode": "LHR",
                  "terminal": "5",
                  "at": "2020-08-02T13:10:00"
                },
                "carrierCode": "BA",
                "number": "248",
                "aircraft": {
                  "code": "788"
                },
                "operating": {
                  "carrierCode": "BA"
                },
                "duration": "PT11H20M",
                "id": "1",
                "numberOfStops": 0,
                "blacklistedInEU": false
              },
              {
                "departure": {
                  "iataCode": "LHR",
                  "terminal": "5",
                  "at": "2020-08-02T15:15:00"
                },
                "arrival": {
                  "iataCode": "MAD",
                  "terminal": "4S",
                  "at": "2020-08-02T18:45:00"
                },
                "carrierCode": "BA",
                "number": "462",
                "aircraft": {
                  "code": "321"
                },
                "operating": {
                  "carrierCode": "BA"
                },
                "duration": "PT2H30M",
                "id": "2",
                "numberOfStops": 0,
                "blacklistedInEU": false
              }
            ]
          },
          {
            "duration": "PT19H5M",
            "segments": [
              {
                "departure": {
                  "iataCode": "MAD",
                  "terminal": "4S",
                  "at": "2020-08-05T23:55:00"
                },
                "arrival": {
                  "iataCode": "GRU",
                  "terminal": "3",
                  "at": "2020-08-06T05:40:00"
                },
                "carrierCode": "IB",
                "number": "6827",
                "aircraft": {
                  "code": "346"
                },
                "operating": {
                  "carrierCode": "IB"
                },
                "duration": "PT10H45M",
                "id": "3",
                "numberOfStops": 0,
                "blacklistedInEU": false
              },
              {
                "departure": {
                  "iataCode": "GRU",
                  "terminal": "2",
                  "at": "2020-08-06T13:00:00"
                },
                "arrival": {
                  "iataCode": "GIG",
                  "terminal": "2",
                  "at": "2020-08-06T14:00:00"
                },
                "carrierCode": "LA",
                "number": "4537",
                "aircraft": {
                  "code": "321"
                },
                "duration": "PT1H",
                "id": "4",
                "numberOfStops": 0,
                "blacklistedInEU": false
              }
            ]
          }
        ],
        "price": {
          "currency": "USD",
          "total": "3842.10",
          "base": "3661.00",
          "fees": [
            {
              "amount": "0.00",
              "type": "SUPPLIER"
            },
            {
              "amount": "0.00",
              "type": "TICKETING"
            }
          ],
          "grandTotal": "3842.10"
        },
        "pricingOptions": {
          "fareType": [
            "PUBLISHED"
          ],
          "includedCheckedBagsOnly": false
        },
        "validatingAirlineCodes": [
          "BA"
        ],
        "travelerPricings": [
          {
            "travelerId": "1",
            "fareOption": "STANDARD",
            "travelerType": "ADULT",
            "price": {
              "currency": "USD",
              "total": "2178.55",
              "base": "2088.00"
            },
            "fareDetailsBySegment": [
              {
                "segmentId": "1",
                "cabin": "BUSINESS",
                "fareBasis": "RNNZ60S3",
                "brandedFare": "BUSINESS",
                "class": "R",
                "includedCheckedBags": {
                  "quantity": 2
                }
              },
              {
                "segmentId": "2",
                "cabin": "BUSINESS",
                "fareBasis": "RNNZ60S3",
                "brandedFare": "BUSINESS",
                "class": "J",
                "includedCheckedBags": {
                  "quantity": 2
                }
              },
              {
                "segmentId": "3",
                "cabin": "ECONOMY",
                "fareBasis": "VDH0NNM3",
                "brandedFare": "BAGSEAT",
                "class": "V",
                "includedCheckedBags": {
                  "quantity": 1
                }
              },
              {
                "segmentId": "4",
                "cabin": "ECONOMY",
                "fareBasis": "VDH0NNM3",
                "brandedFare": "BAGSEAT",
                "class": "V",
                "includedCheckedBags": {
                  "quantity": 1
                }
              }
            ]
          },
          {
            "travelerId": "2",
            "fareOption": "STANDARD",
            "travelerType": "CHILD",
            "price": {
              "currency": "USD",
              "total": "1663.55",
              "base": "1573.00"
            },
            "fareDetailsBySegment": [
              {
                "segmentId": "1",
                "cabin": "BUSINESS",
                "fareBasis": "RNNZ60S3",
                "brandedFare": "BUSINESS",
                "class": "R"
              },
              {
                "segmentId": "2",
                "cabin": "BUSINESS",
                "fareBasis": "RNNZ60S3",
                "brandedFare": "BUSINESS",
                "class": "J"
              },
              {
                "segmentId": "3",
                "cabin": "ECONOMY",
                "fareBasis": "VDH0NNM3",
                "brandedFare": "BAGSEAT",
                "class": "V"
              },
              {
                "segmentId": "4",
                "cabin": "ECONOMY",
                "fareBasis": "VDH0NNM3",
                "brandedFare": "BAGSEAT",
                "class": "V"
              }
            ]
          }
        ]
      }
    ],
    "dictionaries": {
      "locations": {
        "MAD": {
          "cityCode": "MAD",
          "countryCode": "ES"
        },
        "GIG": {
          "cityCode": "RIO",
          "countryCode": "BR"
        },
        "LHR": {
          "cityCode": "LON",
          "countryCode": "GB"
        },
        "GRU": {
          "cityCode": "SAO",
          "countryCode": "BR"
        }
      },
      "aircraft": {
        "320": "AIRBUS INDUSTRIE A320-100/200",
        "321": "AIRBUS INDUSTRIE A321",
        "346": "AIRBUS INDUSTRIE A340-600",
        "788": "BOEING 787-8"
      },
      "currencies": {
        "USD": "US DOLLAR"
      },
      "carriers": {
        "LA": "LATAM AIRLINES GROUP",
        "IB": "IBERIA",
        "BA": "BRITISH AIRWAYS"
      }
    }
  },
  "type": "object"
}