{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Flights Scraper API ✈️ (flight prices, cheapest dates)",
    "description": "Google Flights fares for any route and date: price, airlines, flight numbers, local times, stops, layovers, aircraft, CO2 and Google's price insight, plus a cheapest-date calendar. Round trips, batch routes, any currency. No API key.",
    "version": "0.1",
    "x-build-id": "AdiuJH8Wz1Uy0VvQ9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tagadanar~google-flights-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tagadanar-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/tagadanar~google-flights-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tagadanar-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/tagadanar~google-flights-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tagadanar-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": {
          "origin": {
            "title": "From (airport or city code)",
            "type": "string",
            "description": "IATA code of the departure airport (JFK, LHR, CDG) or of a whole city (NYC, LON, PAR). Several airports are fine, separated by commas: JFK,EWR,LGA."
          },
          "destination": {
            "title": "To (airport or city code)",
            "type": "string",
            "description": "IATA code of the arrival airport or city, e.g. LAX, MIA, TYO. Several codes separated by commas work too."
          },
          "departureDate": {
            "title": "Departure date",
            "type": "string",
            "description": "A date like 2026-12-20, or +30 for \"30 days after the day the run starts\" (handy for schedules that always look a month ahead). Empty = 30 days from today."
          },
          "returnDate": {
            "title": "Return date (round trip)",
            "type": "string",
            "description": "Leave empty for a one-way trip. A date like 2026-12-27, or +7 for \"7 days after the departure date\"."
          },
          "routes": {
            "title": "More routes (batch)",
            "type": "array",
            "description": "Search many routes or dates in one run. Each item is {\"origin\": \"JFK\", \"destination\": \"LAX\", \"departureDate\": \"2026-12-20\", \"returnDate\": \"2026-12-27\"} or a line like \"JFK-LAX 2026-12-20 2026-12-27\". Passengers, cabin and filters below apply to every route. Up to 500 routes per run."
          },
          "adults": {
            "title": "Adults",
            "minimum": 0,
            "maximum": 9,
            "type": "integer",
            "description": "Travellers aged 12 and over. Prices are the total for all passengers.",
            "default": 1
          },
          "children": {
            "title": "Children (2-11)",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Children aged 2 to 11.",
            "default": 0
          },
          "infantsInSeat": {
            "title": "Infants in seat",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Infants under 2 with their own seat (priced close to an adult fare).",
            "default": 0
          },
          "infantsOnLap": {
            "title": "Infants on lap",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Infants under 2 travelling on an adult's lap (one per adult).",
            "default": 0
          },
          "cabinClass": {
            "title": "Cabin class",
            "enum": [
              "economy",
              "premium_economy",
              "business",
              "first"
            ],
            "type": "string",
            "description": "Cabin to search. Rows also show the cabin of each flight, since some itineraries mix cabins.",
            "default": "economy"
          },
          "maxStops": {
            "title": "Stops",
            "enum": [
              "any",
              "0",
              "1",
              "2"
            ],
            "type": "string",
            "description": "Limit the number of stops. Google applies it, so the list you get is the full list for that filter.",
            "default": "any"
          },
          "airlines": {
            "title": "Only these airlines",
            "type": "array",
            "description": "Two-letter airline codes (AA, DL, BA) or an alliance: STAR_ALLIANCE, SKYTEAM, ONEWORLD. Empty = all airlines.",
            "items": {
              "type": "string"
            }
          },
          "excludeAirlines": {
            "title": "Exclude these airlines",
            "type": "array",
            "description": "Airline codes or alliances to leave out, e.g. NK, F9.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Order of results",
            "enum": [
              "best",
              "price",
              "duration",
              "departure"
            ],
            "type": "string",
            "description": "How the rows of each search are ordered before the limit below is applied. Every row keeps Google's own rank and its \"best\" flag.",
            "default": "best"
          },
          "maxResultsPerSearch": {
            "title": "Max flights per search",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Google Flights lists up to about 30 itineraries per search (fewer on small routes). Lower this to keep only the top ones in the order chosen above.",
            "default": 30
          },
          "returnFlightsForTop": {
            "title": "Return flights for the top N outbound flights (round trips)",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Round trips only. Google prices a round trip in two steps: first the outbound flights (each with the cheapest round-trip total), then the return flights that go with the outbound you pick. Set N to also get the return options of the top N outbound flights, each with its exact round-trip price. 0 = outbound list only.",
            "default": 0
          },
          "cheapestDatesDays": {
            "title": "Cheapest-date calendar: number of departure dates",
            "minimum": 0,
            "maximum": 120,
            "type": "integer",
            "description": "0 = normal flight search. Set e.g. 30 to get one row per departure date, starting at the departure date, with the cheapest fare of that day (round trips keep the same trip length). Calendar runs return date rows instead of the flight list.",
            "default": 0
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "CAD",
              "AUD",
              "NZD",
              "CHF",
              "JPY",
              "INR",
              "SGD",
              "HKD",
              "AED",
              "SAR",
              "BRL",
              "MXN",
              "ZAR",
              "SEK",
              "NOK",
              "DKK",
              "PLN",
              "CZK",
              "HUF",
              "TRY",
              "KRW",
              "THB",
              "IDR",
              "MYR",
              "PHP",
              "VND",
              "CNY",
              "TWD",
              "ILS",
              "EGP",
              "NGN",
              "COP",
              "CLP",
              "ARS",
              "PEN"
            ],
            "type": "string",
            "description": "Currency of every price. It is recorded on each row.",
            "default": "USD"
          },
          "country": {
            "title": "Search from country (point of sale)",
            "enum": [
              "US",
              "GB",
              "CA",
              "AU",
              "NZ",
              "IE",
              "DE",
              "FR",
              "ES",
              "IT",
              "NL",
              "BE",
              "CH",
              "AT",
              "PT",
              "SE",
              "NO",
              "DK",
              "FI",
              "PL",
              "CZ",
              "GR",
              "TR",
              "AE",
              "SA",
              "IL",
              "IN",
              "SG",
              "HK",
              "JP",
              "KR",
              "TH",
              "MY",
              "ID",
              "PH",
              "VN",
              "TW",
              "ZA",
              "EG",
              "NG",
              "BR",
              "MX",
              "AR",
              "CO",
              "CL",
              "PE"
            ],
            "type": "string",
            "description": "The country Google Flights prices the search for. Fares and the sellers shown can differ by country.",
            "default": "US"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}