{
  "openapi": "3.0.1",
  "info": {
    "title": "Cruise Data Feed: Lines, Itineraries, Ports & Prices",
    "description": "Download structured cruise inventory from 60+ cruise lines (MSC, Disney, Royal Caribbean, Carnival, Viking and more) in one clean schema: ships, sailing dates, durations, ports of call, day-by-day itineraries and pricing. Unofficial; public data only.",
    "version": "1.4",
    "x-build-id": "eKejMy95yuw6UL61f"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/vulnv~cruise-data-feed/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-vulnv-cruise-data-feed",
        "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~cruise-data-feed/runs": {
      "post": {
        "operationId": "runs-sync-vulnv-cruise-data-feed",
        "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~cruise-data-feed/run-sync": {
      "post": {
        "operationId": "run-sync-vulnv-cruise-data-feed",
        "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": {
          "cruiseLines": {
            "title": "Cruise lines",
            "type": "array",
            "description": "Filter by one or more cruise lines. Leave empty for all lines.",
            "items": {
              "type": "string",
              "enum": [
                "AIDA Cruises",
                "AmaWaterways",
                "Ambassador Cruise Line Cruises",
                "American Cruise Lines",
                "Atlas Ocean Voyages Cruises",
                "Aurora Expeditions Cruises",
                "Avalon Waterways",
                "Azamara",
                "Carnival Cruise Line",
                "Celebrity Cruises",
                "Celestyal Cruises",
                "Costa Cruises",
                "CroisiEurope Cruises",
                "Crystal Cruises",
                "Cunard",
                "Disney Cruise Line",
                "Emerald Cruises",
                "Explora Journeys",
                "Fred Olsen Cruise Lines",
                "Hapag-Lloyd Cruises",
                "Holland America Line",
                "Hurtigruten Cruises",
                "HX Expeditions",
                "Lindblad Expeditions Cruises",
                "Marella Cruises",
                "Margaritaville at Sea Cruises",
                "MSC Cruises",
                "Norwegian Cruise Line",
                "Oceania Cruises",
                "P&O Cruises",
                "Phoenix Reisen Cruises",
                "Ponant",
                "Princess Cruises",
                "Quark Expeditions Cruises",
                "Regent Seven Seas Cruises",
                "Ritz-Carlton Yacht Collection",
                "Riviera Travel Cruises",
                "Royal Caribbean",
                "Saga Cruises",
                "Scenic Cruises",
                "Seabourn",
                "SeaDream Yacht Club",
                "Silversea",
                "Star Clippers Cruises",
                "TUI Cruises",
                "UnCruise Adventures Cruises",
                "Uniworld River Cruises",
                "Viking Cruises",
                "Viking River Cruises",
                "Virgin Voyages",
                "Windstar Cruises"
              ]
            }
          },
          "region": {
            "title": "Region / destination",
            "type": "string",
            "description": "Match cruises whose region/destination contains this text, e.g. \"Caribbean\", \"Alaska\", \"Mediterranean\"."
          },
          "embarkPort": {
            "title": "Departure port",
            "type": "string",
            "description": "Match cruises whose embarkation port contains this text, e.g. \"Barcelona\", \"Miami\", \"Southampton\"."
          },
          "shipName": {
            "title": "Ship name",
            "type": "string",
            "description": "Exact ship name, e.g. \"MSC World Europa\". Leave empty for all ships."
          },
          "departureDateFrom": {
            "title": "Departure date from",
            "type": "string",
            "description": "Earliest departure date to include (YYYY-MM-DD)."
          },
          "departureDateTo": {
            "title": "Departure date to",
            "type": "string",
            "description": "Latest departure date to include (YYYY-MM-DD)."
          },
          "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."
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Only include cruises priced at or above this amount (in the cruise's own currency)."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Only include cruises priced at or below this amount (in the cruise's own currency)."
          },
          "roundTrip": {
            "title": "Round trip",
            "enum": [
              "any",
              "true",
              "false"
            ],
            "type": "string",
            "description": "Filter by trip type: round-trip (returns to the embarkation port) or one-way.",
            "default": "any"
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "departure_date",
              "-departure_date",
              "price",
              "-price"
            ],
            "type": "string",
            "description": "Order of returned cruises.",
            "default": "departure_date"
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of cruise records to store.",
            "default": 100
          },
          "apiKey": {
            "title": "Data API key (optional)",
            "type": "string",
            "description": "An optional data API key, if you have one. Not required - the Actor works without it."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}