{
  "openapi": "3.0.1",
  "info": {
    "title": "Flight Route Timetable Scraper",
    "description": "Get the published timetable for any airport pair. One row per scheduled flight: airline, flight number, aircraft type, local departure and arrival times, block time, weekday pattern and the dates each schedule runs. Filter by airline, season or frequency. No account or login needed.",
    "version": "0.0",
    "x-build-id": "e1BMmbntgSXPj5KRp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/apt_marble~flight-route-timetable-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-apt_marble-flight-route-timetable-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/apt_marble~flight-route-timetable-scraper/runs": {
      "post": {
        "operationId": "runs-sync-apt_marble-flight-route-timetable-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/apt_marble~flight-route-timetable-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-apt_marble-flight-route-timetable-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",
        "required": [
          "routes"
        ],
        "properties": {
          "routes": {
            "title": "Routes",
            "type": "array",
            "description": "The airport pairs you want timetables for, one per line, written as two airport codes: \"JFK-LHR\". \"JFK > LHR\", \"JFK to LHR\" and \"JFK LHR\" all work too. Timetables are directional, so add both \"JFK-LHR\" and \"LHR-JFK\" if you want each direction. City-wide codes such as NYC or LON are not accepted here — use the individual airports.",
            "items": {
              "type": "string"
            }
          },
          "airlines": {
            "title": "Only these airlines",
            "type": "array",
            "description": "Limit the timetable to certain airlines. Use two-letter airline codes (BA, AA, VS), which are matched exactly, or names (\"British Airways\", \"Virgin\"), which are matched anywhere in the airline's name. Leave empty to get every airline that flies the route.",
            "items": {
              "type": "string"
            }
          },
          "rowGranularity": {
            "title": "Level of detail",
            "enum": [
              "schedule",
              "validity-band"
            ],
            "type": "string",
            "description": "\"One row per scheduled flight\" gives you one line for each flight number and timing, with the validity dates widened to cover every period it runs — the usual choice. Each merged line lists those periods and states whether they run back to back, so a schedule that stops for the winter is never read as continuous service. \"One row per validity period\" keeps every published period separately, which is what you want if you need the exact week-by-week pattern.",
            "default": "schedule"
          },
          "language": {
            "title": "Airport names in",
            "enum": [
              "en",
              "de",
              "fr",
              "es",
              "it",
              "pt",
              "nl",
              "pl",
              "ru",
              "tr",
              "ja",
              "zh"
            ],
            "type": "string",
            "description": "The language used for airport names in your results — for example German gives \"München (MUC)\" instead of \"Munich (MUC)\". Airline and aircraft names are published in English only, whichever language you choose.",
            "default": "en"
          },
          "yearFrom": {
            "title": "Earliest year",
            "minimum": 1990,
            "maximum": 2037,
            "type": "integer",
            "description": "Keep only flights whose published schedule runs in this year or later. Leave empty to keep everything the source publishes."
          },
          "yearTo": {
            "title": "Latest year",
            "minimum": 1990,
            "maximum": 2037,
            "type": "integer",
            "description": "Keep only flights whose published schedule starts in this year or earlier. Leave empty to keep everything the source publishes."
          },
          "minDaysPerWeek": {
            "title": "Minimum days a week",
            "minimum": 0,
            "maximum": 7,
            "type": "integer",
            "description": "Keep only flights that operate on at least this many days of the week within a single published period. Set it to 7 for daily services only — a flight running six days in one period and five in another does not count as daily — or leave it at 0 to keep everything.",
            "default": 0
          },
          "includeSeasonalOnly": {
            "title": "Seasonal routes only",
            "type": "boolean",
            "description": "Keep only airlines whose service on the route is marked as running in some months of the year rather than all year round. Useful for summer- and winter-season planning.",
            "default": false
          },
          "includeCodeshares": {
            "title": "Include flights listed under a partner airline",
            "type": "boolean",
            "description": "The source lists each flight under the airline that operates it, so this normally changes nothing. Turn it off if you want to be certain that a flight sold under a partner airline's number can never appear in your results.",
            "default": true
          },
          "maxFlightsPerRoute": {
            "title": "Maximum flights per route",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "A ceiling on how many scheduled flights are returned for any one route. Busy routes such as London to New York publish several hundred.",
            "default": 500
          },
          "maxRoutes": {
            "title": "Maximum routes",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "A safety ceiling on how many routes one run will read, so a long list cannot run away with your budget.",
            "default": 50
          },
          "parallelRoutes": {
            "title": "Routes at a time",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "How many routes to work on at once. The default is a good balance between speed and being a polite visitor to the source.",
            "default": 6
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}