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 intoamenities
asSTABILISERS
.airConditioning
: merged intoamenities
asAIR_CONDITIONING
.electronics
: merged intoamenities
.brochureUrl
: renamedcanonicalUrl
.
Renamed fields
Yacht.cabins
is nowYacht.cabinCount
.
Removed fields
Yacht.flagCountryCode
has been removed; useYacht.flagCountry.id
.
Better lang
& currency
argument handling
Previously, queries which could be translated or currency-converted accepted the parameters lang
& currency
as String
s. 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!
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!]!
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 |
areas - [String!]
|
Include only yachts which charter in these operating areas. For the list of valid options, query the This filter is mutually exclusive with the |
subAreas - [String!]
|
Include only yachts which charter in these operating areas. For the list of valid options, query the This filter is mutually exclusive with the |
destination - String
|
Include only yachts which charter in a particular destination. This should be the ID of a This filter is mutually exclusive with the |
category - [String!]
|
Filter yachts by motor / sail power. For the list of valid options, query the |
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
|
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: - |
offset - Int!
|
Determines the position in the paginated results. To avoid unexpected results |
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 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 |
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 |
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
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.
Example
{
"id": "4",
"image": Image,
"yacht": Yacht,
"name": "xyz789",
"role": "abc123",
"yearOfBirth": 987,
"description": "xyz789",
"nationality": Enumeration,
"languages": [Enumeration],
"order": 987,
"modified": "abc123"
}
Currency
CurrencyCode
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
---|---|
|
The submitted email address is not valid, and cannot accept emails. |
|
The submitted email address is considered high risk, and should not be sent to. |
|
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
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
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 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"de"
LightweightYacht
PaginationMeta
Port
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
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
VideoPicture
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
YachtsPaginated
Description
Response returned from a `yachtsPaginated` query.
Fields
Field Name | Description |
---|---|
yachts - [Yacht!]!
|
|
meta - PaginationMeta!
|
Example
{
"yachts": [Yacht],
"meta": PaginationMeta
}