royalcaribbean.com APIroyalcaribbean.com ↗
Search Royal Caribbean cruises by destination, ship, and duration. Get port-by-port itineraries, sailing dates, and fare data via 3 structured endpoints.
curl -X GET 'https://api.parse.bot/scraper/9c21e4c9-f0dc-44b3-a60a-8ab7756efd77/search_cruises?page=1&limit=5&destination=CARIB' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for cruises with optional filters for destination, ship, and number of nights. Returns paginated results including cruise IDs, itinerary names, ship details, lowest prices, and available sailing dates.
| Param | Type | Description |
|---|---|---|
| ship | string | Ship code to filter by (e.g. 'EN' for Enchantment of the Seas, 'AN' for Anthem of the Seas). |
| skip | integer | Number of results to skip for pagination. |
| limit | integer | Maximum number of results to return per page. |
| nights | string | Number of nights to filter by (e.g. '7' or a range like '5-9'). |
| destination | string | Destination code to filter by (e.g. 'CARIB' for Caribbean, 'ALASK' for Alaska, 'FAR.E' for Far East, 'SOPAC' for South Pacific, 'TPACI' for Transpacific). |
{
"type": "object",
"fields": {
"total": "integer total number of matching cruises",
"cruises": "array of cruise objects, each containing id, productViewLink, lowestPriceSailing (with price value), masterSailing (with itinerary name, departurePort, ship), and sailings array"
},
"sample": {
"data": {
"total": 346,
"cruises": [
{
"id": "EN04TPA-51223913",
"sailings": [
{
"id": "EN04W233_2027-11-15"
},
{
"id": "EN04W237_2027-11-29"
}
],
"masterSailing": {
"itinerary": {
"code": "EN04W233",
"name": "Western Caribbean Getaway",
"ship": {
"code": "EN",
"name": "Enchantment of the Seas"
},
"departurePort": {
"name": "Tampa"
}
}
},
"productViewLink": "itinerary/4-night-western-caribbean-getaway-from-tampa-on-enchantment-EN04W233?sailDate=2028-01-10&packageCode=EN04W233&groupId=EN04TPA-51223913&country=USA",
"lowestPriceSailing": {
"bookingLink": "/booking/landing?groupId=EN04TPA-51223913&sailDate=2028-01-10&shipCode=EN&packageCode=EN04W237&destinationCode=CARIB&selectedCurrencyCode=USD&country=USA",
"lowestStateroomClassPrice": {
"price": {
"value": 345.28
}
}
}
}
]
},
"status": "success"
}
}About the royalcaribbean.com API
The Royal Caribbean API provides 3 endpoints to search cruise listings and retrieve detailed itinerary and pricing data from royalcaribbean.com. Use search_cruises to filter sailings by destination code, ship code, and voyage length, then call get_cruise_details with a package code and sail date to get the full port-by-port schedule, ship information, onboard experience details, and all available fares for that itinerary.
Searching and Filtering Cruises
The search_cruises endpoint accepts optional filters including destination (e.g. 'CARIB' for Caribbean, 'ALASK' for Alaska, 'FAR.E' for Far East), ship (e.g. 'EN' for Enchantment of the Seas, 'AN' for Anthem of the Seas), and nights (a single value like '7' or a range like '5-9'). Results are paginated via skip and limit parameters. Each cruise object in the response includes an id, a productViewLink, lowestPriceSailing with a price value, and a masterSailing containing itinerary details such as the itinerary name and code.
Cruise Itinerary Details
The get_cruise_details endpoint takes two required inputs — package_code (found in masterSailing.itinerary.code from search results) and sail_date in YYYY-MM-DD format — and returns a structured itinerary object. This includes packageCode, name, overviewDescription, totalNights, destination, ship, and chapters which represent the port-by-port schedule with individual port descriptions. The response also includes countries_visited (an array of country names derived from port addresses) and all_available_sailings with pricing data for each departure date.
Asia-Pacific and World Cruise Coverage
The get_asia_pacific_world_cruise endpoint requires no input parameters and returns all sailings across Far East, South Pacific, and Transpacific routes in a single call. Each item in the matches array contains both a cruise_info summary (equivalent to a search result) and a details object with the complete port schedule, ship details, and pricing — making it suitable for building destination-specific views or fare comparison tools without chaining multiple requests.
- Build a cruise fare tracker that monitors
lowestPriceSailingprices across Caribbean and Alaska routes over time. - Generate itinerary comparison pages using
chapters(port schedule) data fromget_cruise_detailsfor multiple sailings. - Populate a trip-planning app with
countries_visitedand port descriptions for a selected package code and sail date. - Aggregate all Asia-Pacific and Transpacific sailing options and fares in one request using
get_asia_pacific_world_cruise. - Filter cruises by ship code and voyage length to surface sailings that match a traveler's availability and preferred vessel.
- Extract
all_available_sailingspricing arrays to display a date-based fare calendar for a specific itinerary. - Support destination research tools by mapping destination codes to itinerary names, port stops, and current fares.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Royal Caribbean have an official developer API?+
What does `get_cruise_details` return beyond basic itinerary info?+
chapters schedule and totalNights, the endpoint returns overviewDescription, ship details, destination, countries_visited (as a plain array of country names), and an all_available_sailings array that includes fare data for each available departure date on that itinerary. If no sailings are available, that field is null.How does pagination work in `search_cruises`?+
total integer representing the full count of matching cruises, and a cruises array for the current page. Use the skip parameter to offset results and limit to control page size. To retrieve all results for a given filter combination, increment skip by your limit value until you have consumed total records.Does the API cover onboard pricing, cabin categories, or availability by cabin type?+
lowestPriceSailing fare values and all_available_sailings pricing at the sailing level, but does not break down fares by cabin category or expose individual cabin availability. You can fork this API on Parse and revise it to add an endpoint targeting cabin-level pricing if that detail is needed.Are shore excursions or dining package data included in the response?+
get_cruise_details response covers port schedules, ship details, and sailing fares, but does not include shore excursion listings or onboard dining package options. You can fork this API on Parse and revise it to add coverage for those data types.