POST /v1.1/search/staterooms
Search for available staterooms (cabins) for a specific sailing and subcategory. Returns individual cabin details including deck, positioning, bed configuration, and amenities.

Request
POST /v1.1/search/staterooms
Request Body
{
"departure": {
"date": "2026-12-05"
},
"itinerary": {
"code": "07D519",
"ship": {
"code": "RH"
}
},
"guests": {
"adults": 2,
"children": 0
},
"promotion": {
"code": "BESTRATE"
},
"stateroom_subcategory": {
"code": "4B"
}
}
Body Parameters
| Field | Type | Required | Description |
|---|---|---|---|
departure.date | string | Yes | Departure date (YYYY-MM-DD format) |
itinerary.code | string | Yes | Itinerary code |
itinerary.ship.code | string | Yes | Ship code |
guests.adults | integer | Yes | Number of adult guests |
guests.children | integer | Yes | Number of child guests |
promotion.code | string | No | Promotion code (e.g. BESTRATE) |
stateroom_subcategory.code | string | Yes | Stateroom subcategory code to filter by |
Example Request
curl -X POST "https://api.rccl.ro/v1.1/search/staterooms" \
-H "X-WorldTravel-ApiKey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"departure": { "date": "2026-12-05" },
"itinerary": { "code": "07D519", "ship": { "code": "RH" } },
"guests": { "adults": 2, "children": 0 },
"promotion": { "code": "BESTRATE" },
"stateroom_subcategory": { "code": "4B" }
}'
Response
200 OK
Returns an array of stateroom resources with related objects included.
Response body:
{
"data": [
{
"type": "stateroom",
"id": "113b8879-e07e-30b3-8c0f-f28605cf1ba4",
"attributes": {
"code": "7014",
"connecting": false,
"capacity": 2,
"window": true,
"window_size": "31X79",
"furniture": "The color scheme for the cabin is: PASTL. The cabin contains following furniture items: PRIVATE VERANDA, SITTING AREA W/SOFA BED, DRY REFRIGERATOR, WALL TO WALL CARPETING, SAFE, LOW TABLE, BEAUTY TABLE, 2 NIGHT TABLES, CHAIR",
"baby_bed": true,
"balcony": true,
"television": true,
"beds": 2,
"upper_beds": 0,
"telephone": true,
"obstructed_view": false,
"accessible": false,
"area": 18
},
"relationships": {
"stateroom_subcategory": {
"links": {
"related": "/v1.1/stateroom_subcategory/55523f76-70a2-3ea9-8e77-e68cb819c503"
},
"data": {
"type": "stateroom_subcategory",
"id": "55523f76-70a2-3ea9-8e77-e68cb819c503"
}
},
"deck": {
"links": {
"related": "/v1.1/deck/74462101-b07b-37a3-9727-40b23fad29a9"
},
"data": {
"type": "deck",
"id": "74462101-b07b-37a3-9727-40b23fad29a9"
}
},
"stateroom_positioning": {
"links": {
"related": "/v1.1/stateroom_positioning/3529ede4-5dae-3c71-81e9-3eef3ffc0638"
},
"data": {
"type": "stateroom_positioning",
"id": "3529ede4-5dae-3c71-81e9-3eef3ffc0638"
}
},
"bed": {
"data": [
{
"type": "bed",
"id": "4754db57-69c9-3799-aef0-49f3e46ab107"
}
]
},
"company": {
"links": {
"related": "/v1.1/company/2a15e462-7710-332a-b536-2ef4731d9dad"
},
"data": {
"type": "company",
"id": "2a15e462-7710-332a-b536-2ef4731d9dad"
}
},
"ship": {
"links": {
"related": "/v1.1/ship/9508a19d-7801-307e-a7b7-628c31bfdd47"
},
"data": {
"type": "ship",
"id": "9508a19d-7801-307e-a7b7-628c31bfdd47"
}
},
"stateroom_attribute": {
"data": [
{
"type": "stateroom_attribute",
"id": "994c9e5d-c26d-36b0-a78e-7fee711689c1"
},
{
"type": "stateroom_attribute",
"id": "abcc9496-66ea-3004-912d-e4316f35b27d"
}
]
}
},
"links": {
"self": "/v1.1/stateroom/113b8879-e07e-30b3-8c0f-f28605cf1ba4"
}
}
],
"meta": {
"count": 21
},
"included": [
{
"type": "ship",
"id": "9508a19d-7801-307e-a7b7-628c31bfdd47",
"attributes": {
"code": "RH",
"title": "Rhapsody of the Seas",
"description": "..."
},
"links": {
"self": "/v1.1/ship/9508a19d-7801-307e-a7b7-628c31bfdd47"
}
},
{
"type": "deck",
"id": "74462101-b07b-37a3-9727-40b23fad29a9",
"attributes": {
"code": "07",
"title": "Puntea 07"
},
"links": {
"self": "/v1.1/deck/74462101-b07b-37a3-9727-40b23fad29a9"
}
},
{
"type": "stateroom_positioning",
"id": "3529ede4-5dae-3c71-81e9-3eef3ffc0638",
"attributes": {
"code": "FW",
"title": "In fata vasului",
"image_url": "https://ik.imagekit.io/worldtravel/wp-content/uploads/Vas_croaziera_fata-1.png"
},
"links": {
"self": "/v1.1/stateroom_positioning/3529ede4-5dae-3c71-81e9-3eef3ffc0638"
}
},
{
"type": "bed",
"id": "4754db57-69c9-3799-aef0-49f3e46ab107",
"attributes": {
"code": "D",
"description": "pat convertibil, patul pentru bebelusi"
},
"links": {
"self": "/v1.1/bed/4754db57-69c9-3799-aef0-49f3e46ab107"
}
},
{
"type": "stateroom_attribute",
"id": "994c9e5d-c26d-36b0-a78e-7fee711689c1",
"attributes": {
"code": "1A",
"description": "Cabina este conectata cu cabina alaturata"
},
"links": {
"self": "/v1.1/stateroom_attribute/994c9e5d-c26d-36b0-a78e-7fee711689c1"
}
},
{
"type": "stateroom_subcategory",
"id": "55523f76-70a2-3ea9-8e77-e68cb819c503",
"attributes": {
"code": "4B",
"color": "005DAA",
"title": "Cabina cu balcon",
"description": "...",
"surface_area": 18,
"image_url": "https://ik.imagekit.io/worldtravel/wp-content/uploads/..."
},
"links": {
"self": "/v1.1/stateroom_subcategory/55523f76-70a2-3ea9-8e77-e68cb819c503"
}
},
{
"type": "facility",
"id": "d4dd111a-4fd9-3339-8238-aca5c05bebe3",
"attributes": {
"title": "ROYAL CARIBBEAN INTERNATIONAL - CABINE",
"description": "..."
},
"links": {
"self": "/v1.1/facility/d4dd111a-4fd9-3339-8238-aca5c05bebe3"
}
},
{
"type": "shower",
"id": "afeeb7b2-a10e-3ac7-b13b-e2fe7e0edfbb",
"attributes": {
"code": "S",
"description": "Dus"
},
"links": {
"self": "/v1.1/shower/afeeb7b2-a10e-3ac7-b13b-e2fe7e0edfbb"
}
}
],
"jsonapi": {
"version": "1.0"
}
}
Stateroom Attributes
| Field | Type | Description |
|---|---|---|
code | string | Cabin number |
connecting | boolean | Whether the cabin connects to an adjacent cabin |
capacity | integer | Maximum guest capacity |
window | boolean | Whether the cabin has a window |
window_size | string | Window dimensions |
furniture | string | Furniture and cabin description |
baby_bed | boolean | Whether a baby bed is available |
balcony | boolean | Whether the cabin has a balcony |
television | boolean | Whether the cabin has a television |
beds | integer | Number of beds |
upper_beds | integer | Number of upper (pullman) beds |
telephone | boolean | Whether the cabin has a telephone |
obstructed_view | boolean | Whether the view is obstructed |
accessible | boolean | Whether the cabin is wheelchair accessible |
area | number | Cabin area in m² |
Relationships
| Relationship | Type | Cardinality | Description |
|---|---|---|---|
stateroom_subcategory | stateroom_subcategory | one | The subcategory this cabin belongs to |
deck | deck | one | The deck the cabin is on |
stateroom_positioning | stateroom_positioning | one | Position on the ship (forward, midship, aft) |
bed | bed | many | Bed type configurations |
company | company | one | Operating cruise line |
ship | ship | one | The ship |
stateroom_attribute | stateroom_attribute | many | Cabin attributes (e.g. connecting, special features) |
Included Resource Types
| Type | Description |
|---|---|
ship | Ship details |
company | Cruise line |
deck | Deck number and name |
stateroom_positioning | Ship position with diagram image |
bed | Bed type configuration |
stateroom_attribute | Cabin feature attributes |
stateroom_subcategory | Subcategory details (color, surface area, image) |
facility | Facility/amenity group |
shower | Shower type |
Error Responses
| Status | Description |
|---|---|
401 | Unauthorized — missing or invalid API key |
500 | Internal Server Error — upstream query failure |