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.
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_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_id | title | destination | duration_days | ship_name | embark_port |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Pricing & Cabins objects from hollandamerica.com. All fields typed and schema-versioned.
"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_id | departure_date | ship_name | interior_price | ocean_view_price | balcony_price |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Ship Data objects from hollandamerica.com. All fields typed and schema-versioned.
"ship_name": "Rotterdam", "ship_class": "Pinnacle Class", "guest_capacity": 2668, "crew_capacity": 1053, "tonnage": 99902, "year_built": 2021, "deck_count": 13
| # | ship_id | ship_name | ship_class | guest_capacity | crew_capacity | tonnage |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Ports & Routing objects from hollandamerica.com. All fields typed and schema-versioned.
"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_id | day_number | date | port_name | country | arrival_time |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Shore Excursions objects from hollandamerica.com. All fields typed and schema-versioned.
"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_id | title | port_name | duration_hours | activity_level | price_tier |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Our Holland America scraper navigates complex booking flows, dynamic pricing grids, and heavy SPA architecture to extract structured cruise data at scale.
Capture titles, destinations, port sequences, ship assignments, and available departure dates across the entire global catalogue.
Extract base rates for interior, ocean view, balcony, and suite categories, plus tax and port fee breakdowns.
Map exact arrival and departure times, tender requirements, and scenic cruising designations per sailing day.
Track Have It All package pricing, onboard credit offers, deposit requirements, and seasonal sale discounts.
Extract excursion titles, durations, activity levels, pricing, and accessibility notes for every port of call.
Compile technical specs, guest capacity, dining venues, and deck plan structures for every ship in the fleet.
Extract pricing in USD, CAD, EUR, GBP, or AUD based on regional site configurations and proxy origin.
Monitor sold-out cabin categories and waitlist statuses to gauge demand across specific sailing dates.
Run continuous pipelines at daily or weekly cadences to track price fluctuations leading up to departure.
Brief in. Clean data out.
Provide target destinations, date ranges, or specific ship filters. We design the extraction schema together.
We configure Playwright crawlers, handle session tokens for pricing APIs, and manage proxy rotation.
Schema validation, null-rate checks, and price-outlier detection before full launch.
JSON / CSV / Parquet pushed to your S3 bucket, BigQuery dataset, or Snowflake stage on agreed cadence.
Cruise line websites rely heavily on session state and dynamic pricing APIs. Here is how we maintain reliable data 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.
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.
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.
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.
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.
Online travel agencies ingest direct pricing and availability data to augment their own cruise search engines.
Rival cruise lines monitor Holland America pricing strategies, promotional windows, and itinerary deployments.
Market analysts track cabin availability and price curves to forecast leisure travel demand and consumer spending.
Port authorities and local tour operators track ship arrival schedules and passenger volumes to optimise logistics.
Travel agents use historical price tracking to advise clients on optimal booking windows for specific itineraries.
Supply chain providers track fleet movements and port sequences to coordinate provisioning and fuel logistics.
"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.
Everything supported by our hollandamerica.com scraper — rendered SPA elements, auth walls, rate-limit evasion and beyond.
Open-source tooling on proven cloud infra — no vendor lock-in, full observability.
Scrapy handles crawl orchestration and deduplication. Playwright manages the complex JavaScript execution and session state required for cruise booking engines.
We route requests through residential ISP proxies to avoid travel industry bot detection, ensuring accurate regional pricing and high success rates.
Pipelines run on AWS Lambda and ECS. Airflow handles scheduling for daily price checks, with all state stored in managed Postgres.
Data delivered to where your team already works — no new tooling required.
About hollandamerica.com scraping, legality, and pipeline operations.
Ask us directly →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.
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.
Yes. By routing requests through region-specific proxies and setting appropriate locale headers, we can extract pricing in USD, CAD, EUR, GBP, or AUD.
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.
Yes. We isolate the base cruise fare from mandatory taxes, fees, and port expenses, providing a clean breakdown of the total cost.
Yes. We capture the specific upgrade costs for promotional packages, including beverage packages, specialty dining, and shore excursion credits.
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.
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.