REST cruise API

The cruise API for sailings, itineraries & prices

One REST endpoint for clean, normalized cruise inventory from 60+ cruise lines. Sailings, ports, itineraries, lead prices and ship specs, all on the same schema, refreshed up to daily.

60+ cruise lines JSON over REST Stable schema Refreshed up to daily
cruise-api 200 OK
# Fetch sailings for a line
GET /cruises?cruise_line=MSC%20Cruises&limit=1
x-api-key: cf_live_…

{
  "items": [{
    "source": "cruisemapper",
    "source_id": "msc-world-europa-2026-09-12",
    "cruise_line": "MSC Cruises",
    "ship_name": "MSC World Europa",
    "title": "7-Night Western Mediterranean",
    "departure_date": "2026-09-12",
    "price_amount": 799,
    "price_currency": "USD"
  }],
  "total": 1843, "limit": 1, "offset": 0
}
Use cases

What teams build on the cruise API

One integration powers search, pricing, alerts and analytics across every major cruise line.

Cruise search & booking

Power an OTA or agency site with live sailings, itineraries and lead prices your customers can filter and book against.

Price & availability alerts

Poll the API on a schedule and trigger alerts when a lead price drops or a new sailing is added.

Market & pricing analytics

Feed normalized records into your warehouse to track itineraries, capacity and competitor pricing over time.

Endpoints

A REST API built for cruise data

Predictable resources, limit/offset pagination and the same flat record on every line. Authenticate with your API key and start pulling.

GET /cruises List & filter sailings
GET /cruises/{source}/{source_id} One sailing record
GET /cruises.csv CSV export
GET /changes Recent price changes
  • Filter by cruise_line, ship_name, region, departure_from and price range.
  • limit/offset pagination for bulk pulls, with a stable key (source + source_id) across refreshes.
  • Full schema and live responses in the API playground.
quickstart.sh
# 1. List Caribbean sailings under $900
curl "https://api.cruisefeed.io/cruises\
?region=Caribbean&max_price=900&limit=50" \
  -H "x-api-key: $CRUISEFEED_API_KEY"

# 2. Page through every result (limit/offset)
curl "https://api.cruisefeed.io/cruises\
?region=Caribbean&limit=50&offset=50" \
  -H "x-api-key: $CRUISEFEED_API_KEY"

# 3. Fetch one sailing by its key
curl "https://api.cruisefeed.io/cruises/cruisemapper/msc-world-europa-2026-09-12" \
  -H "x-api-key: $CRUISEFEED_API_KEY"

Endpoints shown for illustration. Get your key and the live reference in the playground.

Want the exact response for your lines? Get a free sample.

Why this API

One schema instead of sixty scrapers

Every cruise line publishes inventory differently. We do the scraping, deduping and daily updates, then hand you one consistent API.

Identical fields everywhere

The same names, types and units on all 60+ lines, so you write one integration, not one per line.

De-duplicated & stable

One record per sailing with consistent IDs across refreshes, so diffs and joins stay clean.

Maintained for you

When a cruise site changes, we fix the pipeline. Your API responses keep working unchanged.

Cruise API FAQ

Questions about the cruise API

What is the CruiseFeed cruise API?
A REST API that returns clean, normalized cruise inventory — sailings, itineraries, ports, lead prices and ship specs — across 60+ cruise lines, using one stable schema and JSON responses.
Which cruise lines does the API cover?
60+ lines including MSC, Norwegian, Disney, Carnival, Royal Caribbean and Princess, plus 54 more. Every line returns the same field names, types and units.
How often is the cruise data refreshed?
Up to daily. You can pull the latest records from the REST API on demand, or receive scheduled exports on a managed plan.
What format does the cruise API return?
JSON over REST, one flat record per sailing with consistent IDs. The same data is also available as CSV or scheduled cruise data exports to S3, Snowflake or Postgres.
Can I try the cruise API before paying?
Yes. Explore live responses in the API playground and request a free sample of your chosen cruise lines and regions before you commit.

Start building on the cruise API

Connect once and build on data that's already clean and deduped. Try live responses in the playground, or get a free sample of your lines and region first.