{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Flights Scraper - Most Comprehensive",
    "description": "🔥 ~$0.05/1K flights 🔥 Search one-way, round-trip, and multi-city flights, compare flexible dates and destinations, and add optional booking choices.",
    "version": "0.2",
    "x-build-id": "dYzuxgYpSmEhcuXD4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kaix~google-flights-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kaix-google-flights-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/kaix~google-flights-scraper/runs": {
      "post": {
        "operationId": "runs-sync-kaix-google-flights-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/kaix~google-flights-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-kaix-google-flights-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searches": {
            "title": "Flight Searches",
            "type": "array",
            "description": "List of specific flight searches to run. Each route must use different origin and destination airports. Leave this empty only for an Explore-only run. If omitted without an Explore origin, the Actor uses a sample SFO to LAX route for the first day of next month. For multi-city, entries are the ordered legs of one journey.",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "origin",
                "destination",
                "departureDate"
              ],
              "properties": {
                "origin": {
                  "title": "Origin Airport",
                  "type": "string",
                  "description": "IATA airport code (e.g. SFO, JFK, LAX).",
                  "editor": "textfield",
                  "minLength": 3,
                  "maxLength": 3,
                  "pattern": "^[A-Za-z]{3}$"
                },
                "destination": {
                  "title": "Destination Airport",
                  "type": "string",
                  "description": "IATA airport code (e.g. LAX, NRT, LHR).",
                  "editor": "textfield",
                  "minLength": 3,
                  "maxLength": 3,
                  "pattern": "^[A-Za-z]{3}$"
                },
                "departureDate": {
                  "title": "Departure Date",
                  "type": "string",
                  "description": "Departure date in YYYY-MM-DD format.",
                  "editor": "textfield",
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                },
                "returnDate": {
                  "title": "Return Date",
                  "type": "string",
                  "description": "Return date in YYYY-MM-DD format (required for round trips).",
                  "editor": "textfield",
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                }
              }
            }
          },
          "tripType": {
            "title": "Trip Type",
            "enum": [
              "one-way",
              "round-trip",
              "multi-city"
            ],
            "type": "string",
            "description": "Trip type for Flight Searches. If omitted, inferred from returnDate presence. Multi-city treats Flight Searches as 2–5 ordered legs. Non-default Search settings require at least one Flight Search."
          },
          "exploreOrigin": {
            "title": "Explore From (airport)",
            "pattern": "^[A-Za-z]{3}$",
            "minLength": 3,
            "maxLength": 3,
            "type": "string",
            "description": "IATA airport code to explore priced destinations from. Clear Flight Searches to run Explore only."
          },
          "tripDuration": {
            "title": "Trip Duration",
            "enum": [
              "weekend",
              "1-week",
              "2-weeks"
            ],
            "type": "string",
            "description": "How long the flexible-date trip should be. Non-default values require Explore From.",
            "default": "1-week"
          },
          "exploreMonth": {
            "title": "Month",
            "enum": [
              "next-6-months",
              "january",
              "february",
              "march",
              "april",
              "may",
              "june",
              "july",
              "august",
              "september",
              "october",
              "november",
              "december"
            ],
            "type": "string",
            "description": "Explore the next six months or a named calendar month. Named months require Explore From.",
            "default": "next-6-months"
          },
          "cabinClass": {
            "title": "Cabin Class",
            "enum": [
              "economy",
              "premium-economy",
              "business",
              "first"
            ],
            "type": "string",
            "description": "Cabin class preference.",
            "default": "economy"
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 9,
            "type": "integer",
            "description": "Number of adult passengers. Total passengers cannot exceed 9.",
            "default": 1
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 9,
            "type": "integer",
            "description": "Number of child passengers.",
            "default": 0
          },
          "infantsOnLap": {
            "title": "Infants (on lap)",
            "minimum": 0,
            "maximum": 9,
            "type": "integer",
            "description": "Number of infants traveling on an adult's lap. Cannot exceed Adults. Applies to Search and Explore.",
            "default": 0
          },
          "infantsInSeat": {
            "title": "Infants (in seat)",
            "minimum": 0,
            "maximum": 9,
            "type": "integer",
            "description": "Number of infants traveling in their own seat. Applies to Search and Explore.",
            "default": 0
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "ALL",
              "DZD",
              "ARS",
              "AMD",
              "AWG",
              "AUD",
              "AZN",
              "BSD",
              "BHD",
              "BYN",
              "BMD",
              "BAM",
              "BRL",
              "GBP",
              "CAD",
              "XPF",
              "CLP",
              "CNY",
              "COP",
              "CRC",
              "CUP",
              "CZK",
              "DKK",
              "DOP",
              "EGP",
              "EUR",
              "GEL",
              "HKD",
              "HUF",
              "ISK",
              "INR",
              "IDR",
              "IRR",
              "ILS",
              "JMD",
              "JPY",
              "JOD",
              "KZT",
              "KWD",
              "LBP",
              "MKD",
              "MYR",
              "MXN",
              "MDL",
              "MAD",
              "TWD",
              "NZD",
              "NGN",
              "NOK",
              "OMR",
              "PKR",
              "PAB",
              "PEN",
              "PHP",
              "PLN",
              "QAR",
              "RON",
              "RUB",
              "SAR",
              "RSD",
              "SGD",
              "ZAR",
              "KRW",
              "SEK",
              "CHF",
              "THB",
              "TRY",
              "UAH",
              "AED",
              "USD",
              "VND"
            ],
            "type": "string",
            "description": "Currency used for returned prices and maxPrice.",
            "default": "USD"
          },
          "maxStops": {
            "title": "Max Stops",
            "enum": [
              "0",
              "1",
              "2"
            ],
            "type": "string",
            "description": "Maximum number of stops."
          },
          "maxPrice": {
            "title": "Max Price",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum total price in the selected currency."
          },
          "maxDuration": {
            "title": "Max Duration (minutes)",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum duration per flight leg, in minutes."
          },
          "airlines": {
            "title": "Airlines",
            "maxItems": 20,
            "type": "array",
            "description": "Filter by up to 20 airline IATA codes or alliance names (e.g. UA, AA, ONEWORLD).",
            "items": {
              "type": "string",
              "minLength": 2,
              "maxLength": 32,
              "pattern": "^\\s*(?:[A-Za-z0-9]{2}|[Oo][Nn][Ee][Ww][Oo][Rr][Ll][Dd]|[Ss][Tt][Aa][Rr]_[Aa][Ll][Ll][Ii][Aa][Nn][Cc][Ee]|[Ss][Kk][Yy][Tt][Ee][Aa][Mm])\\s*$"
            }
          },
          "departureTimeEarliest": {
            "title": "Departure Time (earliest)",
            "pattern": "^(?:[01]?\\d|2[0-3])(?::[0-5]\\d)?$",
            "type": "string",
            "description": "Earliest local departure time as an hour (0-23) or HH:MM. If it is later than the latest time, the range crosses midnight."
          },
          "departureTimeLatest": {
            "title": "Departure Time (latest)",
            "pattern": "^(?:[01]?\\d|2[0-3])(?::[0-5]\\d)?$",
            "type": "string",
            "description": "Latest local departure time as an hour (0-23) or HH:MM. A plain hour includes that full hour; a value earlier than the earliest time ends an overnight range."
          },
          "arrivalTimeEarliest": {
            "title": "Arrival Time (earliest)",
            "pattern": "^(?:[01]?\\d|2[0-3])(?::[0-5]\\d)?$",
            "type": "string",
            "description": "Earliest local arrival time as an hour (0-23) or HH:MM. If it is later than the latest time, the range crosses midnight."
          },
          "arrivalTimeLatest": {
            "title": "Arrival Time (latest)",
            "pattern": "^(?:[01]?\\d|2[0-3])(?::[0-5]\\d)?$",
            "type": "string",
            "description": "Latest local arrival time as an hour (0-23) or HH:MM. A plain hour includes that full hour; a value earlier than the earliest time ends an overnight range."
          },
          "sortBy": {
            "title": "Sort By",
            "enum": [
              "best",
              "cheapest",
              "fastest",
              "departure-time",
              "arrival-time"
            ],
            "type": "string",
            "description": "How to sort Flight Search results. Non-default sorting requires at least one Flight Search.",
            "default": "best"
          },
          "showAllResults": {
            "title": "Show All Results",
            "type": "boolean",
            "description": "Return more available Flight Search choices before applying filters. Requires at least one Flight Search. Round-trip and multi-city results include one complete set of earlier legs plus available alternatives for the final leg; they do not list every possible leg combination.",
            "default": false
          },
          "includeCalendarPrices": {
            "title": "Include Calendar Prices",
            "type": "boolean",
            "description": "Return one-way or fixed-stay round-trip calendar prices. Requires at least one flight search and is unavailable for multi-city. Prices attach to the first flight result, or are returned as a calendar record when no matching flight is returned.",
            "default": false
          },
          "calendarMode": {
            "title": "Calendar Mode",
            "enum": [
              "graph",
              "grid",
              "picker"
            ],
            "type": "string",
            "description": "Used when Include Calendar Prices is enabled. Graph checks a forward one-way window. Grid checks a centered one-way window and requires enough future lead time. Picker checks fixed-stay date pairs and requires a round trip. Defaults are 61 days for Graph and Picker, and 7 days for Grid.",
            "default": "graph"
          },
          "calendarDays": {
            "title": "Calendar Window (days)",
            "minimum": 1,
            "maximum": 90,
            "type": "integer",
            "description": "Number of dates or Picker date pairs to check, from 1 to 90. Requires Include Calendar Prices. Defaults to 61 for Graph and Picker, or 7 for Grid. Grid values must be odd so the window remains centered."
          },
          "includeBookingDetails": {
            "title": "Include Booking Details",
            "type": "boolean",
            "description": "Attach booking choices, prices, baggage-policy links, and booking forms. Requires at least one flight search and can add significant runtime when many itineraries are returned.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Connection Settings",
            "type": "object",
            "description": "Optional connection settings for this run. The default works for most runs.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": []
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}