{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Flights API · $1.85/1k",
    "description": "Live Google Flights fares with Google's price band and a low, typical or high verdict. Scan a month of dates or the cheapest destinations from one airport in one run. Round trips priced as one request.",
    "version": "0.1",
    "x-build-id": "akDHRfdaYbcaK7Fdh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mtnrabi~google-flights-real-time-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mtnrabi-google-flights-real-time-api",
        "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/mtnrabi~google-flights-real-time-api/runs": {
      "post": {
        "operationId": "runs-sync-mtnrabi-google-flights-real-time-api",
        "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/mtnrabi~google-flights-real-time-api/run-sync": {
      "post": {
        "operationId": "run-sync-mtnrabi-google-flights-real-time-api",
        "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",
        "required": [
          "endpoint",
          "departure_date",
          "from_airport",
          "to_airport"
        ],
        "properties": {
          "endpoint": {
            "title": "Search type",
            "enum": [
              "oneway",
              "roundtrip"
            ],
            "type": "string",
            "description": "One-way searches a single date. Round-trip searches both directions and returns paired itineraries with a combined total price.",
            "default": "oneway"
          },
          "from_airport": {
            "title": "From airport",
            "type": "string",
            "description": "Departure airport IATA code. New York is JFK, London is LHR, Tel Aviv is TLV."
          },
          "to_airport": {
            "title": "To airport",
            "type": "string",
            "description": "Destination airport IATA code."
          },
          "departure_date": {
            "title": "Departure date",
            "type": "string",
            "description": "Date of the outbound flight, in YYYY-MM-DD format."
          },
          "return_date": {
            "title": "Return date",
            "type": "string",
            "description": "Date of the return flight, in YYYY-MM-DD format. Required when search type is Round-trip. Ignored for one-way searches."
          },
          "limit": {
            "title": "Number of results",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many flights to return. Each flight is one result.",
            "default": 10
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "usd",
              "eur",
              "gbp",
              "ils",
              "cad",
              "aud",
              "chf",
              "jpy",
              "inr",
              "brl",
              "mxn",
              "aed",
              "sgd",
              "try",
              "pln",
              "sek",
              "nok",
              "dkk",
              "zar",
              "thb"
            ],
            "type": "string",
            "description": "Currency for all returned prices.",
            "default": "usd"
          },
          "seat_type": {
            "title": "Cabin class",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "Enter 1 for Economy or 3 for Business.",
            "default": 1
          },
          "passengers": {
            "title": "Passengers",
            "type": "array",
            "description": "One entry per traveller. 1 is an adult, 2 is a child, 3 is an infant on lap, 4 is an infant in seat. Two adults and one child is [1, 1, 2]. Leave as is for a single adult.",
            "items": {
              "type": "integer"
            }
          },
          "max_price": {
            "title": "Max price",
            "minimum": 1,
            "type": "integer",
            "description": "Only return flights at or below this price, in the currency selected above."
          },
          "sort_type": {
            "title": "Sort by",
            "enum": [
              "Overall",
              "Price",
              "Duration"
            ],
            "type": "string",
            "description": "Google's own ranking. Overall balances price against duration. Price follows Google's ordering rather than a strict numeric sort, so sort on price_as_number yourself if you need exact price order.",
            "default": "Overall"
          },
          "use_fallback": {
            "title": "Second flight-data source (currently inactive)",
            "type": "boolean",
            "description": "Leave this alone -- it currently changes nothing. It does NOT make the search wait longer for Google: it selects a second, independent flight-data source, and that source is not switched on for the API behind this Actor. Unreadable pages are retried either way.",
            "default": false
          },
          "max_stops": {
            "title": "Max stops",
            "minimum": 0,
            "type": "integer",
            "description": "0 for nonstop only, 1 for up to one stop, and so on."
          },
          "airline_codes": {
            "title": "Only these airlines",
            "type": "array",
            "description": "Airline IATA codes to include, for example LH for Lufthansa or BA for British Airways. Leave empty for all airlines.",
            "items": {
              "type": "string"
            }
          },
          "exclude_airline_codes": {
            "title": "Exclude these airlines",
            "type": "array",
            "description": "Airline IATA codes to leave out of the results.",
            "items": {
              "type": "string"
            }
          },
          "departure_time_min": {
            "title": "Earliest departure hour",
            "minimum": 0,
            "maximum": 23,
            "type": "integer",
            "description": "Hour of day from 0 to 23. Set 6 to skip flights leaving before 6 AM."
          },
          "departure_time_max": {
            "title": "Latest departure hour",
            "minimum": 0,
            "maximum": 23,
            "type": "integer",
            "description": "Hour of day from 0 to 23."
          },
          "arrival_time_min": {
            "title": "Earliest arrival hour",
            "minimum": 0,
            "maximum": 23,
            "type": "integer",
            "description": "Hour of day from 0 to 23."
          },
          "arrival_time_max": {
            "title": "Latest arrival hour",
            "minimum": 0,
            "maximum": 23,
            "type": "integer",
            "description": "Hour of day from 0 to 23. Set 22 to avoid landing after 10 PM."
          },
          "max_departure_stops": {
            "title": "Max stops, outbound leg",
            "minimum": 0,
            "type": "integer",
            "description": "0 for nonstop only on the way out."
          },
          "max_return_stops": {
            "title": "Max stops, return leg",
            "minimum": 0,
            "type": "integer",
            "description": "0 for nonstop only on the way back."
          },
          "departure_airline_codes": {
            "title": "Only these airlines, outbound",
            "type": "array",
            "description": "Airline IATA codes to include on the outbound leg.",
            "items": {
              "type": "string"
            }
          },
          "departure_exclude_airline_codes": {
            "title": "Exclude these airlines, outbound",
            "type": "array",
            "description": "Airline IATA codes to leave out of the outbound leg.",
            "items": {
              "type": "string"
            }
          },
          "return_airline_codes": {
            "title": "Only these airlines, return",
            "type": "array",
            "description": "Airline IATA codes to include on the return leg.",
            "items": {
              "type": "string"
            }
          },
          "return_exclude_airline_codes": {
            "title": "Exclude these airlines, return",
            "type": "array",
            "description": "Airline IATA codes to leave out of the return leg.",
            "items": {
              "type": "string"
            }
          },
          "departure_departure_time_min": {
            "title": "Earliest departure hour, outbound",
            "minimum": 0,
            "maximum": 23,
            "type": "integer",
            "description": "Hour of day from 0 to 23."
          },
          "departure_departure_time_max": {
            "title": "Latest departure hour, outbound",
            "minimum": 0,
            "maximum": 23,
            "type": "integer",
            "description": "Hour of day from 0 to 23."
          },
          "departure_arrival_time_min": {
            "title": "Earliest arrival hour, outbound",
            "minimum": 0,
            "maximum": 23,
            "type": "integer",
            "description": "Hour of day from 0 to 23."
          },
          "departure_arrival_time_max": {
            "title": "Latest arrival hour, outbound",
            "minimum": 0,
            "maximum": 23,
            "type": "integer",
            "description": "Hour of day from 0 to 23."
          },
          "return_departure_time_min": {
            "title": "Earliest departure hour, return",
            "minimum": 0,
            "maximum": 23,
            "type": "integer",
            "description": "Hour of day from 0 to 23."
          },
          "return_departure_time_max": {
            "title": "Latest departure hour, return",
            "minimum": 0,
            "maximum": 23,
            "type": "integer",
            "description": "Hour of day from 0 to 23."
          },
          "return_arrival_time_min": {
            "title": "Earliest arrival hour, return",
            "minimum": 0,
            "maximum": 23,
            "type": "integer",
            "description": "Hour of day from 0 to 23."
          },
          "return_arrival_time_max": {
            "title": "Latest arrival hour, return",
            "minimum": 0,
            "maximum": 23,
            "type": "integer",
            "description": "Hour of day from 0 to 23."
          },
          "use_ext_proxy": {
            "title": "Route through a residential proxy",
            "type": "boolean",
            "description": "On by default. Reduces the chance of Google blocking the search. Turn it off for slightly lower latency on easy routes.",
            "default": true
          },
          "strict": {
            "title": "Fail the run if the search does not complete",
            "type": "boolean",
            "description": "Off by default, which keeps today's behaviour. Google sometimes serves a consent wall or a bot check instead of results, and the search then finishes with an empty dataset that looks exactly like \"there are no flights on this route\". Turn this on to have such a run fail loudly instead -- useful when the run feeds a pipeline that would otherwise record \"no flights\" as a fact. A failed search is not charged. Either way, the run's status message and the SEARCH_OUTCOME record in the key-value store say which case it was.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}