Cruise Data Feed: Lines, Itineraries, Ports & Prices
Pricing
$7.00 / 1,000 cruise results
Cruise Data Feed: Lines, Itineraries, Ports & Prices
Download structured cruise inventory from 60+ cruise lines (MSC, Disney, Royal Caribbean, Carnival, Viking and more) in one clean schema: ships, sailing dates, durations, ports of call, day-by-day itineraries and pricing. Unofficial; public data only.
Cruise Data Feed: All Lines, Itineraries, Ports & Prices
This cruise data scraper downloads clean, structured cruise inventory from 60+ cruise lines - MSC, Disney, Royal Caribbean, Carnival, Norwegian, Princess, Costa, Viking and more - in one normalized schema. Every record is a sailing with its ship, departure date, duration, embarkation/disembarkation ports, region, day-by-day itinerary and pricing.
Unofficial. This Actor is not affiliated with, endorsed by, or sponsored by any cruise line or travel brand. Cruise line and ship names are trademarks of their respective owners and are used here only to describe the data the Actor returns. The data is public cruise inventory only - no personal data.
π How to use
- Click Try for free / Start.
- Pick your filters - cruise line, region, departure port, dates, duration, price (or leave them all empty to download the latest sailings across every line).
- Run the Actor and download the results as JSON, CSV, Excel, HTML or via API.
β¨ Features
- π³οΈ 60+ cruise lines in one schema - ocean, river and expedition lines, all normalized to the same fields. No per-site scraping, no layout drift.
- π Rich filtering - cruise line, region/destination, departure port, ship, departure date range, number of nights, price range and round-trip vs. one-way.
- πΊοΈ Day-by-day itineraries - every record includes the ordered list of ports of
call (with sequence, port name, day and embark/disembark flags), plus a flat
itineraryPortsTextsummary for quick scanning. - π² Pricing - lead-in price, currency and price-per-night where available.
- β‘ Fast & reliable - talks to a single JSON API, so runs are lightweight (no headless browser) and the schema stays stable run-to-run.
π§ Input
All fields are optional. Run with no input to download the latest sailings across all lines.
| Field | Type | Description |
|---|---|---|
cruiseLines | array | Filter by one or more cruise lines (e.g. MSC Cruises, Royal Caribbean Cruises). Empty = all lines. |
sources | array | Restrict to specific upstream catalogs: cruisemapper, msc, disney. Empty = all. |
region | string | Match cruises whose region contains this text, e.g. Caribbean, Alaska, Mediterranean. |
embarkPort | string | Match cruises whose departure port contains this text, e.g. Barcelona, Miami. |
shipName | string | Exact ship name, e.g. MSC World Europa. |
departureDateFrom / departureDateTo | string (YYYY-MM-DD) | Departure date range. |
minNights / maxNights | integer | Cruise duration range, in nights. |
minPrice / maxPrice | integer | Price range, in the cruise's own currency. |
roundTrip | string | any, true (round trip only) or false (one way only). |
sort | string | departure_date, -departure_date, price, -price. |
maxResults | integer | Maximum number of records to store (default 100). |
Example input
{"cruiseLines": ["MSC Cruises", "Royal Caribbean Cruises"],"region": "Caribbean","departureDateFrom": "2026-10-01","departureDateTo": "2026-12-31","minNights": 5,"sort": "price","maxResults": 100}
π¦ Output
Each dataset item is one sailing. Example:
{"source": "cruisemapper","source_id": "4911264","cruise_line": "MSC Cruises","ship_name": "MSC World Europa","title": "7 nights, round trip from Barcelona","departure_date": "2026-10-18","return_date": "2026-10-25","duration_days": 7,"nights": 7,"round_trip": true,"embark_port": "Barcelona, Spain","disembark_port": "Barcelona, Spain","region": "Western Mediterranean","price_amount": 899,"price_currency": "EUR","price_per_night": 128.43,"itinerary": [{ "seq": 1, "port": "Barcelona, Spain", "date_raw": "18 Oct", "is_embark": true, "is_disembark": false },{ "seq": 2, "port": "Marseille, France", "date_raw": "19 Oct", "is_embark": false, "is_disembark": false }],"itineraryPortsText": "Barcelona, Spain β Marseille, France β β¦","portCount": 8,"scraped_at": "2026-06-27T21:14:08.493837"}
The dataset has two views: Overview (flat table - line, ship, dates, ports, price)
and Itineraries (the full day-by-day itinerary array).
π‘ Use cases
- Build a cruise comparison, search or alerting tool across many lines at once.
- Monitor sailing availability, durations and lead-in prices for specific routes.
- Analyse itineraries, ports of call and seasonality across the whole industry.
- Feed normalized cruise data into a travel agency, affiliate or OTA site.
π³ Pricing
This Actor is monetized on a pay-per-result + usage basis: you pay a small fee per cruise record returned, plus the Apify platform usage your run consumes. Runs are lightweight - a single API, no headless browser - so usage stays low. New users can try it on the Apify free tier (capped sample). See the Pricing tab on the Actor's page for the current rate.
β FAQ
Where does the data come from? The feed aggregates publicly available cruise inventory from across the industry and normalizes it into one schema. Use the data responsibly and in line with applicable laws.
How current is it?
The feed is refreshed continuously and re-priced on a recurring schedule. Each record
includes a scraped_at timestamp.
How do I scrape only a few results to test?
Set maxResults to a small number (e.g. 5) and add a filter such as a single cruise
line or region.
Is it official? No. It is an independent, unofficial Actor and is not affiliated with any cruise line. Brand names are used only to describe the data.
π οΈ Our Other Scrapers
- MSC Cruises Scraper - Live MSC sailings with full itineraries and the cabin price matrix.
- Booking.com Cruises Scraper - Cruise deals, prices and itineraries from Booking.com.
- Disney Cruises Scraper - Disney Cruise Line itineraries and pricing.
- Amazon Product Scraper - Amazon product data, pricing and reviews.
π¬ Need help? Open the Issues tab on this Actor's page.