{
  "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.0",
    "x-build-id": "dQO6G3LWi0oNB6cmq"
  },
  "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 Cruises",
                "Ambassador Cruise Line Cruises",
                "American Cruise Lines Cruises",
                "Atlas Ocean Voyages Cruises",
                "Aurora Expeditions Cruises",
                "Avalon Waterways Cruises",
                "Azamara Cruises",
                "Carnival Cruise Line Cruises",
                "Celebrity Cruises",
                "Celestyal Cruises",
                "Costa Cruises",
                "CroisiEurope Cruises",
                "Crystal Cruises",
                "Cunard Cruises",
                "Disney Cruise Line",
                "Emerald Cruises",
                "Fred Olsen Cruise Lines Cruises",
                "Hapag-Lloyd Cruises",
                "Holland America Cruises",
                "Hurtigruten Cruises",
                "HX Expeditions Cruises",
                "Lindblad Expeditions Cruises",
                "Marella Cruises",
                "Margaritaville at Sea Cruises",
                "MSC Cruises",
                "MSC Explora Journeys Cruises",
                "Norwegian Cruise Line Cruises",
                "Oceania Cruises",
                "P&O Cruises",
                "Phoenix Reisen Cruises",
                "Ponant Cruises",
                "Princess Cruises",
                "Quark Expeditions Cruises",
                "Regent Seven Seas Cruises",
                "Ritz-Carlton Yacht Collection Cruises",
                "Riviera Travel Cruises",
                "Royal Caribbean Cruises",
                "Saga Cruises",
                "Scenic Cruises",
                "Seabourn Cruises",
                "SeaDream Yacht Club Cruises",
                "Silversea Cruises",
                "Star Clippers Cruises",
                "TUI Cruises",
                "UnCruise Adventures Cruises",
                "Uniworld Cruises",
                "Viking Cruises",
                "Viking River Cruises",
                "Virgin Voyages Cruises",
                "Windstar Cruises"
              ]
            }
          },
          "sources": {
            "title": "Data sources",
            "type": "array",
            "description": "Restrict to specific upstream catalogs. Leave empty for all sources.",
            "items": {
              "type": "string",
              "enum": [
                "cruisemapper",
                "msc",
                "disney"
              ],
              "enumTitles": [
                "CruiseMapper (all lines)",
                "MSC Cruises",
                "Disney Cruise Line"
              ]
            }
          },
          "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."
          },
          "apiBaseUrl": {
            "title": "API base URL",
            "type": "string",
            "description": "Override the CruiseFeed API base URL (for self-hosted mirrors).",
            "default": "https://api.cruisefeed.io"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}