{
  "openapi": "3.0.1",
  "info": {
    "title": "Kiwi Cheapest Destinations Explorer",
    "description": "Pick a departure airport and a stretch of dates and get the destination cities Kiwi.com offers from there, each with its cheapest fare and the exact best day to fly. Typically 70-90 places per departure, one-way or return, filtered by price, region or country. 37 currencies.",
    "version": "0.0",
    "x-build-id": "tvYOgW91FGoSjzTbG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/apt_marble~kiwi-cheapest-destinations-explorer/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-apt_marble-kiwi-cheapest-destinations-explorer",
        "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~kiwi-cheapest-destinations-explorer/runs": {
      "post": {
        "operationId": "runs-sync-apt_marble-kiwi-cheapest-destinations-explorer",
        "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~kiwi-cheapest-destinations-explorer/run-sync": {
      "post": {
        "operationId": "run-sync-apt_marble-kiwi-cheapest-destinations-explorer",
        "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": [
          "origins"
        ],
        "properties": {
          "origins": {
            "title": "Departure places",
            "maxItems": 20,
            "type": "array",
            "description": "Where the trip starts. Use airport codes (LHR), city-wide codes (LON), or names (Madrid). Each one is scanned separately and produces its own list of destinations.",
            "items": {
              "type": "string"
            }
          },
          "tripType": {
            "title": "Trip type",
            "enum": [
              "oneway",
              "return"
            ],
            "type": "string",
            "description": "One-way gives you the cheapest way out. Return gives you a full trip with both dates chosen for you.",
            "default": "oneway"
          },
          "departureWindowStart": {
            "title": "Earliest departure date",
            "type": "string",
            "description": "First day you could leave, as YYYY-MM-DD. Leave empty to start 30 days from the day the run happens, which is handy for a scheduled run."
          },
          "departureWindowEnd": {
            "title": "Latest departure date",
            "type": "string",
            "description": "Last day you could leave, as YYYY-MM-DD. Leave empty and the window length below is used instead. The wider the window, the cheaper the best date it can find."
          },
          "windowLengthDays": {
            "title": "Window length (days)",
            "minimum": 1,
            "maximum": 180,
            "type": "integer",
            "description": "How many days the departure window covers when you have not set a latest date. Up to 180.",
            "default": 14
          },
          "nightsMin": {
            "title": "Shortest trip (nights)",
            "minimum": 0,
            "maximum": 60,
            "type": "integer",
            "description": "Return trips only: the shortest stay you would accept. The best return date is chosen inside this range. Leave empty for 3 to 7 nights."
          },
          "nightsMax": {
            "title": "Longest trip (nights)",
            "minimum": 0,
            "maximum": 60,
            "type": "integer",
            "description": "Return trips only: the longest stay you would accept. Leave empty for 3 to 7 nights."
          },
          "region": {
            "title": "Where in the world",
            "enum": [
              "anywhere",
              "europe",
              "north-america",
              "central-america-caribbean",
              "south-america",
              "africa",
              "middle-east",
              "asia",
              "oceania"
            ],
            "type": "string",
            "description": "Keep only destinations in this part of the world. Choose Anywhere to keep everything.",
            "default": "anywhere"
          },
          "geoBox": {
            "title": "Custom map area",
            "type": "object",
            "description": "An exact area to keep destinations inside, as {\"south\": 34, \"west\": -25, \"north\": 72, \"east\": 45}. Overrides the region choice above: rows are then labelled \"Custom area\" rather than with a region name the run was not limited to."
          },
          "countries": {
            "title": "Only these countries",
            "type": "array",
            "description": "Optional. Two-letter country codes to keep, for example ES, PT, IT. Everything else is left out.",
            "items": {
              "type": "string"
            }
          },
          "maxPrice": {
            "title": "Highest fare to include",
            "minimum": 1,
            "maximum": 10000000,
            "type": "integer",
            "description": "Only show destinations at or below this fare, in the currency you chose. This is the \"where can I go for 200\" control. Leave empty for no ceiling."
          },
          "maxStops": {
            "title": "Most connections allowed",
            "minimum": 0,
            "maximum": 3,
            "type": "integer",
            "description": "0 for direct trips only, 1 for at most one connection. Leave empty to allow any number."
          },
          "excludeSelfTransferFares": {
            "title": "Single-ticket trips only",
            "type": "boolean",
            "description": "Leave out the cheap trips that are stitched together from separate tickets, where nobody is responsible if the first leg runs late.",
            "default": false
          },
          "maxDestinationsPerOrigin": {
            "title": "Destinations per departure place",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many destinations to keep for each departure place, cheapest first. Up to 500.",
            "default": 100
          },
          "includePopularityRank": {
            "title": "Add destination ranking",
            "type": "boolean",
            "description": "Also collect the ranking the source gives each destination city, so you can sort by prominence as well as by price. Needs a region or a custom map area.",
            "default": false
          },
          "allowNearbyOrigins": {
            "title": "Allow nearby departure airports",
            "type": "boolean",
            "description": "Off by default. When a trip actually leaves from a different airport than the one you asked for, it is left out. Turn this on to keep those trips; every row says which airport it really leaves from.",
            "default": false
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "CAD",
              "AUD",
              "CHF",
              "SEK",
              "NOK",
              "DKK",
              "PLN",
              "CZK",
              "HUF",
              "RON",
              "JPY",
              "KRW",
              "SGD",
              "HKD",
              "INR",
              "AED",
              "BRL",
              "MXN",
              "ZAR",
              "TRY",
              "NZD",
              "ILS",
              "THB",
              "PHP",
              "MYR",
              "IDR",
              "SAR",
              "CLP",
              "COP",
              "UAH",
              "ISK",
              "RSD",
              "PEN",
              "TWD"
            ],
            "type": "string",
            "description": "Currency the fares are requested in. Every row also records the currency it was actually served in.",
            "default": "USD"
          },
          "market": {
            "title": "Market",
            "enum": [
              "US",
              "GB",
              "DE",
              "FR",
              "ES",
              "IT",
              "NL",
              "CA",
              "AU",
              "IN",
              "AE",
              "SG",
              "JP",
              "BR",
              "MX",
              "PL",
              "SE",
              "CH",
              "IE",
              "ZA"
            ],
            "type": "string",
            "description": "The market the search is prepared for. It is recorded on every row so runs stay traceable. The same search prepared for five different markets came back with identical fares in the same currency, so changing it is not a way to find different prices — the currency setting is what changes the number.",
            "default": "US"
          },
          "locale": {
            "title": "Language",
            "enum": [
              "en",
              "de",
              "fr",
              "es",
              "it",
              "nl",
              "pt",
              "pl",
              "cs",
              "sv",
              "da",
              "ja"
            ],
            "type": "string",
            "description": "Language used for city, airport and country names.",
            "default": "en"
          },
          "cabinClass": {
            "title": "Cabin",
            "enum": [
              "ECONOMY",
              "PREMIUM_ECONOMY",
              "BUSINESS",
              "FIRST_CLASS"
            ],
            "type": "string",
            "description": "Cabin to price the trips in.",
            "default": "ECONOMY"
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 9,
            "type": "integer",
            "description": "Adult travellers the fares are priced for.",
            "default": 1
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Children aged 2 to 11 travelling in their own seat.",
            "default": 0
          },
          "infants": {
            "title": "Infants",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Infants travelling on an adult's lap. Cannot be more than the number of adults.",
            "default": 0
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}