SYSTEM all green source hollandamerica.com queue 12,941 sailings p99 latency 318ms dataflirt.com · scraper/hollandamerica-com
RUN : 47 active pipelines : hollandamerica.com live

Holland America data,
at warehouse scale.

We extract cruise itineraries, cabin pricing, deck plans, port sequences, and shore excursions from Holland America. Delivered as clean JSON, CSV, or Parquet to S3, BigQuery, or Snowflake on your cadence.

Itineraries extracted
1,842 /day
Price updates
34,912 /24h
Excursion records
8,104 /run
Active pipelines
47
Uptime
99.94%
Data Dictionary

Every field we extract from hollandamerica.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 hollandamerica.com. All fields typed and schema-versioned.

itinerary_idtitledestinationduration_daysship_nameembark_portdisembark_portports_of_calldeparture_datesbase_pricecurrencypromotionsurl
itineraries
● 200 OK
"itinerary_id": "AL4070",
"title": "7-Day Alaskan Inside Passage",
"destination": "Alaska",
"duration_days": 7,
"ship_name": "Eurodam",
"embark_port": "Seattle, Washington",
"base_price": 799.0,
"currency": "USD"
# itinerary_idtitledestinationduration_daysship_nameembark_port
1
2
3

Complete list of extractable fields for Pricing & Cabins objects from hollandamerica.com. All fields typed and schema-versioned.

sailing_iddeparture_dateship_nameinterior_priceocean_view_pricebalcony_pricesuite_pricetaxes_feescurrencyhave_it_all_upgrade_pricedeposit_amountavailability_statusscraped_at
pricing_& cabins
● 200 OK
"sailing_id": "EU421A",
"departure_date": "2025-06-14",
"interior_price": 799.0,
"balcony_price": 1299.0,
"suite_price": 2499.0,
"taxes_fees": 235.0,
"currency": "USD",
"availability_status": "Available"
# sailing_iddeparture_dateship_nameinterior_priceocean_view_pricebalcony_price
1
2
3

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

ship_idship_nameship_classguest_capacitycrew_capacitytonnagelength_feetyear_builtlast_refurbisheddining_venuesentertainment_venuesdeck_countimage_urls
ship_data
● 200 OK
"ship_name": "Rotterdam",
"ship_class": "Pinnacle Class",
"guest_capacity": 2668,
"crew_capacity": 1053,
"tonnage": 99902,
"year_built": 2021,
"deck_count": 13
# ship_idship_nameship_classguest_capacitycrew_capacitytonnage
1
2
3

Complete list of extractable fields for Ports & Routing objects from hollandamerica.com. All fields typed and schema-versioned.

sailing_idday_numberdateport_namecountryarrival_timedeparture_timeis_tenderscenic_cruisingdescriptionexcursion_count
ports_& routing
● 200 OK
"day_number": 3,
"port_name": "Juneau",
"country": "USA",
"arrival_time": "13:00",
"departure_time": "22:00",
"is_tender": false,
"scenic_cruising": false,
"excursion_count": 42
# sailing_idday_numberdateport_namecountryarrival_time
1
2
3

Complete list of extractable fields for Shore Excursions objects from hollandamerica.com. All fields typed and schema-versioned.

excursion_idtitleport_nameduration_hoursactivity_levelprice_tierprice_adultprice_childcurrencyfeaturesaccessibility_notesdescription
shore_excursions
● 200 OK
"excursion_id": "JNU-105",
"title": "Mendenhall Glacier & Whale Quest",
"port_name": "Juneau",
"duration_hours": 5.5,
"activity_level": "Moderate",
"price_adult": 229.95,
"price_child": 179.95,
"currency": "USD"
# excursion_idtitleport_nameduration_hoursactivity_levelprice_tier
1
2
3

Capabilities

Everything you need from Holland America

Our Holland America scraper navigates complex booking flows, dynamic pricing grids, and heavy SPA architecture to extract structured cruise data at scale.

Full Itinerary Extraction

Capture titles, destinations, port sequences, ship assignments, and available departure dates across the entire global catalogue.

Cabin Pricing Tracking

Extract base rates for interior, ocean view, balcony, and suite categories, plus tax and port fee breakdowns.

Port of Call Details

Map exact arrival and departure times, tender requirements, and scenic cruising designations per sailing day.

Promotion & Upgrade Data

Track Have It All package pricing, onboard credit offers, deposit requirements, and seasonal sale discounts.

Shore Excursion Scraping

Extract excursion titles, durations, activity levels, pricing, and accessibility notes for every port of call.

Ship Metadata

Compile technical specs, guest capacity, dining venues, and deck plan structures for every ship in the fleet.

Multi-Currency Support

Extract pricing in USD, CAD, EUR, GBP, or AUD based on regional site configurations and proxy origin.

Availability Signals

Monitor sold-out cabin categories and waitlist statuses to gauge demand across specific sailing dates.

Scheduled Polling

Run continuous pipelines at daily or weekly cadences to track price fluctuations leading up to departure.

// engagement pipeline

From search parameters to warehouse record

Brief in. Clean data out.

Define Scope
d 0

Provide target destinations, date ranges, or specific ship filters. We design the extraction schema together.

Pipeline Build
d 2–4

We configure Playwright crawlers, handle session tokens for pricing APIs, and manage proxy rotation.

Validation & QA
d 4–6

Schema validation, null-rate checks, and price-outlier detection 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 travel pipeline handles the hard parts

Cruise line websites rely heavily on session state and dynamic pricing APIs. Here is how we maintain reliable data flows.

pipeline-monitor · hollandamerica.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
Session state management
Handling complex booking flows

Holland America pricing requires sequential API calls mimicking a user booking flow. We maintain strict cookie jars and session tokens across requests to reach accurate cabin pricing grids without triggering session timeouts.

SPA Hydration
Extracting from React payloads

Much of the itinerary data is delivered via complex JSON payloads hydrating the front-end SPA. We intercept these XHR responses directly, avoiding brittle DOM parsing and ensuring 100% field accuracy.

Anti-bot layer
Residential proxy rotation

Travel sites aggressively rate-limit commercial IP blocks. We route all requests through residential ISP proxies, rotating IPs to avoid blocks while maintaining regional consistency for accurate currency pricing.

Change detection
Tracking price volatility

We maintain a hash index of last-seen prices per sailing and cabin category. Subsequent runs only push diffs, providing a clean changelog of price drops and hikes rather than redundant full exports.

Monitoring
Detecting schema drift

Cruise lines frequently update their booking engines. We alert on null-rate spikes and schema drift in the underlying APIs, repairing selectors before your downstream processes fail.

Applications

Who uses Holland America data

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

01
OTA Aggregation

Online travel agencies ingest direct pricing and availability data to augment their own cruise search engines.

02
Competitive Intelligence

Rival cruise lines monitor Holland America pricing strategies, promotional windows, and itinerary deployments.

03
Travel Analytics

Market analysts track cabin availability and price curves to forecast leisure travel demand and consumer spending.

04
Port Operations

Port authorities and local tour operators track ship arrival schedules and passenger volumes to optimise logistics.

05
Dynamic Pricing Models

Travel agents use historical price tracking to advise clients on optimal booking windows for specific itineraries.

06
Maritime Logistics

Supply chain providers track fleet movements and port sequences to coordinate provisioning and fuel logistics.

Why DataFlirt

"Cruise pricing data is highly volatile and deeply buried in session-based booking flows. Querying it requires purpose-built infrastructure."

Extracting data from Holland America requires navigating multi-step booking funnels, handling strict session tokens, and intercepting complex XHR payloads. DataFlirt manages this entire extraction layer, delivering clean, normalised data so your team can focus on analysis rather than maintaining brittle travel scrapers.

Technical Spec

Holland America scraper technical capabilities

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

XHR interception
Direct extraction from underlying pricing APIs rather than DOM parsing
Supported
Residential proxy rotation
ISP-grade residential IPs to prevent rate limiting and blocklisting
Supported
Multi-region pricing
Extract pricing in local currencies via regional site configurations
Supported
Cabin category breakdown
Separate pricing for interior, ocean view, balcony, and suite
Supported
Tax and fee separation
Isolate base fare from mandatory port expenses and taxes
Supported
Excursion extraction
Full catalogue of shore excursions per port of call
Supported
Change detection (diffs)
Hash-based diff: only emit records with changed prices since last run
Supported
Captain's Circle loyalty pricing
Requires authenticated user sessions with valid loyalty credentials
Partial
Booked guest personal itineraries
Requires booking reference numbers and passenger authentication
Partial
Infrastructure

Infrastructure powering the travel 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 deduplication. Playwright manages the complex JavaScript execution and session state required for cruise booking engines.

Residential Proxy Infrastructure

We route requests through residential ISP proxies to avoid travel industry bot detection, ensuring accurate regional pricing and high success rates.

Cloud-Native Orchestration

Pipelines run on AWS Lambda and ECS. Airflow handles scheduling for daily price checks, with all state stored in managed Postgres.

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
Formatted Excel exports for analyst teams
Parquet
Columnar format for BigQuery, Snowflake, Athena
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 datasets
Postgres
Upsert into your existing schema with conflict resolution
// faq

Common questions.

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

Ask us directly →
Is scraping Holland America legal?

Scraping publicly available pricing and itinerary data is generally permissible. DataFlirt targets only public, non-authenticated search results and booking grids. We do not extract personal passenger data or circumvent authentication walls. Clients should review terms of service and consult legal counsel for specific use cases.

How do you handle the complex booking flow?

We use Playwright to simulate the exact XHR requests and session state required by the Holland America booking engine. This allows us to retrieve accurate cabin availability and pricing grids without triggering session errors.

Can you extract pricing in different currencies?

Yes. By routing requests through region-specific proxies and setting appropriate locale headers, we can extract pricing in USD, CAD, EUR, GBP, or AUD.

How fresh is the pricing data?

Pipelines can be configured to run daily or weekly. For specific high-priority sailings, we can configure sub-hourly polling to track real-time availability changes.

Do you extract tax and port fee breakdowns?

Yes. We isolate the base cruise fare from mandatory taxes, fees, and port expenses, providing a clean breakdown of the total cost.

Can you track Have It All promotions?

Yes. We capture the specific upgrade costs for promotional packages, including beverage packages, specialty dining, and shore excursion credits.

What is the minimum viable engagement?

Our smallest packages start at tracking a defined set of itineraries or ships with weekly delivery. Contact us with your specific data requirements for a scoped quote.

$ dataflirt scope --new-project --source=hollandamerica.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 full catalogue extract of all itineraries or continuous price monitoring for specific sailings, we 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 →