{
  "openapi": "3.0.1",
  "info": {
    "title": "New Route Launch Monitor",
    "description": "Know the moment an airline adds, announces, starts or drops a route at the airports you watch. Schedule it and every run returns one row per change — with the destination, the airline and its own published first-flight date. Built for airport marketing, tourism boards and aviation press.",
    "version": "0.0",
    "x-build-id": "HaYNwHF5jCx9NfHBc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/apt_marble~new-route-launch-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-apt_marble-new-route-launch-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/apt_marble~new-route-launch-monitor/runs": {
      "post": {
        "operationId": "runs-sync-apt_marble-new-route-launch-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/apt_marble~new-route-launch-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-apt_marble-new-route-launch-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",
        "required": [
          "airports"
        ],
        "properties": {
          "airports": {
            "title": "Airports to watch",
            "minItems": 1,
            "maxItems": 40,
            "type": "array",
            "description": "The airports whose route networks you want monitored, as three-letter airport codes — for example DUB, BUD, LTN. Each airport is checked against every network you select below. Up to 40 airports per run.",
            "items": {
              "type": "string"
            }
          },
          "sources": {
            "title": "Networks to monitor",
            "minItems": 1,
            "type": "array",
            "description": "Which route networks to compare at each airport. Ryanair and Wizz Air are watched directly, airline by airline. \"Every airline at the airport\" widens the same comparison to every carrier that serves it, so you also catch a legacy or long-haul launch.",
            "items": {
              "type": "string",
              "enum": [
                "ryanair",
                "wizzair",
                "airport-network"
              ],
              "enumTitles": [
                "Ryanair network",
                "Wizz Air network",
                "Every airline at the airport"
              ]
            },
            "default": [
              "ryanair",
              "wizzair",
              "airport-network"
            ]
          },
          "changeTypes": {
            "title": "Kinds of change to report",
            "minItems": 1,
            "type": "array",
            "description": "Which changes you want as rows. \"New\" is a route that appeared since the last check. \"Started flying\" is a route already on the map whose published first flight date has now passed. \"Dropped\" is a route that has gone. \"Details changed\" covers a moved start date or a route becoming connecting rather than direct.",
            "items": {
              "type": "string",
              "enum": [
                "new",
                "launched",
                "dropped",
                "updated"
              ],
              "enumTitles": [
                "New route added",
                "Route started flying",
                "Route dropped",
                "Route details changed"
              ]
            },
            "default": [
              "new",
              "launched",
              "dropped",
              "updated"
            ]
          },
          "watchlistName": {
            "title": "Watchlist name",
            "type": "string",
            "description": "Keeps this watchlist's history separate from your others. Use one name per set of airports and keep it the same between runs — that is how the actor knows what changed. Letters, digits and hyphens.",
            "default": "default"
          },
          "lookbackRuns": {
            "title": "Checks to include",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "How many of your recent checks a run should report on. 1 gives you only what changed since the last check. Raise it if you run daily but read the results weekly, and each run will repeat the changes found in the previous checks as well, marked as repeats.",
            "default": 1
          },
          "language": {
            "title": "Language for place names",
            "enum": [
              "en",
              "de",
              "es",
              "fr",
              "it",
              "pl",
              "pt",
              "nl",
              "hu"
            ],
            "type": "string",
            "description": "The language used for city and country names on your results. Airport codes, dates and flags are the same in every language.",
            "default": "en"
          },
          "maxRows": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "A ceiling on how many change rows a single run writes, so a very large watchlist cannot produce an unexpectedly big result set.",
            "default": 5000
          },
          "resetBaseline": {
            "title": "Start a fresh baseline",
            "type": "boolean",
            "description": "Forget this watchlist's history and record today's networks as the new starting point. Use it after changing the airports you watch. This run will report only the launches the airlines themselves flag, not every route as new.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}