Cruise Data Feed: Lines, Itineraries, Ports & Prices avatar

Cruise Data Feed: Lines, Itineraries, Ports & Prices

Pricing

$7.00 / 1,000 cruise results

Go to Apify Store
Cruise Data Feed: Lines, Itineraries, Ports & Prices

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.

Pricing

$7.00 / 1,000 cruise results

Rating

0.0

(0)

Developer

VulnV

VulnV

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Categories

Share

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

  1. Click Try for free / Start.
  2. Pick your filters - cruise line, region, departure port, dates, duration, price (or leave them all empty to download the latest sailings across every line).
  3. 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 itineraryPortsText summary 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.

FieldTypeDescription
cruiseLinesarrayFilter by one or more cruise lines (e.g. MSC Cruises, Royal Caribbean Cruises). Empty = all lines.
sourcesarrayRestrict to specific upstream catalogs: cruisemapper, msc, disney. Empty = all.
regionstringMatch cruises whose region contains this text, e.g. Caribbean, Alaska, Mediterranean.
embarkPortstringMatch cruises whose departure port contains this text, e.g. Barcelona, Miami.
shipNamestringExact ship name, e.g. MSC World Europa.
departureDateFrom / departureDateTostring (YYYY-MM-DD)Departure date range.
minNights / maxNightsintegerCruise duration range, in nights.
minPrice / maxPriceintegerPrice range, in the cruise's own currency.
roundTripstringany, true (round trip only) or false (one way only).
sortstringdeparture_date, -departure_date, price, -price.
maxResultsintegerMaximum 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

πŸ“¬ Need help? Open the Issues tab on this Actor's page.