Charter Index Yacht API

The Charter Index Yacht API is a GraphQL API exposing detailed information about thousands of yachts available on the charter market, and allowing your customers to make enquiries on those yachts.

API Endpoints
https://api.charterindex.com/v2
Version

2

Getting Started

For Central Agents

The API exposes basic data for your own fleet of yachts. For enhanced results featuring detailed rates & bookings information, you will need to upgrade to "Managed" or "Pro" listings.

For Charter Brokers

To gain access to the full listings of thousands of charter yachts, you will need an API subscription.

Authentication

Once you are subscribed, visit the API Connection Details page to retrieve your Authorization Header. You must include this header in every request you make to the API.

GraphQL Playground

The GraphQL Playground is an in-browser GraphQL IDE, which allows you to explore the API & test your queries interactively.

It is the best way to get up and running, and familiarise yourself with the API.

To get started, you need to authenticate by setting your Authorization Header. Click the "Headers" tab at the bottom of the page, and provide your header in a JSON object, for example:

{
    "Authorization": "Basic abc123"
}

Migrating from Version 1

For users of version 1 of the Charter Index API, we have made a number of improvements to the API for version 2. Unfortunately some of these required making some breaking changes, which are outlined here.

Note that there are no immediate plans to retire version 1. You may upgrade at your convenience.

Removal of Deprecated Fields

The following fields of Yacht have been removed:

  • stabilisers: merged into amenities as STABILISERS.
  • airConditioning: merged into amenities as AIR_CONDITIONING.
  • electronics: merged into amenities.
  • brochureUrl: renamed canonicalUrl.

Renamed fields

  • Yacht.cabins is now Yacht.cabinCount.

Removed fields

  • Yacht.flagCountryCode has been removed; use Yacht.flagCountry.id.

Better lang & currency argument handling

Previously, queries which could be translated or currency-converted accepted the parameters lang & currency as Strings. These are now typed as the GraphQL enums Language and CurrencyCode to clarify the accepted values.

If you encounter errors such as Enum "Language" cannot represent non-enum value: "en". Did you mean the enum value "en"?, this likely means you just need to remove the quotation marks; for example:


            # Version 1
            yacht(id: "123", lang: "en", currency: "USD") { }
            
            # Version 2
            yacht(id: "123", lang: en, currency: USD) { }
            

The following queries are affected:

New Enumeration type

We have introduced a new type to represent translated text:

{
  "id": "IDENTIFIER",
  "name": "Translated Name"
}

This gives you access to a consistent id in addition to the translated name, allowing your application to act on these values without relying on a variable string.

For example, these are the possible values of yacht 'categories':

[
  {
    "id": "POWER",
    "name": "Motor"
  },
  {
    "id": "SAIL",
    "name": "Sailing"
  }
]

You will need to update your queries to account for this.

For example:


            # Version 1
            yachts {
              builder
              amenities
            }
            
            # Version 2
            yachts {
              builder {
                id
                name
              }
              amenities {
                id
                name
              }
            }
            
            

The following fields are affected:

Areas

  • name
  • subAreas

Constants

  • areas
  • categories
  • currencies
  • hulls
  • subAreas

CrewProfile

  • nationality
  • languages

Currency

  • name
  • shortName
  • symbol

Yacht

  • category
  • hull
  • construction
  • builder
  • mcaStatus
  • flagCountry
  • smoking
  • masterCabinLocation
  • crewCabinLocation
  • accommodationDetails
  • amenities
  • toys
  • divingDetails
  • crewLanguage

Stricter array types

In Version 1, arrays were typed with nullable elements; for example [String]. This implies that some items in the array might be null, which is not the case! These variables & arguments are now typed as non-null; for example [String!]. You may be able to safely remove some null-checks :)

This may affect some of your queries / mutations if you are using variables. If you encounter errors such as Variable "$areas" of type "[String]" used in position expecting type "[String!]", you will need to update the types.

For example:


            # Version 1
            query Yachts($includeIds: [String]) {
              yachtsPaginated(includeIds: $includeIds) {}
            }
            
            # Version 2
            query Yachts($includeIds: [String!]) {
              yachtsPaginated(includeIds: $includeIds) {}
            }
            

The following arguments are affected:

yachtsPaginated query:

  • includeIds
  • name
  • hull
  • areas
  • category

enquire mutation:

  • yachtIds

New Date type

Fields & arguments representing dates now have a separate scalar type Date. The values of this field are identical to V1.

This may affect some of your queries / mutations if you are using variables. If you encounter errors such as Variable "$startDate" of type "String!" used in position expecting type "Date!", you will need to update the types.

For example:


            # Version 1
            mutation Enquire($startDate: String!) {
              enquire(startDate: $startDate) {}
            }
            
            # Version 2
            mutation Enquire($startDate: Date!) {
              enquire(startDate: $startDate) {}
            }
            
            

The following arguments are affected:

yachtsPaginated query:

  • startDate
  • endDate

enquire mutation:

  • startDate
  • endDate

Queries

allYachts

Description

Fetches a minimal amount of data about a large number of yachts at a time. Primarily intended for use when generating site maps.

Response

Returns an AllYachts!

Arguments
Name Description
offset - Int!

Determines the position in the paginated results.

To avoid unexpected results offset should be a multiple of limit

limit - Int! Number of paginated results.

Example

Query
query allYachts(
  $offset: Int!,
  $limit: Int!
) {
  allYachts(
    offset: $offset,
    limit: $limit
  ) {
    yachts {
      ...LightweightYachtFragment
    }
    meta {
      ...PaginationMetaFragment
    }
  }
}
Variables
{"offset": 987, "limit": 987}
Response
{
  "data": {
    "allYachts": {
      "yachts": [LightweightYacht],
      "meta": PaginationMeta
    }
  }
}

constants

Description

List the constant values used elsewhere in the API.

Response

Returns a Constants!

Arguments
Name Description
lang - Language The language which the query's response should be translated into.

Example

Query
query constants($lang: Language) {
  constants(lang: $lang) {
    areas {
      ...AreaFragment
    }
    categories {
      ...EnumerationFragment
    }
    currencies {
      ...CurrencyFragment
    }
    hulls {
      ...EnumerationFragment
    }
    subAreas {
      ...SubAreaFragment
    }
  }
}
Variables
{"lang": "de"}
Response
{
  "data": {
    "constants": {
      "areas": [Area],
      "categories": [Enumeration],
      "currencies": [Currency],
      "hulls": [Enumeration],
      "subAreas": [SubArea]
    }
  }
}

destinations

Description

Dynamic destination search. Allows searching for any relevant location in the world by the passed `search` argument.

The IDs of the returned `Destination` results can be passed to the `destination` argument of the `yachtsPaginated` query to filter yachts chartering near that destination.

Response

Returns [Destination!]!

Arguments
Name Description
search - String!
lang - Language The language which the query's response should be translated into.

Example

Query
query destinations(
  $search: String!,
  $lang: Language
) {
  destinations(
    search: $search,
    lang: $lang
  ) {
    id
    name
    yachtCount
    subArea {
      ...SubAreaFragment
    }
    area {
      ...AreaFragment
    }
  }
}
Variables
{"search": "abc123", "lang": "de"}
Response
{
  "data": {
    "destinations": [
      {
        "id": 4,
        "name": "abc123",
        "yachtCount": 987,
        "subArea": SubArea,
        "area": Area
      }
    ]
  }
}

yacht

Description

Fetch data on a specific yacht.

Response

Returns a Yacht!

Arguments
Name Description
id - ID! The yacht's identifier.
lang - Language The language which the query's response should be translated into.
currency - CurrencyCode The currency which prices in the query's response should be converted into.

Example

Query
query yacht(
  $id: ID!,
  $lang: Language,
  $currency: CurrencyCode
) {
  yacht(
    id: $id,
    lang: $lang,
    currency: $currency
  ) {
    id
    featured
    highPrice
    lowPrice
    highPriceUnconverted
    lowPriceUnconverted
    name
    modified
    priorName
    metaDescription
    lengthMeters
    lengthFeet
    beamMeters
    beamFeetInches
    draftMeters
    draftFeetInches
    fuelMaxLPH
    fuelMaxGPH
    fuelCruiseLPH
    fuelCruiseGPH
    rangeMaxKm
    rangeMaxNm
    rangeCruiseKm
    rangeCruiseNm
    speedMaxKPH
    speedMaxKts
    speedCruiseKPH
    speedCruiseKts
    yearLaunch
    yearRefit
    category {
      ...EnumerationFragment
    }
    hull {
      ...EnumerationFragment
    }
    construction {
      ...EnumerationFragment
    }
    builder {
      ...EnumerationFragment
    }
    designer
    engine
    mcaStatus {
      ...EnumerationFragment
    }
    flagCountry {
      ...EnumerationFragment
    }
    vatRegistered
    usaDuty
    voltage
    smoking {
      ...EnumerationFragment
    }
    masterCabinLocation {
      ...EnumerationFragment
    }
    crewCabinLocation {
      ...EnumerationFragment
    }
    guestsSleeping
    guestsEntertaining
    guestsCruising
    accommodationDetails {
      ...EnumerationFragment
    }
    cabinCount
    amenities {
      ...EnumerationFragment
    }
    toys {
      ...EnumerationFragment
    }
    divingDetails {
      ...EnumerationFragment
    }
    divingInsured
    divingCosts
    divingCertification
    scubaTanks
    buoyancyCompensators
    regulators
    compressors
    crewSize
    crewLanguage {
      ...EnumerationFragment
    }
    crewProfiles {
      ...CrewProfileFragment
    }
    special
    specialExpiryDate
    captainName
    brochureEditorial
    canonicalUrl
    areas {
      ...AreaFragment
    }
    mainImage {
      ...YachtImageFragment
    }
    layoutImage {
      ...YachtImageFragment
    }
    generalImages {
      ...YachtImageFragment
    }
    alternativeYachts {
      ...YachtFragment
    }
    video {
      ...VideoFragment
    }
    bookings {
      ...BookingFragment
    }
    rates {
      ...RateFragment
    }
  }
}
Variables
{"id": 4, "lang": "de", "currency": "USD"}
Response
{
  "data": {
    "yacht": {
      "id": "4",
      "featured": true,
      "highPrice": "xyz789",
      "lowPrice": "abc123",
      "highPriceUnconverted": "xyz789",
      "lowPriceUnconverted": "abc123",
      "name": "abc123",
      "modified": "abc123",
      "priorName": "abc123",
      "metaDescription": "abc123",
      "lengthMeters": 987.65,
      "lengthFeet": 987,
      "beamMeters": 123.45,
      "beamFeetInches": [123],
      "draftMeters": 123.45,
      "draftFeetInches": [987],
      "fuelMaxLPH": 987.65,
      "fuelMaxGPH": 987.65,
      "fuelCruiseLPH": 987.65,
      "fuelCruiseGPH": 123.45,
      "rangeMaxKm": 987.65,
      "rangeMaxNm": 987.65,
      "rangeCruiseKm": 123.45,
      "rangeCruiseNm": 987.65,
      "speedMaxKPH": 123.45,
      "speedMaxKts": 123.45,
      "speedCruiseKPH": 987.65,
      "speedCruiseKts": 987.65,
      "yearLaunch": 123,
      "yearRefit": 123,
      "category": Enumeration,
      "hull": Enumeration,
      "construction": Enumeration,
      "builder": Enumeration,
      "designer": "xyz789",
      "engine": "abc123",
      "mcaStatus": Enumeration,
      "flagCountry": Enumeration,
      "vatRegistered": false,
      "usaDuty": true,
      "voltage": "xyz789",
      "smoking": Enumeration,
      "masterCabinLocation": Enumeration,
      "crewCabinLocation": Enumeration,
      "guestsSleeping": 987,
      "guestsEntertaining": 123,
      "guestsCruising": 987,
      "accommodationDetails": [Enumeration],
      "cabinCount": 987,
      "amenities": [Enumeration],
      "toys": [Enumeration],
      "divingDetails": [Enumeration],
      "divingInsured": false,
      "divingCosts": "xyz789",
      "divingCertification": "xyz789",
      "scubaTanks": 987,
      "buoyancyCompensators": 123,
      "regulators": 987,
      "compressors": 123,
      "crewSize": 123,
      "crewLanguage": Enumeration,
      "crewProfiles": [CrewProfile],
      "special": "abc123",
      "specialExpiryDate": "2007-12-03",
      "captainName": "xyz789",
      "brochureEditorial": {},
      "canonicalUrl": "abc123",
      "areas": [Area],
      "mainImage": YachtImage,
      "layoutImage": YachtImage,
      "generalImages": [YachtImage],
      "alternativeYachts": [Yacht],
      "video": Video,
      "bookings": [Booking],
      "rates": [Rate]
    }
  }
}

yachtsPaginated

Description

The primary yacht search.

Response

Returns a YachtsPaginated!

Arguments
Name Description
lang - Language The language which the query's response should be translated into.
currency - CurrencyCode The currency which prices in the query's response should be converted into.
includeIds - [ID!] Yacht IDs to include in results.
name - [String!] Search by yacht name.
hull - [String!]

Include only yachts with a particular hull configuration.

For the list of valid options, query the hulls field of constants.

areas - [String!]

Include only yachts which charter in these operating areas.

For the list of valid options, query the areas field of constants.

This filter is mutually exclusive with the destinations filter.

subAreas - [String!]

Include only yachts which charter in these operating areas.

For the list of valid options, query the areas field of constants.

This filter is mutually exclusive with the destinations filter.

destination - String

Include only yachts which charter in a particular destination.

This should be the ID of a Destination returned from the a destinations search query.

This filter is mutually exclusive with the areas filter.

category - [String!]

Filter yachts by motor / sail power.

For the list of valid options, query the categories field of constants.

startDate - Date
endDate - Date
minGuestsSleeping - Int
maxGuestsSleeping - Int
cabins - Int
minPrice - Int Include only yachts more expensive than this. Uses the currency specified in the currency argument, or $USD by default.
maxPrice - Int Include only yachts less expensive than this. Uses the currency specified in the currency argument, or $USD by default.
minLengthMeters - Float
maxLengthMeters - Float
minLengthFeet - Int
maxLengthFeet - Int
featured - Boolean
Include only yachts which have been 'featured' in your service. 0 yachts
will be returned if you have not selected any featured yachts!

You can edit this in your RYS settings page.

fleet - Boolean Only show yachts in your fleet.
sort - [String!]

Sort by 'popularity' or field name. '-' modifier reverses order.

For example: - [ "lowPrice" ]: Show least expensive yachts first. - [ "-lowPrice" ]: Show most expensive yachts first. - [ "popularity" ] - [ "guestSleeping" ] - [ "lengthMeters", name ]

offset - Int!

Determines the position in the paginated results.

To avoid unexpected results offset should be a multiple of limit

limit - Int! Number of paginated results.

Example

Query
query yachtsPaginated(
  $lang: Language,
  $currency: CurrencyCode,
  $includeIds: [ID!],
  $name: [String!],
  $hull: [String!],
  $areas: [String!],
  $subAreas: [String!],
  $destination: String,
  $category: [String!],
  $startDate: Date,
  $endDate: Date,
  $minGuestsSleeping: Int,
  $maxGuestsSleeping: Int,
  $cabins: Int,
  $minPrice: Int,
  $maxPrice: Int,
  $minLengthMeters: Float,
  $maxLengthMeters: Float,
  $minLengthFeet: Int,
  $maxLengthFeet: Int,
  $featured: Boolean,
  $fleet: Boolean,
  $sort: [String!],
  $offset: Int!,
  $limit: Int!
) {
  yachtsPaginated(
    lang: $lang,
    currency: $currency,
    includeIds: $includeIds,
    name: $name,
    hull: $hull,
    areas: $areas,
    subAreas: $subAreas,
    destination: $destination,
    category: $category,
    startDate: $startDate,
    endDate: $endDate,
    minGuestsSleeping: $minGuestsSleeping,
    maxGuestsSleeping: $maxGuestsSleeping,
    cabins: $cabins,
    minPrice: $minPrice,
    maxPrice: $maxPrice,
    minLengthMeters: $minLengthMeters,
    maxLengthMeters: $maxLengthMeters,
    minLengthFeet: $minLengthFeet,
    maxLengthFeet: $maxLengthFeet,
    featured: $featured,
    fleet: $fleet,
    sort: $sort,
    offset: $offset,
    limit: $limit
  ) {
    yachts {
      ...YachtFragment
    }
    meta {
      ...PaginationMetaFragment
    }
  }
}
Variables
{
  "lang": "de",
  "currency": "USD",
  "includeIds": [4],
  "name": ["xyz789"],
  "hull": ["abc123"],
  "areas": ["abc123"],
  "subAreas": ["abc123"],
  "destination": "xyz789",
  "category": ["abc123"],
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "minGuestsSleeping": 123,
  "maxGuestsSleeping": 123,
  "cabins": 123,
  "minPrice": 123,
  "maxPrice": 123,
  "minLengthMeters": 987.65,
  "maxLengthMeters": 987.65,
  "minLengthFeet": 987,
  "maxLengthFeet": 123,
  "featured": true,
  "fleet": false,
  "sort": ["abc123"],
  "offset": 123,
  "limit": 987
}
Response
{
  "data": {
    "yachtsPaginated": {
      "yachts": [Yacht],
      "meta": PaginationMeta
    }
  }
}

Mutations

enquire

Description

Submits a charter enquiry.

Response

Returns an Enquiry!

Arguments
Name Description
name - String! The customer's name.
email - String!

The customer's email address.

We will validate that this is valid & safe to contact.

If the email address is not a valid address, the enquiry will fail with an EMAIL_UNDELIVERABLE error.

If the email address is valid, but represents a "high risk" address (eg, temporary mail boxes, spam domains, etc.), the enquiry will fail with an EMAIL_HIGH_RISK error.

phone - String

The customer's phone number in E.164 format, eg '+14155552671'.

We will check that this is a valid phone number with active service. If it is not, it the enquiry will fail with a PHONE_INVALID error.

startDate - Date! The customer's preferred embarking date.
endDate - Date! The customer's preferred disembarking date.
guests - Int! The number of guests the charter is for.
message - String Arbitrary text which will be passed through with the enquiry.
yachtIds - [ID!]! The IDs of the yachts the customer is enquiring about.
skipPhoneValidation - Boolean Disable phone number validation for this enquiry.

Example

Query
mutation enquire(
  $name: String!,
  $email: String!,
  $phone: String,
  $startDate: Date!,
  $endDate: Date!,
  $guests: Int!,
  $message: String,
  $yachtIds: [ID!]!,
  $skipPhoneValidation: Boolean
) {
  enquire(
    name: $name,
    email: $email,
    phone: $phone,
    startDate: $startDate,
    endDate: $endDate,
    guests: $guests,
    message: $message,
    yachtIds: $yachtIds,
    skipPhoneValidation: $skipPhoneValidation
  ) {
    ok
    errors {
      ...EnquiryErrorFragment
    }
    name
    email
    phone
    startDate
    endDate
    guests
    message
    yachtIds
  }
}
Variables
{
  "name": "abc123",
  "email": "xyz789",
  "phone": "abc123",
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "guests": 987,
  "message": "xyz789",
  "yachtIds": ["4"],
  "skipPhoneValidation": true
}
Response
{
  "data": {
    "enquire": {
      "ok": false,
      "errors": [EnquiryError],
      "name": "xyz789",
      "email": "abc123",
      "phone": "xyz789",
      "startDate": "2007-12-03",
      "endDate": "2007-12-03",
      "guests": 123,
      "message": "xyz789",
      "yachtIds": ["4"]
    }
  }
}

Types

AllYachts

Description

The response of the `allYachts` query.

Fields
Field Name Description
yachts - [LightweightYacht!]!
meta - PaginationMeta!
Example
{
  "yachts": [LightweightYacht],
  "meta": PaginationMeta
}

Area

Description

Describes a top level operating area.

Fields
Field Name Description
id - ID!
name - String! The translated name of the Area.
subAreas - [SubArea!]! SubAreas contained in this Area.
Example
{
  "id": 4,
  "name": "abc123",
  "subAreas": [SubArea]
}

Booking

Fields
Field Name Description
id - ID!
pickupDate - Date!
dropOffDate - Date!
status - Enumeration!
pickupPort - Port
dropOffPort - Port
Example
{
  "id": "4",
  "pickupDate": "2007-12-03",
  "dropOffDate": "2007-12-03",
  "status": Enumeration,
  "pickupPort": Port,
  "dropOffPort": Port
}

Boolean

Description

The Boolean scalar type represents true or false.

Constants

Description

Lists the constant values used elsewhere in the API.

Fields
Field Name Description
areas - [Area!]!
categories - [Enumeration!]! Describes whether a yacht is motor or sail powered.
currencies - [Currency!]! Lists the currencies available for conversion.
hulls - [Enumeration!]! Describes a yacht's hull configuration.
subAreas - [SubArea!]!
Example
{
  "areas": [Area],
  "categories": [Enumeration],
  "currencies": [Currency],
  "hulls": [Enumeration],
  "subAreas": [SubArea]
}

CrewProfile

Description

Describes a member of a yacht's crew.

Fields
Field Name Description
id - ID!
image - Image
yacht - Yacht!
name - String!
role - String
yearOfBirth - Int
description - String!
nationality - Enumeration
languages - [Enumeration!]
order - Int
modified - String
Example
{
  "id": "4",
  "image": Image,
  "yacht": Yacht,
  "name": "xyz789",
  "role": "abc123",
  "yearOfBirth": 987,
  "description": "xyz789",
  "nationality": Enumeration,
  "languages": [Enumeration],
  "order": 987,
  "modified": "abc123"
}

Currency

Description

Describes a currency available for conversion.

Fields
Field Name Description
id - ID!
name - String!
shortName - String!
symbol - String!
Example
{
  "id": "4",
  "name": "abc123",
  "shortName": "abc123",
  "symbol": "abc123"
}

CurrencyCode

Values
Enum Value Description

USD

EUR

GBP

CAD

FJD

AUD

NZD

THB

Example
"USD"

Date

Description

An ISO 8601 Date string, e.g '2016-02-19'

Example
"2007-12-03"

Destination

Description

A result in a `destinations` query search.

Fields
Field Name Description
id - ID! The destination's unique identifier. Pass this to the `destination` argument of the `yachtsPaginated` query.
name - String! Translated name of the destination.
yachtCount - Int! Number of yachts available to charted in the destination.
subArea - SubArea
area - Area
Example
{
  "id": 4,
  "name": "abc123",
  "yachtCount": 987,
  "subArea": SubArea,
  "area": Area
}

Enquiry

Description

Returned as the result of an `enquiry` mutation.

Fields
Field Name Description
ok - Boolean! Whether the enquiry was successfully submitted. See `errors` for details if this is false.
errors - [EnquiryError!]
name - String! The customer's name.
email - String!

The customer's email address.

We will validate that this is valid & safe to contact.

If the email address is not a valid address, the enquiry will fail with an `EMAIL_UNDELIVERABLE` error.

If the email address is valid, but represents a "high risk" address (eg, temporary mail boxes, spam domains, etc.), the enquiry will fail with an `EMAIL_HIGH_RISK` error.

phone - String

The customer's phone number in E.164 format, eg '+14155552671'.

We will check that this is a valid phone number with active service. If it is not, it the enquiry will fail with a `PHONE_INVALID` error.

startDate - Date! The customer's preferred embarking date.
endDate - Date! The customer's preferred disembarking date.
guests - Int! The number of guests the charter is for.
message - String Arbitrary text which will be passed through with the enquiry.
yachtIds - [ID!]! The IDs of the yachts the customer is enquiring about.
Example
{
  "ok": false,
  "errors": [EnquiryError],
  "name": "abc123",
  "email": "xyz789",
  "phone": "abc123",
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "guests": 987,
  "message": "abc123",
  "yachtIds": [4]
}

EnquiryError

Description

Describes the reason an `enquiry` mutation failed.

Fields
Field Name Description
type - EnquiryErrorType! Describes what was wrong with the enquiry.
suggestion - String Possibly included for `EMAIL_UNDELIVERABLE` errors, in cases where the error appears to be a typo, e.g. '@gmaill.com'".
Example
{
  "type": "EMAIL_UNDELIVERABLE",
  "suggestion": "abc123"
}

EnquiryErrorType

Description

Enumerates the ways in which an `enquiry` mutation might fail.

Values
Enum Value Description

EMAIL_UNDELIVERABLE

The submitted email address is not valid, and cannot accept emails.

EMAIL_HIGH_RISK

The submitted email address is considered high risk, and should not be sent to.

PHONE_INVALID

The submitted phone number is not a valid E.164 phone number. Can be disabled by including `skipPhoneValidation: true` in your mutation.
Example
"EMAIL_UNDELIVERABLE"

Enumeration

Description

Represents a translated constant.

Fields
Field Name Description
id - ID! Constant identifier.
name - String! Translated name.
Example
{"id": 4, "name": "abc123"}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
123.45

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
4

Image

Description

An image.

Fields
Field Name Description
id - ID!
url - String! This is the recommended URL, you should add '&w={{width}}' to optimise page load.
caption - String
width - Int!
height - Int!
Example
{
  "id": "4",
  "url": "xyz789",
  "caption": "xyz789",
  "width": 987,
  "height": 123
}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987

JSON

Description

An JSON object

Example
{}

Language

Values
Enum Value Description

de

en

es

fr

it

ja

ms

pl

pt

ru

zh

Example
"de"

LightweightYacht

Description

Minimal data about a yacht. Included in the response to the `allYachts` query.

Fields
Field Name Description
id - ID!
name - String!
modified - String!
Example
{
  "id": "4",
  "name": "xyz789",
  "modified": "xyz789"
}

PaginationMeta

Description

Represents a position in a paginated collection of results.

Fields
Field Name Description
totalCount - Int!
offset - Int!
limit - Int!
Example
{"totalCount": 123, "offset": 987, "limit": 123}

Port

Fields
Field Name Description
id - ID!
name - String
Example
{"id": 4, "name": "xyz789"}

Rate

Fields
Field Name Description
id - ID!
area - Area!
startDate - Date!
endDate - Date!
guests - Int!
amount - Int!
currency - CurrencyCode!
duration - Enumeration
inquire - Boolean!
expense - Enumeration!
notes - String
Example
{
  "id": "4",
  "area": Area,
  "startDate": "2007-12-03",
  "endDate": "2007-12-03",
  "guests": 123,
  "amount": 987,
  "currency": "USD",
  "duration": Enumeration,
  "inquire": false,
  "expense": Enumeration,
  "notes": "xyz789"
}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

SubArea

Description

Describes a smaller area contained within a top level operating `Area`.

Fields
Field Name Description
id - ID!
name - String! The translated name of the SubArea.
area - Area! The top level Area this SubArea belongs to.
Example
{
  "id": 4,
  "name": "xyz789",
  "area": Area
}

Video

Fields
Field Name Description
id - ID!
yacht - Yacht!
html - String
href - String
title - String
url - String
width - Int
height - Int
thumbnailUrl - String
thumbnailWidth - Int
thumbnailHeight - Int
providerName - String
providerUrl - String
version - String
modified - String
pictures - [VideoPicture!]
files - [VideoFile!]
Example
{
  "id": "4",
  "yacht": Yacht,
  "html": "xyz789",
  "href": "abc123",
  "title": "xyz789",
  "url": "abc123",
  "width": 987,
  "height": 123,
  "thumbnailUrl": "xyz789",
  "thumbnailWidth": 987,
  "thumbnailHeight": 123,
  "providerName": "xyz789",
  "providerUrl": "abc123",
  "version": "xyz789",
  "modified": "abc123",
  "pictures": [VideoPicture],
  "files": [VideoFile]
}

VideoFile

Fields
Field Name Description
quality - String
type - String
width - Int
height - Int
link - String!
size - String
Example
{
  "quality": "xyz789",
  "type": "abc123",
  "width": 987,
  "height": 123,
  "link": "xyz789",
  "size": "xyz789"
}

VideoPicture

Fields
Field Name Description
width - Int
height - Int
link - String!
Example
{
  "width": 123,
  "height": 123,
  "link": "xyz789"
}

Yacht

Description

A yacht for charter!

Fields
Field Name Description
id - ID!
featured - Boolean!

Whether this yacht has been 'featured' in your service.

You can edit this in your RYS settings page.

highPrice - String The high price per week to charter the yacht, converted into the requested currency. May be null if the yacht has no public price information.
lowPrice - String The low price per week to charter the yacht, converted into the requested currency. May be null if the yacht has no public price information.
highPriceUnconverted - String The high price per week to charter the yacht, unconverted, in the currency the yacht was listed in. May be null if the yacht has no public price information.
lowPriceUnconverted - String The high price per week to charter the yacht, unconverted, in the currency the yacht was listed in. May be null if the yacht has no public price information.
name - String!
modified - String! When the yacht's data was most recently updated.
priorName - String The yacht's previous name, if it has been renamed.
metaDescription - String! Short description of the yacht.
lengthMeters - Float!
lengthFeet - Int!
beamMeters - Float!
beamFeetInches - [Int!]!
draftMeters - Float!
draftFeetInches - [Int!]!
fuelMaxLPH - Float
fuelMaxGPH - Float
fuelCruiseLPH - Float
fuelCruiseGPH - Float
rangeMaxKm - Float
rangeMaxNm - Float
rangeCruiseKm - Float
rangeCruiseNm - Float
speedMaxKPH - Float
speedMaxKts - Float
speedCruiseKPH - Float
speedCruiseKts - Float
yearLaunch - Int!
yearRefit - Int
category - Enumeration! Whether the yacht is motor or sail powered.
hull - Enumeration!
construction - Enumeration
builder - Enumeration!
designer - String
engine - String
mcaStatus - Enumeration
flagCountry - Enumeration
vatRegistered - Boolean!
usaDuty - Boolean!
voltage - String
smoking - Enumeration
masterCabinLocation - Enumeration
crewCabinLocation - Enumeration
guestsSleeping - Int!
guestsEntertaining - Int!
guestsCruising - Int!
accommodationDetails - [Enumeration!]!
cabinCount - Int!
amenities - [Enumeration!]!
toys - [Enumeration!]!
divingDetails - [Enumeration!]!
divingInsured - Boolean
divingCosts - String
divingCertification - String
scubaTanks - Int
buoyancyCompensators - Int
regulators - Int
compressors - Int
crewSize - Int
crewLanguage - Enumeration
crewProfiles - [CrewProfile!]
special - String A special offer currently available on the yacht's rates.
specialExpiryDate - Date If `special` is present, this is the date on which that offer expires.
captainName - String
brochureEditorial - JSON Editorial description of the yacht in 'Himalaya' format.
canonicalUrl - String!
areas - [Area!]! Operating areas in which the yacht is available for charter.
mainImage - YachtImage!
layoutImage - YachtImage
generalImages - [YachtImage!]
alternativeYachts - [Yacht!] Three similar yachts.
video - Video
bookings - [Booking!]

This field is only available for Managed or Pro yacht listings from your own fleet.

It will be empty for any other yachts.

rates - [Rate!]

This field is only available for Managed or Pro yacht listings from your own fleet.

It will be empty for any other yachts.

Example
{
  "id": 4,
  "featured": true,
  "highPrice": "xyz789",
  "lowPrice": "abc123",
  "highPriceUnconverted": "xyz789",
  "lowPriceUnconverted": "xyz789",
  "name": "xyz789",
  "modified": "xyz789",
  "priorName": "xyz789",
  "metaDescription": "xyz789",
  "lengthMeters": 987.65,
  "lengthFeet": 987,
  "beamMeters": 987.65,
  "beamFeetInches": [123],
  "draftMeters": 987.65,
  "draftFeetInches": [987],
  "fuelMaxLPH": 987.65,
  "fuelMaxGPH": 123.45,
  "fuelCruiseLPH": 987.65,
  "fuelCruiseGPH": 123.45,
  "rangeMaxKm": 123.45,
  "rangeMaxNm": 123.45,
  "rangeCruiseKm": 123.45,
  "rangeCruiseNm": 123.45,
  "speedMaxKPH": 987.65,
  "speedMaxKts": 987.65,
  "speedCruiseKPH": 123.45,
  "speedCruiseKts": 987.65,
  "yearLaunch": 987,
  "yearRefit": 123,
  "category": Enumeration,
  "hull": Enumeration,
  "construction": Enumeration,
  "builder": Enumeration,
  "designer": "abc123",
  "engine": "xyz789",
  "mcaStatus": Enumeration,
  "flagCountry": Enumeration,
  "vatRegistered": false,
  "usaDuty": false,
  "voltage": "abc123",
  "smoking": Enumeration,
  "masterCabinLocation": Enumeration,
  "crewCabinLocation": Enumeration,
  "guestsSleeping": 987,
  "guestsEntertaining": 987,
  "guestsCruising": 123,
  "accommodationDetails": [Enumeration],
  "cabinCount": 987,
  "amenities": [Enumeration],
  "toys": [Enumeration],
  "divingDetails": [Enumeration],
  "divingInsured": true,
  "divingCosts": "xyz789",
  "divingCertification": "xyz789",
  "scubaTanks": 123,
  "buoyancyCompensators": 123,
  "regulators": 987,
  "compressors": 123,
  "crewSize": 987,
  "crewLanguage": Enumeration,
  "crewProfiles": [CrewProfile],
  "special": "abc123",
  "specialExpiryDate": "2007-12-03",
  "captainName": "xyz789",
  "brochureEditorial": {},
  "canonicalUrl": "abc123",
  "areas": [Area],
  "mainImage": YachtImage,
  "layoutImage": YachtImage,
  "generalImages": [YachtImage],
  "alternativeYachts": [Yacht],
  "video": Video,
  "bookings": [Booking],
  "rates": [Rate]
}

YachtImage

Description

An image of a yacht.

Fields
Field Name Description
id - ID!
url - String! This is the recommended URL, you should add '&w={{width}}' to optimise page load.
caption - String
width - Int!
height - Int!
Example
{
  "id": 4,
  "url": "abc123",
  "caption": "xyz789",
  "width": 123,
  "height": 987
}

YachtsPaginated

Description

Response returned from a `yachtsPaginated` query.

Fields
Field Name Description
yachts - [Yacht!]!
meta - PaginationMeta!
Example
{
  "yachts": [Yacht],
  "meta": PaginationMeta
}