{
  "openapi": "3.0.1",
  "info": {
    "title": "NCL Cruises Scraper — Itineraries, Cabin Prices & Deals",
    "description": "Scrape Norwegian Cruise Line (NCL) itineraries by destination, port, ship, date and duration. Extract full cruise details: sailing dates, ports of call, the complete stateroom price grid and deals.",
    "version": "1.0",
    "x-build-id": "dedqozGN1zX3BqW5k"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/vulnv~ncl-cruises-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-vulnv-ncl-cruises-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/vulnv~ncl-cruises-scraper/runs": {
      "post": {
        "operationId": "runs-sync-vulnv-ncl-cruises-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/vulnv~ncl-cruises-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-vulnv-ncl-cruises-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": {
          "destinations": {
            "title": "Destinations",
            "type": "array",
            "description": "Filter by destination region. Leave empty for all destinations.",
            "items": {
              "type": "string",
              "enum": [
                "CARIBBEAN",
                "BAHAMAS",
                "BERMUDA",
                "MEXICAN_RIVIERA",
                "ALASKA",
                "HAWAII",
                "PACIFIC_COASTAL",
                "CANADA_NEW_ENGL",
                "PANAMA_CANAL",
                "MEDITERRANEAN",
                "GREEK_ISLES",
                "NORTHERN_EUROPE",
                "TRANSATLANTIC",
                "SOUTH_AMERICA",
                "AFRICA",
                "ASIA",
                "AUSTRALIA",
                "SOUTH_PACIFIC",
                "EXTRAORDINARY_JOURNEYS",
                "WEEKEND"
              ],
              "enumTitles": [
                "Caribbean",
                "Bahamas",
                "Bermuda",
                "Mexican Riviera",
                "Alaska",
                "Hawaii",
                "Pacific Coastal",
                "Canada & New England",
                "Panama Canal",
                "Mediterranean",
                "Greek Isles",
                "Northern Europe",
                "Transatlantic",
                "South America",
                "Africa",
                "Asia",
                "Australia & New Zealand",
                "South Pacific",
                "Extraordinary Journeys",
                "Weekend & Getaways"
              ]
            }
          },
          "ships": {
            "title": "Ships",
            "type": "array",
            "description": "Filter by NCL ship. Leave empty for all ships.",
            "items": {
              "type": "string",
              "enum": [
                "PRIMA",
                "VIVA",
                "AQUA",
                "AURA",
                "LUNA",
                "ENCORE",
                "BLISS",
                "JOY",
                "ESCAPE",
                "BREAKAWAY",
                "GETAWAY",
                "EPIC",
                "JADE",
                "JEWEL",
                "PEARL",
                "GEM",
                "DAWN",
                "STAR",
                "SPIRIT",
                "SUN",
                "SKY",
                "PRIDE_AMER"
              ],
              "enumTitles": [
                "Norwegian Prima",
                "Norwegian Viva",
                "Norwegian Aqua",
                "Norwegian Aura",
                "Norwegian Luna",
                "Norwegian Encore",
                "Norwegian Bliss",
                "Norwegian Joy",
                "Norwegian Escape",
                "Norwegian Breakaway",
                "Norwegian Getaway",
                "Norwegian Epic",
                "Norwegian Jade",
                "Norwegian Jewel",
                "Norwegian Pearl",
                "Norwegian Gem",
                "Norwegian Dawn",
                "Norwegian Star",
                "Norwegian Spirit",
                "Norwegian Sun",
                "Norwegian Sky",
                "Pride of America"
              ]
            }
          },
          "embarkationPorts": {
            "title": "Departure ports",
            "type": "array",
            "description": "Filter by embarkation port (code). Leave empty for all ports.",
            "items": {
              "type": "string",
              "enum": [
                "MIA",
                "TPA",
                "PCV",
                "NYC",
                "LAX",
                "SEA",
                "SAN",
                "GAL",
                "BOS",
                "MSY",
                "JAX",
                "PHL",
                "HNL",
                "SJU",
                "VAN",
                "QUE",
                "BCN",
                "CIV",
                "VCE",
                "RAV",
                "PIR",
                "IST",
                "LIS",
                "TAR",
                "SOU",
                "CPH",
                "REY",
                "HEL",
                "BUE",
                "SYD",
                "AKL",
                "PPT",
                "TOK",
                "YOK",
                "HKG",
                "SIN",
                "INC",
                "SAI",
                "LTK",
                "WQF"
              ],
              "enumTitles": [
                "Miami",
                "Tampa",
                "Port Canaveral",
                "New York",
                "Los Angeles",
                "Seattle",
                "San Diego",
                "Galveston",
                "Boston",
                "New Orleans",
                "Jacksonville",
                "Philadelphia",
                "Honolulu",
                "San Juan",
                "Vancouver",
                "Quebec City",
                "Barcelona",
                "Rome (Civitavecchia)",
                "Venice",
                "Ravenna",
                "Athens (Piraeus)",
                "Istanbul",
                "Lisbon",
                "Tarragona",
                "Southampton",
                "Copenhagen",
                "Reykjavik",
                "Helsinki",
                "Buenos Aires",
                "Sydney",
                "Auckland",
                "Papeete (Tahiti)",
                "Tokyo",
                "Yokohama",
                "Hong Kong",
                "Singapore",
                "Incheon (Seoul)",
                "SAI",
                "LTK",
                "WQF"
              ]
            }
          },
          "cabinTypes": {
            "title": "Cabin types",
            "type": "array",
            "description": "Only keep itineraries with availability in these stateroom categories. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "INSIDE",
                "OCEANVIEW",
                "BALCONY",
                "MINISUITE",
                "SUITE",
                "HAVEN"
              ],
              "enumTitles": [
                "Inside",
                "Oceanview",
                "Balcony",
                "Club Balcony Suite",
                "Suite",
                "The Haven"
              ]
            }
          },
          "minNights": {
            "title": "Minimum nights",
            "minimum": 1,
            "type": "integer",
            "description": "Only include cruises with at least this many nights."
          },
          "maxNights": {
            "title": "Maximum nights",
            "minimum": 1,
            "type": "integer",
            "description": "Only include cruises with at most this many nights."
          },
          "departureDateFrom": {
            "title": "Departure date from",
            "type": "string",
            "description": "Only include cruises with a sailing departing on or after this date (YYYY-MM-DD)."
          },
          "departureDateTo": {
            "title": "Departure date to",
            "type": "string",
            "description": "Only include cruises with a sailing departing on or before this date (YYYY-MM-DD)."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 1,
            "type": "integer",
            "description": "Only include cruises with an available cabin at or below this price (per the cabin types filter, in the market currency)."
          },
          "guests": {
            "title": "Guests",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "Number of guests the prices are calculated for.",
            "default": 2
          },
          "scrapeDetails": {
            "title": "Scrape cruise details page",
            "type": "boolean",
            "description": "Visit each cruise's details page to add the title, images, full ship and ports-of-call info, taxes and the detailed stateroom price grid. Slower, but captures everything on the details page.",
            "default": true
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of itineraries to store.",
            "default": 100
          },
          "baseUrl": {
            "title": "Base URL",
            "type": "string",
            "description": "Storefront base URL.",
            "default": "https://www.ncl.com"
          },
          "marketPath": {
            "title": "Market path",
            "type": "string",
            "description": "Storefront market path segment, e.g. fr/en, uk/en, us/en.",
            "default": "fr/en"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional proxy used for all outbound requests. Apify Proxy (datacenter) is usually sufficient.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}