{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Flights Scraper",
    "description": "Google Flights Scraper — Extract Google Flights data including airlines, routes, departure and arrival times, prices, flight durations, stops, airports, baggage details, and booking URLs. Useful for flight research, fare comparison, travel planning, and market analysis.",
    "version": "0.4",
    "x-build-id": "vsCfgu5vlEVZvZv47"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fastdataapi~google-flights-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fastdataapi-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/fastdataapi~google-flights-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fastdataapi-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/fastdataapi~google-flights-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fastdataapi-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": {
          "departureIATA": {
            "title": "📍 Departure Airport(s)",
            "type": "string",
            "description": "3-letter IATA code(s) such as LAX or JFK. Separate several codes with commas: every departure is searched against every destination, each pair as its own route. City names london, paris, tokyo and nyc are accepted.",
            "default": "LAX"
          },
          "arrivalIATA": {
            "title": "📍 Destination Airport(s)",
            "type": "string",
            "description": "3-letter IATA code(s), separated by commas for several destinations (e.g. LHR, CDG, FRA). 'london' searches LHR.",
            "default": "JFK"
          },
          "departureDate": {
            "title": "📅 Departure Date",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Travel date. A date in the past or less than 2 days away is moved to 21 days from today; the date really searched is shown in every row.",
            "default": "2026-10-15"
          },
          "departureDateRng": {
            "title": "📅 Departure Flex Days",
            "type": "string",
            "description": "Not used at the moment.",
            "default": ""
          },
          "arrivalDate": {
            "title": "📅 Return Date",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Return date for a round trip; leave empty for one way. A return date on or before the departure date is moved to 7 days after it.",
            "default": ""
          },
          "arrivalDateRng": {
            "title": "📅 Return Flex Days",
            "type": "string",
            "description": "Not used at the moment.",
            "default": ""
          },
          "multi_city_json": {
            "title": "🔧 Multi-City JSON",
            "type": "string",
            "description": "JSON list of two or more legs for a multi-city trip: [{\"departure_id\":\"SAN\",\"arrival_id\":\"LAX\",\"date\":\"2026-11-15\"},{\"departure_id\":\"LAX\",\"arrival_id\":\"MAD\",\"date\":\"2026-11-17\"}]. When set, the airports and dates above are not used. Results list the options for the first flight with the price of the whole trip, as Google shows them.",
            "default": ""
          },
          "adults": {
            "title": "🔢 Adults",
            "minimum": 1,
            "maximum": 9,
            "type": "integer",
            "description": "Number of adult passengers (12+ years). At most 9 passengers in total.",
            "default": 1
          },
          "children": {
            "title": "🔢 Children",
            "minimum": 0,
            "maximum": 9,
            "type": "integer",
            "description": "Number of children (2-12 years).",
            "default": 0
          },
          "infants": {
            "title": "🔢 Infants",
            "minimum": 0,
            "maximum": 9,
            "type": "integer",
            "description": "Number of infants (under 2 years, on lap). One adult per infant.",
            "default": 0
          },
          "seatclass": {
            "title": "🔧 Cabin Class",
            "enum": [
              "1",
              "2",
              "3",
              "4"
            ],
            "type": "string",
            "description": "Cabin to search.",
            "default": "1"
          },
          "stops": {
            "title": "🎯 Max Stops",
            "enum": [
              "0",
              "1",
              "2"
            ],
            "type": "string",
            "description": "Most layovers a flight may have. Only flights within the limit are returned; a route with none gives no rows and is not charged.",
            "default": "2"
          },
          "alliances": {
            "title": "🎯 Alliances",
            "type": "string",
            "description": "Keep only flights where every leg is flown by a member of these alliances: STAR, SKYTEAM, ONEWORLD (comma-separated). ALL = no filter. Combined with Specific Airlines, a flight may use any of the chosen airlines or alliance members.",
            "default": "ALL"
          },
          "airlines": {
            "title": "🎯 Specific Airlines",
            "type": "string",
            "description": "Keep only flights where every leg is flown by these airlines: 2-character codes, comma-separated (e.g. AA, DL). ALL = no filter.",
            "default": "ALL"
          },
          "maxPrice": {
            "title": "🎯 Budget Limit",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price in the chosen currency (0 = no limit). Flights without a shown price are left out when a limit is set.",
            "default": 0
          },
          "currency": {
            "title": "🔧 Currency",
            "minLength": 3,
            "maxLength": 3,
            "type": "string",
            "description": "Price currency (USD, EUR, BDT, etc.).",
            "default": "USD"
          },
          "hl": {
            "title": "🌍 Language Code",
            "enum": [
              "en",
              "es",
              "fr",
              "de",
              "it",
              "pt",
              "ru",
              "ja",
              "ko",
              "zh",
              "ar",
              "hi",
              "tr",
              "pl",
              "nl",
              "sv",
              "da",
              "no",
              "fi",
              "cs",
              "hu",
              "ro",
              "el",
              "th",
              "vi",
              "id",
              "ms",
              "he",
              "uk"
            ],
            "type": "string",
            "description": "Language of airport and airline names (e.g. 'en', 'fr', 'de', 'es'). Default: 'en'",
            "default": "en"
          },
          "gl": {
            "title": "📍 Country Code",
            "enum": [
              "us",
              "uk",
              "ca",
              "au",
              "de",
              "fr",
              "es",
              "it",
              "nl",
              "pl",
              "br",
              "ru",
              "jp",
              "kr",
              "cn",
              "tw",
              "in",
              "sa",
              "tr",
              "se",
              "dk",
              "no",
              "fi",
              "cz",
              "hu",
              "ro",
              "mx",
              "ar",
              "ch",
              "at",
              "be",
              "ie",
              "nz",
              "sg",
              "my",
              "th",
              "ph",
              "id",
              "vn"
            ],
            "type": "string",
            "description": "Country Google Flights searches from, which can change prices (e.g. 'us', 'uk', 'fr', 'de'). Default: 'us'",
            "default": "us"
          },
          "max_pages": {
            "title": "🔢 Scroll Depth",
            "minimum": 1,
            "type": "integer",
            "description": "Not used at the moment: every search reads Google's full flight list.",
            "default": 1
          },
          "maximum": {
            "title": "🔢 Max Results",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Most flights saved per route, best flights first. Free plan: up to 20 flights per run (all routes together) and 200 per month; paid plans have no limit.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy",
            "type": "object",
            "description": "Default: Apify residential proxy, with a new exit address on every retry. Other proxy groups move to residential when Google blocks; with no proxy the actor starts direct and switches to a proxy when blocked.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}