CruiseMapper Scraper avatar

CruiseMapper Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
CruiseMapper Scraper

CruiseMapper Scraper

[πŸ’° $1.5 / 1K] Extract cruise itineraries, passenger ships, and ports from CruiseMapper β€” itinerary stops with dates, ship specs (capacity, year built, tonnage), and port schedules. Filter cruises by destination, dates, line, length, and price.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Pull cruise itineraries, ship specs, and port schedules from CruiseMapper at scale β€” with per-port arrival and departure times, multi-region voyage filters, full vessel specifications, and optional upcoming-arrivals schedules per port. Built for travel agencies, cruise content creators, route analysts, and travel-data teams who need fresh CruiseMapper data without paying for stale APIs or building a parser from scratch.

Why This Scraper?

  • Three search modes in one actor β€” cruise itineraries, passenger ships, and ports. Flip the What to Scrape dropdown to switch; results land in one dataset keyed by a recordType discriminator (cruise, ship, port) so downstream tools can fan out into three tables.
  • 23 cruise destination regions β€” Caribbean, Mediterranean, Alaska, Norwegian Fjords, Arctic and Antarctica, Galapagos, Hawaii and Panama Canal, plus river itineraries on the Nile, Amazon, Rhine, Danube, and Mekong.
  • Per-stop arrival and departure times β€” each cruise row includes a structured ports[] array with date, port name, arrival time, departure time, country flag, and the link to the port's detail page. No positional stop_1, stop_2 columns; one clean array per cruise.
  • Eight cruise filters wired through one input β€” destination region, departure port, port of call, ship name, cruise line, length tier (1–2 / 3–5 / 6–10 / 11–14 / 15+ days), date range, and price ceiling. All optional.
  • Full ship specifications β€” gross tonnage, year built, length and beam in meters, deck count, passenger and crew capacity, builder, ship class, flag state, sister ships, and former names. Plus a built-in futureItineraries[] array of every published voyage on that vessel (over 100 entries for active liners).
  • Port pages with precise lat/lon β€” every port returns coordinates pulled from CruiseMapper's inline map widget, plus region, country, subtitle, and a clean summary paragraph.
  • Opt-in upcoming-arrivals schedule β€” toggle includeUpcomingArrivals on Ports mode and each port returns up to 100 scheduled ship calls across the next 3 months: date, ship, cruise line, arrival time, and departure time.
  • Paste any cruisemapper.com URL β€” drop cruise-search results, ship detail pages, or port detail pages straight into startUrls and the actor auto-detects the record type. No URL building required.
  • Pay only per result β€” flat per-row pricing, no compute meter on top of the result count.

Use Cases

Travel Agency Operations

  • Build a weekly digest of new Caribbean and Mediterranean sailings under $1,500 for client newsletters
  • Surface every Norwegian Fjords departure between June and September for shoulder-season promotions
  • Track ship deployment changes β€” which vessels just shifted itineraries to Alaska for summer
  • Compare per-night pricing across cruise lines at the same length tier

Route & Fleet Analytics

  • Map every active cruise ship by gross tonnage, deck count, and passenger capacity
  • Track river-cruise fleet growth on the Rhine, Danube, and Nile year over year
  • Benchmark new-build specs (Excel-class, Edge-class, World-class) against existing fleet
  • Quantify port traffic by counting scheduled arrivals per major hub

Port Authority & Destination Marketing

  • Pull the 3-month forward schedule of arrivals at any port for terminal capacity planning
  • Identify cruise lines that have never called at a port for outreach campaigns
  • Map shore-excursion demand by counting itineraries that include each port of call
  • Compare Caribbean port traffic month over month

Cruise Content & Editorial

  • Generate "Top 10 cruises departing this month from Miami" articles with live data
  • Build a database of every world cruise and grand voyage of 60+ nights
  • Auto-update fleet pages with current ship specs and itineraries
  • Source itinerary maps showing every stop on a multi-leg sailing

Lead Generation & Affiliate Programs

  • Feed affiliate cruise-booking widgets with fresh inventory across destinations
  • Build alerting on new ultra-luxury voyages (Silversea, Seabourn, Regent) under a price ceiling
  • Compile cruise-line catalogs by operator for B2B partner pitches

Getting Started

Cruise Itineraries β€” Caribbean Sailings

The simplest possible run β€” let the destination filter handle the rest:

{
"searchType": "cruises",
"destination": "caribbean",
"maxResults": 50
}

Filtered Cruise Search β€” Mediterranean, 6–10 Days, Under $3,000

{
"searchType": "cruises",
"destination": "mediterranean",
"cruiseLength": "6-10",
"startDate": "2026-06-01",
"endDate": "2026-09-30",
"priceMax": 3000,
"maxResults": 200
}

Ships by Cruise Line

{
"searchType": "ships",
"cruiseLine": "Carnival-Cruise-Line-9",
"maxResults": 50
}

Ports with Upcoming Arrivals

Pull port records with the next 3 months of scheduled ship calls:

{
"searchType": "ports",
"portName": "Miami",
"includeUpcomingArrivals": true,
"maxResults": 10
}

Direct URL Input

Mix any combination of cruise-search results, ship pages, and port pages:

{
"startUrls": [
"https://www.cruisemapper.com/cruise-search?portRegion=8&duration=3",
"https://www.cruisemapper.com/ships/Symphony-of-the-Seas-1305",
"https://www.cruisemapper.com/ports/miami-port-65"
],
"maxResults": 100
}

Input Reference

What to Scrape

ParameterTypeDefaultDescription
searchTypeselectCruise ItinerariesChoose the type of CruiseMapper data to collect. Cruise itineraries are the most common choice. Options: Cruise Itineraries, Ships, Ports.
startUrlsstring[][]Paste CruiseMapper URLs directly (cruise search results, individual ship pages, or individual port pages). When provided, these override the filter fields below.

Cruise Filters

Optional β€” narrow the cruise search. Ignored when scraping ships or ports, and ignored when Start URLs are provided.

ParameterTypeDefaultDescription
destinationselectBahamas - Caribbean - BermudaCruise destination region. 23 options including Mediterranean, Alaska, Norwegian Fjords, Arctic-Antarctica, Galapagos, Hawaii-Panama, plus river itineraries on the Nile, Amazon, and European, Asian, French, and Russian rivers.
departurePortstringnullFilter by embarkation port (e.g. "Miami", "Barcelona").
portOfCallstringnullFilter to cruises that include this intermediate port.
shipNamestringnullFilter by ship name. Works in all three modes.
cruiseLinestringnullFilter by operator (e.g. "Royal Caribbean", "Carnival", "Viking").
cruiseLengthselectnullVoyage duration tier. Options: 1-2 days, 3-5 days, 6-10 days, 11-14 days, 15+ days.
startDatedatenullEarliest departure date (YYYY-MM-DD).
endDatedatenullLatest departure date (YYYY-MM-DD).
priceMinintegernullOnly include cruises at or above this per-person price (USD).
priceMaxintegernullOnly include cruises at or below this per-person price (USD).

Port Filters

Used in Ports mode only.

ParameterTypeDefaultDescription
portNamestringnullFilter ports by name (e.g. "Miami", "Barcelona").
includeUpcomingArrivalsbooleanfalseWhen scraping ports, also fetch each port's upcoming-ship-arrivals schedule. Each port is capped at the first 3 months from today and 100 arrivals total to keep runs predictable.

Options

ParameterTypeDefaultDescription
maxResultsinteger100Maximum number of results to collect. Set to 0 for unlimited. The actor never trims mid-page β€” it stops requesting new pages once the cap is reached, so the final count may slightly overshoot.

Output

Every row carries a recordType field β€” cruise, ship, or port β€” so you can route cleanly downstream into separate tables.

Cruise (recordType: "cruise")

{
"recordType": "cruise",
"id": "4874386",
"url": "https://www.cruisemapper.com/cruise-search?portRegion=8&finder=cruise#cruise-4874386",
"title": "7 days, Western Caribbean cruise",
"shipName": "Symphony of the Seas",
"shipUrl": "https://www.cruisemapper.com/ships/Symphony-of-the-Seas-1305",
"cruiseLine": "Royal Caribbean",
"departureDate": "2026-05-23",
"returnDate": "2026-05-30",
"durationNights": 7,
"departurePort": "Miami",
"returnPort": "Miami",
"priceFromUsd": 879,
"currency": "USD",
"ports": [
{ "date": "23 May 17:00", "portName": "Miami", "country": "United States", "arrivalTime": null, "departureTime": "17:00", "portUrl": "https://www.cruisemapper.com/ports/miami-port-65", "role": "departure" },
{ "date": "25 May 08:00 - 17:00", "portName": "CocoCay", "country": "Bahamas", "arrivalTime": "08:00", "departureTime": "17:00", "portUrl": "https://www.cruisemapper.com/ports/cococay-port-1124", "role": "call" },
{ "date": "26 May 09:00 - 17:00", "portName": "Cozumel", "country": "Mexico", "arrivalTime": "09:00", "departureTime": "17:00", "portUrl": "https://www.cruisemapper.com/ports/cozumel-port-92", "role": "call" }
],
"scrapedAt": "2026-05-20T14:30:00Z"
}
FieldTypeDescription
recordTypestringAlways "cruise"
idstringCruiseMapper internal cruise identifier
urlstringCanonical cruise URL (anchored into the search results page)
titlestringItinerary title (e.g. "7 days, Western Caribbean cruise")
shipNamestringVessel name
shipUrlstringDirect link to the ship detail page
shipIdstringCruiseMapper internal ship identifier
cruiseLinestringOperator
departureDatestringEmbarkation date (YYYY-MM-DD)
returnDatestringDisembarkation date (YYYY-MM-DD)
durationNightsnumberVoyage length in nights
departurePortstringPort of embarkation
returnPortstringPort of disembarkation (may equal departurePort)
priceFromUsdnumberLowest published per-person price in USD
currencystringCurrency of priceFromUsd (default "USD")
portsobject[]Stops as { date, portName, portUrl, arrivalTime, departureTime, country, role }. Role is departure, call, or arrival.
scrapedAtstringISO 8601 extraction timestamp

Ship (recordType: "ship")

{
"recordType": "ship",
"id": "1305",
"url": "https://www.cruisemapper.com/ships/Symphony-of-the-Seas-1305",
"name": "Symphony of the Seas",
"cruiseLine": "Royal Caribbean",
"shipType": "ocean",
"passengerCapacity": 6680,
"crewCapacity": 2200,
"yearBuilt": 2018,
"lengthMeters": 362,
"beamMeters": 47,
"grossTonnage": 228081,
"speedKnots": 22,
"decks": 18,
"cabins": 2759,
"flagState": "Bahamas",
"builder": "STX France (Saint-Nazaire, France)",
"shipClass": "RCI Oasis",
"sisterShips": ["Oasis of the Seas", "Allure of the Seas", "Harmony of the Seas"],
"formerNames": [],
"futureItineraries": [
{ "id": "4874386", "title": "7 days, Western Caribbean cruise", "departureDate": "2026-05-23", "durationNights": 7, "priceFromUsd": 879 }
],
"scrapedAt": "2026-05-20T14:30:00Z"
}
FieldTypeDescription
recordTypestringAlways "ship"
idstringCruiseMapper internal ship identifier
urlstringCanonical ship detail URL
namestringShip name
cruiseLinestringOperator
shipTypestringVessel classification β€” ocean, river, expedition, or luxury
passengerCapacitynumberMaximum passenger count
crewCapacitynumberCrew count
yearBuiltnumberBuild year
lengthMetersnumberHull length in meters
beamMetersnumberHull beam (width) in meters
grossTonnagenumberGross registered tonnage
speedKnotsnumberService speed in knots
decksnumberDeck count
cabinsnumberCabin count
flagStatestringCountry of registry
builderstringShipyard that built the vessel
shipClassstringVessel class (e.g. "RCI Oasis", "CCL EXCEL (XL)")
ownerstringRegistered owner of the vessel (may be null)
operatorstringCommercial operator of the vessel (may be null)
sisterShipsstring[]Vessels in the same class
formerNamesstring[]Previous names if the ship was renamed
futureItinerariesobject[]Published forward sailings on this vessel β€” up to 100+ entries on active liners
scrapedAtstringISO 8601 extraction timestamp

Port (recordType: "port")

{
"recordType": "port",
"id": "65",
"url": "https://www.cruisemapper.com/ports/miami-port-65",
"name": "Miami",
"country": "United States",
"region": "Hawaii - Mexico - Panama Canal",
"latitude": 25.7765,
"longitude": -80.1755,
"subtitle": "PortMiami, Florida",
"summary": "PortMiami (Dodge Island) is the busiest cruise port in the world...",
"terminals": [],
"upcomingArrivals": [
{ "date": "2026-05-23", "shipName": "Symphony of the Seas", "shipUrl": "https://www.cruisemapper.com/ships/Symphony-of-the-Seas-1305", "shipId": "1305", "cruiseLine": "Royal Caribbean", "arrivalTime": "07:00", "departureTime": "17:00" }
],
"scrapedAt": "2026-05-20T14:30:00Z"
}
FieldTypeDescription
recordTypestringAlways "port"
idstringCruiseMapper internal port identifier
urlstringCanonical port detail URL
namestringPort name
countrystringCountry
regionstringCruise region (e.g. "Bahamas - Caribbean - Bermuda")
regionIdnumberCruiseMapper internal region identifier
latitudenumberLatitude in decimal degrees
longitudenumberLongitude in decimal degrees
subtitlestringShort alternative title (e.g. "PortMiami, Florida")
summarystringEditorial description of the port
terminalsobject[]Cruise terminals (empty when not listed on the source page)
upcomingArrivalsobject[]Scheduled ship calls when includeUpcomingArrivals: true β€” capped at 100 entries across the next 3 months. Each entry: { date, shipName, shipUrl, shipId, cruiseLine, arrivalTime, departureTime }
scrapedAtstringISO 8601 extraction timestamp

Tips for Best Results

  • Pick the right mode first. cruises is the highest-volume mode (15 itineraries per page across the whole catalog). Switch to ships for fleet analytics and ports for terminal-level planning.
  • Always set a destination or a date range in Cruises mode. A naked cruise search will default to Caribbean β€” explicit filters cut runtime and return a tighter dataset.
  • Use the URL input for surgical pulls. When you only need one ship's full spec sheet or one port's arrival schedule, paste the URL directly instead of running a filtered listing.
  • Leave includeUpcomingArrivals off for broad port runs. Each port with arrivals enabled adds up to three extra requests for the monthly schedule. Turn it on only when you need the schedule data, or run with a small maxResults to keep cost predictable.
  • Use cruiseLength to find world cruises. The 15+ days tier surfaces every grand voyage, world cruise, and trans-ocean repositioning sailing on CruiseMapper.
  • Mix sources in startUrls. A single run can combine cruise-search URLs, ship pages, and port pages β€” they all land in the same dataset, tagged by recordType.
  • Treat priceFromUsd as a floor. CruiseMapper reports the lowest published interior-cabin price; balcony, suite, and concierge fares are typically 1.5–3Γ— higher.
  • Filtering by ship or port name scans the full CruiseMapper catalog. Runs with a shipName or portName filter walk every listing page until a match is found β€” expect 1–3 minutes of runtime. For a single known ship or port, paste its URL into Start URLs instead for an instant targeted pull.

Pricing

$1.50 per 1,000 results β€” pay only for what we successfully return. No compute charges, no per-run fees, no minimum.

ResultsEstimated Cost
100$0.15
1,000$1.50
10,000$15.00
100,000$150.00

A "result" is any row in the output dataset β€” a cruise, a ship, or a port. Platform fees (compute, storage) are additional and depend on your Apify plan.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n β€” Workflow automation
  • Google Sheets β€” Direct spreadsheet export
  • Slack / Email β€” Notifications on new results
  • Webhooks β€” Trigger custom APIs on run completion
  • Apify API β€” Full programmatic access

This actor is designed for legitimate travel research, market analysis, and cruise-content workflows. Users are responsible for complying with applicable laws and CruiseMapper's terms of service. Do not use extracted data for spam, harassment, misrepresentation, or any illegal purpose. All cruise schedules, prices, and itineraries are subject to change by the operating cruise line β€” always confirm critical details with the cruise line before booking.