Skip to main content

GET /v1.1/files

List files available for offline processing. Returns signed URLs for downloading data exports as an alternative to querying the API directly.

Need on-demand filtering, sorting, and pagination?

Use /v1.1/search instead. It serves the same pricing data, refreshed in bulk in the background. What's different is that /v1.1/search returns JSON:API responses with query filters, ideal for user-facing search.

Need on-demand itinerary days?

Use /v1.1/search/days instead. It serves the same itinerary days data with query filters, ideal for user-facing itinerary display.

Why use offline files?

The v1.1 API enforces rate limiting. If your application needs to warm up a local cache, rebuild a search index, or process all prices in a single day, paginating through /v1.1/search will be too slow and may exceed rate limits.

The /v1.1/files endpoint provides pre-built data exports that you can download in bulk, without any rate-limit concerns. Each file is accessible via a signed URL valid for 24 hours.

File organization

Files are organized under two top-level prefixes:

bulks/ — full data exports (NDJSON)

Bulks bucket structure

Each bulk export contains all records of a given type in a single Newline-Delimited JSON (NDJSON) file.

PrefixStructureDescription
bulks/cabin_categorybulks/cabin_category/index.ndjsonAll cabin categories in one file
bulks/cabin_subcategorybulks/cabin_subcategory/index.ndjsonAll cabin subcategories in one file
bulks/cabin_supracategorybulks/cabin_supracategory/index.ndjsonAll cabin supracategories in one file
bulks/companybulks/company/index.ndjsonAll companies in one file
bulks/deckbulks/deck/index.ndjsonAll decks in one file
bulks/facilitybulks/facility/index.ndjsonAll facilities in one file
bulks/farebulks/fare/<region>/<ship>/index.ndjsonAll fares, split by region and ship
bulks/itinerarybulks/itinerary/index.ndjsonAll itineraries in one file
bulks/itinerary_daybulks/itinerary_day/<ship>/index.ndjsonAll itinerary days, split by ship
bulks/portbulks/port/index.ndjsonAll ports in one file
bulks/promotion_categorybulks/promotion_category/index.ndjsonAll promotion categories in one file
bulks/refundabilitybulks/refundability/index.ndjsonAll refundability policies in one file
bulks/regionbulks/region/index.ndjsonAll regions in one file
bulks/sail_statebulks/sail_state/index.ndjsonAll sailing states in one file
bulks/shipbulks/ship/index.ndjsonAll ships in one file
Fare files

They contain the same data available through GET /v1.1/search, but organized for offline consumption. Fares are split by region and ship code to keep individual files at a manageable size.

For example, bulks/fare/AFRCA/JR/index.ndjson contains all fares for the Africa region on ship JR.

Itinerary day files

They contain the same data available through GET /v1.1/search/days, but organized for offline consumption. Itinerary days are split by ship, with each file containing all days across all regions and departures.

For example, bulks/itinerary_day/JR/index.ndjson contains all itinerary days for ship JR.

objects/ — individual records (JSON)

Objects bucket structure

Each record is stored as a separate JSON file, named by its UUID.

PrefixStructureDescription
objects/cabin_categoryobjects/cabin_category/<uuid>.jsonOne JSON file per cabin category
objects/cabin_subcategoryobjects/cabin_subcategory/<uuid>.jsonOne JSON file per cabin subcategory
objects/cabin_supracategoryobjects/cabin_supracategory/<uuid>.jsonOne JSON file per cabin supracategory
objects/companyobjects/company/<uuid>.jsonOne JSON file per company
objects/deckobjects/deck/<uuid>.jsonOne JSON file per deck
objects/facilityobjects/facility/<uuid>.jsonOne JSON file per facility
objects/fareobjects/fare/<uuid>.jsonOne JSON file per fare
objects/itineraryobjects/itinerary/<uuid>.jsonOne JSON file per itinerary
objects/itinerary_dayobjects/itinerary_day/<uuid>.jsonOne JSON file per itinerary day
objects/portobjects/port/<uuid>.jsonOne JSON file per port
objects/promotion_categoryobjects/promotion_category/<uuid>.jsonOne JSON file per promotion category
objects/refundabilityobjects/refundability/<uuid>.jsonOne JSON file per refundability policy
objects/regionobjects/region/<uuid>.jsonOne JSON file per region
objects/sail_stateobjects/sail_state/<uuid>.jsonOne JSON file per sailing state
objects/shipobjects/ship/<uuid>.jsonOne JSON file per ship

Request

GET /v1.1/files

Headers

HeaderRequiredDescription
X-WorldTravel-ApiKeyYesAPI key for authentication

Query Parameters

ParameterTypeDefaultDescription
filter[prefix]stringFilter files by path prefix
page[token]stringPagination token from a previous response

Example Requests

# List all available files
curl -X GET "https://api.rccl.ro/v1.1/files" \
-H "X-WorldTravel-ApiKey: YOUR_API_KEY"
# List all ship bulk exports
curl -X GET "https://api.rccl.ro/v1.1/files?filter[prefix]=bulks/ship" \
-H "X-WorldTravel-ApiKey: YOUR_API_KEY"
# List fare exports for the Africa region
curl -X GET "https://api.rccl.ro/v1.1/files?filter[prefix]=bulks/fare/AFRCA" \
-H "X-WorldTravel-ApiKey: YOUR_API_KEY"
# List individual ship object files
curl -X GET "https://api.rccl.ro/v1.1/files?filter[prefix]=objects/ship" \
-H "X-WorldTravel-ApiKey: YOUR_API_KEY"

Response

200 OK

Returns an array of file resources with signed download URLs.

Response body:

{
"data": [
{
"type": "file",
"id": "bulks/fare/AFRCA/JR/index.ndjson",
"attributes": {
"signed_url": "https://storage.googleapis.com/rccl.ro/bulks/fare/AFRCA/JR/index.ndjson?X-Goog-Signature=...",
"updated_at": "2026-01-17T14:27:00Z"
}
},
{
"type": "file",
"id": "bulks/fare/AFRCA/OA/index.ndjson",
"attributes": {
"signed_url": "https://storage.googleapis.com/rccl.ro/bulks/fare/AFRCA/OA/index.ndjson?X-Goog-Signature=...",
"updated_at": "2026-01-17T14:27:00Z"
}
},
{
"type": "file",
"id": "bulks/fare/CARIB/AL/index.ndjson",
"attributes": {
"signed_url": "https://storage.googleapis.com/rccl.ro/bulks/fare/CARIB/AL/index.ndjson?X-Goog-Signature=...",
"updated_at": "2026-01-17T14:27:00Z"
}
},
{
"type": "file",
"id": "bulks/fare/EURPE/VY/index.ndjson",
"attributes": {
"signed_url": "https://storage.googleapis.com/rccl.ro/bulks/fare/EURPE/VY/index.ndjson?X-Goog-Signature=...",
"updated_at": "2026-01-17T14:27:00Z"
}
}
],
"links": {
"self": "/v1.1/files?filter[prefix]=bulks/fare",
"next": "/v1.1/files?filter[prefix]=bulks/fare&page[token]=eyJhbGciOi..."
},
"meta": {
"folders": ["bulks/fare/AFRCA/JR", "bulks/fare/AFRCA/OA", "bulks/fare/CARIB/AL", "bulks/fare/EURPE/VY"]
},
"jsonapi": {
"version": "1.0"
}
}

File Attributes

FieldTypeDescription
signed_urlstringPre-signed URL to download the file (valid for 24 hours)
updated_atstringLast modification timestamp (ISO 8601)

Meta

FieldTypeDescription
foldersstring[]Folder paths found within the current listing

Pagination

This endpoint uses token-based pagination. When more results are available, the response includes a next link with a page[token] parameter. Pass this token in your next request to retrieve the following page.

Error Responses

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

Common use cases

Warm up a local fare cache

To download all fare data for offline processing, start by listing the available fare folders, then download each file:

# 1. Discover all fare folders
curl -X GET "https://api.rccl.ro/v1.1/files?filter[prefix]=bulks/fare" \
-H "X-WorldTravel-ApiKey: YOUR_API_KEY"

# 2. Download a specific fare file using the signed_url from the response
curl -o index.ndjson "SIGNED_URL_FROM_RESPONSE"

Warm up a local itinerary days cache

To download all itinerary day data for offline processing, start by listing the available folders, then download each file:

# 1. Discover all itinerary day folders
curl -X GET "https://api.rccl.ro/v1.1/files?filter[prefix]=bulks/itinerary_day" \
-H "X-WorldTravel-ApiKey: YOUR_API_KEY"

# 2. Download a specific itinerary day file using the signed_url from the response
curl -o index.ndjson "SIGNED_URL_FROM_RESPONSE"

Download all ship data

# Get the bulk ship export
curl -X GET "https://api.rccl.ro/v1.1/files?filter[prefix]=bulks/ship" \
-H "X-WorldTravel-ApiKey: YOUR_API_KEY"

# Download using the signed_url
curl -o index.ndjson "SIGNED_URL_FROM_RESPONSE"