Skip to content

Royal Caribbean Scraper

Try for free

Scrape Royal Caribbean cruises: every sailing with interior, ocean view, balcony and suite prices, discounts, cabin category codes, taxes, ports of call with times, ship, dates and booking links. 30 markets and currencies; filter by destination, port, ship, dates, nights and price.

🚢 Royal Caribbean Scraper

Get every Royal Caribbean sailing with live prices for interior, ocean view, balcony and suite cabins, the discount against the original fare, cabin category codes, taxes, ports of call with times, ship, dates and direct booking links. Pick one of 30 markets and get prices in that market's currency. No login, no browser, a few seconds per run.

✨ Why use Royal Caribbean Scraper?

  • 💰 Per-cabin prices — current price, original price, discount and category code (like ZI, XB, WS) for every cabin class on every sailing.
  • 🌍 30 markets and currencies — USA, UK, Canada, Australia, Germany, France, Italy, Spain, Mexico, Brazil, Singapore, Hong Kong and more.
  • 🎯 The site's own filters — destination, departure port, ship, departure dates and cruise length, plus a price range.
  • 🗺️ Full itinerary — every day with port, country or region, arrival and departure time.
  • ⚡ Fast — reads the same data the Royal Caribbean search page loads, 100 cruises per request; a 20-sailing run finishes in about 10 seconds.
  • 🔗 Ready to act on — itinerary page and booking link for each sailing.

🎯 Use cases

  • 📉 Price tracking — schedule a daily run and watch fares and discounts per cabin class move.
  • 🧳 Travel agencies and affiliates — feed your own search, deal alerts or newsletters with current sailings and booking links.
  • 📊 Market research — compare the same sailing across markets and currencies, or ships and destinations by price per night.
  • 🗓️ Deal hunting — sort by price, filter by month, nights and port, and get the cheapest sailings first.

🚀 How to use

  1. Pick a market (the country site and currency).
  2. Choose destinations, departure ports or ships, or leave them empty for every cruise.
  3. Optionally set dates, nights and a price range, and a sort order.
  4. Set Max sailings per search (0 = all of them) and click Start.
  5. Download the results as JSON, CSV, Excel or HTML, or read them through the API.

You can also paste search URLs from royalcaribbean.com (for example https://www.royalcaribbean.com/cruises?search=destination:CARIB|nights:3~5): each URL runs as its own search with its own filters, market and sort. An itinerary or booking URL (or a cruise id like IC07MIA-2623281014) gives every departure date of that one cruise.

📥 Input

FieldWhat it does
marketCountry site and currency: USA, GBR, CAN, AUS, DEU, FRA, ITA, ESP, MEX, BRA, SGP, ... (30 in total)
destinationsDestination codes, e.g. CARIB, BAHAM, EUROP, ALCAN (Alaska), MEXCO
departurePortsPort codes, e.g. MIA, FLL, PCN, GAL, SEA, BCN, STH
maxResultsSailings per search (default 20, 0 = all)
dateFrom / dateToDeparture window: a month (2027-03) or a day (2027-03-15)
minNights / maxNightsCruise length
shipsShip codes, e.g. IC (Icon of the Seas), UT (Utopia), WN (Wonder)
minPrice / maxPriceLowest cabin price range, in the market's currency
includeSoldOutAlso save sailings with no bookable cabin
sortByrecommended, price_low, price_high, date, nights_low, nights_high (the site orders cruises; the sailings in each batch follow the same order)
startUrlsroyalcaribbean.com search, itinerary or booking URLs, or cruise ids
{
  "market": "USA",
  "destinations": ["CARIB", "BAHAM"],
  "departurePorts": ["MIA", "FLL"],
  "dateFrom": "2027-01",
  "dateTo": "2027-03",
  "maxNights": 7,
  "sortBy": "price_low",
  "maxResults": 100
}

📤 Output

One row per sailing (one ship on one departure date).

FieldDescription
cruiseIdSailing id (itinerary code + date), e.g. IC07E479_2026-10-24
title, shipName, shipCodeCruise name and ship
departureDate, arrivalDate, sailingNightsDates and length
departurePort, arrivalPortPort code, name and region
destinationCode, destinationNameDestination
price, originalPrice, discountAmount, lowestCabinClass, currencyLowest cabin price on the sailing
priceInterior, priceOceanView, priceBalcony, priceSuitePrice per cabin class (empty when that class is sold out)
cabinPricingEvery cabin class with category code, price, original price, discount and availability
taxesAndFees, taxesAndFeesIncludedTaxes and port fees, and whether the prices include them
status, soldOut, highlightsBooking status and the site's promo badges
portsOfCall, portSequence, visitedRegionsDay-by-day itinerary with times
stateroomClassesCabin classes on the ship with capacity and amenities
imageUrl, images, itineraryUrl, bookingUrlPictures and links
market, locale, scrapedAtWhere and when it was read

Example from a test run (trimmed):

{
  "cruiseId": "IC07E479_2026-10-24",
  "groupId": "IC07MIA-2623281014",
  "title": "Eastern Caribbean & Perfect Day",
  "shipName": "Icon of the Seas",
  "departureDate": "2026-10-24",
  "arrivalDate": "2026-10-31",
  "sailingNights": 7,
  "destinationName": "Caribbean",
  "departurePort": { "code": "MIA", "name": "Miami", "region": "Florida" },
  "price": 974.42,
  "originalPrice": 1472.42,
  "discountAmount": 498,
  "lowestCabinClass": "Interior",
  "currency": "USD",
  "priceInterior": 974.42,
  "priceOceanView": 1484.92,
  "priceBalcony": 1827.42,
  "priceSuite": null,
  "taxesAndFees": 188.42,
  "taxesAndFeesIncluded": true,
  "status": "OPEN",
  "cabinPricing": [
    { "cabinClass": "INTERIOR", "cabinClassName": "Interior", "categoryCode": "V4", "available": true,
      "price": 974.42, "originalPrice": 1472.42, "discountAmount": 498 }
  ],
  "highlights": ["Last Minute Cruise Deals", "Early Booking Bonus"],
  "portsOfCall": [
    { "day": 1, "code": "MIA", "name": "Miami", "region": "Florida", "activity": "EMBARK", "arrivalTime": null, "departureTime": "16:30" }
  ],
  "itineraryUrl": "https://www.royalcaribbean.com/cruises/itinerary/7-night-eastern-caribbean-perfect-day-from-miami-on-icon-IC07E479?sailDate=2026-10-24&packageCode=IC07E479&groupId=IC07MIA-2623281014&country=USA",
  "bookingUrl": "https://www.royalcaribbean.com/booking/landing?groupId=IC07MIA-2623281014&sailDate=2026-10-24&shipCode=IC&packageCode=IC07E479&destinationCode=CARIB&selectedCurrencyCode=USD&country=USA",
  "market": "USA"
}

The dataset has three views: Sailings (one row per sailing), Cabin prices (one row per cabin class) and Ports of call (one row per itinerary day).

💰 Pricing

$0.80 per 1,000 sailings ($0.0008 per sailing), plus a small amount of platform usage. Example: 1,000 sailings ≈ $0.80 in results, plus well under one cent of compute and proxy traffic (a measured 1,000-sailing run used about $0.003). Sailings skipped by your price filter are not charged.

❓ FAQ

Is it legal? The actor reads public cruise and price information that Royal Caribbean shows to every visitor, without logging in. Check that your use of the data complies with the site's terms and the laws that apply to you.

Do I need an account or proxy? No account. The default datacenter proxy works well; you don't need to change it.

How many results can I get? Everything the site lists for your search. The whole US market was about 3,500 sailings when we tested. Set maxResults to 0 for all of them.

Which price is shown? The same lowest fare per cabin class that the market's search page shows, in that market's currency. taxesAndFeesIncluded tells you whether taxes and port fees are already in the price, and taxesAndFees gives the amount.

Why is a cabin price empty? That cabin class is sold out or not offered on that sailing. cabinPricing[].available is false for it.

Can I schedule it or use the API? Yes. Save your input as a task, schedule it daily, and read the dataset through the API or an integration.

⚠️ Limits

  • Prices are the lowest fare per cabin class (the same as the search page), not every individual cabin category or room.
  • Guest count, residency, senior, military and loyalty discounts are not applied; you get the public fare.
  • Only ocean cruises from royalcaribbean.com; other cruise lines are not included.
  • Prices and availability change all the time; each row has a scrapedAt timestamp.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.