⚓ legtolegcruises.com BETA
legtolegcruises.com › For AI and agents

For AI assistants and agents

Planning a cruise yourself? Start here instead. This page is for people connecting an AI assistant to our back-to-back data.

Every back-to-back on this site, as open JSON and as MCP tools. No key, no account, no rate card. Just link back to the page a result names.

◈ Why this exists

Cruise lines cannot search for "two in a row"

Royal Caribbean sells one sailing at a time. Nothing in their search can express "leave Miami, come back, leave again the same day, same cabin", so an assistant asked that question has nowhere to send it. We compute it continuously across 3,623 back-to-backs at 30 home ports, 3,042 of them on one ship the whole way. 234 end in a different port from the one they start in, because a leg is a one-way sailing, and every result says where it ends. That is the gap these endpoints fill.

◈ And the part nobody else publishes

Whether a fare is actually a good one

A price on its own cannot answer "should I book this". $1,092 for fourteen nights is a bargain or a rip-off depending entirely on what it has cost before, and that history is not public anywhere. Royal Caribbean shows today's number; the trackers that keep history keep it behind a login. We snapshot every sailing we track once a day, so get_price_history can tell you the low, the high, the average, and where today sits against them. Currently 46 days of history, recorded since Sep 11, 2026, across 3,758 sailings, including ones that have since departed.

HTTP

Read-only, unauthenticated, rate limited per IP.

  • GET /api/public/ports: home ports with counts, ships, nights and lead-in fares
  • GET /api/public/back-to-backs: the back-to-backs. Filters you can add to the address:
    port
    home port code, such as MIA
    ship
    one ship
    from, to
    the trip leaves (its first cruise) on or after, and on or before, these days; later legs may sail after to
    minNights, maxNights
    total nights across the legs
    sameShip
    true keeps trips on one ship the whole way
    maxPrice
    a fare ceiling per guest (the price for two sharing a cabin). Trips without a published fare for every leg are left out and counted in unpricedExcluded
    guests
    how many are going, 1 to 8. A cabin holds at most 4, so 5 to 8 are priced in two cabins, the bigger first, as the finder prices them: the answer says so in party, every trip carries groupTotal (the whole group) and fromPerGuest (that total divided by the guests), and maxPrice is per guest of the group. The same sentence on /api/public/search (“for 6 people”) is priced the same way
    limit
    how many results to return
    Every leg carries its sailingId, its from and to ports, its ports of call, and a priceSignal; every result carries a stable id and where it ends (endPort, endsElsewhere).
  • GET /api/public/ships: the fleet, with class, capacity, tonnage and how many sailings not yet departed we currently track for each
  • GET /api/public/price-history?sailingId=…: what one sailing has cost each day we have looked, plus the verdict
  • GET /api/public/price-drops: sailings furthest below their own average now
  • GET /api/public/freshness: when each port was last pulled
  • GET /api/public/todays-back-to-back: one two-leg trip a day, picked by a fixed rule on the date (the response states it), not a recommendation; ?follow=hero gives the trip the home page shows at the top
  • GET /llms.txt: what this site is, for crawlers that read it
curl -s "https://legtolegcruises.com/api/public/back-to-backs?port=MIA&sameShip=true&limit=3"

How fresh is any of this

Inventory is pulled from Royal Caribbean on a schedule, not per request, so a fare here can be a day or two old. Every response says so: retrievedAt is when we built the response, dataAsOf is when the oldest inventory behind it was pulled, and dataAgeHours is the gap. Please check it before presenting a fare as current, and tell the reader the age when it matters.

Put the price check on your site

Writing about cruises? Paste this where you want the lowest back-to-back total from a home port. It shows one number, says when prices were checked, links back here, sets no cookies and loads nothing from anyone else. Change miami to any home port address, such as port-canaveral or galveston. Our Logbook is also an Atom feed.

<iframe src="https://legtolegcruises.com/embed/price-check?port=miami" width="360" height="230" style="border:0;max-width:100%" loading="lazy" title="Lowest back-to-back cruise total"></iframe>
<p><a href="https://legtolegcruises.com/">Price check by legtolegcruises.com</a></p>

MCP

The same queries as Model Context Protocol tools, over Streamable HTTP at https://legtolegcruises.com/mcp. CORS is open, so a browser-based client works as well as a desktop one. Add it to your assistant like this:

{
  "mcpServers": {
    "legtolegcruises": {
      "type": "http",
      "url": "https://legtolegcruises.com/mcp"
    }
  }
}

The 10 tools, in plain words

Every tool only reads. None of them books, changes, stores or sends anything, and each one says so to your assistant (readOnlyHint is true on all 10). Under each tool is a question you could ask your assistant that the tool answers.

search_back_to_backs
Finds back-to-back cruises by home port, dates, length, ship and price. A trip can be two legs or many more.Try: “Find a back-to-back from Galveston on one ship in February 2027 under $1,500 per person.”
search_in_plain_language
Takes the trip as a sentence, says which filters it understood, then lists the trips that match.Try: “Two weeks out of Miami on one ship in March.”
list_home_ports
Lists every home port with how many back-to-backs leave from it, the nights and the lowest fare.Try: “Which ports have the most back to back cruises?”
list_ships
Lists the Royal Caribbean fleet with class, size, year built and how many sailings we track for each ship.Try: “Which Royal Caribbean ships carry the most guests?”
get_back_to_back
Gets one trip by its id, with both legs, every port of call and how each fare compares with its own past.Try: “Tell me more about the second trip on that list.”
compare_back_to_backs
Puts two to four trips side by side: nights, fare, fare per night, whether the ship changes, and ports.Try: “Compare the two cheapest trips you found.”
get_price_history
Shows what one sailing has cost each day we checked it, and whether today's fare is low, normal or high for it.Try: “Is the fare on the first leg a good price?”
find_price_drops
Lists sailings whose fare is furthest below their own average right now.Try: “Which sailings from Tampa are cheaper than usual right now?”
explain_back_to_back_cruising
Explains how back-to-back cruising works: turnaround day, keeping your cabin, booking, and casino offers.Try: “Do I have to get off the ship between back-to-back cruises?”
get_data_freshness
Says when prices were last checked for each home port, so a fare is never quoted as newer than it is.Try: “How old are these prices?”

Terms, such as they are

The data is public timetable information, recomputed continuously. Fares are per guest (the Royal Caribbean price for two guests sharing a cabin), cruise fare plus taxes and port fees, and move daily, so treat any figure as a lead-in rather than a quote. Cite legtolegcruises.com and link the page each result names. We are not affiliated with Royal Caribbean International or Club Royale.

Or just use it like a person

Pick a home port and see what actually connects.

⚓ Find legs, free