Princess Scraper - Complete Cruise Data Extractor
Pricing
from $1.00 / 1,000 results
Princess Scraper - Complete Cruise Data Extractor
Princess Cruises pricing API - 9 markets (US, UK, Australia, Japan, plus Italy, Germany, Austria, France & Netherlands) each in local currency (USD/GBP/AUD/JPY/EUR). Cabin-level prices AND live availability counts for every category: Interior, Oceanview, Balcony, Mini-Suite, Suite.
Princess Cruises Scraper — Complete Cruise Data Extractor
Extract cruise listings, itineraries, and cabin-level pricing from Princess Cruises across 6 international markets, each in its local currency. Built for travel agencies, price comparison sites, affiliate marketers, and analysts.
Why Choose This Scraper?
- ✅ Extract from 6 Princess Cruises markets (US, UK, Australia, Japan, Italy, Germany) with local-currency pricing
- ✅ Complete cruise data with cabin-level pricing across available priced cabin categories (Interior, Oceanview, Balcony, Mini-Suite, Suite)
- ✅ Per-sailing records — one row per departure date, with departure/arrival ports, dates, and duration
- ✅ Day-by-day itinerary from Princess's own schedule: every port and sea day with its day number
- ✅ Direct source URLs on every sailing — ready for affiliate monetization
- ✅ Availability status and per-cabin availability signals
Updates
- 2026-10-21 — Australia (
en_AU, AUD) is collected daily again; all 6 markets now refresh every day. - 2026-07-24 — New markets added: Italy (
it_IT) and Germany (de_DE), both EUR. - 2026-06-11 — New market added: Japan (
ja_JP, JPY).
Use Cases
- Travel agencies & OTAs — track Princess pricing against competitors daily
- Affiliate/comparison sites — populate Princess inventory with deep-links
- Price analysts — monitor Princess fare curves for forecasting
- Internal benchmarking — cruise lines comparing against Princess positioning
Supported Markets
| Region | Market | Output Currency |
|---|---|---|
en_US | United States | USD |
en_GB | United Kingdom | GBP |
en_AU | Australia | AUD |
ja_JP | Japan | JPY |
it_IT | Italy | EUR |
de_DE | Germany | EUR |
EU pricing is uniform across the Eurozone, so
it_ITandde_DEserve as the EUR representatives.
Input
| Parameter | Type | Description | Default |
|---|---|---|---|
region* | string | Market to scrape (en_US, en_GB, en_AU, ja_JP, it_IT, de_DE) | en_US |
maxRows | number | Maximum cruise results (1–3000) | 500 |
maxRequestRetries | number | Retries for failed requests (1–10) | 5 |
requestHandlerTimeoutSecs | number | Request timeout in seconds (10–300) | 30 |
useApifyProxy | boolean | Use Apify Residential proxy | false |
proxyUrl | string | Custom proxy URL (http://user:pass@host:port) | — |
apifyProxyGroups | string[] | Apify proxy groups | ["RESIDENTIAL"] |
apifyProxyCountryCode | string | Override proxy country (e.g., US, GB) | Auto |
useSessionPool | boolean | Session pool for automatic proxy rotation on errors | true |
Cabin Codes
Princess uses 39+ raw cabin-category codes, which the scraper groups into five standard cabin types. Per-cabin price fields carry the raw category code (e.g., price_USD_IB).
| Cabin Type | Example Codes |
|---|---|
| Interior | IB, IC, ID, IE, IF |
| Oceanview | O3, OC, OV, OW, OZ |
| Balcony | BB, BC, BD, D4, DC (Deluxe Balcony) |
| Mini-Suite | M1, MB, MC, C1 (Club Class Mini-Suite) |
| Suite | S0, S2, S4, S5, S6 |
Output
Each record is a single sailing with:
- Cruise and itinerary identifiers (
cruiseId,itineraryId) - Ship name (
shipName), departure and arrival ports (name + code) - Departure and arrival dates in ISO format (
departureDate,arrivalDate) andduration(nights) - Lowest available per-person
pricewithamountandcurrency - All prices are per person and include taxes, fees and port expenses in every market (US, UK, Australia, Japan, Italy, Germany), so fares are directly comparable across markets
- Every day of the itinerary in order (
portsList[].portName,portsList[].dayIndicator): day 1 is embarkation, sea days are listed asAt Sea, and two stops on the same day share a day number.portsList[].daySourceislinewhen the days come from Princess's own schedule. For the occasional sailing where that schedule isn't available (some voyages crossing the International Date Line), the ports are listed in order with an emptydayIndicatoranddaySourceunknown - Dynamic per-cabin price fields:
price_{CURRENCY}_{CABINCODE}(e.g.,price_USD_IB,price_USD_BB) - Per-cabin availability signals (
availability_*,availableCabins_*) - Availability status (
availabilityStatus) source_url— direct link to the sailing page for deep-linking / affiliate trackingplatform,company,locale— for multi-market deduplication
Sample Output
{"cruiseId": "V612","itineraryId": "MEDGEM7","company": "princess","locale": "en_US","platform": "princess-en_US","title": "7-Day Mediterranean","shipName": "Sun Princess","departureDate": "2026-09-12","arrivalDate": "2026-09-19","duration": "7","price": { "amount": "1099", "currency": "USD" },"price_USD_IB": "1099","price_USD_OV": "1349","price_USD_BB": "1699","price_USD_MB": "2049","price_USD_S4": "3899","portsList": [{ "portName": "Barcelona", "dayIndicator": "1", "daySource": "line" },{ "portName": "Marseille", "dayIndicator": "2", "daySource": "line" },{ "portName": "At Sea", "dayIndicator": "3", "daySource": "line" },{ "portName": "Naples", "dayIndicator": "4", "daySource": "line" },{ "portName": "Rome (Civitavecchia)", "dayIndicator": "5", "daySource": "line" },{ "portName": "Florence/Pisa (Livorno)", "dayIndicator": "6", "daySource": "line" },{ "portName": "Genoa", "dayIndicator": "7", "daySource": "line" },{ "portName": "Barcelona", "dayIndicator": "8", "daySource": "line" }],"availabilityStatus": "Available","currency": "USD","source_url": "https://www.princess.com/itinerary-details/?voyageCode=V612"}
Runtime & Cost
- Typical run: a few minutes for 500 rows
- Larger sweeps: scale with
maxRows(up to 3000) - Memory: default is sufficient for typical runs
- Proxy: optional; set
useApifyProxy: true(Residential) if you hit request errors
Usage
{"region": "en_US","maxRows": 200,"useApifyProxy": true}
Notes
- Princess prices are per-person, double-occupancy
- One record is emitted per sailing (departure date)
- EU markets (
it_IT,de_DE) return uniform Eurozone fares in EUR - For affiliate tracking, append your affiliate parameters to
source_urlon the consuming side
Related Actors
Looking to build a full cruise pricing dataset? Pair this with:
- Royal Caribbean Scraper — 6 markets, per-cabin pricing
- Norwegian (NCL) Scraper — 10 markets, enrichable details
- Celebrity Cruises Scraper — 8 markets, service charges included
- Carnival Cruises Scraper — 2 markets, high volume
- MSC / Costa / Disney / Holland America Scrapers — full coverage
Support
Issues or custom requests? Email support@track.cruises.