SYSTEM all green source cruisedirect.com queue 12,844 sailings p99 latency 214ms dataflirt.com · scraper/cruisedirect-com
RUN · 37 active pipelines · cruisedirect.com live

Cruise pricing data,
at warehouse scale.

We extract cruise itineraries, real-time cabin pricing, deck plans, and port schedules from CruiseDirect. Delivered as clean JSON, CSV, or Parquet to S3, BigQuery, or Snowflake on your cadence.

Sailings extracted
48.2K /day
Price updates
142K /24h
Itineraries
8.4K /run
Active pipelines
37
Uptime
99.98%
Data Dictionary

Every field we extract from cruisedirect.com

Structured, schema-consistent data across all major object types — delivered clean, typed, and ready to query.

Complete list of extractable fields for Itineraries objects from cruisedirect.com. All fields typed and schema-versioned.

sailing_idcruise_lineship_namedeparture_portarrival_portduration_daysdeparture_datereturn_datedestinationsitinerary_url
itineraries
● 200 OK
"sailing_id": "CD-98421",
"cruise_line": "Royal Caribbean International",
"ship_name": "Symphony of the Seas",
"departure_port": "Miami, Florida",
"duration_days": 7,
"departure_date": "2026-11-14",
"destinations": "['Miami', 'Nassau', 'Perfect Day at CocoCay', 'Miami']"
# sailing_idcruise_lineship_namedeparture_portarrival_portduration_days
1
2
3

Complete list of extractable fields for Cabin Pricing objects from cruisedirect.com. All fields typed and schema-versioned.

sailing_idcabin_typecabin_categoryprice_usdlist_pricediscount_pctavailable_roomsdeck_locationtax_feesprice_timestamp
cabin_pricing
● 200 OK
"sailing_id": "CD-98421",
"cabin_type": "Balcony",
"cabin_category": "Ocean View Balcony",
"price_usd": 1249.0,
"list_price": 1599.0,
"discount_pct": 21,
"tax_fees": 184.5,
"price_timestamp": "2026-05-12T10:30:00Z"
# sailing_idcabin_typecabin_categoryprice_usdlist_pricediscount_pct
1
2
3

Complete list of extractable fields for Port Schedules objects from cruisedirect.com. All fields typed and schema-versioned.

sailing_idport_namecountryarrival_timedeparture_timeday_numberis_tenderport_description
port_schedules
● 200 OK
"sailing_id": "CD-98421",
"port_name": "Nassau",
"country": "Bahamas",
"arrival_time": "08:00 AM",
"departure_time": "05:00 PM",
"day_number": 2,
"is_tender": false
# sailing_idport_namecountryarrival_timedeparture_timeday_number
1
2
3

Complete list of extractable fields for Ship Details objects from cruisedirect.com. All fields typed and schema-versioned.

ship_namecruise_linebuild_yearpassenger_capacitycrew_sizegross_tonnagelength_ftdeck_countonboard_activitiesdining_options
ship_details
● 200 OK
"ship_name": "Symphony of the Seas",
"cruise_line": "Royal Caribbean International",
"build_year": 2018,
"passenger_capacity": 6680,
"crew_size": 2200,
"gross_tonnage": 228081,
"deck_count": 18
# ship_namecruise_linebuild_yearpassenger_capacitycrew_sizegross_tonnage
1
2
3

Complete list of extractable fields for Search Results objects from cruisedirect.com. All fields typed and schema-versioned.

keyworddestinationdeparture_monthpositionsailing_idtitlelowest_pricecruise_lineship_namescraped_at
search_results
● 200 OK
"destination": "Caribbean",
"departure_month": "2026-11",
"position": 1,
"sailing_id": "CD-98421",
"title": "7 Night Eastern Caribbean Cruise",
"lowest_price": 899.0,
"cruise_line": "Royal Caribbean International",
"scraped_at": "2026-05-12T10:31:15Z"
# keyworddestinationdeparture_monthpositionsailing_idtitle
1
2
3

Capabilities

Extract every itinerary and cabin price

Our CruiseDirect scraper navigates dynamic search grids, date selectors, and cabin availability widgets to extract complete sailing catalogues.

Full Itinerary Extraction

Capture sailing dates, departure ports, cruise lines, ship names, and day-by-day port schedules for every listed cruise.

Dynamic Cabin Pricing

Extract real-time pricing for interior, oceanview, balcony, and suite categories, including taxes and port fees.

Port & Excursion Data

Map arrival and departure times for each port of call, alongside tender requirements and destination metadata.

Ship Specifications

Extract passenger capacity, crew size, build year, tonnage, and onboard amenity lists for specific vessels.

Search Grid Scraping

Paginate through complex search results filtering by destination, departure month, length of cruise, and cruise line.

Date-Based Price Tracking

Monitor how cabin prices fluctuate as the departure date approaches, capturing historical pricing curves.

Promotions & Bonus Offers

Extract onboard credit offers, free drink packages, and deposit reductions tied to specific sailings.

Scheduled Diffs

Run pipelines daily or hourly to capture only changed prices and new itineraries, reducing downstream processing.

Multi-Region Parsing

Handle currency conversions and regional availability variations across the CruiseDirect platform.

// engagement pipeline

From search parameters to warehouse record

Brief in. Clean data out.

Define Scope
d 0

Provide target destinations, cruise lines, or departure windows. We design the extraction schema together.

Pipeline Build
d 2–4

We configure Scrapy / Playwright crawlers, proxy rotation, session management, and DOM parsing for cruisedirect.com.

Validation & QA
d 4–6

Schema validation, null-rate checks, price-outlier detection, and sample itineraries before full launch.

Delivery
ongoing

JSON / CSV / Parquet pushed to your S3 bucket, BigQuery dataset, or Snowflake stage on agreed cadence.

Under the hood

How our CruiseDirect pipeline handles the hard parts

Travel aggregators rely on dynamic JavaScript rendering and anti-scraping layers. Here is how we maintain reliable extraction.

pipeline-monitor · cruisedirect.com · live ● active
// fingerprinting
Identity rotation
TLS fingerprintrandomised
User-agentrotated
IP poolresidential
Challenges blocked0
// pagination
Page coverage
48,291 pages queued running
// observability
Pipeline health
99.9%
uptime
142ms
p99 lat
0.3%
null rate
2
alerts
JavaScript rendering
Full Playwright execution for dynamic pricing

CruiseDirect loads cabin availability and pricing via asynchronous JavaScript requests. We run full Playwright browser sessions to trigger date selections and hydrate pricing widgets, capturing data that basic HTTP clients miss.

Anti-bot layer
Residential proxy rotation + fingerprint spoofing

Travel sites aggressively block data centre IPs to prevent competitor scraping. Our crawlers use residential ISP proxies with realistic browser fingerprints and full cookie session management.

Schema stability
Resilient selectors for complex search grids

Travel booking DOMs change frequently. Our selector strategy uses multiple fallback chains per field, combining CSS selectors, XPath, and JSON-LD extraction to ensure schema stability.

Change detection
Only re-scrape modified prices

For extensive itinerary catalogues, we maintain a hash index of last-seen prices. Subsequent runs only push diffs, reducing compute cost and downstream processing load.

Monitoring & alerting
24/7 pipeline health tracking

Every run emits structured logs to our observability stack. We alert on null-rate spikes, missing itineraries, and schema drift, responding before you notice.

Applications

Who uses CruiseDirect data

Teams across industries use cruisedirect.com data to build competitive products and smarter operations.

01
Price Intelligence & OTAs

Online travel agencies monitor cabin pricing across competitors to adjust their own markups and promotional offers.

02
Market Research

Analysts track itinerary deployments and ship repositioning to understand cruise line capacity and regional focus.

03
Travel Aggregators

Meta-search engines ingest structured sailing data to populate their own comparison grids and booking funnels.

04
Demand Forecasting

Revenue managers correlate price drops and cabin sell-outs with departure proximity to build predictive pricing models.

05
Competitor Benchmarking

Cruise lines track third-party distributor pricing to ensure parity and monitor unauthorized discounting.

06
AI Training Data

Machine learning teams use structured itinerary and pricing datasets to train travel recommendation algorithms.

Why DataFlirt

"Cruise pricing fluctuates daily based on cabin inventory and departure proximity, making manual tracking impossible without an automated extraction pipeline."

Most teams underestimate the investment required: reliable CruiseDirect scraping requires residential proxies, full JavaScript rendering for dynamic pricing widgets, and daily selector maintenance. DataFlirt absorbs that complexity so your engineers can focus on the analysis.

Technical Spec

CruiseDirect scraper — technical capabilities

Everything supported by our cruisedirect.com scraper — rendered SPA elements, auth walls, rate-limit evasion and beyond.

JavaScript rendering
Full Playwright sessions required for dynamic cabin pricing and availability calendars
Supported
Residential proxy rotation
ISP-grade residential IPs to bypass travel aggregator bot protection
Supported
Search pagination
Automated traversal of destination and date-filtered search results
Supported
Change detection (diffs)
Hash-based diff to emit records only when cabin prices change
Supported
Ship metadata extraction
Capture deck plans, amenity lists, and technical specifications
Supported
Currency normalisation
Standardise pricing data across different regional displays
Supported
Webhook delivery
HTTP POST per record for real-time price drop alerts
Supported
CAPTCHA bypass
Automated solver integration for rate-limited search endpoints
Supported
Booked passenger manifests
Personal identifiable information of current bookings is strictly gated
Partial
Member-only loyalty rates
Requires authenticated sessions tied to specific past-guest accounts
Partial
Payment gateway tokens
Checkout transaction data and session tokens are not extracted
Partial
Infrastructure

Infrastructure powering the pipeline

Open-source tooling on proven cloud infra — no vendor lock-in, full observability.

ScrapyPlaywrightPython 3.12RedisPostgreSQLApache AirflowAWS LambdaS3CloudWatch2CaptchaCapSolverResidential ProxiesDockerKubernetesGrafanaPrometheus
Scrapy + Playwright Stack

Scrapy handles crawl orchestration and retry logic. Playwright executes JavaScript to load dynamic pricing widgets and cabin availability grids.

Residential Proxy Infrastructure

We maintain pools of residential ISP proxies to avoid data centre IP bans common on travel booking platforms. Rotation happens per-request.

Cloud-Native Orchestration

Pipelines run on AWS Lambda and ECS. Airflow handles scheduling for daily price checks, dependency management, and SLA alerting.

Output & Delivery

Your data, your destination

Data delivered to where your team already works — no new tooling required.

JSON
Newline-delimited or nested — schema versioned per run
CSV
Flat file with typed columns — Excel/Sheets compatible
XLS
Legacy spreadsheet format for business analyst teams
Parquet
Columnar format for BigQuery, Snowflake, Athena
AWS S3
Direct bucket delivery — compatible with any data lake
Webhook
HTTP POST per record for real-time downstream processing
API
REST endpoints to query your extracted dataset
BigQuery
Streamed directly into your dataset with schema auto-detect
Snowflake
Stage + COPY INTO workflow — incremental or full-replace
S3
Direct bucket delivery — compatible with any data lake
// faq

Common questions.

About cruisedirect.com scraping, legality, and pipeline operations.

Ask us directly →
Is scraping CruiseDirect legal?

Scraping publicly available itinerary and pricing information is generally permissible under applicable law. DataFlirt targets only public, non-authenticated data. We do not extract personal data, circumvent authentication walls, or scrape member-only loyalty rates. Clients should review target ToS and consult legal counsel for specific use cases.

How do you handle dynamic pricing widgets?

CruiseDirect relies heavily on JavaScript to load cabin availability and live pricing. We use full Playwright browser sessions to execute the necessary scripts, trigger date selections, and parse the resulting DOM updates.

Can you track price changes over time?

Yes. Every pipeline run produces timestamped snapshots. We maintain a time-series table per sailing ID, tracking price fluctuations for interior, oceanview, balcony, and suite categories as the departure date approaches.

How fresh is the data?

For targeted itinerary monitoring, pipelines can run at hourly intervals. Full catalogue refreshes across all destinations typically run on a daily cadence, completing within a 4-8 hour window.

Do you extract port of call schedules?

Yes. We extract the complete day-by-day itinerary, including arrival times, departure times, and tender requirements for every port on the route.

What is the minimum viable engagement?

Our smallest packages start at a defined set of destinations or cruise lines with daily delivery. For full-site extraction or custom schema requirements, we price based on volume and delivery frequency.

Can I request a sample dataset?

Absolutely. We provide a sample run of up to 200 sailings as part of the pre-engagement scoping process, allowing you to validate schema fit and data quality before signing a contract.

$ dataflirt scope --new-project --source=cruisedirect.com ready

Tell us what
to extract.
We do the rest.

20-minute scoping call. Pilot dataset within the week. Production within two. Whether you need a one-off itinerary dump or a continuous price-monitoring feed across thousands of sailings — we scope, build, and operate the pipeline. Tell us what you need.

hello@dataflirt.com · Bengaluru · IST · typical reply < 4h
Related Scrapers

More in tourism and travel guides

Services

Data Extraction for Every Industry

View All Services →