Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/fantasize-net:fantasize-net-compare-cruise-lines-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Fantasize cruise finder Compare Cruise Lines API
version: 1.0.0
description: Every sailing of 23 cruise lines, priced every night, with whether each fare is low, typical or high against its own usual price, and a link to book it. Free, no key. Also an MCP server at https://fantasize.net/mcp.
servers:
- url: https://fantasize.net
tags:
- name: Compare Cruise Lines
paths:
/api/v1/compare_cruise_lines:
get:
operationId: compare_cruise_lines
summary: Which cruise line is cheapest for this trip
description: 'Side-by-side cruise lines for the same kind of cruise (a region, departure port or port visited, plus dates): each line''s number of sailings, ships, median and lowest price per person per night in one cabin grade, and its cheapest sailing with book_url. Answers "Alaska in July: Princess or NCL?".'
parameters:
- name: region
in: query
required: false
description: 'Where the cruise goes: a region (caribbean, bahamas, alaska, mexico, mediterranean, northern-europe, european-rivers, asia, repositioning, more) or a named place it calls at (greek-islands, norwegian-fjords, canada-new-england, canary-islands, british-isles, baltic, iceland, adriatic, japan, hawaii, panama-canal, bermuda, galapagos, tahiti, arctic, antarctica, danube, rhine, douro), or any port, island, country or state we sail to ("Santorini", "Maui", "Greece", "Juneau"). cruise_options lists the regions and named places with counts.'
schema:
type: string
- name: month
in: query
required: false
description: Departure month, YYYY-MM
schema:
type: string
- name: depart_from
in: query
required: false
description: Earliest departure date, YYYY-MM-DD
schema:
type: string
- name: depart_to
in: query
required: false
description: Latest departure date, YYYY-MM-DD
schema:
type: string
- name: from_port
in: query
required: false
description: 'Departure port, e.g. "Seattle" or "Barcelona"; several comma-separated: "Miami,Fort Lauderdale"'
schema:
type: string
- name: calls_at
in: query
required: false
description: A port the ship must visit, e.g. "Juneau", "Santorini", "Cozumel"
schema:
type: string
- name: line
in: query
required: false
description: Cruise line, e.g. "Royal Caribbean", "NCL", "Princess", "Viking"
schema:
type: string
- name: ship
in: query
required: false
description: Ship name or part of it
schema:
type: string
- name: tier
in: query
required: false
description: 'luxury includes ultra-luxury; ultra-luxury is the top of the market only: Regent, Silversea, Seabourn, Explora Journeys (all-suite, all-inclusive)'
schema:
type: string
enum:
- contemporary
- premium
- luxury
- ultra-luxury
- river
- name: nights_min
in: query
required: false
schema:
type: integer
- name: nights_max
in: query
required: false
schema:
type: integer
- name: cabin
in: query
required: false
description: Cabin grade to price. Omit to quote balcony where sold, else the next grade.
schema:
type: string
enum:
- inside
- oceanview
- balcony
- suite
responses:
'200':
description: JSON answer; every result carries book_url
'400':
description: A value we could not read; the message says which
'429':
description: Rate limited
tags:
- Compare Cruise Lines