{
  "openapi": "3.0.1",
  "info": {
    "title": "Award Flights Scraper: Miles, Taxes, Seats & Cabins, No Login",
    "description": "Search award-seat availability across FlightPoints and Roame with no login needed. Export miles, taxes, seats, cabins, loyalty programs, schedules, aircraft, and booking links for single or bulk routes. Monitor routes on a schedule to catch newly opened or changed fares.",
    "version": "0.2",
    "x-build-id": "ITPY3g4IrNlkXpwJ3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~award-flights-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-award-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/getascraper~award-flights-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-award-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/getascraper~award-flights-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-award-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": "Origin airport",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string",
            "description": "Three-letter IATA code used in single-route mode.",
            "default": "JFK"
          },
          "destination": {
            "title": "Destination airport",
            "type": "string",
            "description": "Three-letter IATA code used in single-route mode.",
            "default": "LHR"
          },
          "departureDate": {
            "title": "Departure date",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Departure date in YYYY-MM-DD format. Leave empty to search 30 days from today."
          },
          "routes": {
            "title": "Bulk routes",
            "type": "array",
            "description": "Optional route objects with origin, destination, and departureDate. A non-empty list overrides the single-route fields.",
            "items": {
              "type": "object",
              "properties": {
                "origin": {
                  "title": "Origin airport",
                  "type": "string",
                  "description": "Three-letter origin IATA code.",
                  "editor": "textfield"
                },
                "destination": {
                  "title": "Destination airport",
                  "type": "string",
                  "description": "Three-letter destination IATA code.",
                  "editor": "textfield"
                },
                "departureDate": {
                  "title": "Departure date",
                  "type": "string",
                  "description": "Departure date in YYYY-MM-DD format.",
                  "editor": "textfield"
                }
              },
              "required": [
                "origin",
                "destination"
              ]
            },
            "default": []
          },
          "sources": {
            "title": "Sources",
            "type": "array",
            "description": "Choose FlightPoints, Roame, or both.",
            "items": {
              "type": "string",
              "enum": [
                "flightpoints",
                "roame"
              ],
              "enumTitles": [
                "FlightPoints",
                "Roame"
              ]
            },
            "default": [
              "flightpoints",
              "roame"
            ]
          },
          "programs": {
            "title": "Loyalty programs",
            "type": "array",
            "description": "Only return fares priced in these miles programs, for example Asia Miles, Aeroplan, AAdvantage, or SkyMiles. Names and short codes such as CX or Cathay both work. Leave empty for every program.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "airlines": {
            "title": "Airlines on the itinerary",
            "type": "array",
            "description": "Only return itineraries that include a flight operated by one of these airlines. Use 2-letter IATA codes such as CX, BA, or AA. Combine with Loyalty programs to find, for example, Cathay Pacific flights bookable with Asia Miles. Leave empty for every airline.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchClass": {
            "title": "Roame cabin class",
            "enum": [
              "ECON",
              "PREMECON",
              "BUSINESS",
              "FIRST"
            ],
            "type": "string",
            "description": "Cabin class requested from Roame. FlightPoints returns every available cabin.",
            "default": "ECON"
          },
          "daysAround": {
            "title": "Flexible date window",
            "minimum": 0,
            "maximum": 7,
            "type": "integer",
            "description": "Search this many days before and after the departure date.",
            "default": 0
          },
          "directOnly": {
            "title": "Direct flights only",
            "type": "boolean",
            "description": "Return only non-stop award itineraries.",
            "default": false
          },
          "onlyNewItems": {
            "title": "Only new or changed fares",
            "type": "boolean",
            "description": "Compare with prior runs in the same task storage and output only new or changed availability.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum rows saved across every route and source.",
            "default": 25
          },
          "maxConcurrency": {
            "title": "Parallel searches",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Number of route and source searches processed at once.",
            "default": 3
          },
          "pollTimeoutSecs": {
            "title": "FlightPoints polling timeout",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "Maximum seconds to wait for a FlightPoints search to complete before returning its latest rows.",
            "default": 30
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}