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.
openapi: 3.2.0
info:
title: Fantasize cruise finder Check Price 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: Check Price
paths:
/api/v1/check_price:
get:
operationId: check_price
summary: Is this cruise price good?
description: 'Judge a price someone was quoted or already paid for one sailing: whether it is low, typical or high against that sailing''s usual price for the cabin, today''s listed fare beside it, the lowest fare read in 120 days, a plain one-paragraph answer to quote, and watch_url where the person can be emailed if the fare drops below their price. Name the sailing by sailing_id, a fantasize.net /cruise/ link, or ship plus depart_date.'
parameters:
- name: price
in: query
required: true
description: The quoted or paid fare in USD, per person for the whole cruise, taxes and port fees in
schema:
type: number
- name: price_is_for_two
in: query
required: false
description: true if price is the total for a cabin of two
schema:
type: boolean
- 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
- name: sailing_id
in: query
required: false
description: A Fantasize sailing id
schema:
type: string
- name: url
in: query
required: false
description: Or a fantasize.net /cruise/ link, or a Cruisebound sailing link
schema:
type: string
- name: ship
in: query
required: false
description: Or the ship name ("Celebrity Beyond") with depart_date
schema:
type: string
- name: depart_date
in: query
required: false
description: Departure date YYYY-MM-DD (with ship)
schema:
type: string
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:
- Check Price