Norwegian (NCL) Scraper - Complete Cruise Data Extractor avatar

Norwegian (NCL) Scraper - Complete Cruise Data Extractor

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Norwegian (NCL) Scraper - Complete Cruise Data Extractor

Norwegian (NCL) Scraper - Complete Cruise Data Extractor

Norwegian Cruise Line (NCL) data extractor - 6 markets, 20 destinations, with optional detail enrichment (images, ports). Per-cabin pricing, session rotation, residential proxy handling. Ideal for travel APIs and price comparison platforms.

Pricing

from $2.00 / 1,000 results

Rating

4.0

(1)

Developer

Jeremy G

Jeremy G

Maintained by Community

Actor stats

2

Bookmarked

33

Total users

4

Monthly active users

0.43 hours

Issues response

6 days ago

Last modified

Categories

Share

Norwegian Cruise Line (NCL) Scraper — Complete Cruise Data Extractor

Extract cruise listings, itineraries, and cabin-level pricing from Norwegian Cruise Line across 10 international markets. Built for travel agencies, price comparison sites, affiliate marketers, and analysts.

Why Choose This Scraper?

  • ✅ Extract from 10 NCL markets (US, UK, Canada, Australia, Italy, Germany, France, Spain, Netherlands, Brazil) with local-currency pricing
  • ✅ Complete cruise data with cabin-level pricing across every tier (Interior, Ocean View, Balcony, Mini-Suite, Suite, The Haven)
  • ✅ Filter by 20 destination regions (Caribbean, Alaska, Mediterranean, Northern Europe, Hawaii, and more)
  • Multiple fare tiers per cabin captured (standard vs. promotional) without overwriting
  • ✅ Optional detail enrichment for richer ports, imagery, and direct source URLs per itinerary

Use Cases

  • Travel agencies & OTAs — track NCL pricing against competitors daily
  • Affiliate/comparison sites — populate NCL inventory with deep-links
  • Price analysts — monitor NCL fare curves for forecasting
  • Internal benchmarking — cruise lines comparing against NCL positioning

Supported Markets

RegionMarketOutput Currency
en_USUnited StatesUSD
en_GBUnited KingdomGBP
en_CACanadaCAD
en_AUAustraliaAUD
it_ITItalyEUR
de_DEGermanyEUR
fr_FRFranceEUR
es_ESSpainEUR
nl_NLNetherlandsEUR
pt_BRBrazilBRL

Prices are returned in the market's local currency. Each run validates the returned currency against the selected region and skips any sailing whose currency does not match.

Input

ParameterTypeDescriptionDefault
region*stringMarket to scrapeit_IT
maxRowsnumberMaximum number of cruises to save (1–5000)100
destinationsstring[]Filter by destination code (multi-select)All
enrichDetailsbooleanFetch detail endpoint per itinerary to enrich images/ports and add source_urlfalse
maxConcurrencynumberMaximum concurrent requests (1–200)10
maxRequestRetriesnumberRetries for failed requests (1–10)3
requestHandlerTimeoutSecsnumberRequest timeout in seconds (10–300)30
useApifyProxybooleanUse Apify RESIDENTIAL proxy (disable only if providing a custom proxyUrl)true
apifyProxyCountryCodestringTwo-letter country code to pin Apify Proxy (e.g. GB, US). Empty = derive from regionAuto
apifyProxyGroupsstringApify Proxy groups, comma-separated (e.g. RESIDENTIAL)
proxyUrlstringCustom proxy URL (use only if useApifyProxy=false). Must be geo-matched to the region country

Proxy required — a geo-matched proxy is needed for every market. Both Apify RESIDENTIAL and per-country datacenter proxies work. Either enable useApifyProxy (the proxy country is derived from the region) or provide a geo-matched proxyUrl.

Destination Codes

CodeDestination
AFRICAAfrica
ALASKAAlaska
ASIAAsia
AUSTRALIAAustralia & New Zealand
BAHAMASBahamas
BERMUDABermuda
CANADA_NEW_ENGLCanada & New England
CARIBBEANCaribbean
EXTRAORDINARY_JOURNEYSExtraordinary Journeys
GREEK_ISLESGreek Isles
HAWAIIHawaii
MEDITERRANEANMediterranean
MEXICAN_RIVIERAMexico
NORTHERN_EUROPENorthern Europe
PACIFIC_COASTALPacific Coastal
PANAMA_CANALPanama Canal
SOUTH_AMERICASouth America
SOUTH_PACIFICSouth Pacific
TRANSATLANTICTransatlantic
WEEKENDWeekend

Lowercase slug forms are also accepted (e.g. alaska, caribbean).

Cabin Codes

CodeCabin Type
INSIDEInterior (Inside stateroom)
OCEANVIEWOcean View / Outside
BALCONYBalcony
MINISUITEMini-Suite
SUITESuite
HAVENThe Haven (ship-within-a-ship suites)

Output

Each record is a single sailing with:

  • Cruise and itinerary identifiers (cruiseId, itineraryId)
  • Ship name, departure and arrival ports, sailing dates, duration (nights)
  • Lowest available per-person price with currency (price.amount, price.currency)
  • Ports of call with day indicators (portsList[].portName, portsList[].dayIndicator)
  • Dynamic per-cabin price fields: price_{CURRENCY}_{CABIN} (e.g. price_EUR_INSIDE, price_EUR_BALCONY)
  • Additional fare tiers per cabin captured with a disambiguated suffix
  • Service charges and port charges (where available)
  • source_url — direct link to the sailing page for deep-linking / affiliate tracking (present only on detail-enriched runs, i.e. when enrichDetails is on)
  • platform and region — for multi-market deduplication

Sample Output

The source_url field below appears only on detail-enriched runs (enrichDetails: true).

{
"cruiseId": "1234567",
"itineraryId": "EU7_ROME_BARCELONA",
"platform": "ncl-it_IT",
"region": "it_IT",
"title": "Norwegian Epic 7 nights",
"shipName": "Norwegian Epic",
"departureDate": "2026-09-12",
"arrivalDate": "2026-09-19",
"duration": "7",
"price": {
"amount": "1299",
"currency": "EUR"
},
"price_EUR_INSIDE": "1299",
"price_EUR_OCEANVIEW": "1499",
"price_EUR_BALCONY": "1799",
"price_EUR_MINISUITE": "2199",
"price_EUR_SUITE": "3299",
"price_EUR_HAVEN": "4899",
"portsList": [
{ "portName": "Rome (Civitavecchia)", "dayIndicator": "Day 1" },
{ "portName": "Naples", "dayIndicator": "Day 2" },
{ "portName": "Barcelona", "dayIndicator": "Day 7" }
],
"source_url": "https://www.ncl.com/it/it/..."
}

Runtime & Cost

  • Typical run: a few minutes for the default 100 rows on a single market
  • Larger sweeps: scale maxRows (up to 5000) and concurrency for a fuller catalog
  • Detail enrichment: enabling enrichDetails adds one request per unique itinerary — richer ports/imagery, but slower
  • Proxy: required on all markets (Apify RESIDENTIAL by default, or a geo-matched custom proxy)

Usage

{
"region": "it_IT",
"maxRows": 500,
"destinations": ["MEDITERRANEAN", "CARIBBEAN"],
"useApifyProxy": true
}

Notes

  • NCL prices are per-person
  • Each run pins the proxy country to the selected region and drops any sailing whose returned currency does not match the market
  • Multiple fare tiers for the same cabin (e.g. standard vs. promotional) are kept side-by-side rather than overwritten
  • For affiliate tracking, append your affiliate parameters to source_url on the consuming side

Looking to build a full cruise pricing dataset? Pair this with:

  • Royal Caribbean Scraper — 6 markets, per-cabin pricing
  • Disney Cruise Line Scraper — 5 markets, destination filtering
  • Celebrity Cruises Scraper — 8 markets, service charges included
  • Carnival Cruises Scraper — 2 markets, high volume
  • MSC / Costa / Princess / Holland America Scrapers — full coverage

Support

Issues or custom requests? Email support@track.cruises.