CruiseMapper Scraper
Pricing
from $1.50 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
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 Scrapedropdown to switch; results land in one dataset keyed by arecordTypediscriminator (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 positionalstop_1,stop_2columns; 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
includeUpcomingArrivalson 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
startUrlsand 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
| Parameter | Type | Default | Description |
|---|---|---|---|
searchType | select | Cruise Itineraries | Choose the type of CruiseMapper data to collect. Cruise itineraries are the most common choice. Options: Cruise Itineraries, Ships, Ports. |
startUrls | string[] | [] | 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.
| Parameter | Type | Default | Description |
|---|---|---|---|
destination | select | Bahamas - Caribbean - Bermuda | Cruise 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. |
departurePort | string | null | Filter by embarkation port (e.g. "Miami", "Barcelona"). |
portOfCall | string | null | Filter to cruises that include this intermediate port. |
shipName | string | null | Filter by ship name. Works in all three modes. |
cruiseLine | string | null | Filter by operator (e.g. "Royal Caribbean", "Carnival", "Viking"). |
cruiseLength | select | null | Voyage duration tier. Options: 1-2 days, 3-5 days, 6-10 days, 11-14 days, 15+ days. |
startDate | date | null | Earliest departure date (YYYY-MM-DD). |
endDate | date | null | Latest departure date (YYYY-MM-DD). |
priceMin | integer | null | Only include cruises at or above this per-person price (USD). |
priceMax | integer | null | Only include cruises at or below this per-person price (USD). |
Port Filters
Used in Ports mode only.
| Parameter | Type | Default | Description |
|---|---|---|---|
portName | string | null | Filter ports by name (e.g. "Miami", "Barcelona"). |
includeUpcomingArrivals | boolean | false | When 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
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Maximum 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"}
| Field | Type | Description |
|---|---|---|
recordType | string | Always "cruise" |
id | string | CruiseMapper internal cruise identifier |
url | string | Canonical cruise URL (anchored into the search results page) |
title | string | Itinerary title (e.g. "7 days, Western Caribbean cruise") |
shipName | string | Vessel name |
shipUrl | string | Direct link to the ship detail page |
shipId | string | CruiseMapper internal ship identifier |
cruiseLine | string | Operator |
departureDate | string | Embarkation date (YYYY-MM-DD) |
returnDate | string | Disembarkation date (YYYY-MM-DD) |
durationNights | number | Voyage length in nights |
departurePort | string | Port of embarkation |
returnPort | string | Port of disembarkation (may equal departurePort) |
priceFromUsd | number | Lowest published per-person price in USD |
currency | string | Currency of priceFromUsd (default "USD") |
ports | object[] | Stops as { date, portName, portUrl, arrivalTime, departureTime, country, role }. Role is departure, call, or arrival. |
scrapedAt | string | ISO 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"}
| Field | Type | Description |
|---|---|---|
recordType | string | Always "ship" |
id | string | CruiseMapper internal ship identifier |
url | string | Canonical ship detail URL |
name | string | Ship name |
cruiseLine | string | Operator |
shipType | string | Vessel classification β ocean, river, expedition, or luxury |
passengerCapacity | number | Maximum passenger count |
crewCapacity | number | Crew count |
yearBuilt | number | Build year |
lengthMeters | number | Hull length in meters |
beamMeters | number | Hull beam (width) in meters |
grossTonnage | number | Gross registered tonnage |
speedKnots | number | Service speed in knots |
decks | number | Deck count |
cabins | number | Cabin count |
flagState | string | Country of registry |
builder | string | Shipyard that built the vessel |
shipClass | string | Vessel class (e.g. "RCI Oasis", "CCL EXCEL (XL)") |
owner | string | Registered owner of the vessel (may be null) |
operator | string | Commercial operator of the vessel (may be null) |
sisterShips | string[] | Vessels in the same class |
formerNames | string[] | Previous names if the ship was renamed |
futureItineraries | object[] | Published forward sailings on this vessel β up to 100+ entries on active liners |
scrapedAt | string | ISO 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"}
| Field | Type | Description |
|---|---|---|
recordType | string | Always "port" |
id | string | CruiseMapper internal port identifier |
url | string | Canonical port detail URL |
name | string | Port name |
country | string | Country |
region | string | Cruise region (e.g. "Bahamas - Caribbean - Bermuda") |
regionId | number | CruiseMapper internal region identifier |
latitude | number | Latitude in decimal degrees |
longitude | number | Longitude in decimal degrees |
subtitle | string | Short alternative title (e.g. "PortMiami, Florida") |
summary | string | Editorial description of the port |
terminals | object[] | Cruise terminals (empty when not listed on the source page) |
upcomingArrivals | object[] | Scheduled ship calls when includeUpcomingArrivals: true β capped at 100 entries across the next 3 months. Each entry: { date, shipName, shipUrl, shipId, cruiseLine, arrivalTime, departureTime } |
scrapedAt | string | ISO 8601 extraction timestamp |
Tips for Best Results
- Pick the right mode first.
cruisesis the highest-volume mode (15 itineraries per page across the whole catalog). Switch toshipsfor fleet analytics andportsfor 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
includeUpcomingArrivalsoff 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 smallmaxResultsto keep cost predictable. - Use
cruiseLengthto find world cruises. The15+ daystier 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 byrecordType. - Treat
priceFromUsdas 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
shipNameorportNamefilter 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.
| Results | Estimated 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
Legal & Ethical Use
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.