{
  "openapi": "3.0.1",
  "info": {
    "title": "Princess Cruises Scraper - Itineraries & Prices",
    "description": "Scrape Princess Cruises itineraries by destination, departure port, ship, date and duration. Extract ports of call, every sailing date and the full stateroom price grid (Inside, Oceanview, Balcony, Mini-Suite, Suite). Export to JSON, CSV or Excel.",
    "version": "1.0",
    "x-build-id": "bKT7ARLQ56Ev8Pup9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/vulnv~princess-cruises-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-vulnv-princess-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~princess-cruises-scraper/runs": {
      "post": {
        "operationId": "runs-sync-vulnv-princess-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~princess-cruises-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-vulnv-princess-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": [
                "C",
                "E",
                "R",
                "A",
                "M",
                "H",
                "O",
                "J",
                "U",
                "Z",
                "I",
                "P",
                "B",
                "N",
                "L",
                "T",
                "S",
                "Q",
                "F",
                "V",
                "W"
              ],
              "enumTitles": [
                "Caribbean",
                "Europe",
                "Europe - Northern",
                "Alaska",
                "Mexico",
                "Hawaii",
                "Asia",
                "Japan",
                "Australia",
                "Australia & New Zealand",
                "South Pacific",
                "Tahiti & South Pacific",
                "Bermuda",
                "Canada & New England",
                "California Coast",
                "Panama Canal",
                "South America & Antarctica",
                "Cuba",
                "Transatlantic",
                "Grand Voyages",
                "World Cruises"
              ]
            }
          },
          "ships": {
            "title": "Ships",
            "type": "array",
            "description": "Filter by Princess ship. Leave empty for all ships.",
            "items": {
              "type": "string",
              "enum": [
                "SU",
                "ST",
                "XP",
                "EX",
                "YP",
                "MJ",
                "RP",
                "RU",
                "EP",
                "KP",
                "CB",
                "AP",
                "DI",
                "SA",
                "IP",
                "CO",
                "RO"
              ],
              "enumTitles": [
                "Sun Princess",
                "Star Princess",
                "Discovery Princess",
                "Enchanted Princess",
                "Sky Princess",
                "Majestic Princess",
                "Royal Princess",
                "Ruby Princess",
                "Emerald Princess",
                "Crown Princess",
                "Caribbean Princess",
                "Grand Princess",
                "Diamond Princess",
                "Sapphire Princess",
                "Island Princess",
                "Coral Princess",
                "Regal Princess"
              ]
            }
          },
          "departurePorts": {
            "title": "Departure ports",
            "type": "array",
            "description": "Filter by embarkation port (code). Leave empty for all ports.",
            "items": {
              "type": "string",
              "enum": [
                "FLL",
                "PCV",
                "MIA",
                "NYC",
                "SJU",
                "LAX",
                "SFO",
                "SEA",
                "YVR",
                "WH1",
                "BOS",
                "SOU",
                "ROM",
                "ATH",
                "BCN",
                "CPH",
                "TRS",
                "REK",
                "HEL",
                "TYO",
                "YOK",
                "SIN",
                "SYD",
                "BNE",
                "MEL",
                "AKL",
                "BGI",
                "BUE"
              ],
              "enumTitles": [
                "Ft. Lauderdale, Florida",
                "Port Canaveral (Orlando), Florida",
                "Miami, Florida",
                "New York City, New York",
                "San Juan, Puerto Rico",
                "Los Angeles, California",
                "San Francisco, California",
                "Seattle, Washington",
                "Vancouver, Canada",
                "Anchorage (Whittier), Alaska",
                "Boston, Massachusetts",
                "Southampton (London), England",
                "Civitavecchia (Rome), Italy",
                "Athens (Piraeus), Greece",
                "Barcelona, Spain",
                "Copenhagen, Denmark",
                "Trieste (Venice), Italy",
                "Reykjavik, Iceland",
                "Helsinki, Finland",
                "Tokyo, Japan",
                "Tokyo (Yokohama), Japan",
                "Singapore",
                "Sydney, Australia",
                "Brisbane, Australia",
                "Melbourne, Australia",
                "Auckland, New Zealand",
                "Barbados",
                "Buenos Aires, Argentina"
              ]
            }
          },
          "portsOfCall": {
            "title": "Ports of call",
            "type": "array",
            "description": "Only keep cruises that visit these ports (port codes). Different from departure ports - these can be any stop on the itinerary.",
            "items": {
              "type": "string"
            }
          },
          "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 stateroom at or below this price (lowest cabin price per guest, in the chosen currency)."
          },
          "guests": {
            "title": "Guests",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "Number of guests the prices are calculated for.",
            "default": 2
          },
          "includeSailings": {
            "title": "Include full sailing details",
            "type": "boolean",
            "description": "Embed every sailing date with its ports and complete stateroom price grid under `cruiseDetails`. Disable for a leaner, flatter output.",
            "default": true
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of itineraries to store.",
            "default": 100
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "Pricing currency, e.g. USD, GBP, AUD, CAD, EUR.",
            "default": "USD"
          },
          "agencyCountry": {
            "title": "Agency country",
            "type": "string",
            "description": "Two-letter market country code, e.g. US, GB, AU, CA.",
            "default": "US"
          },
          "apiBase": {
            "title": "API base URL",
            "type": "string",
            "description": "Princess API gateway base. Advanced; leave as default.",
            "default": "https://gw.api.princess.com/pcl-web/internal"
          },
          "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}