{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Flights Scraper: Flight Prices & Fare Deals",
    "description": "Google Flights scraper: live one-way and round-trip prices for any route or pasted Google Flights link. Airline, stops, times, airports, duration, layovers, CO2 and Google's price outlook. Compare up to 14 departure dates; filter by cabin, passengers, stops and airlines.",
    "version": "0.6",
    "x-build-id": "eLerVMVSHqTZUzpZJ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automatic~google-flights-deals-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automatic-google-flights-deals-monitor",
        "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/automatic~google-flights-deals-monitor/runs": {
      "post": {
        "operationId": "runs-sync-automatic-google-flights-deals-monitor",
        "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/automatic~google-flights-deals-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-automatic-google-flights-deals-monitor",
        "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": {
          "routes": {
            "title": "Routes to search",
            "type": "array",
            "description": "Each route: origin and destination (IATA code or city name, e.g. LIM, Madrid), optional departDate and returnDate (YYYY-MM-DD, the current date in UTC-12 through UTC today plus 330 days: an actor-imposed conservative horizon, not a verified Google Flights limit; routes with invalid dates are skipped individually). One-way without returnDate, round trip with it.",
            "items": {
              "type": "object",
              "required": [
                "origin",
                "destination"
              ],
              "properties": {
                "origin": {
                  "type": "string",
                  "title": "Origin",
                  "description": "IATA airport code or city name, e.g. LIM or Lima."
                },
                "destination": {
                  "type": "string",
                  "title": "Destination",
                  "description": "IATA airport code or city name, e.g. MAD or Madrid."
                },
                "departDate": {
                  "type": "string",
                  "title": "Departure date",
                  "description": "YYYY-MM-DD, the current date in UTC-12 through UTC today plus 330 days (actor-imposed conservative horizon, not a verified Google Flights limit; routes with invalid dates are skipped individually). Omit to let Google Flights pick a date."
                },
                "returnDate": {
                  "type": "string",
                  "title": "Return date",
                  "description": "YYYY-MM-DD, within the current UTC-12 date through UTC today plus 330 days, and no earlier than departure (actor-imposed conservative horizon, not a verified Google Flights limit; routes with invalid dates are skipped individually). Set with departDate for round trips."
                }
              }
            },
            "default": []
          },
          "origin": {
            "title": "Origin (single-route shorthand)",
            "type": "string",
            "description": "Shortcut when searching one route: sets routes[0].origin. Ignored when routes is provided.",
            "default": "LIM"
          },
          "destination": {
            "title": "Destination (single-route shorthand)",
            "type": "string",
            "description": "Shortcut when searching one route: sets routes[0].destination. Ignored when routes is provided.",
            "default": "MAD"
          },
          "departDate": {
            "title": "Departure date (single-route shorthand)",
            "type": "string",
            "description": "YYYY-MM-DD, the current date in UTC-12 through UTC today plus 330 days (actor-imposed conservative horizon, not a verified Google Flights limit; routes with invalid dates are skipped individually); leave empty to let Google Flights pick a date.",
            "default": ""
          },
          "returnDate": {
            "title": "Return date (single-route shorthand)",
            "type": "string",
            "description": "YYYY-MM-DD, within the current UTC-12 date through UTC today plus 330 days, and no earlier than departure (actor-imposed conservative horizon, not a verified Google Flights limit; routes with invalid dates are skipped individually); with departDate makes the shorthand route a round trip.",
            "default": ""
          },
          "departDateWindowDays": {
            "title": "Departure dates to compare",
            "minimum": 1,
            "maximum": 14,
            "type": "integer",
            "description": "Search this many consecutive departure dates, starting at each route's departDate (the return date moves with it). With more than 1, each date returns its cheapest itinerary only. Needs departDate in YYYY-MM-DD.",
            "default": 1
          },
          "searchUrls": {
            "title": "Google Flights links",
            "type": "array",
            "description": "Paste search links from google.com/travel/flights (one-way or round trip). Each link is one search, with the filters it already carries. Prices come in the currency selected below.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchMode": {
            "title": "Search mode",
            "enum": [
              "deals",
              "full"
            ],
            "type": "string",
            "description": "deals returns the standard itinerary fields. full also adds per-segment detail (legs): each segment's flight number, marketing and operating airline, aircraft, legroom and its own airports, dates, times and duration.",
            "default": "deals"
          },
          "maxResults": {
            "title": "Maximum itineraries per route",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Stop after this many priced itineraries per route.",
            "default": 25
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "USD",
              "EUR",
              "PEN",
              "MXN",
              "GBP",
              "BRL",
              "COP",
              "ARS",
              "CLP"
            ],
            "type": "string",
            "description": "ISO code for displayed prices.",
            "default": "USD"
          },
          "cabinClass": {
            "title": "Cabin class",
            "enum": [
              "economy",
              "premium-economy",
              "business",
              "first"
            ],
            "type": "string",
            "description": "Cabin to price. Anything other than economy needs airport codes and a departDate on every route.",
            "default": "economy"
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 9,
            "type": "integer",
            "description": "Adult passengers. Prices are the total for all passengers. More than 1 needs airport codes and a departDate on every route.",
            "default": 1
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Child passengers (2-11). Needs airport codes and a departDate on every route.",
            "default": 0
          },
          "maxStops": {
            "title": "Maximum stops",
            "minimum": 0,
            "maximum": 2,
            "type": "integer",
            "description": "0 for nonstop only, 1 or 2 for at most that many stops. Leave empty for any number of stops. Nonstop works on every route; 1 or 2 need airport codes and a departDate."
          },
          "airlines": {
            "title": "Airlines",
            "type": "array",
            "description": "Only show flights from these airlines, as 2-character codes (e.g. DL, IB, LA). Needs airport codes and a departDate on every route.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "requestDelaySecs": {
            "title": "Delay between route requests",
            "minimum": 0.5,
            "maximum": 30,
            "type": "number",
            "description": "Minimum seconds between route requests.",
            "default": 2
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}