Login / Sign Up

Holiday Home

This is a single holiday home for sale listing. It includes all of the rich date to include in the record. most of the data is optional, and the app will render accordingly, taking into account any unavailable information. Some of the location data will be the same across different homes, however at this time they are included in each record, rather than having a relational link to another entity. This is due to the size of the home sales data not currently being an issue to make a major data change.

Structure

{
  "id": 464,
  "title": "Regal Henley",
  "url": "https://url-to-home-sales.webiste",
  "priority": 1,
  "featured": false,
  "imgUrl": "https://your-wordpress-install.com/wp-content/uploads/2022/06/Regal-Henley-Kitchen.jpg?v=1656416856",
  "size": "32ft x 12ft",
  "sleeps": "Sleeps 4",
  "rooms": "2 Bedrooms",
  "condition": "Pre-owned",
  "manufacturer": "Regal",
  "label": "Last One",
  "labelColor": "#FF00FF",
  "sold": true,
  "price": 350000,
  "salePrice": 348500,
  "priceLabel": "SOLD",
  "includesFees": false,
  "fees": 3500,
  "includesDecking": false,
  "decking": "Decking options are available at additional cost on request.#BREAK#Speak to our home sales team for current decking availability.",
  "expiry": "2033",
  "season": "11 months",
  "year": "2011",
  "canSublet": false,
  "description": "With a distinct contemporary style, the Regal Henley is exceptional value for money and would make a fabulous holiday home for anyone looking to come and go as many times as they please.",
  "copy": "With a distinct contemporary style, the Regal Henley is exceptional value for money and would make a fabulous holiday home for anyone looking to come and go as many times as they please.#BREAK##BREAK#The Regal Henley is cleverly designed with a modern, sleek-looking interior and two spacious bedrooms offering amble space for everyone.#BREAK##BREAK#But great focal point is the unique dividing wall separating the lounge and kitchen which creates two areas in their own right. The Henley also boasts an en-suite to master bedroom and a generous family bathroom.#BREAK##BREAK#The Henley was an ex hire holiday home which means it’s been well maintained, fully serviced and been through Beverley Holidays rigorous checks for it’s entire life.#BREAK##BREAK#Dip your toe into holiday home ownership and let this classic holiday home ease you into your holiday home ownership journey.#BREAK#",
  "copyMarkdown": "Maybe the same as *copy* but includes some limited **markdown** formatting.#BREAK##BREAK#Breaks are used as standard.",
  "features": [
    "Unique living room layout to create that homely feeling",
    "Separate fully equipped kitchen to showcase your chef skills",
    "Fantastic en-suite bathroom off the main bedroom great when you have extra guests",
    "Contemporary décor to style how you wish"
  ],
  "gallery": [
    "https://your-wordpress-install.com/wp-content/uploads/2022/06/Regal-Henley-Lounge.jpg?v=1656078138",
    "https://your-wordpress-install.com/wp-content/uploads/2022/06/Regal-Henley-Main-Bedroom.jpg?v=1656078166",
    "https://your-wordpress-install.com/wp-content/uploads/2022/06/Regal-Henley-Twin-Bedroom.jpg?v=1656078208"
  ],
  "locationName": "Sea View Village",
  "locationSiteMap": "https://your-wordpress-install.com/wp-content/uploads/2022/06/seaview-village-map.jpg?v=1659009625",
  "facilities": "Relaxed park setting#BREAK#Lighter-style facilities#BREAK#Stunning sea glimpses#BREAK#Dog-friendly facilities#BREAK#Use of park facilities too!",
  "locationGallery": [
    "https://your-wordpress-install.com/wp-content/uploads/2022/06/DSC02723-reduced-3000x1995.jpg?v=1658238827",
    "https://your-wordpress-install.com/wp-content/uploads/2022/06/seeview-70-3000x2000.jpg?v=1659009136",
    "https://your-wordpress-install.com/wp-content/uploads/2022/06/pool-view.jpg?v=1659009625"
  ],
  "address": "Holidaymaker App Ltd#BREAK#Stowey House#BREAK#Bridport Road#BREAK#Dorchester#BREAK#DT12SB",
  "pitch": "SV004",
  "locationLat" : "50.71245750791539,",
  "locationLng": "-2.4619866156242995",
  "floorPlan": "https://your-wordpress-install.com/wp-content/uploads/2022/06/regal-henley-floorplan.jpg?v=1659009625",
  "youtube": "N9LrpEEreDA",
  "tourUrl": "https://my.matterport.com/show/?m=1zazRoKqJj2",
  "tourText": "Virtual Tour",
  "overrideContact": true,
  "overridePhone": "01235 666 777",
  "overrideEmail": "override@your-holiday-park.co.uk",
  "overrideForm": "https://url-to-approved-embedded.form",
  "sites": [
    "park-one",
    "park-two"
  ],
  "segments": [
    "scheme_45",
    "pms_duringstay"
  ],
  "categories": [
    2
  ]
}

Properties

id

Type : Integer - Required

ID for this home. This needs to be unique to others offers in the list, however does not need to be unique to other entities. This ID should also not change between data requests/packets.

title

Type : String - Required

Home title

url

Type : Url String - Optional

Optional url for more information on a holiday home record on an external website. This is commonly used with our seeview digital signage system when a QR code is rendered on the holiday homes for sale slides.

priority

Type : Integer - Optional

Defaults to 99 - the lower the priority the higher on the offer lists views it will be after featured sorting and before alphabetisation.

featured

Type : Boolean - Optional

Should a home be considered featured. These will always be pushed to the top of the home sales list when user sorts home by 'featured' (often default) If several homes are featured then the priority sorting will come next before alphabetisation.

imgUrl

Type : Image Url String - Optional

Landscape hero image used on the home list views and detail view

size

Type : String - Optional

Short string to indicate size (eg 32ft x 12ft) - These are collated in the app when rendering the home sales section to create filters - so this string could/should be common among other homes

sleeps

Type : String - Optional

Short string to indicate how many people this home sleeps (eg "sleeps 6" or "4") - These are collated in the app when rendering the home sales section to create filters - so this string could/should be common among other homes

rooms

Type : String - Optional

Short string to indicate how many rooms this home has (eg "2 Bedrooms" or "3") - These are collated in the app when rendering the home sales section to create filters - so this string could/should be common among other homes

condition

Type : String - Optional

Short string to indicate condition of this home has (eg "New" or "Pre-loved") - These are collated in the app when rendering the home sales section to create filters - so this string could/should be common among other homes

label

Type : String - Optional

Home list cards and detail page includes a label which overlays the top corner of the hero image. This is used to show featured, or sold - however this string can be provided to add a custom label

labelColor

Type : Color String - Optional

Background color of custom label. If not provided then a default brand color will be used. Ignored if no label is provided'

sold

Type : Boolean - Optional

Should this home still be listed, but marked as sold. This adds the sold label on the top corner of the list and detail hero images, and also adds some extra copy to the details page prompting people to contact still for similar homes.

price

Type : Integer - Required

Price of home in whole pounds - will be rendered with '£' prefix and include commas between thousands - if not present will be set to 0 - This can be an issue when sorting by price - Even if price label is set to 'POE' (price on enquiry) or similar, then a estimated price should still be set for sorting - however this will not be visible to end users.

salePrice

Type : Integer - Optional

Sale price of home in whole pounds if one is required. This will be used instead of price when sorting by price. When rendering both prices will show with the sale price being a different accent color, and the normal price being prefixed with 'was '

priceLabel

Type : String - Optional

A short string to add instead of rendering a price - eg 'POE' (Price on enquiry) - As highlighted above, an estimated price should still be set for price ordering reasons, however if this label is set, the price will never be rendered to the end user

includesFess

Type : Boolean - Optional

Does the price of this home also include pitch fees or other fees

fees

Type : Integer - Optional

If the above fees is false or not visible, then you can send the fees in whole pounds to then render in the app

includesDecking

Type : Boolean - Optional

Does the price of this home also include some form of decking

decking

Type : Rich Text / Multiline String - Optional

If decking is false or not sent, then you can send an optional paragraph of text to then render options, or information about decking

expiry

Type : String - Optional

Short string to render when the expiry of this pitch, or home would be - clients often simply add a year

season

Type : String - Optional

Short string to render what the season restrictions are attached to the home or pitch. eg 'Feb-Dec' or '11 Months'

year

Type : String - Optional

Short string to show the year of manufacture - This is included as one of the main 4 icons with sleeps, rooms, and size

canSublet

Type : Boolean - Optional

Is subletting allowed in this home or pitch

description

Type : Rich Text / Multiline String - Optional

List description. This is rendered as a small amount of text on the home cards within the app surfaces.

copy

Type : Rich Text / Multiline String - Optional

Larger amount of text for the detail section of the app surfaces home sales section.

markdownCopy

Type : Markdown Text / Multiline String - Optional

Larger amount of text for the detail section of the app surfaces home sales section which can also include some rich formatting using MarkDown.

features

Type : Array of String - Optional

These strings will be rendered as features bullet points in the home detail

gallery

Type : Array of Image Url String - Optional

A list of image urls to render as a swipable gallery in the home detail. These are a landscape hero style ratio.

locationName

Type : String - Optional

This is rendered on the list and detail pages. It can simply be the name of the park, however could be a sub section of the park - eg a premium home sales area, or view point - These are collated in the app when rendering the home sales section to create filters - so this string could/should be common among other homes

locationSiteMap

Type : Url String - Optional

A url to image or pdf of a sitemap of the location - could be full park map, or segmented park of premium home owners area - potentially repeated amongst other homes, but currently not an issue

facilities

Type : Rich Text / Multiline String - Optional

Copy which describes facilitates available at the location - potentially repeated amongst other homes, but currently not an issue

locationGallery

Type : Array of Image Url String - Optional

A list of image urls to render as a second swipable gallery in the home detail which are for the location rather than home. These are a landscape hero style ratio - potentially repeated amongst other homes, but currently not an issue

address

Type : Rich Text / Multiline String - Optional

Address of location - could simply be the park address, or the address of a premium home owners area of the park - potentially repeated amongst other homes, but currently not an issue

pitch

Type : String - Optional

Short string to highlight what the pitch name or number is if known

locationLat

Type : Floating Point Numeric - Optional

Location latitude of home/pitch - if present then a external link to a mapping app will show

locationLng

Type : Floating Point Numeric - Optional

Location longitude of home/pitch - if present then a external link to a mapping app will show

floorPlan

Type : Image Url String - Optional

Image url of a floor plan for this home - if present this will load in a pinch zoom frame in the app

youtube

Type : String - Optional

This should be the code to a youtube video tour (not the whole url)

tourUrl

Type : Url String - Optional

If a virtual tour is available, or a video tour on a different provider than youtube then add this is the url for that call to action

tourText

Type : String - Optional

If a virtual tour is available, or a video tour on a different provider than youtube then add this is the title for that call to action

overrideContact

Type : Boolean - Optional

Set this to true if you are providing different phone, email, or form details for making enquiries that the default would normally be.

overridePhone

Type : String - Optional

If overriding contact details for this single home you can provide a different phone number her to use

overrideEmail

Type : String - Optional

If overriding contact details for this single home you can provide a different email address here to use. Note that if the install generally uses forms, this may be ignored in favour of the overrideForm property

overrideForm

Type : Url String - Optional

If overriding contact details for this single home you can provide a different embeddable form here to use. Note that if the install doesn't use forms, this may be ignored in favour of the overrideEmail property. Only HM approved form embeds will be used.

sites

Type : Array of String - Optional

Only required for multi site installs - can be disregarded for single park systems. This should be a list of valid groupsite keys which this home should be available for if you wish to filter it to certain parks. If this array is missing or empty then this home will be available for all parks (unlike most other holidaymaker entities)

segments

Type : Array of String - Optional

Only required for parks with the people module enabled. Can be disregarded for others. This should be a list of valid segmentation keys to filter this content to subsets of people. These keys would be defined by holidaymaker if the clients install supports this.

categories

Type : Array of Integer - Optional

List of category IDs to associate with this home. All homes will render in the 'All' tab, but this array can set which other category tabs the offer also appears in.

Required Type Definitions

Boolean - Reveal

As we connect to different systems using a range of different languages, we can interpret several things as a true. Generally speaking holidaymaker will use a standard true/false JSON boolean, however we also read a lower case string and checked if they are "1", "true", "yes", or "on" to then create the positive boolean. Unless explicitly noted, all booleans are defaulted as false if the node doesn't exist.

{
  "optionOne": true,
  "optionTwo": false,
  "allTheseAreValidTrues" : [
    1, "1", true, "true", "on", "yes"
  ]
}

Color String - Reveal

A string value which should be a valid 24bit hexadecimal string. For example "#FF0000" for red. This is parsed by the app surfaces and defaults to a brand color if invalid.

{
  "color": "#FF00FF"
}

Floating Point Numeric - Reveal

Float and Double values are handled as normal JSON. Depending on the precision of the language sending/receiving the data can depend on the truncation of the decimal points. However due to the context of our data, only location lat/lng numbers will normally have more than 2-3 points.

{
  "cost": 55.5,
  "lat": 50.71245750791539,
  "lng":  -2.4619866156242995
}

Image Url String - Reveal

Our app surfaces talk to an image engine on our infrastructure to process and resize images for different smart phone screen densities. Because of this the size of images are less relevant as they are delivered at optimum sizes anyway. However due to processing power and speed we do recommend that image urls are all 3000 pixels or below. The app surfaces will never need an image this large, so it gives you the option of still having a large quality image, but can be loaded in the apps and our infrastructure efficiently. We support both png, jpeg, and webp images. You can optionally include a '?v=' version integer so this can be used for versioning. If you do include this you can ensure images are reprocessed if the source image is changed on your servers.

{
  "imgUrl": "https://your-wordpress-site.com/wp-content/uploads/2023/08/a-large-image-3000x2100.jpg?v=1691481892",
  "image": "https://your-wordpress-site.com/wp-content/uploads/2023/08/a-smaller-image.png"
}

Integer - Reveal

Standard JSON Integer - 0 is commonly considered to be a default value, unless it is an valid ID when -1 is used. For sort priorities 99 is used as the default.

{
  "key1": 9,
  "key2": 42,
  "arrayOfInts": [
    2,
    3,
    5,
    8
  ] 
}

Markdown Text / Multiline String - Reveal

Acts the same as a Rich Text / Multiline String (including using #BREAK# for new lines) however this text can include a limited set of MarkDown to allow rich formatting.
This includes :

*italic text* : Italic Text
**bold text** : Bold Text
***bold and italic text*** : Bold and Italic Text

• Bullet 1
- List of bullet points with hyphans or bullet character

1. Number Item 1
2. Numbered list of items with number and full stop

{
  "copy": "This paragraph will now have two line breaks, and then a list of bullets#BREAK##BREAK#• Bullet 1#BREAK#• Bullet 2#BREAK#• Bullet 3",
  "copyMarkdown": "This paragraph will now have two line breaks but with bits in **bold** and *italic*, and then a list of bullets#BREAK##BREAK#- Bullet 1#BREAK#- Bullet 2#BREAK#...and a numbered list...#BREAK#1. Number Item 1#BREAK#2. Number Item 2"
}

Rich Text / Multiline String - Reveal

Acts the same as the standard String type, however If text is assumed to include line breaks then we use a place holder of #BREAK#. These will then be replaced by the relevant line breaks depending on the language, and device that is rendering the text. This is commonly used in entity copy, and addresses. Rich text should not include HTML or other markup. There should always be a contextual consideration as well - for example if you copy includes a html anchor link to 'Read More' - then simply removing the markup will then leave the text 'Read More' which will be a redundant, none clickable piece of text within the app surfaces.

{
  "textWithBullets": "This paragraph will now have two line breaks, and then a list of bullets#BREAK##BREAK#• Bullet 1#BREAK#• Bullet 2#BREAK#• Bullet 3",
  "address": "Holidaymaker App Ltd#BREAK#Stowey House#BREAK#Bridport Road#BREAK#Dorchester#BREAK#DT12SB"
}

String - Reveal

Standard JSON String - Often will have certain characters escaped depending what system is writing the JSON packet, however our parser only requires to have double quotes (") escaped. UTF-8 encoding is our standard, but others may be accepted if required. If line breaks are required in the text then the Rich Text / Multiline String type is used instead.

{
  "key1": "A string value",
  "key2": "Another string with an some \"quotes\" that need escaping",
  "arrayOfStrings": [
    "Item one as a string",
    "Item two as a string",
    "Item three as a string",
  ] 
}

Url String - Reveal

A Url is sent the same as a string. If our system knows this is a url it will check if it starts with http or https - Note that navigating from both iOS and Android should use https.

{
  "bookingUrl" : "https://portal.managebooking.pmssystem"
}

Data Changes

06/11/2025 - Holiday Home

Added 'overrideContact', 'overridePhone', 'overrideEmail' and 'overrideForm' properties

26/02/2025 - Holiday Home

Added 'copyMarkdown', 'url', and 'segments'

15/06/2022 - Holiday Home

Added 'priceLabel' property

12/04/2022 - Holiday Home

Added 'label' and 'labelColor' properties