Skip to main content

GET /v1.1/search

Search for available sailings (ship + itinerary + fare combinations) with advanced filtering, sorting, and pagination. Returns matching sailings with all related resources (company, ship, itinerary, region, ports, fares, stateroom categories) included.

Request

GET /v1.1/search

Headers

HeaderRequiredDescription
X-WorldTravel-ApiKeyYesAPI key for authentication

Query Parameters

Pagination

ParameterTypeDefaultMaxDescription
page[number]integer1Page number (one-indexed)
page[size]integer1020Items per page

Sorting

ParameterTypeDefaultDescription
sortstringamount_descSort order for results

Sort values:

ValueDescription
amount_descPrice descending (default)
amount_ascPrice ascending
departure_ascDeparture date ascending
nights_ascNumber of nights ascending

Filters

Filters are passed as a URL-encoded JSON object in the filter[objects] query parameter.

ParameterTypeDescription
filter[objects]JSON stringComplex filter object (see structure below)

Filter object structure:

{
"departure": {
"from": "YYYYMMDD",
"to": "YYYYMMDD"
},
"nights": {
"from": 1,
"to": 14
},
"price": {
"from": 500.00,
"to": 3000.00
},
"ship": {
"codes": ["AL", "HM"]
},
"itinerary": {
"codes": ["12U326"]
},
"company": {
"codes": ["RCI", "CEL"]
},
"stateroom_supracategory": {
"codes": ["I", "O", "B", "S"]
},
"region": {
"codes": ["CARIB", "EURPE"]
},
"port": {
"codes": ["MIA", "BCN"]
}
}

Filter fields:

FieldTypeDescription
departure.fromstringEarliest departure date (YYYYMMDD format)
departure.tostringLatest departure date (YYYYMMDD format)
nights.fromintegerMinimum number of nights
nights.tointegerMaximum number of nights
price.fromfloatMinimum price
price.tofloatMaximum price
ship.codesstring[]Filter by ship codes
itinerary.codesstring[]Filter by itinerary codes
company.codesstring[]Filter by company codes
stateroom_supracategory.codesstring[]Filter by stateroom supracategory codes (I=Interior, O=Ocean View, B=Balcony, S=Suite)
region.codesstring[]Filter by region codes
port.codesstring[]Filter by port codes

All filter fields are optional. Omit any field to skip that filter.

Example Request

# Search for 7-night Caribbean sailings under $2000, sorted by price
curl -G "https://api.rccl.ro/v1.1/search" \
-H "X-WorldTravel-ApiKey: YOUR_API_KEY" \
--data-urlencode 'page[number]=1' \
--data-urlencode 'page[size]=10' \
--data-urlencode 'sort=amount_asc' \
--data-urlencode 'filter[objects]={"departure":{"from":"20250601","to":"20251231"},"nights":{"from":7,"to":7},"price":{"from":500,"to":2000},"region":{"codes":["CARIB"]}}'

Response

200 OK

Returns an array of sailing resources with all related resources included.

Response body:

{
"data": [
{
"type": "sailing",
"id": "VY12U326",
"attributes": {
"departure": "2025-04-21",
"amount": 899.00,
"title": "Greek Isles & Eastern Mediterranean",
"nights": 7,
"ports": [
"Piraeus (Athens), Greece",
"Mykonos, Greece",
"Kusadasi, Turkey"
],
"thumb_url": "https://example.com/images/greek-isles-thumb.jpg"
},
"relationships": {
"fare": {
"data": [
{ "type": "fare", "id": "1" }
]
},
"lowest_fare": {
"links": { "related": "/v1.1/fare/1" },
"data": { "type": "fare", "id": "1" }
},
"company": {
"links": { "related": "/v1.1/company/1" },
"data": { "type": "company", "id": "1" }
},
"region": {
"links": { "related": "/v1.1/region/1" },
"data": { "type": "region", "id": "1" }
},
"port": {
"data": [
{ "type": "port", "id": "1" },
{ "type": "port", "id": "2" }
]
},
"itinerary": {
"links": { "related": "/v1.1/itinerary/1" },
"data": { "type": "itinerary", "id": "1" }
},
"stateroom_supracategory": {
"data": [
{ "type": "stateroom_supracategory", "id": "1" }
]
},
"ship": {
"links": { "related": "/v1.1/ship/1" },
"data": { "type": "ship", "id": "1" }
}
},
"links": {
"self": "/v1.1/search?filter[objects]=..."
}
}
],
"links": {
"self": "/v1.1/search?filter[objects]=...&sort=amount_asc",
"first": "/v1.1/search?page[number]=1&page[size]=10&filter[objects]=...&sort=amount_asc",
"next": "/v1.1/search?page[number]=2&page[size]=10&filter[objects]=...&sort=amount_asc"
},
"meta": {
"count": 142
},
"included": [
{
"type": "company",
"id": "1",
"attributes": {
"code": "RCI",
"title": "Royal Caribbean International",
"description": "Global cruise line",
"hero_url": "https://example.com/images/rci-hero.jpg",
"logo_url": "https://example.com/images/rci-logo.png",
"site_url": "https://www.royalcaribbean.com",
"terms_of_service_url": "https://example.com/terms",
"non_refundability_terms_url": "https://example.com/refund-terms",
"gratuities_included": true,
"dining_description": "Complimentary dining in the main restaurant",
"dining_image_url": "https://example.com/images/dining.jpg",
"gratuity_description": "Gratuities are included in the fare",
"gratuity_image_url": "https://example.com/images/gratuity.jpg",
"deck_legend_url": "https://example.com/images/deck-legend.png"
},
"links": { "self": "/v1.1/company/1" }
},
{
"type": "ship",
"id": "1",
"attributes": {
"code": "AL",
"title": "Allure of the Seas",
"description": "One of the world's largest cruise ships",
"image_url": "https://example.com/images/allure-thumb.jpg",
"hero_url": "https://example.com/images/allure-hero.jpg",
"inauguration": 2010,
"revitalization": 2020,
"capacity": 5400,
"crew": 2200,
"decks": 16,
"speed": "22 knots"
},
"relationships": {
"company": {
"links": { "related": "/v1.1/company/1" },
"data": { "type": "company", "id": "1" }
}
},
"links": { "self": "/v1.1/ship/1" }
},
{
"type": "itinerary",
"id": "1",
"attributes": {
"code": "12U326",
"adult_age": 18,
"child_age": 12,
"title": "Greek Isles & Eastern Mediterranean",
"nights": 7,
"hero_url": "https://example.com/images/greek-isles-hero.jpg",
"hero_alt": "Greek Isles Cruise",
"thumb_url": "https://example.com/images/greek-isles-thumb.jpg",
"thumb_alt": "Greek Isles Thumbnail",
"include_url": "https://example.com/whats-included/",
"earliest_departure": "2025-04-21",
"roundtrip": true
},
"relationships": {
"company": {
"links": { "related": "/v1.1/company/1" },
"data": { "type": "company", "id": "1" }
},
"ship": {
"links": { "related": "/v1.1/ship/1" },
"data": { "type": "ship", "id": "1" }
},
"region": {
"links": { "related": "/v1.1/region/1" },
"data": { "type": "region", "id": "1" }
},
"port": {
"data": [
{ "type": "port", "id": "1" }
]
}
},
"links": { "self": "/v1.1/itinerary/1" }
},
{
"type": "region",
"id": "1",
"attributes": {
"code": "EURPE",
"title": "Europe",
"image_url": "https://example.com/images/europe.jpg"
},
"links": { "self": "/v1.1/region/1" }
},
{
"type": "stateroom_supracategory",
"id": "1",
"attributes": {
"code": "I",
"title": "Interior Cabin"
},
"links": { "self": "/v1.1/stateroom_supracategory/1" }
},
{
"type": "port",
"id": "1",
"attributes": {
"code": "PIR",
"title": "Piraeus (Athens), Greece",
"description": "The main port serving Athens",
"url": "https://example.com/ports/piraeus/",
"image_url": "https://example.com/images/piraeus.jpg",
"latitude": 37.9475,
"longitude": 23.6372
},
"links": { "self": "/v1.1/port/1" }
},
{
"type": "fare",
"id": "1",
"attributes": {
"departure": "2025-04-21",
"amount": 899.00,
"passenger_1_amount": 949.00,
"passenger_2_amount": 849.00,
"departure_tax": 120.00,
"port_tax": 85.00,
"passenger_1_tax": 62.50,
"passenger_2_tax": 62.50
},
"relationships": {
"stateroom_subcategory": {
"links": { "related": "/v1.1/stateroom_subcategory/1" },
"data": { "type": "stateroom_subcategory", "id": "1" }
},
"company": {
"links": { "related": "/v1.1/company/1" },
"data": { "type": "company", "id": "1" }
},
"refundability": {
"links": { "related": "/v1.1/refundability/1" },
"data": { "type": "refundability", "id": "1" }
},
"port": {
"links": { "related": "/v1.1/port/1" },
"data": { "type": "port", "id": "1" }
},
"itinerary": {
"links": { "related": "/v1.1/itinerary/1" },
"data": { "type": "itinerary", "id": "1" }
},
"stateroom_supracategory": {
"links": { "related": "/v1.1/stateroom_supracategory/1" },
"data": { "type": "stateroom_supracategory", "id": "1" }
},
"ship": {
"links": { "related": "/v1.1/ship/1" },
"data": { "type": "ship", "id": "1" }
},
"region": {
"links": { "related": "/v1.1/region/1" },
"data": { "type": "region", "id": "1" }
},
"promotion_category": {
"links": { "related": "/v1.1/promotion_category/1" },
"data": { "type": "promotion_category", "id": "1" }
}
},
"links": { "self": "/v1.1/fare/1" }
},
{
"type": "promotion_category",
"id": "1",
"attributes": {
"code": "STD001",
"description": "STANDARD",
"displayed_description": "Standard"
},
"relationships": {
"company": {
"links": { "related": "/v1.1/company/1" },
"data": { "type": "company", "id": "1" }
},
"refundability": {
"links": { "related": "/v1.1/refundability/1" },
"data": { "type": "refundability", "id": "1" }
}
},
"links": { "self": "/v1.1/promotion_category/1" }
},
{
"type": "refundability",
"id": "1",
"attributes": {
"code": "D",
"description": "Non-refundable deposit fare"
},
"links": { "self": "/v1.1/refundability/1" }
},
{
"type": "stateroom_subcategory",
"id": "1",
"attributes": {
"code": "8N",
"color": "C9E9EA",
"color2": "ABC123",
"title": "Ocean View Cabin",
"description": "Cabin with sitting area and sofa",
"surface_area": 15,
"balcony_area": 16,
"image_url": "https://example.com/images/cabin-8n.jpg"
},
"relationships": {
"ship": {
"links": { "related": "/v1.1/ship/1" },
"data": { "type": "ship", "id": "1" }
},
"stateroom_category": {
"links": { "related": "/v1.1/stateroom_category/1" },
"data": { "type": "stateroom_category", "id": "1" }
},
"facility": {
"links": { "related": "/v1.1/facility/1" },
"data": { "type": "facility", "id": "1" }
}
},
"links": { "self": "/v1.1/stateroom_subcategory/1" }
},
{
"type": "stateroom_category",
"id": "1",
"attributes": {
"title": "Interior Cabins",
"description": "Comfortable interior cabins with a wide range of amenities",
"image_url": "https://example.com/images/interior-category.jpg"
},
"relationships": {
"stateroom_supracategory": {
"links": { "related": "/v1.1/stateroom_supracategory/1" },
"data": { "type": "stateroom_supracategory", "id": "1" }
},
"ship": {
"links": { "related": "/v1.1/ship/1" },
"data": { "type": "ship", "id": "1" }
}
},
"links": { "self": "/v1.1/stateroom_category/1" }
},
{
"type": "facility",
"id": "1",
"attributes": {
"title": "Club Suite Amenities",
"description": "Suite amenities include concierge service and priority boarding"
},
"relationships": {
"company": {
"links": { "related": "/v1.1/company/1" },
"data": { "type": "company", "id": "1" }
}
},
"links": { "self": "/v1.1/facility/1" }
}
],
"jsonapi": {
"version": "1.0"
}
}

Sailing Attributes

FieldTypeDescription
departurestringDeparture date (ISO 8601)
amountfloatStarting price
titlestringSailing/itinerary title
nightsintegerNumber of nights
portsstring[]List of port names visited
thumb_urlstringThumbnail image URL

Relationships

RelationshipTypeCardinalityDescription
farefaremanyAll available fare options
lowest_farefareoneThe cheapest fare for this sailing
companycompanyoneOperating cruise line
regionregiononeSailing region
portportmanyPorts of call
itineraryitineraryoneItinerary details
stateroom_supracategorystateroom_supracategorymanyAvailable stateroom types
shipshiponeShip operating this sailing

Included Resource Types

The response eagerly loads all related resources in the included array:

TypeKey Attributes
companycode, title, logo_url, gratuities_included
shipcode, title, capacity, crew, decks
itinerarycode, title, nights, roundtrip, earliest_departure
regioncode, title, image_url
portcode, title, latitude, longitude
fareamount, passenger_1_amount, passenger_2_amount, taxes
stateroom_supracategorycode, title
stateroom_subcategorycode, title, surface_area, balcony_area
stateroom_categorytitle, description, image_url
promotion_categorycode, description, displayed_description
refundabilitycode, description
facilitytitle, description

Error Responses

StatusDescription
401Unauthorized — missing or invalid API key
500Internal Server Error — upstream query failure