{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Flights Scraper | Real-Time Flight Prices API",
    "description": "Real-time Google Flights prices. One-way and round-trip fares with airlines, layovers, durations, Google price insights and a direct booking link on every result. Per-leg filters for stops, airlines and departure times. Ideal for price monitoring, travel apps, fare analytics and AI agents.",
    "version": "0.1",
    "x-build-id": "hYh6tk70hA2xPnTOI"
  },
  "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": "Retry harder on difficult routes",
            "type": "boolean",
            "description": "Some routes take Google longer to price, typically small regional airports or itineraries with two or more stops. Turn this on to wait longer instead of getting an empty result. Runs take longer.",
            "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
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}