{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/flight-mcp-com/json-schema/flight-mcp-com-flight-search-input-schema.json",
  "title": "FlightSearchInput",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/flight-mcp-com-openapi.yml#/components/schemas/FlightSearchInput",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "origin",
    "destination",
    "departureDate"
  ],
  "properties": {
    "origin": {
      "type": "string",
      "pattern": "^[A-Z]{3}$",
      "description": "Airport IATA code, or TYO to search both Haneda (HND) and Narita (NRT)."
    },
    "destination": {
      "type": "string",
      "pattern": "^[A-Z]{3}$",
      "description": "Airport IATA code, or TYO to search both Haneda (HND) and Narita (NRT)."
    },
    "departureDate": {
      "type": "string",
      "format": "date"
    },
    "returnDate": {
      "type": "string",
      "format": "date"
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9,
      "default": 1
    },
    "children": {
      "type": "integer",
      "minimum": 0,
      "maximum": 8,
      "default": 0
    },
    "infants": {
      "type": "integer",
      "minimum": 0,
      "maximum": 8,
      "default": 0
    },
    "cabinClass": {
      "type": "string",
      "enum": [
        "economy",
        "premium_economy",
        "business",
        "first"
      ],
      "default": "economy"
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Z]{3}$",
      "default": "JPY"
    },
    "locale": {
      "type": "string",
      "pattern": "^[a-z]{2,3}(-[A-Z]{2})?$",
      "default": "ja-JP"
    },
    "pointOfSaleCountry": {
      "type": "string",
      "pattern": "^[A-Z]{2}$",
      "default": "JP",
      "description": "Requested sales-country context. Booking results match the requested currency and are not filtered by sales country."
    },
    "maxResults": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20
    },
    "cacheTtlSeconds": {
      "type": "integer",
      "minimum": 60,
      "maximum": 259200,
      "default": 300
    }
  }
}