{
  "openapi": "3.0.1",
  "info": {
    "title": "MSC Cruises Scraper",
    "description": "Search MSC Cruises sailings by destination, port, ship, date and duration, and extract full cruise details including day-by-day itineraries and pricing.",
    "version": "1.0",
    "x-build-id": "sGJ5JCF1kYmegdnJr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/vulnv~msc-cruises-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-vulnv-msc-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~msc-cruises-scraper/runs": {
      "post": {
        "operationId": "runs-sync-vulnv-msc-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~msc-cruises-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-vulnv-msc-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": {
          "departureDateFrom": {
            "title": "Departure date from",
            "type": "string",
            "description": "Earliest cruise departure date to include (format: YYYY-MM-DD). Defaults to today."
          },
          "departureDateTo": {
            "title": "Departure date to",
            "type": "string",
            "description": "Latest cruise departure date to include (format: YYYY-MM-DD). Defaults to ~2 years from today."
          },
          "destinations": {
            "title": "Destinations",
            "type": "array",
            "description": "Filter by destination area. Leave empty for all destinations.",
            "items": {
              "type": "string",
              "enum": [
                "MED",
                "NOR",
                "WEE",
                "CAR",
                "SOC",
                "EMW",
                "FAE",
                "ALA",
                "PAN",
                "SOA",
                "POS"
              ],
              "enumTitles": [
                "Mediterranean",
                "Northern Europe",
                "Canary Islands & Madeira",
                "Caribbean",
                "South Caribbean",
                "Dubai, Abu Dhabi & Qatar",
                "Asia",
                "Alaska",
                "Panama Canal",
                "South America",
                "MSC Grand Voyages"
              ]
            }
          },
          "departurePorts": {
            "title": "Departure ports",
            "type": "array",
            "description": "Filter by embarkation port. Leave empty for all ports.",
            "items": {
              "type": "string",
              "enum": [
                "PIR",
                "BCN",
                "GOA",
                "CVV",
                "VCE",
                "TRS",
                "NAP",
                "MSN",
                "PMO",
                "MLA",
                "MRS",
                "CAG",
                "BRI",
                "BDS",
                "SPE",
                "LIV",
                "AOI",
                "SPU",
                "IST",
                "KUS",
                "MRM",
                "AMS",
                "HAM",
                "KEL",
                "WAR",
                "CPH",
                "OSL",
                "STO",
                "SOU",
                "LEH",
                "CER",
                "RTM",
                "LIS",
                "PMI",
                "VLC",
                "ALC",
                "AGP",
                "TAR",
                "CEQ",
                "LPA",
                "SCT",
                "ACE",
                "FNC",
                "DXB",
                "AUH",
                "DOH",
                "MIA",
                "CPV",
                "GLS",
                "LRM",
                "PTP",
                "FDF",
                "SAN",
                "LAX",
                "SEA",
                "RIO",
                "SSZ",
                "SSA",
                "MCZ",
                "ITJ",
                "CBU",
                "PNG",
                "BUE",
                "BGI",
                "SHA",
                "KEE",
                "TYO",
                "NAH"
              ],
              "enumTitles": [
                "Piraeus (Athens)",
                "Barcelona",
                "Genoa",
                "Civitavecchia (Rome)",
                "Venice",
                "Trieste",
                "Naples",
                "Messina",
                "Palermo",
                "Valletta",
                "Marseille",
                "Cagliari",
                "Bari",
                "Brindisi",
                "La Spezia",
                "Livorno",
                "Ancona",
                "Split",
                "Istanbul",
                "Kusadasi",
                "Marmaris",
                "Amsterdam",
                "Hamburg",
                "Kiel",
                "Warnemunde",
                "Copenhagen",
                "Oslo",
                "Stockholm",
                "Southampton",
                "Le Havre",
                "Cherbourg",
                "Rotterdam",
                "Lisbon",
                "Palma de Mallorca",
                "Valencia",
                "Alicante",
                "Malaga",
                "Tarragona",
                "Cannes",
                "Las Palmas",
                "Santa Cruz de Tenerife",
                "Arrecife (Lanzarote)",
                "Funchal (Madeira)",
                "Dubai",
                "Abu Dhabi",
                "Doha",
                "Miami",
                "Port Canaveral",
                "Galveston",
                "La Romana",
                "Pointe-a-Pitre",
                "Fort-de-France",
                "San Diego",
                "Los Angeles",
                "Seattle",
                "Rio de Janeiro",
                "Santos",
                "Salvador",
                "Maceio",
                "Itajai",
                "Camboriu",
                "Paranagua",
                "Buenos Aires",
                "Bridgetown",
                "Shanghai",
                "Keelung (Taipei)",
                "Tokyo",
                "Naha"
              ]
            }
          },
          "ships": {
            "title": "Ships",
            "type": "array",
            "description": "Filter by MSC ship. Leave empty for all ships.",
            "items": {
              "type": "string",
              "enum": [
                "EU",
                "AM",
                "AS",
                "AT",
                "GR",
                "VI",
                "SH",
                "SC",
                "SE",
                "SV",
                "BE",
                "MR",
                "PR",
                "DI",
                "FA",
                "SP",
                "PO",
                "MU",
                "MA",
                "OR",
                "AX",
                "LX",
                "OX",
                "SX",
                "ER"
              ],
              "enumTitles": [
                "MSC World Europa",
                "MSC World America",
                "MSC World Asia",
                "MSC World Atlantic",
                "MSC Grandiosa",
                "MSC Virtuosa",
                "MSC Seashore",
                "MSC Seascape",
                "MSC Seaside",
                "MSC Seaview",
                "MSC Bellissima",
                "MSC Meraviglia",
                "MSC Preziosa",
                "MSC Divina",
                "MSC Fantasia",
                "MSC Splendida",
                "MSC Poesia",
                "MSC Musica",
                "MSC Magnifica",
                "MSC Orchestra",
                "MSC Armonia",
                "MSC Lirica",
                "MSC Opera",
                "MSC Sinfonia",
                "MSC Euribia"
              ]
            }
          },
          "cabinTypes": {
            "title": "Cabin types",
            "type": "array",
            "description": "Filter by cabin/stateroom category. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "INS",
                "OUT",
                "BAL",
                "SUI",
                "YTC"
              ],
              "enumTitles": [
                "Interior",
                "Ocean View",
                "Balcony",
                "Suite",
                "MSC Yacht Club"
              ]
            }
          },
          "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."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "Number of adults the displayed prices are calculated for.",
            "default": 2
          },
          "juniors": {
            "title": "Juniors",
            "minimum": 0,
            "maximum": 4,
            "type": "integer",
            "description": "Number of juniors (younger guests) in the cabin.",
            "default": 0
          },
          "minors": {
            "title": "Minors",
            "minimum": 0,
            "maximum": 4,
            "type": "integer",
            "description": "Number of minors (children) in the cabin.",
            "default": 0
          },
          "availableOnly": {
            "title": "Available cruises only",
            "type": "boolean",
            "description": "Only return sailings that are currently available to book.",
            "default": true
          },
          "scrapeDetails": {
            "title": "Scrape cruise details page",
            "type": "boolean",
            "description": "Visit each cruise's details page to extract the full day-by-day itinerary (ports, arrival/departure times and descriptions) and the complete cabin price matrix (every cabin category, experience and rate). Slower, but captures everything on the details page.",
            "default": true
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of cruise records to store.",
            "default": 100
          },
          "advancedFilter": {
            "title": "Advanced Algolia filter",
            "type": "string",
            "description": "Optional raw Algolia filter clause appended (AND) to the generated filters, e.g. priceType:\"FLASH\". For power users."
          },
          "baseUrl": {
            "title": "Base URL",
            "type": "string",
            "description": "Storefront base URL.",
            "default": "https://www.msccruises.eu"
          },
          "marketPath": {
            "title": "Market path",
            "type": "string",
            "description": "Storefront market path segment (e.g. easterneurope).",
            "default": "easterneurope"
          },
          "locale": {
            "title": "Locale",
            "type": "string",
            "description": "Market locale code (e.g. en_PL). Determines the search index and language.",
            "default": "en_PL"
          },
          "currencyCode": {
            "title": "Currency code",
            "type": "string",
            "description": "ISO currency code for prices in the itinerary detail API (e.g. EUR).",
            "default": "EUR"
          },
          "languageCode": {
            "title": "Language code",
            "type": "string",
            "description": "3-letter language code for the itinerary detail API (e.g. eng).",
            "default": "eng"
          },
          "countryCode": {
            "title": "Country code",
            "type": "string",
            "description": "2-letter country code for the itinerary detail API (e.g. PL).",
            "default": "PL"
          },
          "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}