Cruise inventory data, done for you

Every cruise line's inventory.
One REST API.

75,000+ unique sailings from 61 cruise lines — deduped, normalized and updated daily. Skip the scraper team and ship in an afternoon.

61 cruise lines Refreshed up to daily Stable schema JSON & CSV

Covering the major cruise lines

MSC Norwegian Disney Carnival Royal Caribbean Princess + 69 more MSC Norwegian Disney Carnival Royal Caribbean Princess + 69 more
The in-house tax

Building cruise inventory in-house gets expensive

Collecting and maintaining cruise data takes far more engineering time than most teams expect.

Constant maintenance

Cruise sites change often. Keeping your data pipelines working becomes a permanent engineering task.

Inconsistent data

Every line uses a different format, making pricing, itineraries and cabin types hard to standardize.

Data quality issues

Missing prices, duplicate sailings and stale availability erode customer trust and create support load.

The solution

Cruise data your app can actually use

One schema across every cruise line, clean and deduped. Plug it in and ship. No pipeline to build or maintain.

Normalized data

Every cruise line follows the same predictable structure, so you write one integration, not seventy-five.

cruise_line ship_name price_amount ports[]

Stable schema

Your apps keep working as data sources change. Schema updates are versioned and announced.

Aerial view of a cruise ship in deep blue water

The whole cruise market,
in one feed.

No duplicate sailings

Every itinerary appears once, with consistent identifiers across lines and refreshes.

Daily updates

Pricing stays in sync automatically, refreshed up to daily on Managed.

Reliable pricing

Accurate lead-in fares help your customers trust what they see and book with confidence.

Ready to integrate

Connect once and focus on building your product, not on running and repairing pipelines.

How it works

Live in your stack this week

No integration project. Tell us what you need and the data starts flowing.

01

Tell us your scope

Pick the cruise lines, regions and fields you care about. We'll send a free sample so you can see the exact schema.

02

Choose format & cadence

CSV, JSON or API, refreshed monthly, weekly or daily. We match it to your pipeline.

03

We keep it flowing

The feed lands on schedule and we maintain it as the cruise sites change. You never touch a scraper.

Want to see the real schema first? Grab a free sample.

What's included

One predictable record per sailing

The same shape across every line, built to drop straight into your database or search index. Dates, ports, region and itinerary are on virtually every sailing; pricing and cabin detail follow what each line actually publishes — field-by-field coverage.

cruise_line ship_name departure_date return_date itinerary nights ship.cabins price_amount ship.capacity price_currency scraped_at
  • The same names, types and units on every one of the 61 lines.
  • Flat, normalized records that drop straight into your database.
  • One record per sailing, via bulk export or paginated API.
  • De-duplicated across sources, with consistent IDs.
See full data coverage — 61 lines, 750+ ships, 650+ ports
Endpoints
GET /v1/cruises GET /v1/cruises.csv GET /v1/cruises/{id} GET /v1/changes GET /v1/ships
GET /v1/cruises/{id} — sailing.json
{
  "id": "cru_21996545f7d31e74",
  "cruise_line": "MSC Cruises",
  "ship_name": "MSC World Europa",
  "title": "7-Night Western Mediterranean",
  "departure_date": "2026-09-12",
  "return_date": "2026-09-19",
  "nights": 7,
  "embark_port": "Barcelona",
  "region": "Western Mediterranean",
  "itinerary": [{ "day": 1, "port": "Barcelona", "country": "Spain" }, { "day": 2, "port": "Marseille", "country": "France" }],
  "price_amount": 799,
  "price_currency": "USD",
  "price_per_night": 114.14,
  "fares": [{ "cabin_class": "Interior", "price_amount": 799, "available": true }, { "cabin_class": "Balcony", "price_amount": 1149, "available": true }],
  "scraped_at": "2026-08-07T04:12:00Z"
}
Integrations

Works with your existing stack

Pull from the REST API or receive files. Most customers integrate within hours.

REST API
JSON
CSV
Amazon S3
Snowflake
PostgreSQL

Managed plans push the feed straight to your S3 bucket, Snowflake or Postgres warehouse on a schedule.

Build vs. buy

Build cruise products, not data pipelines

Build it yourself

  • Build and maintain data pipelines
  • Multiple data formats per line
  • Constant monitoring
  • Duplicate and inconsistent data
  • High engineering cost
Recommended

CruiseFeed

  • Connect once
  • One standardized schema
  • Automated daily updates
  • Clean, normalized inventory
  • Predictable monthly pricing

Skip the pipeline. Start pulling clean cruise data.

New · For AI agents

Plug cruise data into your AI agent

CruiseFeed now speaks MCP — the Model Context Protocol. Point Claude, or any MCP-capable app, at one URL and your agent can search sailings, pull itineraries and fares, track price drops and read ship specs. No SDK, no glue code.

9 tools, one endpoint
search_cruises get_cruise get_cruise_price_history list_price_changes search_ships get_ship list_cruise_lines list_ports get_stats
  • Uses your existing CruiseFeed key — same data, same quota.
  • Every tool maps to a real API endpoint. Nothing invented, nothing stale.
  • Hosted and maintained by us. You just add the URL.
claude · mcp.json
{
  "mcpServers": {
    "cruisefeed": {
      "url": "https://mcp.cruisefeed.io/mcp",
      "headers": {
        "X-CruiseFeed-Key": "cf_live_…"
      }
    }
  }
}

Add it once, then just ask: "Find 7-night Caribbean cruises under $800 from Miami this winter."

Pricing

Pay per result, or one flat price.

Start free. Then top up and pay $2.50 per 1,000 results with no commitment, or take a monthly plan — either way, a fraction of one engineer's day rate for the whole cruise market.

Getting API access takes three steps

1

Create your free account

Sign up in seconds — no credit card required.

2

Get your API key instantly

It's in your dashboard the moment you sign in — start calling the API right away.

3

Upgrade when you're ready

Need weekly or daily refresh, no request cap, or delivery to your warehouse? Switch plans in a click.

Free forever

Free

A live API key to build and test with.

$0/mo
Usage limit
2,000 results / month
Start for free

No card required

  • Resets on the 1st, no card needed
  • Live data — all lines & ships
  • Full JSON REST API
  • Upgrade any time
No subscription

Pay as you go

Top up, pull what you need, stop any time.

$2.50/1k results
Usage limit
Unlimited — you pay per result
Add credit

From $10 · credit never expires

  • Live data — no freshness delay
  • No record cap, no monthly fee
  • Full JSON + CSV REST API
  • You're charged for results, not calls
Starter

Snapshot

For agencies that need a periodic full pull.

$99/mo
Usage limit
40,000 results / month
Start with Snapshot

Month-to-month · cancel anytime

  • Monthly refresh, frozen as of the 1st
  • CSV + JSON delivery
  • All lines, ships & itineraries
  • Email support
Most popular

Sync

Live-ish data for product & search teams.

$299/mo
Usage limit
Unlimited results
Get Sync

Month-to-month · cancel anytime

  • Everything in Snapshot
  • Weekly refresh
  • Full inventory, no record cap
  • REST API access
  • Webhook on update
  • Priority support
Scale

Managed Feed

Daily, bespoke, SLA-backed — for OTAs & aggregators.

$499/mo
Usage limit
Unlimited results
Get Managed Feed

Month-to-month · cancel anytime

  • Everything in Sync
  • Daily refresh
  • Custom fields
  • Delivery to your S3 / warehouse
  • SLA + dedicated support

A result is one cruise record returned to you — so a page of 50 sailings costs 50. Requests are free and unlimited on every plan: a query that matches nothing costs nothing. Usage is counted across the whole API (JSON and CSV alike) and every response tells you what you have left.

Data freshness guarantee

Your feed refreshes on the cadence you pay for. If it ever falls behind, we make it right.

Schema stability guarantee

The schema stays stable. Every change is versioned and announced in advance, so your integration never breaks by surprise.

See it before you pay

Get a free sample export of your target lines and region first. Month-to-month, cancel anytime — no contracts or setup fees.

Get a free sample
Custom & enterprise

Need something custom?

Bigger volumes, extra fields, a different delivery target, or a source we don't list yet — tell us what you're building and we'll design a feed around it.

  • Custom fields, regions or cruise lines
  • Delivery to your S3, warehouse or webhook
  • Volume & multi-seat pricing
  • SLAs and dedicated support

Prefer email? [email protected]

+ Add project details (optional)

We'll reply within one business day. No spam, ever.

FAQ

Questions, answered

Which cruise lines are included?

61 lines, including MSC, Royal Caribbean, Carnival, Norwegian, Princess and Disney. Need a specific line? Ask and we'll confirm coverage.

How often is the data updated?

Snapshot is monthly (a frozen as-of-the-1st view), Sync is weekly and Managed Feed is daily. Pay as you go and the free key are both live — no cadence delay at all. Every response is stamped with the date it's current as of. Custom cadences are available on Managed.

How does pay as you go work?

You top up a balance — from $10 — and every cruise record the API returns costs $2.50 per 1,000. So $25 is 10,000 records. You're charged for results, not requests: a call that matches nothing costs nothing, and paging through the same 500 rows twice costs twice. There's no monthly fee, no freshness delay and no record cap, every response tells you the balance left, and credit never expires. When it runs out your key keeps working — requests return a 429 saying so until you top up.

How stable is the schema?

Field names and types stay consistent. Any changes are versioned and announced ahead of time, so your integration won't break silently.

How does the API work?

Every plan includes the REST API, starting with the free key. Authenticate with a key and pull sailings as JSON, filtered by line, region or date, with pagination. Plans differ on refresh cadence and how many results you can pull, not on access.

What counts against my usage limit?

Results — one cruise record returned to you. A page of 50 sailings costs 50; a CSV export of 10,000 rows costs 10,000; a search that matches nothing costs nothing. Requests are unlimited on every plan, so you're never penalised for filtering carefully or for polling. Free is 2,000 results a month and Snapshot 40,000, both resetting on the 1st (UTC); Sync and Managed are unlimited; pay as you go simply bills each result at $2.50 per 1,000. Reference lookups — cruise lines, ships and ports — don't count at all. Usage is cumulative across the whole API, so switching filters or formats doesn't reset it, and every response carries X-Results-Remaining so you can watch it fall.

What happens when the free allowance runs out?

Nothing is revoked. Your key stays valid and requests return a 429 that says what happened and what's left. The allowance comes back on the 1st (UTC); if you'd rather not wait, adding pay-as-you-go credit resumes results immediately from $10. The 2,000 free results count records returned, cumulatively across every request and endpoint — changing a filter or switching JSON to CSV doesn't reset them.

Is historical data available?

Yes, and it is not a paid add-on. Departures run from 2025 to 2030, and every plan can read a sailing's price history and the daily change feed. Managed adds delivery into your own warehouse rather than extra history.

What support is included?

Email support on Snapshot, priority support on Sync, and dedicated support with an SLA on Managed.

Get reliable cruise data this week

Connect once and build on data that's already clean and deduped. Sign up free and get a live API key in seconds — see the real data before you pay.