# Royal Caribbean Scraper (`intelscrape/royal-caribbean-scraper`) Actor

Royal Caribbean Scraper. Instantly extract live cruise itineraries, departure ports, ship data, and real-time pricing across all cabin tiers (Interior, Ocean View, Balcony, Deluxe). Perfectly bypasses anti-bot systems to pull hundreds of hidden cruise deals in seconds!

- **URL**: https://apify.com/intelscrape/royal-caribbean-scraper.md
- **Developed by:** [IntelScrape](https://apify.com/intelscrape) (community)
- **Categories:** Travel, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 🚢 Royal Caribbean Scraper — Cruise Data Extractor

> 🇨🇳 **中文简介 (Chinese Summary):**
> 适用于皇家加勒比游轮的 Headless GraphQL API 抓取工具。无需浏览器即可立即提取行程、舱位定价和船舶数据。



#### 🏆 Top-Rated Data APIs
**IntelScrape** builds reliable APIs for agencies & B2B sales.

##### 🔥 Popular Scrapers:
1. **[Local Lead Finder](https://apify.com/intelscrape/website-Leads)** — Extract Google Maps businesses missing a website.
2. **[Skip Trace PRO](https://apify.com/intelscrape/skip-trace-pro)** — Reverse Phone & Email Finder.
3. **[Google Maps Leads](https://apify.com/intelscrape/google-maps-lead-generator)** — Extract raw local businesses & contacts.
4. **[Building Permits](https://apify.com/intelscrape/building-permit-scraper)** — Extract new construction permits.
5. **[UCC Financing](https://apify.com/intelscrape/ucc-lien-scraper)** — MCA & equipment finance leads.
6. **[Shopify Emails](https://apify.com/intelscrape/shopify-owner-email)** — Harvest Shopify founder direct emails.
7. **[Niche E-Com Finder](https://apify.com/intelscrape/niche-ecommerce-website-finder)** — Generate CSVs of e-com URLs in any niche.
8. **[Dice Job Scraper Pro](https://apify.com/intelscrape/dice-jobs)** — Extract fresh IT job postings & salaries.
9. **[Watson OSINT Username Finder](https://apify.com/intelscrape/watson)** — Find Usernames across 400+ Websites.

---

⚡ **Use this Actor in n8n — no code**

Building no-code workflows in [n8n](https://n8n.io)? It works natively! Use the official **Apify** node to drop this Actor straight onto your canvas.

**Setup (30 seconds):**
1. In n8n, add the official **Apify** node to your workflow.
2. Connect your **Apify API token** in the credentials.
3. Select **Run an Actor**, and paste this actor's ID: `IntelScrape/royal-caribbean-scraper`.
4. Fill in the JSON input and run!

---

![Royal Caribbean Scraper Hero Banner](https://files.catbox.moe/6wlqiw.png)

![price](https://img.shields.io/badge/price-$1.00_/_1K-2ea44f) ![billing](https://img.shields.io/badge/billing-pay_per_event-2ea44f) ![API key](https://img.shields.io/badge/API_key-not_required-blue) ![speed](https://img.shields.io/badge/speed-blazing_fast-8a2be2) ![technology](https://img.shields.io/badge/technology-GraphQL_Headless-blue) ![rating](https://img.shields.io/badge/rating-5.0★-ffc107)

**Generate comprehensive cruise inventory datasets by extracting live sailings, itineraries, and cabin-level pricing directly from Royal Caribbean's internal GraphQL API.**
Ship names, departure ports, durations, and split pricing across Interior, Outside, Balcony, and Suite (Deluxe) cabins. 100% Headless.

---

> 🧭 Built for **Travel Agencies, Affiliate Marketers, Price Comparison Sites, and Market Researchers.**

> ⭐ **Rated 5.0★ by daily power users.** If Royal Caribbean Scraper saves you hours of manual extraction, please take 10 seconds to [leave a review](https://console.apify.com/actors/royal-caribbean-scraper) — it helps other professionals find it and keeps us updating the endpoints. Thank you! 🙏

> ⚖️ **Lawful business use only.** This Actor only returns information that is already **publicly available** via Royal Caribbean's public search infrastructure.

---

### 🚢 Royal Caribbean Scraper — why this one
Extract 1,000 cruise itineraries for just $1.00 — scale your travel affiliate site effortlessly.

| Feature | This Actor | Typical others |
| :--- | :--- | :--- |
| **Price** | **$1.00 / 1K** | Expensive monthly data feeds |
| **Technology** | **100% Headless GraphQL** | Slow Playwright/Puppeteer |
| **Cabin-Level Pricing** | ✅ | Only "Starting At" price |
| **Speed** | ✅ Blazing Fast | Slow browser rendering |

Public-records data • lawful B2B use only

---

### 🖼️ What a result looks like

One dataset record per extracted sailing. *(Illustrative example)*

| Ship | Sail Date | Nights | Destination | Interior Price | Balcony Price |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **Wonder of the Seas** | 2026-07-20 | 4 | Bahamas | $738.16 | $817.66 |
| **Icon of the Seas** | 2026-08-15 | 7 | Caribbean | $1,250.00 | $1,850.00 |
| **Oasis of the Seas** | 2026-09-10 | 5 | Mexico | $650.00 | $900.00 |

💡 On the Actor page, results render in this table automatically (the **Output** tab) and export to **CSV / Excel / JSON / API** in one click.

---

### ⭐ Why this Cruise Scraper

| | |
| :--- | :--- |
| 🎯 **Cabin Split Pricing** | Don't settle for "Starting At" prices. We extract exact pricing for Interior, Outside, Balcony, and Deluxe (Suites). |
| 🧩 **100% Headless** | By reverse-engineering Royal Caribbean's React Server Components and GraphQL API, this scraper runs without a browser, making it incredibly fast. |
| 🥇 **Advanced Filtering** | Filter by Destination Code and Date Ranges to isolate exactly what inventory you need to monitor. |
| 💸 **Extremely Cheap** | $1.00 per 1,000 sailings. A fraction of the cost of browser-based alternatives. |

---

### ⚡ Quick start

```json
{
  "startDate": "2026-08-01",
  "endDate": "2026-10-31",
  "destinationCode": "CARIB",
  "maxResults": 1000
}
````

Run it — each matched cruise comes back as one highly enriched record. That's it.

### ✅ What you get per sailing

- 🚢 **Ship Details** — Ship Name, Ship Code
- 📅 **Itinerary Dates** — Sail Date, Return Date, Nights
- 📍 **Locations** — Departure Port, Destination Region
- 💰 **Pricing** — Interior Price, Outside Price, Balcony Price, Deluxe (Suite) Price
- 🔗 **Booking Link** — Direct URL to book the specific sailing

All for one flat price — **$1.00 / 1,000 cruises**.

***

### 💰 How To Make Money With This API (Clear ROI)

If you are paying $1 for 1,000 cruise itineraries, you need to know how to turn that into $10,000+. Here are the top three ways our clients monetize this API:

#### 1. Travel Affiliate Marketers (High Commissions)

Build automated price-comparison websites or newsletters. Track price drops on premium sailings (like Icon of the Seas). Send email alerts to your subscribers with your affiliate booking link when Balcony prices drop by 20%.

#### 2. Travel Agencies & Advisors

Monitor inventory for your clients. Set the scraper to run daily to check availability on sold-out suites (Deluxe pricing). When a suite becomes available, instantly call your high-net-worth client to secure the booking and your commission.

#### 3. Competitor Market Research

Are you in the hospitality or cruise industry? Use this data to map out Royal Caribbean's yield management strategy, track how quickly ships fill up, and analyze pricing adjustments over time.

***

### 💡 How to Maximize Your Export in Excel

This scraper natively exports a perfectly flattened, optimized CSV. To get the most out of your data in seconds:

1. **Filter by Destination:** Open the CSV and sort the **`destination`** column to segment the data for specific marketing campaigns.
2. **Calculate Upsell Value:** Subtract `priceInterior` from `priceBalcony` to find sailings where the balcony upgrade is incredibly cheap, then heavily promote those specific sailings.

***

### ⭐ Please Leave a 5-Star Review!

If this scraper is saving you hours of manual research and helping you close more deals, please take 10 seconds to [**leave a 5-star review here**](https://console.apify.com/actors/royal-caribbean-scraper).

Every 5-star review helps us keep the API updated, bypass new anti-bot protections, and add even more features to the scraper. We genuinely appreciate your support! 🙏

***

### 🎯 SEO Keywords

Royal Caribbean scraper, cruise data extraction, travel affiliate API, cruise pricing API, ship itineraries scraper, travel agency tools, headless cruise scraper, vacation data scraping.

***

## 🇪🇸 Versión en Español

## 🚢 Royal Caribbean Scraper — Extractor de Datos de Cruceros

#### 🏆 Las Mejores APIs de Datos

**IntelScrape** construye APIs confiables para agencias y ventas B2B.

##### 🔥 Scrapers Populares:

1. **[Local Lead Finder](https://apify.com/intelscrape/local-lead-finder)** — Extrae negocios de Google Maps que no tienen sitio web.
2. **[Skip Trace PRO](https://apify.com/intelscrape/skip-trace-pro)** — Búsqueda inversa de personas (Teléfono y Email).
3. **[Google Maps Leads](https://apify.com/intelscrape/google-maps-lead-generator)** — Extrae negocios locales y contactos.
4. **[Building Permits](https://apify.com/intelscrape/building-permit-scraper)** — Extrae nuevos permisos de construcción.
5. **[UCC Financing](https://apify.com/intelscrape/ucc-lien-scraper)** — Leads de financiamiento de equipos y MCA.
6. **[Shopify Emails](https://apify.com/intelscrape/shopify-owner-email)** — Cosecha emails directos de fundadores de Shopify.
7. **[Niche E-Com Finder](https://apify.com/intelscrape/niche-ecommerce-website-finder)** — Genera CSVs de URLs de e-commerce en cualquier nicho.
8. **[Dice Job Scraper Pro](https://apify.com/intelscrape/dice-jobs)** — Extrae publicaciones frescas de empleos de TI y salarios.
9. **[Watson OSINT Username Finder](https://apify.com/intelscrape/watson)** — Encuentra nombres de usuario en más de 400 sitios web.

***

⚡ **Usa este Actor en n8n — sin código**

¿Construyes flujos de trabajo sin código en [n8n](https://n8n.io)? ¡Funciona de forma nativa! Usa el nodo oficial de **Apify** para soltar este Actor directamente en tu lienzo.

**Configuración (30 segundos):**

1. En n8n, agrega el nodo oficial de **Apify** a tu flujo de trabajo.
2. Conecta tu **API token de Apify** en las credenciales.
3. Selecciona **Run an Actor**, y pega el ID de este actor: `IntelScrape/royal-caribbean-scraper`.
4. ¡Llena el JSON de entrada y ejecuta!

***

![Royal Caribbean Scraper Hero Banner](https://files.catbox.moe/6wlqiw.png)

![price](https://img.shields.io/badge/precio-$1.00_/_1K-2ea44f) ![billing](https://img.shields.io/badge/facturación-pago_por_eventos-2ea44f) ![API key](https://img.shields.io/badge/API_key-no_requerida-blue) ![speed](https://img.shields.io/badge/velocidad-súper_rápida-8a2be2) ![technology](https://img.shields.io/badge/tecnología-GraphQL_Headless-blue) ![rating](https://img.shields.io/badge/calificación-5.0★-ffc107)

**Genera conjuntos de datos completos de inventario de cruceros extrayendo itinerarios en vivo y precios a nivel de cabina directamente desde la API GraphQL interna de Royal Caribbean.**
Nombres de barcos, puertos de salida, duraciones y precios divididos por cabinas Interior, Exterior, Balcón y Suite (Deluxe). 100% Headless.

***

> 🧭 Construido para **Agencias de Viajes, Marketeros Afiliados, Sitios de Comparación de Precios e Investigadores de Mercado.**

> ⭐ **Calificado 5.0★ por usuarios expertos diarios.** Si Royal Caribbean Scraper te ahorra horas de extracción manual, tómate 10 segundos para [dejar una reseña](https://console.apify.com/actors/royal-caribbean-scraper) — esto ayuda a otros profesionales a encontrarlo y nos permite seguir actualizando los endpoints. ¡Gracias! 🙏

> ⚖️ **Solo para uso comercial legal.** Este Actor solo devuelve información que ya está **públicamente disponible** a través de la infraestructura de búsqueda pública de Royal Caribbean.

***

### 🚢 Royal Caribbean Scraper — por qué elegir este

Extrae 1,000 itinerarios de cruceros por solo $1.00 — escala tu sitio de afiliados de viajes sin esfuerzo.

| Función | Este Actor | Otros Típicos |
| :--- | :--- | :--- |
| **Precio** | **$1.00 / 1K** | Costosos feeds de datos mensuales |
| **Tecnología** | **100% Headless GraphQL** | Playwright/Puppeteer lento |
| **Precios por Cabina** | ✅ | Solo precio "Desde" |
| **Velocidad** | ✅ Súper Rápido | Renderizado de navegador lento |

Datos de registros públicos • solo uso legal B2B

***

### 🖼️ Cómo se ve un resultado

Un registro de conjunto de datos por cada salida de crucero. *(Ejemplo ilustrativo)*

| Barco | Fecha Salida | Noches | Destino | Precio Interior | Precio Balcón |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **Wonder of the Seas** | 2026-07-20 | 4 | Bahamas | $738.16 | $817.66 |
| **Icon of the Seas** | 2026-08-15 | 7 | Caribbean | $1,250.00 | $1,850.00 |
| **Oasis of the Seas** | 2026-09-10 | 5 | Mexico | $650.00 | $900.00 |

💡 En la página del Actor, los resultados se renderizan automáticamente en esta tabla (la pestaña **Output**) y se exportan a **CSV / Excel / JSON / API** con un solo clic.

***

### ⭐ Por qué este Scraper de Cruceros

| | |
| :--- | :--- |
| 🎯 **Precios Divididos por Cabina** | No te conformes con precios "Desde". Extraemos el precio exacto para cabinas Interior, Exterior, Balcón y Deluxe (Suites). |
| 🧩 **100% Headless** | Al aplicar ingeniería inversa a los Componentes de Servidor React y la API GraphQL de Royal Caribbean, este scraper se ejecuta sin navegador, haciéndolo increíblemente rápido. |
| 🥇 **Filtrado Avanzado** | Filtra por Código de Destino y Rangos de Fechas para aislar exactamente qué inventario necesitas monitorear. |
| 💸 **Extremadamente Barato** | $1.00 por cada 1,000 salidas. Una fracción del costo de alternativas basadas en navegador. |

***

### ⚡ Inicio rápido

```json
{
  "startDate": "2026-08-01",
  "endDate": "2026-10-31",
  "destinationCode": "CARIB",
  "maxResults": 1000
}
```

Ejecútalo — cada crucero coincidente regresa como un registro altamente enriquecido. Eso es todo.

### ✅ Lo que obtienes por salida

- 🚢 **Detalles del Barco** — Nombre del Barco, Código del Barco
- 📅 **Fechas del Itinerario** — Fecha de Salida, Fecha de Regreso, Noches
- 📍 **Ubicaciones** — Puerto de Salida, Región de Destino
- 💰 **Precios** — Precio Interior, Precio Exterior, Precio Balcón, Precio Deluxe (Suite)
- 🔗 **Enlace de Reserva** — URL directa para reservar la salida específica

Todo por un precio fijo — **$1.00 / 1,000 cruceros**.

***

### 💰 Cómo Ganar Dinero Con Esta API (ROI Claro)

Si estás pagando $1 por 1,000 itinerarios de cruceros, necesitas saber cómo convertir eso en $10,000+. Aquí están las tres principales formas en que nuestros clientes monetizan esta API:

#### 1. Marketeros Afiliados de Viajes (Altas Comisiones)

Construye sitios web automatizados de comparación de precios o boletines informativos. Rastrea caídas de precios en salidas premium (como Icon of the Seas). Envía alertas por correo electrónico a tus suscriptores con tu enlace de reserva de afiliado cuando los precios de balcón bajen un 20%.

#### 2. Agencias de Viajes y Asesores

Monitorea el inventario para tus clientes. Configura el scraper para que se ejecute diariamente para verificar la disponibilidad en suites agotadas (precios Deluxe). Cuando una suite esté disponible, llama al instante a tu cliente de alto patrimonio para asegurar la reserva y tu comisión.

#### 3. Investigación de Mercado de Competidores

¿Estás en la industria hotelera o de cruceros? Usa estos datos para mapear la estrategia de gestión de rendimiento de Royal Caribbean, rastrear qué tan rápido se llenan los barcos y analizar los ajustes de precios a lo largo del tiempo.

***

### 💡 Cómo Maximizar tu Exportación en Excel

Este scraper exporta nativamente un CSV perfectamente aplanado y optimizado. Para sacar el máximo provecho de tus datos en segundos:

1. **Filtra por Destino:** Abre el CSV y ordena la columna **`destination`** para segmentar los datos para campañas de marketing específicas.
2. **Calcula el Valor de Upsell:** Resta `priceInterior` de `priceBalcony` para encontrar salidas donde la mejora de balcón es increíblemente barata, luego promueve fuertemente esas salidas específicas.

***

### ⭐ ¡Por Favor Deja una Reseña de 5 Estrellas!

Si este scraper te está ahorrando horas de investigación manual y ayudándote a cerrar más tratos, por favor tómate 10 segundos para [**dejar una reseña de 5 estrellas aquí**](https://console.apify.com/actors/royal-caribbean-scraper).

Cada reseña de 5 estrellas nos ayuda a mantener la API actualizada, eludir nuevas protecciones anti-bot y agregar aún más funciones al scraper. ¡Apreciamos sinceramente tu apoyo! 🙏

***

### 🎯 Palabras Clave SEO

Royal Caribbean scraper, extracción de datos de cruceros, API de afiliados de viajes, API de precios de cruceros, scraper de itinerarios de barcos, herramientas de agencia de viajes, scraper de cruceros headless, web scraping de datos de vacaciones.

# Actor input Schema

## `startDate` (type: `string`):

Start date for sailings in YYYY-MM-DD format

## `endDate` (type: `string`):

End date for sailings in YYYY-MM-DD format

## `departurePorts` (type: `array`):

Select one or multiple departure ports

## `destinations` (type: `array`):

Select one or multiple destinations

## `ships` (type: `array`):

Select one or multiple ships

## `nights` (type: `array`):

Select cruise duration buckets (matches Royal Caribbean exact options)

## `maxResults` (type: `integer`):

Max number of cruises to extract

## Actor input object example

```json
{
  "startDate": "2026-01-01",
  "endDate": "2026-12-31",
  "departurePorts": [
    "MIA",
    "FLL",
    "PCN"
  ],
  "maxResults": 500
}
```

# Actor output Schema

## `cruiseId` (type: `string`):

Unique cruise identifier

## `shipName` (type: `string`):

Name of the ship

## `shipCode` (type: `string`):

Ship internal code

## `sailDate` (type: `string`):

Departure date

## `returnDate` (type: `string`):

Return date

## `nights` (type: `string`):

Duration of the cruise

## `departurePort` (type: `string`):

Embarkation port

## `destination` (type: `string`):

Region

## `url` (type: `string`):

Booking URL

## `priceInterior` (type: `string`):

Price for Interior cabin

## `priceOutside` (type: `string`):

Price for Oceanview cabin

## `priceBalcony` (type: `string`):

Price for Balcony cabin

## `priceDeluxe` (type: `string`):

Price for Suite cabin

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startDate": "2026-01-01",
    "endDate": "2026-12-31",
    "departurePorts": [
        "MIA",
        "FLL",
        "PCN"
    ],
    "maxResults": 500
};

// Run the Actor and wait for it to finish
const run = await client.actor("intelscrape/royal-caribbean-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startDate": "2026-01-01",
    "endDate": "2026-12-31",
    "departurePorts": [
        "MIA",
        "FLL",
        "PCN",
    ],
    "maxResults": 500,
}

# Run the Actor and wait for it to finish
run = client.actor("intelscrape/royal-caribbean-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startDate": "2026-01-01",
  "endDate": "2026-12-31",
  "departurePorts": [
    "MIA",
    "FLL",
    "PCN"
  ],
  "maxResults": 500
}' |
apify call intelscrape/royal-caribbean-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=intelscrape/royal-caribbean-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Royal Caribbean Scraper",
        "description": "Royal Caribbean Scraper. Instantly extract live cruise itineraries, departure ports, ship data, and real-time pricing across all cabin tiers (Interior, Ocean View, Balcony, Deluxe). Perfectly bypasses anti-bot systems to pull hundreds of hidden cruise deals in seconds!",
        "version": "1.0",
        "x-build-id": "ckfQrCKj0d6PyyaOa"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/intelscrape~royal-caribbean-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-intelscrape-royal-caribbean-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/intelscrape~royal-caribbean-scraper/runs": {
            "post": {
                "operationId": "runs-sync-intelscrape-royal-caribbean-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/intelscrape~royal-caribbean-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-intelscrape-royal-caribbean-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",
                "required": [
                    "maxResults"
                ],
                "properties": {
                    "startDate": {
                        "title": "Departure date from",
                        "type": "string",
                        "description": "Start date for sailings in YYYY-MM-DD format"
                    },
                    "endDate": {
                        "title": "Departure date to",
                        "type": "string",
                        "description": "End date for sailings in YYYY-MM-DD format"
                    },
                    "departurePorts": {
                        "title": "Departure Ports",
                        "type": "array",
                        "description": "Select one or multiple departure ports",
                        "items": {
                            "type": "string",
                            "enum": [
                                "HNL",
                                "MIA",
                                "SEA",
                                "FLL",
                                "SWD",
                                "BWI",
                                "GAL",
                                "PCN",
                                "BYE",
                                "YVR",
                                "TPA",
                                "MSY",
                                "LAX",
                                "SAN",
                                "STH",
                                "BCN",
                                "IST",
                                "ATH",
                                "BLQ",
                                "TRS",
                                "ROM",
                                "SYD",
                                "BNE",
                                "ONX",
                                "SJU",
                                "CTG",
                                "SIN",
                                "HKG",
                                "BAO",
                                "YOK"
                            ],
                            "enumTitles": [
                                "Oahu (Honolulu), Hawaii",
                                "Miami, Florida",
                                "Seattle, Washington",
                                "Fort Lauderdale, Florida",
                                "Seward, Alaska",
                                "Baltimore, Maryland",
                                "Galveston, Texas",
                                "Orlando (Port Canaveral), Florida",
                                "Cape Liberty (New York), New Jersey",
                                "Vancouver, British Columbia",
                                "Tampa, Florida",
                                "New Orleans, Louisiana ",
                                "Los Angeles, California",
                                "San Diego, California",
                                "Southampton, England",
                                "Barcelona, Spain",
                                "Istanbul, Turkey",
                                "Athens (Piraeus), Greece",
                                "Ravenna (Venice), Italy",
                                "Trieste, Italy",
                                "Rome (Civitavecchia), Italy",
                                "Sydney, Australia",
                                "Brisbane, Australia",
                                "Colón, Panama",
                                "San Juan, Puerto Rico",
                                "Cartagena, Colombia",
                                "Singapore, Singapore",
                                "Hong Kong, China",
                                "Shanghai (Baoshan), China",
                                "Tokyo (Yokohama), Japan"
                            ]
                        }
                    },
                    "destinations": {
                        "title": "Destinations",
                        "type": "array",
                        "description": "Select one or multiple destinations",
                        "items": {
                            "type": "string",
                            "enum": [
                                "ALCAN",
                                "FAR.E",
                                "AUSTL",
                                "BAHAM",
                                "BERMU",
                                "ATLCO",
                                "CARIB",
                                "EUROP",
                                "HAWAI",
                                "MEXCO",
                                "PACIF",
                                "T.PAN",
                                "ISLAN",
                                "SOPAC",
                                "T.ATL",
                                "TPACI"
                            ],
                            "enumTitles": [
                                "Alaska",
                                "Asia",
                                "Australia & New Zealand",
                                "Bahamas",
                                "Bermuda",
                                "Canada & New England",
                                "Caribbean",
                                "Europe",
                                "Hawaii",
                                "Mexico",
                                "Pacific Northwest",
                                "Panama Canal",
                                "Repositioning",
                                "South Pacific",
                                "Transatlantic",
                                "Transpacific"
                            ]
                        }
                    },
                    "ships": {
                        "title": "Ships",
                        "type": "array",
                        "description": "Select one or multiple ships",
                        "items": {
                            "type": "string",
                            "enum": [
                                "AN",
                                "UT",
                                "WN",
                                "JW",
                                "OV",
                                "GR",
                                "SC",
                                "LB",
                                "OA",
                                "LE",
                                "RD",
                                "AD",
                                "HM",
                                "BR",
                                "FR",
                                "QN",
                                "EN",
                                "SR",
                                "NV",
                                "AL",
                                "IC",
                                "ST",
                                "MA",
                                "EX",
                                "VY",
                                "SY",
                                "ID",
                                "RH",
                                "OY",
                                "VI",
                                "HE"
                            ],
                            "enumTitles": [
                                "Anthem of the Seas",
                                "Utopia of the Seas",
                                "Wonder of the Seas",
                                "Jewel of the Seas",
                                "Ovation of the Seas",
                                "Grandeur of the Seas",
                                "Spectrum of the Seas",
                                "Liberty of the Seas",
                                "Oasis of the Seas",
                                "Legend of the Seas",
                                "Radiance of the Seas",
                                "Adventure of the Seas",
                                "Harmony of the Seas",
                                "Brilliance of the Seas",
                                "Freedom of the Seas",
                                "Quantum of the Seas",
                                "Enchantment of the Seas",
                                "Serenade of the Seas",
                                "Navigator of the Seas",
                                "Allure of the Seas",
                                "Icon of the Seas",
                                "Star of the Seas",
                                "Mariner of the Seas",
                                "Explorer of the Seas",
                                "Voyager of the Seas",
                                "Symphony of the Seas",
                                "Independence of the Seas",
                                "Rhapsody of the Seas",
                                "Odyssey of the Seas",
                                "Vision of the Seas",
                                "Hero of the Seas"
                            ]
                        }
                    },
                    "nights": {
                        "title": "Number of nights",
                        "type": "array",
                        "description": "Select cruise duration buckets (matches Royal Caribbean exact options)",
                        "items": {
                            "type": "string",
                            "enum": [
                                "2~5",
                                "6~8",
                                "9~11",
                                "12~999"
                            ],
                            "enumTitles": [
                                "2 - 5 nights",
                                "6 - 8 nights",
                                "9 - 11 nights",
                                "12+ nights"
                            ]
                        }
                    },
                    "maxResults": {
                        "title": "Maximum Rows",
                        "type": "integer",
                        "description": "Max number of cruises to extract",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
