{
  "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": "uDvi2A6nF0BLNWiSo"
  },
  "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": {
          "flightUrl": {
            "title": "Google Flights URL",
            "type": "string",
            "description": "Optional HTTPS Google Flights URL from google.com or www.google.com. Supports airport searches with tfs, or q text such as Flights from SFO to LAX on 2027-08-15. The URL replaces Flight Searches and Trip Type. Explicit passenger, cabin, currency, country, and language values override the URL values. City/place IDs, selected-flight links, and encoded filters are not supported. Invalid URLs stop the run. Blank or null means unset."
          },
          "searches": {
            "title": "Flight Searches",
            "type": "array",
            "description": "List of specific flight searches to run. Each entry contains origin, destination, departureDate, and an optional returnDate. Each endpoint accepts one IATA airport code, a comma-separated list, or an array of codes. Codes are trimmed, uppercased, and deduplicated. Airport groups stay in one search. Invalid independent entries are skipped without discarding valid siblings. An explicit empty list is a no-op unless Explore From is set; omission uses the sample route. At most 20 entries are processed. Multi-city is one coupled journey, so an invalid or oversized leg list is skipped as a whole; returnDate is ignored for multi-city legs. Google Flights URL takes precedence."
          },
          "tripType": {
            "title": "Trip Type",
            "type": "string",
            "description": "Trip type for Flight Searches. Independent entries are resolved from their own returnDate, so one-way and round-trip routes can share a batch. Multi-city processes the supplied entries as one ordered journey. Search-only settings are accepted and ignored when no Flight Search runs."
          },
          "exploreOrigin": {
            "title": "Explore From (airport)",
            "type": "string",
            "description": "IATA airport code to explore priced destinations from. Clear Flight Searches to run Explore only."
          },
          "tripDuration": {
            "title": "Trip Duration",
            "type": "string",
            "description": "How long the flexible-date trip should be when Explore From is set. Otherwise this setting is accepted and ignored.",
            "default": "1-week"
          },
          "exploreMonth": {
            "title": "Month",
            "type": "string",
            "description": "Explore the next six months or a named calendar month when Explore From is set. Otherwise this setting is accepted and ignored.",
            "default": "next-6-months"
          },
          "cabinClass": {
            "title": "Cabin Class",
            "type": "string",
            "description": "Cabin class preference."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 9,
            "type": "integer",
            "description": "Number of adult passengers, from 1 to 9. Passenger fields keep their individual ranges without a combined-total input gate."
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 9,
            "type": "integer",
            "description": "Number of child passengers."
          },
          "infantsOnLap": {
            "title": "Infants (on lap)",
            "minimum": 0,
            "maximum": 9,
            "type": "integer",
            "description": "Number of infants traveling on an adult's lap, from 0 to 9. The value is passed through without a cross-field comparison to Adults."
          },
          "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."
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "Three-letter currency code used for returned prices and maxPrice. Codes are trimmed and uppercased. Any canonical three-letter code is preserved; malformed values warn and use USD."
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Two-letter country code used for Google Flights search settings, such as US, GB, or SE. Codes are trimmed and uppercased; UK becomes GB. This does not change the proxy country. Invalid values warn and use US."
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Language code used for search results, such as en-US, sv, or de. Valid language tags are normalized. Invalid values warn and use en-US. Applies to flight, calendar, destination, and booking requests."
          },
          "maxStops": {
            "title": "Max Stops",
            "type": "string",
            "description": "Maximum number of stops. Blank or unsupported values are treated as unset with a warning."
          },
          "maxPrice": {
            "title": "Max Price",
            "type": "number",
            "description": "Maximum total price in the selected currency."
          },
          "maxDuration": {
            "title": "Max Duration (minutes)",
            "type": "number",
            "description": "Maximum duration per flight leg, in minutes."
          },
          "airlines": {
            "title": "Airlines",
            "type": "array",
            "description": "Filter by caller-supplied airline IATA codes or alliance names (e.g. UA, AA, ONEWORLD). Values are trimmed and uppercased; blank or non-string entries are ignored with a warning.",
            "items": {
              "type": "string"
            }
          },
          "departureTimeEarliest": {
            "title": "Departure Time (earliest)",
            "type": "string",
            "description": "Earliest local departure time as a real numeric hour or HH:MM value. If it is later than the latest time, the range crosses midnight."
          },
          "departureTimeLatest": {
            "title": "Departure Time (latest)",
            "type": "string",
            "description": "Latest local departure time as a real numeric hour or HH:MM value. A plain hour includes that full hour; a value earlier than the earliest time ends an overnight range."
          },
          "arrivalTimeEarliest": {
            "title": "Arrival Time (earliest)",
            "type": "string",
            "description": "Earliest local arrival time as a real numeric hour or HH:MM value. If it is later than the latest time, the range crosses midnight."
          },
          "arrivalTimeLatest": {
            "title": "Arrival Time (latest)",
            "type": "string",
            "description": "Latest local arrival time as a real numeric hour or HH:MM value. A plain hour includes that full hour; a value earlier than the earliest time ends an overnight range."
          },
          "sortBy": {
            "title": "Sort By",
            "type": "string",
            "description": "How to sort Flight Search results. When no Flight Search runs, this setting is accepted and ignored.",
            "default": "best"
          },
          "showAllResults": {
            "title": "Show All Results",
            "type": "boolean",
            "description": "Return more available Flight Search choices before applying filters. When no Flight Search runs, this setting is accepted and ignored. 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
          },
          "maxResults": {
            "title": "Maximum Flight Results per Search",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of flight rows for each independent route, or for the complete multi-city journey. Applied after filtering and sorting, before booking lookups. Omit or use null to keep all returned flights. Calendar and destination records do not count. Invalid active limits stop the run."
          },
          "maxBookingDetails": {
            "title": "Maximum Booking Lookups per Search",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of flight rows for which booking details are requested per route or complete journey. Requires Include Booking Details. Only rows with a booking token count. Failed lookups count toward the limit. Zero disables lookups; omitted or null keeps the existing unlimited behavior. All selected flight rows remain in output."
          },
          "includeCalendarPrices": {
            "title": "Include Calendar Prices",
            "type": "boolean",
            "description": "Attempt one-way or round-trip calendar prices when Flight Search work runs. With no Flight Search, this setting is accepted and ignored. For multi-city, Calendar uses the first supplied route. Calendar failures produce a warning and keep any flight results. 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",
            "type": "string",
            "description": "Used only when Include Calendar Prices is enabled; otherwise accepted and ignored. Graph checks a forward window. Grid checks a centered window. Picker requests date pairs and uses returnDate when available. Defaults are 61 days for Graph and Picker, and 7 days for Grid. Calendar-specific failures warn without discarding flight results.",
            "default": "graph"
          },
          "calendarDays": {
            "title": "Calendar Window (days)",
            "type": "number",
            "description": "Number of dates or Picker date pairs to check. Used only when Include Calendar Prices is enabled; otherwise accepted and ignored. Runtime truncates the value, clamps it to 1–90, and normalizes Grid to an odd window. Defaults to 61 for Graph and Picker, or 7 for Grid."
          },
          "includeBookingDetails": {
            "title": "Include Booking Details",
            "type": "boolean",
            "description": "Attempt booking choices, prices, baggage-policy links, and booking forms for returned flights that contain booking tokens. With no eligible flight row, this setting is accepted and produces no booking output. Booking failures warn and keep the flight row. This 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
            }
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}