API Overview

We offer a simple yet powerful RESTful API that provides programmatic access to account data. You can import and export data, as well as receive notifications when changes occur.

Below you will find a complete reference manual for the MyVR API. For each RESTful API endpoint, we detail the actions available and the data exposed or expected.

Some general rules our API abides by:

  • All request and response content is JSON.
  • All endpoint names are plural. That is, "properties", not "property"
  • All field names are camelCase.
  • HATEOAS
  • OPTIONS requests will give a machine-readable representation of the JSON schema we expect.
  • GET requests for lists are paginated.
  • Date and Time fields follow the ISO-8601 standard.
  • If an ISO-8601 datetime does not specify a timezone, assume UTC.

Authentication

If you are a MyVR account holder looking to access the API, you will use our Basic Authentication method. If you are a 3rd party application developer using MyVR Connect to access the API, authentication is handled with an access token you retrieve from our standard OAuth flow.

Basic Authentication

In order to access the API, you'll need an API access key. API access keys can be created and managed from within your MyVR account. You can generate Live or Test access keys, depending on whether you want to access live data or test data.

To get started, generate an access key for your account. You'll need to pass this access key in your API calls as an Authentication Header.

MyVR Connect Authentication (OAuth)

If you are a developer of a MyVR Connect application, you will need to connect to an account using our MyVR Connect OAuth flow. Upon connecting, we'll provide you with an access key you can use to make API requests against the associated account. Authentication using a MyVR Connect access key is very similar to authenticating with a standard API access keys. Instead of using Basic HTTP authentication, you'll pass a bearer authentication token as an HTTP header.

Basic Authentication Example

curl https://api.myvr.com/v1/properties/ -u YOUR_API_KEY:

The -u flag is used to provide authentication credentials to the curl command. Including your access key followed by a colon signifies no password is required.



MyVR Connect OAuth Example

curl https://api.myvr.com/v1/properties/ -H "Authorization: Bearer ACCESS_TOKEN"

The ACCESS_TOKEN above should be replaced with the ACCESS_TOKEN you retrieved from our standard OAuth flow.

Webhooks

Webhooks are notifications of changes to your account data. When a change occurs we'll push a notification to a webhook URL you setup in your account. This notification will include the type of event that occurred, the account associated with the event, and the associated event data.

Technically, we'll make an HTTP POST to your webhook url and include a JSON serialized version of the object in the body of the POST. We'll include two HTTP headers with the POST'ed data - an Event header which identifies the type of event and an Account-Id header which identifies the account associated with the event.

Webhooks are incredibly useful for keeping your application up-to-date with changes in your MyVR account. Instead of repeatedly requesting data from our API and checking for changes, notifications are sent to you immediately when changes occur. For example, you may be interested in knowing when a property's rates are updated or when a reservation payment is received. Our Webhooks handle this and much more.

Below you'll find a list of webhook events we support and the data we include with each notification. Webhook event names follow a pattern of: resource.action or resource.action.event

  • resource will be the name of the object the event pertains to
  • action will be a standard operation performed on that resource, either `created`, `updated`, or `deleted`.
  • event a specific event that triggered the action (optional).

Event

channel_listing.updated.canceled
returns a ChannelListing object
Occurs when a channel listing is canceled.
contact.created
returns a Contact object
This event is triggered when a new contact is created.
contact.updated
returns a Contact object
This event is triggered when a contact is updated.
event_listener.created
returns a EventListener object
Occurs when an EventListener is created.
event_listener.deleted
returns a EventListener object
Occurs when an EventListener is deleted.
event_listener.updated.activated
returns a EventListener object
Occurs when an EventListener is activated.
event_listener.updated.paused
returns a EventListener object
Occurs when an EventListener is paused.
inquiry_message.created
returns a InquiryMessage object
This event is triggered when a new inquiry message is created.
inquiry.created
returns a Inquiry object
This event is triggered when a new inquiry is created.
issue.created
returns a Issue object
Occurs when a new issue is created.
issue.updated.resolved
returns a Issue object
Occurs when an issue is resolved.
job_assignment.created
returns a JobAssignment object
Occurs when a job assignment is created.
job_assignment.deleted
returns a JobAssignment object
Occurs when a worker is unassigned from a job.
job_assignment.updated
returns a JobAssignment object
Occurs when a job assignment is updated.
job_assignment.updated.accepted
returns a JobAssignment object
Occurs when a job assignment is accepted.
job_assignment.updated.declined
returns a JobAssignment object
Occurs when a job assignment is declined.
job_automation.created
returns a JobAutomation object
Occurs when a job automation is created.
job_automation.updated
returns a JobAutomation object
Occurs when a job automation is updated.
job_template.created
returns a Job object
Occurs when a new job template is created.
job_template.updated
returns a Job object
Occurs when a job template is updated.
job.created
returns a Job object
Occurs when a new job is created.
job.deleted
returns a Job object
Occurs when a Job is deleted from an account.
job.updated
returns a Job object
Occurs when a job is updated.
job.updated.canceled
returns a Job object
Occurs when a Job is canceled.
job.updated.completed
returns a Job object
Occurs when a job is completed.
job.updated.started
returns a Job object
Occurs when a job is started.
jobnote.created
returns a JobNote object
Occurs when a new job type is created.
jobnote.updated
returns a JobNote object
Occurs when a job type is updated.
jobtype.created
returns a JobType object
Occurs when a new job type is created.
jobtype.updated
returns a JobType object
Occurs when a job type is updated.
property.created
returns a Property object
This event is triggered when a new property is created.
property.deleted
returns a Property object
This event is triggered when a property is deleted.
property.updated.activated
returns a Property object
This event is triggered when a property is activated.
property.updated.deactivated
returns a Property object
This event is triggered when a property is deactivated.
rate_plan.updated.rates_reset
returns a ListingRatePlan object
This event is triggered when a rate plan's rates are fully reset.
reservation_payment.updated.failed
returns a ReservationPayment object
Occurs when an attempt to process a reservation payment fails.
reservation_payment.updated.processed
returns a ReservationPayment object
Occurs when a reservation payment is processed.
reservation_payment.updated.recorded
returns a ReservationPayment object
Occurs when a reservation payment is recorded as paid.
reservation_payment.updated.unrecorded
returns a ReservationPayment object
Occurs when a recorded reservation payment is unrecorded.
reservation_payment.updated.voided
returns a ReservationPayment object
Occurs when a processed reservation payment is voided.
reservation_refund.created.processed
returns a ReservationRefund object
Occurs when a reservation refund is processed.
reservation_refund.created.recorded
returns a ReservationRefund object
Occurs when a reservation refund is recorded.
reservation_refund.deleted
returns a ReservationRefund object
Occurs when a recorded reservation refund is deleted.
reservation.created
returns a Reservation object
Occurs when a new reservation is created.
reservation.created.booked
returns a Reservation object
Occurs when a new reservation is booked by a renter.
reservation.created.requested
returns a Reservation object
Occurs when a new reservation is requested by a renter and needs review.
reservation.custom.check_in_time
returns a Reservation object
Occurs at the time guests are allowed to arrive for this reservation.
reservation.custom.check_out_time
returns a Reservation object
Occurs at the time guests are expected to depart for this reservation.
reservation.custom.upcoming_check_in
returns a Reservation object
Occurs 1 week before arrival or at time of booking, ifwithin one week.
reservation.deleted
returns a Reservation object
Occurs when a reservation is deleted from an account.
reservation.updated
returns a Reservation object
Occurs when a reservation is updated - such as a change to the dates, property, or status.
reservation.updated.allocated
returns a Reservation object
Occurs when a unit-type reservation is allocated to a unit.
reservation.updated.approved
returns a Reservation object
Occurs when a requested reservation is approved.
reservation.updated.canceled
returns a Reservation object
Occurs when a reservation is canceled.
reservation.updated.declined
returns a Reservation object
Occurs when a requested reservation is declined.
reservation.updated.terms
returns a Reservation object
Occurs when reservation terms are set or modified.
reservation.updated.unallocated
returns a Reservation object
Occurs when a unit-type reservation is unallocated from a unit.
reservation.updated.uncanceled
returns a Reservation object
Occurs when a reservation is uncanceled.
worker.created
returns a Worker object
Occurs when a worker is created.
worker.deleted
returns a Worker object
Occurs when a worker is unassigned from a job.
worker.updated
returns a Worker object
Occurs when a worker is updated.

Paused Webhook Listeners

If attempts to notify a webhook listener continually fail, MyVR may pause the webhook listener and stop sending future webhook notifications. If your webhook listener is paused, you can reactivate it from the API Access section of your account.

Responses

MyVR uses standard HTTP response codes to indicate the status of an API request. A complete list of response codes and their meaning can be found below.

A high level breakdown of response codes goes as follows:

  • 2xx Successful
  • 3xx Redirect
  • 4xx Client Error
  • 5xx Server Error

Response Status Codes

200 Successful Your request was successful.
201 Created Your object was created successfully.
202 Accepted Your object modification was success.
204 No Content Returned when an object is deleted successfully.
301 Moved Permanently The resource you're requesting has been moved to a new location.
400 Bad Request An invalid request was submitted, likely with data in a format we do not accept or missing a required field.
401 Unauthorized Request The request does not contain a valid access key.
403 Forbidden You do not have the authorization to access the requested resource.
404 Not Found The object you have requested was not found.
429 Too Many Requests You have exceeded the maximum allowable number of requests.
50x Server Error MyVR encountered an error processing your request.

Error Response

The most common error you'll receive is a 400 response when creating or updating an object. When we receive a request with data we cannot validate, we do our best to return a response that helps you diagnose the error. In addition to returning an error status code, we'll return a JSON dictionary outlining all fields that had an error and the nature of the errors.

Example Error Response

HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 88
{
    "name": ["This field may not be blank."],
    "bedrooms": ["A valid integer is required."]
}

Pagination

When a list of objects is requested, a paginated result is returned. We use a limit/offset pagination approach.

Pagination Attributes

limit The maximum number of items to return.
Default: 20
offset The starting position of the result set in relation to the complete set of unpaginated objects.
Default: 0

Request 100 objects starting from the 200th object (ie objects 201-300)

curl https://api.myvr.com/v1/properties/?limit=100&offset=200 -u YOUR_API_KEY:

Properties

A Property Object represents a residence you rent. Property data is central to your MyVR account and is leveraged by many other objects in the system. It's the primary data you should provide when setting up your MyVR account.

The core attributes of a property are managed through this Property endpoint (e.g. number of bedrooms and bathrooms). Other related attributes are managed through separate API endpoints (e.g. rates, fees, photos etc.)

The Property Object



Attributes

uri
uri
The uniform resource identifier for the object.
id
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
Deprecated  
key
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
accessDescription
string
A description of which parts of the property the guests can access.
accommodates
integer
The number of people the property can accommodate/sleep.
active
boolean
Flag indicating if the property is active in your account. Only active properties can receive inquiries, take bookings, and appear on websites.
addressOne
string
The primary street address of the property.
addressTwo
string
The secondary street address of the property.
allowTurns
boolean
A flag that indicates the property can accept check-ins on the same day as check-outs for back to back reservations. This affects your calendar availability.
amenities
uri
A resource URI for a list of amenities associated with this property.
automaticallyApprove
boolean
Whether booking requests for this property are automatically approved.
baseNightlyRate
decimal
The base nightly rate for the property, determined from the property's rates.
baseRate
nested
The complete base rate for the property.
  • uri uri

    The uniform resource identifier for the object.

  • id string

    The unique identifier of the object in MyVR. This can be used to retrieve the object.

    Deprecated  
  • key string

    The unique identifier of the object in MyVR. This can be used to retrieve the object.

  • externalId string

    A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.

  • baseRate boolean

    A flag indicating this rate is the base rate for the property. Each property should have one base rate that is used when no other rates apply.

  • changeoverDay integer

    The changeover day is an optional settings that restricts rentals to weeklong increments. If a day of the week is specified, rentals must select this day as the check-in and check-out day. This is useful if you require Saturday to Saturday rentals, for example. ISO standard values are used: 1 = Monday, 2 = Tuesday, ... 7 = Sunday.

  • created datetime

    The ISO-8601 datetime the object was created in MyVR.

  • currency string

    The currency being used for this fee. This read only field is derived from the currency on the property this fee is associated with. The currency is represented as a 3 character ISO 4217 currency code.

  • endDate date

    The ending date for which the rate applies. Base rates do not require end dates, and if provided, are ignored. Repeating rates ignore the year portion of the end date.

  • minStay integer

    The minimum number of nights required for a reservation with this rate.

  • modified datetime

    The ISO-8601 datetime the object was last modified in MyVR.

  • monthly integer

    The amount to charge per month for this rate.

    Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.

  • name string

    The name of the rate, as presented to renters.

  • weekNight integer

    [Deprecated, use `nightly`]. The nightly rate for a day that is classified as a week night. A day is classified as a week night based on the weekendNights setting of the associated property.

    Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.

    Deprecated  
  • nightly integer

    The base nightly rate for for this rental period.

    Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.

  • position integer

    The position of this rate relative to other rates for this property. The value of position is used to determine the order in which rates are shown to renters.

  • property string

    The property the rate belongs to. For create/update operations, this can be the URI, id, key, or externalId of the property.

    For create/update operations, you must specify either the ratePlan or property but never both. If the ratePlan is not provided but the property is, the rate will be assigned to the default rate plan for the property, even if it's not the active rate plan for the property.

  • ratePlan string

    The plan this rate belongs to. For create/update operations, this can be the URI or key of the rate plan.

    For create/update operations, you must specify either the `ratePlan` or `property` but never both. If the `ratePlan` is not provided but the `property` is, the rate will be assigned to the default rate plan for the property, even if it's not the active rate plan for the property.

  • repeat boolean

    A flag indicating the rate repeats every year on the same start and end date (month and day only). If true, the year portion of startDate and endDate are ignored.

  • startDate date

    The starting date for which the rate applies. Base rates do not require start dates, and if provided, are ignored. Repeating rates ignore the year portion of the start date.

  • weekend integer

    The amount to charge for an entire weekend for this rate.Weekends are determined by the weekendNights setting of the associated property.

    Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.

  • weekendNight integer

    The nightly rate for a day that is classified as a weekend night. A day is classified as a weekend night based on the weekendNights setting of the associated property. If provided, this rate supersedes the nightly rate for weekendNights.

    Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.

  • weekly integer

    The amount to charge per week for this rate.

    Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.

bathrooms
decimal
The number of bathrooms in the property. Include half baths as 0.5, full baths as 1.0
bedrooms
integer
The number of bedrooms in the property.
bookingUrl
uri
A URL for starting the booking flow at this property.
buildingAccess
string
A description of how the building is accessed (i.e. lock box code), if applicable.
checkInMethod
choice
How guests check-in to the property, selected from the list of choices below.

smartlock Smart Lock
keypad Keypad
host Host
other Other
key Physical Key Provided
doorman Doorman
checkInInstructions
string
Instructions for your guests to check-in.
checkInTime
time
The standard check-in time for this property.
checkOutInstructions
string
Instructions for your guests to check-out.
checkOutTime
time
The standard check-out time for this property.
city
string
The city in which the property is located.
commissionStructure
nested
The commission structure this property is using, if set.
  • basis choice

    The basis of the commission, how it's calculated.

    flat Flat Rate Per Stay
    all Percentage of Rent, Fees, Taxes & Refundables
    rent_and_taxable Percentage of Rent & Taxable Fees
    other Other Default
    rent Percentage of Rent
    rent_and_fees Percentage of Rent & Fees
    total Percentage of Rent, Fees & Taxes
  • cost decimal

    The cost of this commission (eg: 10%, $100, etc), used to calculate the amount.

  • key string

    The unique identifier of the object in MyVR. This can be used to retrieve the object.

  • name string

    The name of the commission.

  • type choice

    The type of commission.

    application Application Commission
    other Other Default
    management Management Commission
    source Source Commission
    listing Listing Site Commission
countryCode
string
The two-letter ISO country code for the property.
created
datetime
The ISO-8601 datetime the object was created in MyVR.
currency
choice
The currency to use for all rates and fees. We expect a 3 character ISO 4217 currency code.

ARS Argentine Peso
AUD Australian Dollar
BHD Bahraini Dinar
BBD Barbados Dollar
BRL Brazilian Real
GBP British Pound Sterling
BND Brunei Dollar
CAD Canadian Dollar
CLP Chilean Peso
CNY Chinese Yuan
CRC Costa Rican Colon
CZK Czech Koruna
DKK Danish Krone
EUR Euro
GTQ Guatemalan Quetzal
HKD Hong Kong Dollar
HUF Hungarian Forint
ISK Icelandic Krona
INR Indian Rupee
IDR Indonesian Rupiah
ILS Israeli New Shekel
JMD Jamaican Dollar
JPY Japanese Yen
KZT Kazakhstani Tenge
KWD Kuwaiti Dinar
MYR Malaysian Ringgit
MUR Mauritian Rupee
MXN Mexican Peso
NPR Nepalese Rupee
TWD New Taiwan Dollar
NZD New Zealand Dollar
NOK Norwegian Krone
PKR Pakistani Rupee
PLN Polish Złoty
QAR Qatari Rial
RUB Russian Ruble
SAR Saudi Riyal
SGD Singapore Dollar
ZAR South African Rand
KRW South Korean Won
LKR Sri Lankan Rupee
SEK Swedish Krona
CHF Swiss Franc
THB Thai Baht
USD US Dollar Default
AED United Arab Emirates Dirham
customFields
string
description
string
A long form description of the property.
drivingDirections
string
Directions for how guests should drive to the property.
externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
feePlan
string
COMING SOON(presently read only). The Fee Plan this property should use. For create/update operations, this can be the URI or key of the Fee Plan.
headline
string
A short, catchy one sentence description of your property. This is used and required by some marketing channels.
houseRules
string
A breakdown of rules for renters of the property.
instantBookingsEnabled
boolean
Whether this property can be instantly booked.
lat
decimal
The latitude of the property, as determined from the provided address.
level
choice
The level of the property when using Unit-Type Inventory.A Property can either be a Building, a Unit-Type, or a Unit. Units are individual rooms/apartments/condos where guests stay (eg: 'Unit 301A'). Unit-Types are representative of a collection of units (eg: '2BD Apartment') that guests can book. Buildings are the physical structures located at a single address that contain the units.

building Building
unit-type Unit-Type
unit Unit Default
Feature: Unit-Type Inventory
localAreaDescription
string
A description of the local area.
lon
decimal
The longitude of the property, as determined from the provided address.
lowestNightlyRate
decimal
The lowest nightly rate for the property, determined from the property's rates.
manual
string
General manual for your guests on how to operate items in the house.
modified
datetime
The ISO-8601 datetime the object was last modified in MyVR.
name
string
The name of the property, as presented to renters.
owner
string
The contact who is the owner of the property.
parkingInformation
string
A description of on-property or nearby parking options.
postalCode
string
The postal code associated with the properties address.
ratePlan
string
COMING SOON(presently read only). The Rate Plan this property should use. For create/update operations, this can be the URI or key of the Rate Plan.
ratePlanLocked
boolean
Flag indicating if the current rate plan selection is locked. When the current rate plan selection is locked, calls made to the Property Rates Reset endpoint WILL update the rates on the appropriate rate plan but WILL NOT automatically select that rate plan for the property. Properties that have their rate plan selction locked require account holders to manually change the rate plan selection.
region
string
The geographical region/state/province of the property. EG: 'California'
shortCode
string
A 3 character short code for the property. Used as property identifier when generating reservation and quote keys.
size
integer
The size of the property in square feet.
slug
string
A human readable unique identifier for the property.
suitableElderly
choice
Is this property suitable for elderly renters?

inquire Inquire
unknown Unknown Default
yes Yes
no No
suitableEvents
choice
Is this property suitable for events?

inquire Inquire
unknown Unknown Default
yes Yes
no No
suitableGroups
choice
Is this property suitable for large group rentals?

inquire Inquire
unknown Unknown Default
yes Yes
no No
suitableHandicap
choice
Is this property suitable for handicap renters?

inquire Inquire
unknown Unknown Default
yes Yes
no No
suitableInfants
choice
Is this property suitable for renters with infants?

inquire Inquire
unknown Unknown Default
yes Yes
no No
suitableKids
choice
Is this property suitable for renters with kids?

inquire Inquire
unknown Unknown Default
yes Yes
no No
suitablePets
choice
Is this property suitable for renters with pets?

inquire Inquire
unknown Unknown Default
yes Yes
no No
suitableSmoking
choice
Is this property suitable for renters that smoke?

inquire Inquire
unknown Unknown Default
yes Yes
no No
transitDescription
string
A description of nearby transit options for guests.
type
choice
The type of property, selected from the list of choices below.

farmhouse Farmhouse
apartment Apartment
bed-and-breakfast Bed and Breakfast
villa Villa
estate Estate
mobile-home Mobile Home
house House Default
hotel Hotel
yacht Yacht
inn Inn
chalet Chalet
cabin Cabin
condo Condominium
cottage Cottage
townhouse Townhouse
castle Castle
other Other
boat Boat
houseboat Houseboat
weekendNights
string
The days of the week that count as weekend nights when calculating rates. ISO standard values are used: 1 = Monday, 2 = Tuesday, ... 7 = Sunday.
wifiNetwork
string
The name of the Wifi network for the property.
wifiPassword
string
The password for the Wifi network.

Example Response

{
    "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
    "id": "b6b0f2fe278f612b", 
    "key": "b6b0f2fe278f612b", 
    "accessDescription": null, 
    "accommodates": 11, 
    "active": false, 
    "addressOne": "11496 Zermatt Dr", 
    "addressTwo": null, 
    "allowTurns": true, 
    "amenities": "https://api.myvr.com/v1/property-amenities/?propertyId=b6b0f2fe278f612b", 
    "automaticallyApprove": false, 
    "baseNightlyRate": "395.00", 
    "baseRate": {
        "uri": "https://api.myvr.com/v1/rates/660c299d4785c32e/", 
        "id": "660c299d4785c32e", 
        "key": "660c299d4785c32e", 
        "externalId": null, 
        "baseRate": true, 
        "changeoverDay": null, 
        "created": "2019-01-19T08:02:36Z", 
        "currency": "USD", 
        "endDate": "2020-01-18", 
        "minStay": 3, 
        "modified": "2019-01-19T08:02:36Z", 
        "monthly": 0, 
        "name": "Base Rate", 
        "weekNight": 39500, 
        "nightly": 39500, 
        "position": 0, 
        "property": {
            "name": "API Demo Property", 
            "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
            "id": "b6b0f2fe278f612b", 
            "externalId": null, 
            "key": "b6b0f2fe278f612b", 
            "slug": "api-demo-property"
        }, 
        "ratePlan": {
            "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
            "key": "862caa3f5267602d", 
            "name": "Default Rates for Property"
        }, 
        "repeat": true, 
        "startDate": "2020-01-18", 
        "weekend": 0, 
        "weekendNight": 0, 
        "weekly": 250000
    }, 
    "bathrooms": "4.0", 
    "bedrooms": 4, 
    "bookingUrl": "https://myvr.com/reservation/redirect/booking/b6b0f2fe278f612b/", 
    "buildingAccess": null, 
    "checkInMethod": null, 
    "checkInInstructions": null, 
    "checkInTime": "16:00:00", 
    "checkOutInstructions": null, 
    "checkOutTime": "10:00:00", 
    "city": "Truckee", 
    "commissionStructure": null, 
    "countryCode": "US", 
    "created": "2016-01-19T00:01:48Z", 
    "currency": "USD", 
    "customFields": {}, 
    "description": "Luxurious living, scenic mountain setting, entertainment galore. Located on a quiet street in Tahoe Donner, our well equipped modern home is nestled into the wilderness. A babbling creek greets visitors approaching the front step as it collects into a small pond with a cascading waterfall. <br/>\n<br/>\nInside, over 3,000 sqft of luxurious living space divides itself between two floors. On the first floor, a beautiful kitchen with granite counters, gas stove and stainless steel appliances opens to a large great room centered around a wood burning fireplace and featuring 30' soaring ceilings. A spacious loft overlooks the great room, showcasing a large poker/card table. Upstairs features a large entertainment room, complete with wet bar, shuffleboard table, and state-of-the-art television setup with surround sound. The scenic backyard is accessible from a large deck featuring a new hot tub with seating for 7.", 
    "drivingDirections": null, 
    "externalId": null, 
    "feePlan": {
        "uri": "https://api.myvr.com/v1/fee-plans/4d1c44383755051b/", 
        "key": "4d1c44383755051b", 
        "name": "Default Fees for Listing"
    }, 
    "headline": "Beautiful Four Bedroom Lake Front Property", 
    "houseRules": null, 
    "instantBookingsEnabled": false, 
    "lat": "39.3422523000", 
    "level": "unit", 
    "localAreaDescription": "Tahoe Donner is a year round activity resort. The amenities include private beach/boat launching facilities, pools, recreation center, tennis, horseback riding, golf, downhill skiing as well as cross country skiing. Truckee is a historical mining town-having a western feel but also has museums, theaters, fine dining plus 2 large supermarkets-all less than 3 miles from the house. Our home is also located within a 15 minute drive to 4 major ski resorts. Downtown Reno is a short 40 minute drive away for those seeking a night on the town or the thrill of a Nevada casino.", 
    "lon": "-120.2271947000", 
    "lowestNightlyRate": "395.00", 
    "manual": "", 
    "modified": "2019-10-18T17:18:43Z", 
    "name": "API Demo Property", 
    "owner": null, 
    "parkingInformation": null, 
    "postalCode": "96161", 
    "ratePlan": {
        "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
        "key": "862caa3f5267602d", 
        "name": "Default Rates for Property"
    }, 
    "ratePlanLocked": false, 
    "region": "CA", 
    "shortCode": "API", 
    "size": 3000, 
    "slug": "api-demo-property", 
    "suitableElderly": "yes", 
    "suitableEvents": "unknown", 
    "suitableGroups": "yes", 
    "suitableHandicap": "no", 
    "suitableInfants": "unknown", 
    "suitableKids": "yes", 
    "suitablePets": "no", 
    "suitableSmoking": "no", 
    "transitDescription": null, 
    "type": "house", 
    "weekendNights": [
        5, 
        6
    ], 
    "wifiNetwork": null, 
    "wifiPassword": null
}

Create Property

Create a new property on your MyVR account. When a property is created, it will be assigned a key.

Newly created properties will start out inactive and can be activated from within your account.


Endpoint

POST https://api.myvr.com/v1/properties/




Arguments

accessDescription
string
A description of which parts of the property the guests can access.
accommodates
integer
The number of people the property can accommodate/sleep.
Default: 2  
addressOne
string
The primary street address of the property.
addressTwo
string
The secondary street address of the property.
allowTurns
boolean
A flag that indicates the property can accept check-ins on the same day as check-outs for back to back reservations. This affects your calendar availability.
Default: True  
bathrooms
decimal
The number of bathrooms in the property. Include half baths as 0.5, full baths as 1.0
buildingAccess
string
A description of how the building is accessed (i.e. lock box code), if applicable.
checkInMethod
choice
How guests check-in to the property, selected from the list of choices below.
checkInInstructions
string
Instructions for your guests to check-in.
checkInTime
time
The standard check-in time for this property.
Default: 4 p.m.  
checkOutInstructions
string
Instructions for your guests to check-out.
checkOutTime
time
The standard check-out time for this property.
Default: 10 a.m.  
city
string
The city in which the property is located.
countryCode
string
The two-letter ISO country code for the property.
currency
choice
The currency to use for all rates and fees. We expect a 3 character ISO 4217 currency code.
Default: USD  
customFields
string
description
string
A long form description of the property.
drivingDirections
string
Directions for how guests should drive to the property.
externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
headline
string
A short, catchy one sentence description of your property. This is used and required by some marketing channels.
houseRules
string
A breakdown of rules for renters of the property.
lat
decimal
The latitude of the property, as determined from the provided address.
level
choice
The level of the property when using Unit-Type Inventory.A Property can either be a Building, a Unit-Type, or a Unit. Units are individual rooms/apartments/condos where guests stay (eg: 'Unit 301A'). Unit-Types are representative of a collection of units (eg: '2BD Apartment') that guests can book. Buildings are the physical structures located at a single address that contain the units.
Default: unit  
localAreaDescription
string
A description of the local area.
lon
decimal
The longitude of the property, as determined from the provided address.
manual
string
General manual for your guests on how to operate items in the house.
name
string
The name of the property, as presented to renters.
Required  
owner
string
The contact who is the owner of the property.
parkingInformation
string
A description of on-property or nearby parking options.
postalCode
string
The postal code associated with the properties address.
region
string
The geographical region/state/province of the property. EG: 'California'
shortCode
string
A 3 character short code for the property. Used as property identifier when generating reservation and quote keys.
size
integer
The size of the property in square feet.
suitableElderly
choice
Is this property suitable for elderly renters?
Default: unknown  
suitableEvents
choice
Is this property suitable for events?
Default: unknown  
suitableGroups
choice
Is this property suitable for large group rentals?
Default: unknown  
suitableHandicap
choice
Is this property suitable for handicap renters?
Default: unknown  
suitableInfants
choice
Is this property suitable for renters with infants?
Default: unknown  
suitableKids
choice
Is this property suitable for renters with kids?
Default: unknown  
suitablePets
choice
Is this property suitable for renters with pets?
Default: unknown  
suitableSmoking
choice
Is this property suitable for renters that smoke?
Default: unknown  
transitDescription
string
A description of nearby transit options for guests.
type
choice
The type of property, selected from the list of choices below.
Default: house  
weekendNights
string
The days of the week that count as weekend nights when calculating rates. ISO standard values are used: 1 = Monday, 2 = Tuesday, ... 7 = Sunday.
Default: [5, 6]  
wifiNetwork
string
The name of the Wifi network for the property.
wifiPassword
string
The password for the Wifi network.


Example Request

curl https://api.myvr.com/v1/properties/ -u YOUR_API_KEY: 
	-d name="API Demo Property"


Response

If successfully created, a Property Object is returned with a newly assigned key. You can use this key to retrieve or update the Property in the future. If creation fails, an http error will be returned.


Example Response

{
    "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
    "id": "b6b0f2fe278f612b", 
    "key": "b6b0f2fe278f612b", 
    "accessDescription": null, 
    "accommodates": 11, 
    "active": false, 
    "addressOne": "11496 Zermatt Dr", 
    "addressTwo": null, 
    "allowTurns": true, 
    "amenities": "https://api.myvr.com/v1/property-amenities/?propertyId=b6b0f2fe278f612b", 
    "automaticallyApprove": false, 
    "baseNightlyRate": "395.00", 
    "baseRate": {
        "uri": "https://api.myvr.com/v1/rates/660c299d4785c32e/", 
        "id": "660c299d4785c32e", 
        "key": "660c299d4785c32e", 
        "externalId": null, 
        "baseRate": true, 
        "changeoverDay": null, 
        "created": "2019-01-19T08:02:36Z", 
        "currency": "USD", 
        "endDate": "2020-01-18", 
        "minStay": 3, 
        "modified": "2019-01-19T08:02:36Z", 
        "monthly": 0, 
        "name": "Base Rate", 
        "weekNight": 39500, 
        "nightly": 39500, 
        "position": 0, 
        "property": {
            "name": "API Demo Property", 
            "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
            "id": "b6b0f2fe278f612b", 
            "externalId": null, 
            "key": "b6b0f2fe278f612b", 
            "slug": "api-demo-property"
        }, 
        "ratePlan": {
            "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
            "key": "862caa3f5267602d", 
            "name": "Default Rates for Property"
        }, 
        "repeat": true, 
        "startDate": "2020-01-18", 
        "weekend": 0, 
        "weekendNight": 0, 
        "weekly": 250000
    }, 
    "bathrooms": "4.0", 
    "bedrooms": 4, 
    "bookingUrl": "https://myvr.com/reservation/redirect/booking/b6b0f2fe278f612b/", 
    "buildingAccess": null, 
    "checkInMethod": null, 
    "checkInInstructions": null, 
    "checkInTime": "16:00:00", 
    "checkOutInstructions": null, 
    "checkOutTime": "10:00:00", 
    "city": "Truckee", 
    "commissionStructure": null, 
    "countryCode": "US", 
    "created": "2016-01-19T00:01:48Z", 
    "currency": "USD", 
    "customFields": {}, 
    "description": "Luxurious living, scenic mountain setting, entertainment galore. Located on a quiet street in Tahoe Donner, our well equipped modern home is nestled into the wilderness. A babbling creek greets visitors approaching the front step as it collects into a small pond with a cascading waterfall. <br/>\n<br/>\nInside, over 3,000 sqft of luxurious living space divides itself between two floors. On the first floor, a beautiful kitchen with granite counters, gas stove and stainless steel appliances opens to a large great room centered around a wood burning fireplace and featuring 30' soaring ceilings. A spacious loft overlooks the great room, showcasing a large poker/card table. Upstairs features a large entertainment room, complete with wet bar, shuffleboard table, and state-of-the-art television setup with surround sound. The scenic backyard is accessible from a large deck featuring a new hot tub with seating for 7.", 
    "drivingDirections": null, 
    "externalId": null, 
    "feePlan": {
        "uri": "https://api.myvr.com/v1/fee-plans/4d1c44383755051b/", 
        "key": "4d1c44383755051b", 
        "name": "Default Fees for Listing"
    }, 
    "headline": "Beautiful Four Bedroom Lake Front Property", 
    "houseRules": null, 
    "instantBookingsEnabled": false, 
    "lat": "39.3422523000", 
    "level": "unit", 
    "localAreaDescription": "Tahoe Donner is a year round activity resort. The amenities include private beach/boat launching facilities, pools, recreation center, tennis, horseback riding, golf, downhill skiing as well as cross country skiing. Truckee is a historical mining town-having a western feel but also has museums, theaters, fine dining plus 2 large supermarkets-all less than 3 miles from the house. Our home is also located within a 15 minute drive to 4 major ski resorts. Downtown Reno is a short 40 minute drive away for those seeking a night on the town or the thrill of a Nevada casino.", 
    "lon": "-120.2271947000", 
    "lowestNightlyRate": "395.00", 
    "manual": "", 
    "modified": "2019-10-18T17:18:43Z", 
    "name": "API Demo Property", 
    "owner": null, 
    "parkingInformation": null, 
    "postalCode": "96161", 
    "ratePlan": {
        "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
        "key": "862caa3f5267602d", 
        "name": "Default Rates for Property"
    }, 
    "ratePlanLocked": false, 
    "region": "CA", 
    "shortCode": "API", 
    "size": 3000, 
    "slug": "api-demo-property", 
    "suitableElderly": "yes", 
    "suitableEvents": "unknown", 
    "suitableGroups": "yes", 
    "suitableHandicap": "no", 
    "suitableInfants": "unknown", 
    "suitableKids": "yes", 
    "suitablePets": "no", 
    "suitableSmoking": "no", 
    "transitDescription": null, 
    "type": "house", 
    "weekendNights": [
        5, 
        6
    ], 
    "wifiNetwork": null, 
    "wifiPassword": null
}

Retrieve Property

Retrieve the details of an existing Property.

Endpoint

GET https://api.myvr.com/v1/properties/{KEY}/




Arguments

key
string
The identifier of the Property to retrieve. The identifier can be a MyVR Property key, which is provided after you create a Property, or an externalId you've set on the Property.
Required  


Example Request

curl https://api.myvr.com/v1/properties/{KEY}/ -u YOUR_API_KEY: 


Response

Returns a Property Object that matches the key or externalId.


Example Response

{
    "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
    "id": "b6b0f2fe278f612b", 
    "key": "b6b0f2fe278f612b", 
    "accessDescription": null, 
    "accommodates": 11, 
    "active": false, 
    "addressOne": "11496 Zermatt Dr", 
    "addressTwo": null, 
    "allowTurns": true, 
    "amenities": "https://api.myvr.com/v1/property-amenities/?propertyId=b6b0f2fe278f612b", 
    "automaticallyApprove": false, 
    "baseNightlyRate": "395.00", 
    "baseRate": {
        "uri": "https://api.myvr.com/v1/rates/660c299d4785c32e/", 
        "id": "660c299d4785c32e", 
        "key": "660c299d4785c32e", 
        "externalId": null, 
        "baseRate": true, 
        "changeoverDay": null, 
        "created": "2019-01-19T08:02:36Z", 
        "currency": "USD", 
        "endDate": "2020-01-18", 
        "minStay": 3, 
        "modified": "2019-01-19T08:02:36Z", 
        "monthly": 0, 
        "name": "Base Rate", 
        "weekNight": 39500, 
        "nightly": 39500, 
        "position": 0, 
        "property": {
            "name": "API Demo Property", 
            "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
            "id": "b6b0f2fe278f612b", 
            "externalId": null, 
            "key": "b6b0f2fe278f612b", 
            "slug": "api-demo-property"
        }, 
        "ratePlan": {
            "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
            "key": "862caa3f5267602d", 
            "name": "Default Rates for Property"
        }, 
        "repeat": true, 
        "startDate": "2020-01-18", 
        "weekend": 0, 
        "weekendNight": 0, 
        "weekly": 250000
    }, 
    "bathrooms": "4.0", 
    "bedrooms": 4, 
    "bookingUrl": "https://myvr.com/reservation/redirect/booking/b6b0f2fe278f612b/", 
    "buildingAccess": null, 
    "checkInMethod": null, 
    "checkInInstructions": null, 
    "checkInTime": "16:00:00", 
    "checkOutInstructions": null, 
    "checkOutTime": "10:00:00", 
    "city": "Truckee", 
    "commissionStructure": null, 
    "countryCode": "US", 
    "created": "2016-01-19T00:01:48Z", 
    "currency": "USD", 
    "customFields": {}, 
    "description": "Luxurious living, scenic mountain setting, entertainment galore. Located on a quiet street in Tahoe Donner, our well equipped modern home is nestled into the wilderness. A babbling creek greets visitors approaching the front step as it collects into a small pond with a cascading waterfall. <br/>\n<br/>\nInside, over 3,000 sqft of luxurious living space divides itself between two floors. On the first floor, a beautiful kitchen with granite counters, gas stove and stainless steel appliances opens to a large great room centered around a wood burning fireplace and featuring 30' soaring ceilings. A spacious loft overlooks the great room, showcasing a large poker/card table. Upstairs features a large entertainment room, complete with wet bar, shuffleboard table, and state-of-the-art television setup with surround sound. The scenic backyard is accessible from a large deck featuring a new hot tub with seating for 7.", 
    "drivingDirections": null, 
    "externalId": null, 
    "feePlan": {
        "uri": "https://api.myvr.com/v1/fee-plans/4d1c44383755051b/", 
        "key": "4d1c44383755051b", 
        "name": "Default Fees for Listing"
    }, 
    "headline": "Beautiful Four Bedroom Lake Front Property", 
    "houseRules": null, 
    "instantBookingsEnabled": false, 
    "lat": "39.3422523000", 
    "level": "unit", 
    "localAreaDescription": "Tahoe Donner is a year round activity resort. The amenities include private beach/boat launching facilities, pools, recreation center, tennis, horseback riding, golf, downhill skiing as well as cross country skiing. Truckee is a historical mining town-having a western feel but also has museums, theaters, fine dining plus 2 large supermarkets-all less than 3 miles from the house. Our home is also located within a 15 minute drive to 4 major ski resorts. Downtown Reno is a short 40 minute drive away for those seeking a night on the town or the thrill of a Nevada casino.", 
    "lon": "-120.2271947000", 
    "lowestNightlyRate": "395.00", 
    "manual": "", 
    "modified": "2019-10-18T17:18:43Z", 
    "name": "API Demo Property", 
    "owner": null, 
    "parkingInformation": null, 
    "postalCode": "96161", 
    "ratePlan": {
        "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
        "key": "862caa3f5267602d", 
        "name": "Default Rates for Property"
    }, 
    "ratePlanLocked": false, 
    "region": "CA", 
    "shortCode": "API", 
    "size": 3000, 
    "slug": "api-demo-property", 
    "suitableElderly": "yes", 
    "suitableEvents": "unknown", 
    "suitableGroups": "yes", 
    "suitableHandicap": "no", 
    "suitableInfants": "unknown", 
    "suitableKids": "yes", 
    "suitablePets": "no", 
    "suitableSmoking": "no", 
    "transitDescription": null, 
    "type": "house", 
    "weekendNights": [
        5, 
        6
    ], 
    "wifiNetwork": null, 
    "wifiPassword": null
}

Update Property

Update data on an existing Property. Specify the Property to update by key or externalId in the URL.

Endpoint

PUT or PATCH https://api.myvr.com/v1/properties/{KEY}/




Arguments

key
string
The identifier of the Property to update. The identifier can be a MyVR Property key, which is provided after you create a Property, or an externalId you've set on the Property.
accessDescription
string
A description of which parts of the property the guests can access.
accommodates
integer
The number of people the property can accommodate/sleep.
addressOne
string
The primary street address of the property.
addressTwo
string
The secondary street address of the property.
allowTurns
boolean
A flag that indicates the property can accept check-ins on the same day as check-outs for back to back reservations. This affects your calendar availability.
bathrooms
decimal
The number of bathrooms in the property. Include half baths as 0.5, full baths as 1.0
buildingAccess
string
A description of how the building is accessed (i.e. lock box code), if applicable.
checkInMethod
choice
How guests check-in to the property, selected from the list of choices below.
checkInInstructions
string
Instructions for your guests to check-in.
checkInTime
time
The standard check-in time for this property.
checkOutInstructions
string
Instructions for your guests to check-out.
checkOutTime
time
The standard check-out time for this property.
city
string
The city in which the property is located.
countryCode
string
The two-letter ISO country code for the property.
currency
choice
The currency to use for all rates and fees. We expect a 3 character ISO 4217 currency code.
customFields
string
description
string
A long form description of the property.
drivingDirections
string
Directions for how guests should drive to the property.
externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
headline
string
A short, catchy one sentence description of your property. This is used and required by some marketing channels.
houseRules
string
A breakdown of rules for renters of the property.
lat
decimal
The latitude of the property, as determined from the provided address.
level
choice
The level of the property when using Unit-Type Inventory.A Property can either be a Building, a Unit-Type, or a Unit. Units are individual rooms/apartments/condos where guests stay (eg: 'Unit 301A'). Unit-Types are representative of a collection of units (eg: '2BD Apartment') that guests can book. Buildings are the physical structures located at a single address that contain the units.
localAreaDescription
string
A description of the local area.
lon
decimal
The longitude of the property, as determined from the provided address.
manual
string
General manual for your guests on how to operate items in the house.
name
string
The name of the property, as presented to renters.
owner
string
The contact who is the owner of the property.
parkingInformation
string
A description of on-property or nearby parking options.
postalCode
string
The postal code associated with the properties address.
region
string
The geographical region/state/province of the property. EG: 'California'
shortCode
string
A 3 character short code for the property. Used as property identifier when generating reservation and quote keys.
size
integer
The size of the property in square feet.
suitableElderly
choice
Is this property suitable for elderly renters?
suitableEvents
choice
Is this property suitable for events?
suitableGroups
choice
Is this property suitable for large group rentals?
suitableHandicap
choice
Is this property suitable for handicap renters?
suitableInfants
choice
Is this property suitable for renters with infants?
suitableKids
choice
Is this property suitable for renters with kids?
suitablePets
choice
Is this property suitable for renters with pets?
suitableSmoking
choice
Is this property suitable for renters that smoke?
transitDescription
string
A description of nearby transit options for guests.
type
choice
The type of property, selected from the list of choices below.
weekendNights
string
The days of the week that count as weekend nights when calculating rates. ISO standard values are used: 1 = Monday, 2 = Tuesday, ... 7 = Sunday.
wifiNetwork
string
The name of the Wifi network for the property.
wifiPassword
string
The password for the Wifi network.


Example Request

curl https://api.myvr.com/v1/properties/{KEY}/ -u YOUR_API_KEY:  -X PATCH
	-d accessDescription=null


Response

If successfully updated, a Property Object is returned with the updates applied.


Example Response

{
    "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
    "id": "b6b0f2fe278f612b", 
    "key": "b6b0f2fe278f612b", 
    "accessDescription": null, 
    "accommodates": 11, 
    "active": false, 
    "addressOne": "11496 Zermatt Dr", 
    "addressTwo": null, 
    "allowTurns": true, 
    "amenities": "https://api.myvr.com/v1/property-amenities/?propertyId=b6b0f2fe278f612b", 
    "automaticallyApprove": false, 
    "baseNightlyRate": "395.00", 
    "baseRate": {
        "uri": "https://api.myvr.com/v1/rates/660c299d4785c32e/", 
        "id": "660c299d4785c32e", 
        "key": "660c299d4785c32e", 
        "externalId": null, 
        "baseRate": true, 
        "changeoverDay": null, 
        "created": "2019-01-19T08:02:36Z", 
        "currency": "USD", 
        "endDate": "2020-01-18", 
        "minStay": 3, 
        "modified": "2019-01-19T08:02:36Z", 
        "monthly": 0, 
        "name": "Base Rate", 
        "weekNight": 39500, 
        "nightly": 39500, 
        "position": 0, 
        "property": {
            "name": "API Demo Property", 
            "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
            "id": "b6b0f2fe278f612b", 
            "externalId": null, 
            "key": "b6b0f2fe278f612b", 
            "slug": "api-demo-property"
        }, 
        "ratePlan": {
            "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
            "key": "862caa3f5267602d", 
            "name": "Default Rates for Property"
        }, 
        "repeat": true, 
        "startDate": "2020-01-18", 
        "weekend": 0, 
        "weekendNight": 0, 
        "weekly": 250000
    }, 
    "bathrooms": "4.0", 
    "bedrooms": 4, 
    "bookingUrl": "https://myvr.com/reservation/redirect/booking/b6b0f2fe278f612b/", 
    "buildingAccess": null, 
    "checkInMethod": null, 
    "checkInInstructions": null, 
    "checkInTime": "16:00:00", 
    "checkOutInstructions": null, 
    "checkOutTime": "10:00:00", 
    "city": "Truckee", 
    "commissionStructure": null, 
    "countryCode": "US", 
    "created": "2016-01-19T00:01:48Z", 
    "currency": "USD", 
    "customFields": {}, 
    "description": "Luxurious living, scenic mountain setting, entertainment galore. Located on a quiet street in Tahoe Donner, our well equipped modern home is nestled into the wilderness. A babbling creek greets visitors approaching the front step as it collects into a small pond with a cascading waterfall. <br/>\n<br/>\nInside, over 3,000 sqft of luxurious living space divides itself between two floors. On the first floor, a beautiful kitchen with granite counters, gas stove and stainless steel appliances opens to a large great room centered around a wood burning fireplace and featuring 30' soaring ceilings. A spacious loft overlooks the great room, showcasing a large poker/card table. Upstairs features a large entertainment room, complete with wet bar, shuffleboard table, and state-of-the-art television setup with surround sound. The scenic backyard is accessible from a large deck featuring a new hot tub with seating for 7.", 
    "drivingDirections": null, 
    "externalId": null, 
    "feePlan": {
        "uri": "https://api.myvr.com/v1/fee-plans/4d1c44383755051b/", 
        "key": "4d1c44383755051b", 
        "name": "Default Fees for Listing"
    }, 
    "headline": "Beautiful Four Bedroom Lake Front Property", 
    "houseRules": null, 
    "instantBookingsEnabled": false, 
    "lat": "39.3422523000", 
    "level": "unit", 
    "localAreaDescription": "Tahoe Donner is a year round activity resort. The amenities include private beach/boat launching facilities, pools, recreation center, tennis, horseback riding, golf, downhill skiing as well as cross country skiing. Truckee is a historical mining town-having a western feel but also has museums, theaters, fine dining plus 2 large supermarkets-all less than 3 miles from the house. Our home is also located within a 15 minute drive to 4 major ski resorts. Downtown Reno is a short 40 minute drive away for those seeking a night on the town or the thrill of a Nevada casino.", 
    "lon": "-120.2271947000", 
    "lowestNightlyRate": "395.00", 
    "manual": "", 
    "modified": "2019-10-18T17:18:43Z", 
    "name": "API Demo Property", 
    "owner": null, 
    "parkingInformation": null, 
    "postalCode": "96161", 
    "ratePlan": {
        "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
        "key": "862caa3f5267602d", 
        "name": "Default Rates for Property"
    }, 
    "ratePlanLocked": false, 
    "region": "CA", 
    "shortCode": "API", 
    "size": 3000, 
    "slug": "api-demo-property", 
    "suitableElderly": "yes", 
    "suitableEvents": "unknown", 
    "suitableGroups": "yes", 
    "suitableHandicap": "no", 
    "suitableInfants": "unknown", 
    "suitableKids": "yes", 
    "suitablePets": "no", 
    "suitableSmoking": "no", 
    "transitDescription": null, 
    "type": "house", 
    "weekendNights": [
        5, 
        6
    ], 
    "wifiNetwork": null, 
    "wifiPassword": null
}

Delete Property

Delete a Property from your MyVR account. This is a permanent operation that cannot be undone, be very careful.

Endpoint

DELETE https://api.myvr.com/v1/properties/{KEY}/




Arguments

key
string
The identifier of the Property to delete. The identifier can be a MyVR Property key, which is provided after you create a Property, or an externalId you've set on the Property.
Required  


Example Request

curl https://api.myvr.com/v1/properties/{KEY}/ -u YOUR_API_KEY:  -X DELETE


Response

If the Property is deleted successfully, a http status code of 204 will be returned with an empty result. If an error occurs, we'll return an http status code reflective of the error.


Example Response

{}

List Properties

Returns a list of properties from the account. The properties are returned in sorted order, with the most recent properties appearing first.

Endpoint

GET https://api.myvr.com/v1/properties/




Arguments

id
string
Find results by id, uri, or externalId.
Optional  
modified
string
Find results modified after this date and time.
Optional  
name
string
Search for property by name.
Optional  
accommodates
integer
Filter properties by the minimum number of accommodated guests.
Optional  
group
string
Filter properties belonging to the specified group. Groups can be identified by id or externalId. Multiple groups can be specified using a comma delimiter.
Optional  
owner
string
Filter properties belonging to the specified owner. Owners can be identified by id or externalId. Multiple owners can be specified using a comma delimiter.
Optional  
active
boolean
Filter properties by their active status.
Optional  
instantBookingsEnabled
boolean
Filter the list of properties by ability to be instantly booked. This field is cached and updated asynchronously, so may have slight lag behind real time data.
Optional  
automaticallyApprove
boolean
Filter properties by whether their bookings are instantly approved.
Optional  
dates
string
Show properties that are available during a given date range. The date range must be given as an ISO_8601 time interval: YYYY-MM-DD/YYYY-MM-DD
Optional  
minBedrooms
integer
Filter properties with a number of bedrooms greater than or equal to the specified minimum.
Optional  
maxBedrooms
integer
Filter properties with a number of bedrooms less than or equal to the specified maximum.
Optional  
minBathrooms
integer
Filter properties with a number of bathrooms greater than or equal to the specified minimum.
Optional  
maxBathrooms
integer
Filter properties with a number of bathrooms less than or equal to the specified maximum.
Optional  
minLowestNightlyRate
integer
Filter properties with a lowest nightly rate greater than or equal to the specified minimum.
Optional  
maxLowestNightlyRate
integer
Filter properties with a lowest nightly rate less than or equal to the specified maximum.
Optional  
minBaseNightlyRate
integer
Filter properties with a base nightly rate greater than or equal to the specified minimum.
Optional  
maxBaseNightlyRate
integer
Filter properties with a base nightly rate less than or equal to the specified maximum.
Optional  
minLatitude
integer
Filter properties with a latitude greater than or equal to the specified minimum.
Optional  
maxLatitude
integer
Filter properties with a latitude less than or equal to the specified maximum.
Optional  
minLongitude
integer
Filter properties with a longitude greater than or equal to the specified minimum.
Optional  
maxLongitude
integer
Filter properties with a longitude less than or equal to the specified maximum.
Optional  
orderBy
string
Sort the property results by the field name provided here. Valid options are: name, key, created, externalId, lowestNightlyRate, baseNightlyRate, groupPosition.

Note: filtering by groupPosition requires passing in a group filter.
Optional  


Example Request

curl https://api.myvr.com/v1/properties/ -u YOUR_API_KEY: 


Response

Returns a list of Properties from the account. The Properties are returned in sorted order, with the most recent Properties appearing first.


Example Response

{
    "count": 100, 
    "limit": 25, 
    "offset": 25, 
    "next": "https://api.myvr.com/v1/properties/?offset=50", 
    "previous": "https://api.myvr.com/v1/properties/?offset=0", 
    "results": [
        {
            "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
            "id": "b6b0f2fe278f612b", 
            "key": "b6b0f2fe278f612b", 
            "accessDescription": null, 
            "accommodates": 11, 
            "active": false, 
            "addressOne": "11496 Zermatt Dr", 
            "addressTwo": null, 
            "allowTurns": true, 
            "amenities": "https://api.myvr.com/v1/property-amenities/?propertyId=b6b0f2fe278f612b", 
            "automaticallyApprove": false, 
            "baseNightlyRate": "395.00", 
            "baseRate": {
                "uri": "https://api.myvr.com/v1/rates/660c299d4785c32e/", 
                "id": "660c299d4785c32e", 
                "key": "660c299d4785c32e", 
                "externalId": null, 
                "baseRate": true, 
                "changeoverDay": null, 
                "created": "2019-01-19T08:02:36Z", 
                "currency": "USD", 
                "endDate": "2020-01-18", 
                "minStay": 3, 
                "modified": "2019-01-19T08:02:36Z", 
                "monthly": 0, 
                "name": "Base Rate", 
                "weekNight": 39500, 
                "nightly": 39500, 
                "position": 0, 
                "property": {
                    "name": "API Demo Property", 
                    "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
                    "id": "b6b0f2fe278f612b", 
                    "externalId": null, 
                    "key": "b6b0f2fe278f612b", 
                    "slug": "api-demo-property"
                }, 
                "ratePlan": {
                    "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
                    "key": "862caa3f5267602d", 
                    "name": "Default Rates for Property"
                }, 
                "repeat": true, 
                "startDate": "2020-01-18", 
                "weekend": 0, 
                "weekendNight": 0, 
                "weekly": 250000
            }, 
            "bathrooms": "4.0", 
            "bedrooms": 4, 
            "bookingUrl": "https://myvr.com/reservation/redirect/booking/b6b0f2fe278f612b/", 
            "buildingAccess": null, 
            "checkInMethod": null, 
            "checkInInstructions": null, 
            "checkInTime": "16:00:00", 
            "checkOutInstructions": null, 
            "checkOutTime": "10:00:00", 
            "city": "Truckee", 
            "commissionStructure": null, 
            "countryCode": "US", 
            "created": "2016-01-19T00:01:48Z", 
            "currency": "USD", 
            "customFields": {}, 
            "description": "Luxurious living, scenic mountain setting, entertainment galore. Located on a quiet street in Tahoe Donner, our well equipped modern home is nestled into the wilderness. A babbling creek greets visitors approaching the front step as it collects into a small pond with a cascading waterfall. <br/>\n<br/>\nInside, over 3,000 sqft of luxurious living space divides itself between two floors. On the first floor, a beautiful kitchen with granite counters, gas stove and stainless steel appliances opens to a large great room centered around a wood burning fireplace and featuring 30' soaring ceilings. A spacious loft overlooks the great room, showcasing a large poker/card table. Upstairs features a large entertainment room, complete with wet bar, shuffleboard table, and state-of-the-art television setup with surround sound. The scenic backyard is accessible from a large deck featuring a new hot tub with seating for 7.", 
            "drivingDirections": null, 
            "externalId": null, 
            "feePlan": {
                "uri": "https://api.myvr.com/v1/fee-plans/4d1c44383755051b/", 
                "key": "4d1c44383755051b", 
                "name": "Default Fees for Listing"
            }, 
            "headline": "Beautiful Four Bedroom Lake Front Property", 
            "houseRules": null, 
            "instantBookingsEnabled": false, 
            "lat": "39.3422523000", 
            "level": "unit", 
            "localAreaDescription": "Tahoe Donner is a year round activity resort. The amenities include private beach/boat launching facilities, pools, recreation center, tennis, horseback riding, golf, downhill skiing as well as cross country skiing. Truckee is a historical mining town-having a western feel but also has museums, theaters, fine dining plus 2 large supermarkets-all less than 3 miles from the house. Our home is also located within a 15 minute drive to 4 major ski resorts. Downtown Reno is a short 40 minute drive away for those seeking a night on the town or the thrill of a Nevada casino.", 
            "lon": "-120.2271947000", 
            "lowestNightlyRate": "395.00", 
            "manual": "", 
            "modified": "2019-10-18T17:18:43Z", 
            "name": "API Demo Property", 
            "owner": null, 
            "parkingInformation": null, 
            "postalCode": "96161", 
            "ratePlan": {
                "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
                "key": "862caa3f5267602d", 
                "name": "Default Rates for Property"
            }, 
            "ratePlanLocked": false, 
            "region": "CA", 
            "shortCode": "API", 
            "size": 3000, 
            "slug": "api-demo-property", 
            "suitableElderly": "yes", 
            "suitableEvents": "unknown", 
            "suitableGroups": "yes", 
            "suitableHandicap": "no", 
            "suitableInfants": "unknown", 
            "suitableKids": "yes", 
            "suitablePets": "no", 
            "suitableSmoking": "no", 
            "transitDescription": null, 
            "type": "house", 
            "weekendNights": [
                5, 
                6
            ], 
            "wifiNetwork": null, 
            "wifiPassword": null
        }
    ]
}
NOTE: The above example response only shows one result for brevity, whereas the meta info indicates it should have 25.

Reset Property Rates

Please see Rate Plan - Reset Rates Endpoint for a simpler way to manage rates on a rate plan. This endpoint is maintained for backward compatibility, which leads to an unfortunate level of complexity, documented below.

Special bulk endpoint to reset rates for a property in an atomic request. Submit a collection of Rate Objects for an individual property, and all existing rates for that property will be replaced by those provided. The collection of rates should be submitted to the endpoint as an array of Rate Objects using an HTTP PUT.

The behavior of this endpoint varies depending on how you connect to it:

  • 3rd Party Applications Using OAuth

    When this endpoint is called by 3rd party applications using an OAuth connection, we'll reset the rates on a Rate Plan specific to your application, creating a new rate plan for this property if needed. We will automatically set the application Rate Plan as the active rate plan for the property, provided it's not locked.

  • API Keys

    When calling this endpoint using an API Key, we'll reset the rates on the default Rate Plan for the property. We will automatically set default Rate Plan as the active rate plan for the property, provided it's not locked.

Property Rate Plan Selection Locks

Account holders have the option to lock which rate plan is selected for a property, preventing API calls from changing the selected rate plan. When the selected rate plan for a property is locked, calls to this endpoint WILL update the rates on the appropriate rate plan as expected (see above), but WILL NOT automatically switch the property to use the updated rate plan.

See the field ratePlanLocked on the Property Object to determine if a property has locked the selection of it's rate plan.


Endpoint

PUT https://api.myvr.com/v1/properties/{KEY}/rates/




Arguments

externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
baseRate
boolean
A flag indicating this rate is the base rate for the property. Each property should have one base rate that is used when no other rates apply.
changeoverDay
integer
The changeover day is an optional settings that restricts rentals to weeklong increments. If a day of the week is specified, rentals must select this day as the check-in and check-out day. This is useful if you require Saturday to Saturday rentals, for example. ISO standard values are used: 1 = Monday, 2 = Tuesday, ... 7 = Sunday.
Min Value: 1   Max Value: 7  
endDate
date
The ending date for which the rate applies. Base rates do not require end dates, and if provided, are ignored. Repeating rates ignore the year portion of the end date.
minStay
integer
The minimum number of nights required for a reservation with this rate.
monthly
integer
The amount to charge per month for this rate.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
name
string
The name of the rate, as presented to renters.
weekNight
integer
[Deprecated, use `nightly`]. The nightly rate for a day that is classified as a week night. A day is classified as a week night based on the weekendNights setting of the associated property.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
Deprecated  
nightly
integer
The base nightly rate for for this rental period.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
position
integer
The position of this rate relative to other rates for this property. The value of position is used to determine the order in which rates are shown to renters.
property
string
The property the rate belongs to. For create/update operations, this can be the URI, id, key, or externalId of the property.

For create/update operations, you must specify either the ratePlan or property but never both. If the ratePlan is not provided but the property is, the rate will be assigned to the default rate plan for the property, even if it's not the active rate plan for the property.
ratePlan
string
The plan this rate belongs to. For create/update operations, this can be the URI or key of the rate plan.

For create/update operations, you must specify either the `ratePlan` or `property` but never both. If the `ratePlan` is not provided but the `property` is, the rate will be assigned to the default rate plan for the property, even if it's not the active rate plan for the property.
repeat
boolean
A flag indicating the rate repeats every year on the same start and end date (month and day only). If true, the year portion of startDate and endDate are ignored.
startDate
date
The starting date for which the rate applies. Base rates do not require start dates, and if provided, are ignored. Repeating rates ignore the year portion of the start date.
weekend
integer
The amount to charge for an entire weekend for this rate.Weekends are determined by the weekendNights setting of the associated property.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
weekendNight
integer
The nightly rate for a day that is classified as a weekend night. A day is classified as a weekend night based on the weekendNights setting of the associated property. If provided, this rate supersedes the nightly rate for weekendNights.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
weekly
integer
The amount to charge per week for this rate.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.


Example Request

curl https://api.myvr.com/v1/properties/{KEY}/rates/ -u YOUR_API_KEY:  -X PUT


Response

If successful, all rates on the rate plan will be replace with the rates provided. If the rate plan on the property isn't currently locked, the updated rate plan will automatically be assigned to the property, updating the rates on the property.



Photos

A collection of photos of your property. These can be displayed on your website(s), 3rd party listings, and more.

The Photo Object



Attributes

uri
uri
The uniform resource identifier for the object.
id
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
Deprecated  
key
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
altText
string
Text that can be used to convey the same message as the image.
caption
string
A caption to accompany the image.
created
datetime
The ISO-8601 datetime the object was created in MyVR.
downloadUrl
string
A public URL on the MyVR platform where this photo can be downloaded from. When saving a new photo to MyVR, a new downloadUrl will be immediately returned, but it may take a few minutes for the photo to be processed before it works.
externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
modified
datetime
The ISO-8601 datetime the object was last modified in MyVR.
position
integer
The position of the photo. Photos are sorted by position on various marketing channels.
property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.
title
string
A title for the photo.
uploadError
string
If a photo upload fails, we'll report the error that occurred here.
uploadStatus
choice
The status of the photo upload. When you create a photo and provide a sourceUrl, we create the photo object within the initial request cycle and asynchronously trigger an upload of the photo to MyVR. The upload process happens outside of the initial API request cycle and will succeed or fail at a later point in time. You can check on the status of the asynchronous upload at any time after creation by fetching the photo and checking the uploadStatus, which will eventually be in a successful or failed state.


successful Successful
failed Failed
processing Processing
pending Pending Default

Example Response

{
    "uri": "https://api.myvr.com/v1/photos/ca4bef0f8c60be55158aa2250e9d8330/", 
    "id": "ca4bef0f8c60be55158aa2250e9d8330", 
    "key": "ca4bef0f8c60be55158aa2250e9d8330", 
    "altText": null, 
    "caption": null, 
    "created": "2016-01-19T00:11:30Z", 
    "downloadUrl": "//image.myvr.com/b45b80f1d8764037/729dc028c692c4a0/house-front.jpg", 
    "externalId": null, 
    "modified": "2016-08-09T19:03:38Z", 
    "position": 2, 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "title": null, 
    "uploadError": "", 
    "uploadStatus": "successful"
}

Create Photo

Create a new photo on your MyVR account. When a photo is created, it will be assigned a key.

When you create a photo and provide a sourceUrl, we create the Photo Object within the initial request cycle and asynchronously trigger an upload of the photo to MyVR. The upload process happens outside of the initial API request cycle and will succeed or fail at a later point in time.

You can check on the status of the asynchronous upload at any time after creation by fetching the photo and checking the uploadStatus, which will eventually be in a successful or failed state.


Endpoint

POST https://api.myvr.com/v1/photos/




Arguments

altText
string
Text that can be used to convey the same message as the image.
caption
string
A caption to accompany the image.
externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
position
integer
The position of the photo. Photos are sorted by position on various marketing channels.
property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.
Required  
sourceUrl
url
The source URL where the photo can be downloaded and imported from. This URL should be publicly accessible.
Required  
title
string
A title for the photo.


Example Request

curl https://api.myvr.com/v1/photos/ -u YOUR_API_KEY: 
	-d property="b6b0f2fe278f612b"
	-d sourceUrl=""


Response

If successfully created, a Photo Object is returned with a newly assigned key. You can use this key to retrieve or update the photo in the future. If creation fails, an http error will be returned.

When you create a photo and provide a sourceUrl, we create the Photo Object within the initial request cycle and asynchronously trigger an upload of the photo to MyVR. The upload process happens outside of the initial API request cycle and will succeed or fail at a later point in time.

You can check on the status of the asynchronous upload at any time after creation by fetching the photo and checking the uploadStatus, which will eventually be in a successful or failed state.



Example Response

{
    "uri": "https://api.myvr.com/v1/photos/ca4bef0f8c60be55158aa2250e9d8330/", 
    "id": "ca4bef0f8c60be55158aa2250e9d8330", 
    "key": "ca4bef0f8c60be55158aa2250e9d8330", 
    "altText": null, 
    "caption": null, 
    "created": "2016-01-19T00:11:30Z", 
    "downloadUrl": "//image.myvr.com/b45b80f1d8764037/729dc028c692c4a0/house-front.jpg", 
    "externalId": null, 
    "modified": "2016-08-09T19:03:38Z", 
    "position": 2, 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "title": null, 
    "uploadError": "", 
    "uploadStatus": "successful"
}

Retrieve Photo

Retrieve the details of an existing Photo.

Endpoint

GET https://api.myvr.com/v1/photos/{KEY}/




Arguments

key
string
The identifier of the Photo to retrieve. The identifier can be a MyVR Photo key, which is provided after you create a Photo, or an externalId you've set on the Photo.
Required  


Example Request

curl https://api.myvr.com/v1/photos/{KEY}/ -u YOUR_API_KEY: 


Response

Returns a Photo Object that matches the key or externalId.


Example Response

{
    "uri": "https://api.myvr.com/v1/photos/ca4bef0f8c60be55158aa2250e9d8330/", 
    "id": "ca4bef0f8c60be55158aa2250e9d8330", 
    "key": "ca4bef0f8c60be55158aa2250e9d8330", 
    "altText": null, 
    "caption": null, 
    "created": "2016-01-19T00:11:30Z", 
    "downloadUrl": "//image.myvr.com/b45b80f1d8764037/729dc028c692c4a0/house-front.jpg", 
    "externalId": null, 
    "modified": "2016-08-09T19:03:38Z", 
    "position": 2, 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "title": null, 
    "uploadError": "", 
    "uploadStatus": "successful"
}

Update Photo

Update data on an existing Photo. Specify the Photo to update by key or externalId in the URL.

Endpoint

PUT or PATCH https://api.myvr.com/v1/photos/{KEY}/




Arguments

key
string
The identifier of the Photo to update. The identifier can be a MyVR Photo key, which is provided after you create a Photo, or an externalId you've set on the Photo.
altText
string
Text that can be used to convey the same message as the image.
caption
string
A caption to accompany the image.
externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
position
integer
The position of the photo. Photos are sorted by position on various marketing channels.
property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.
sourceUrl
url
The source URL where the photo can be downloaded and imported from. This URL should be publicly accessible.
title
string
A title for the photo.


Example Request

curl https://api.myvr.com/v1/photos/{KEY}/ -u YOUR_API_KEY:  -X PATCH
	-d altText=null


Response

If successfully updated, a Photo Object is returned with the updates applied.


Example Response

{
    "uri": "https://api.myvr.com/v1/photos/ca4bef0f8c60be55158aa2250e9d8330/", 
    "id": "ca4bef0f8c60be55158aa2250e9d8330", 
    "key": "ca4bef0f8c60be55158aa2250e9d8330", 
    "altText": null, 
    "caption": null, 
    "created": "2016-01-19T00:11:30Z", 
    "downloadUrl": "//image.myvr.com/b45b80f1d8764037/729dc028c692c4a0/house-front.jpg", 
    "externalId": null, 
    "modified": "2016-08-09T19:03:38Z", 
    "position": 2, 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "title": null, 
    "uploadError": "", 
    "uploadStatus": "successful"
}

Delete Photo

Delete a Photo from your MyVR account. This is a permanent operation that cannot be undone, be very careful.

Endpoint

DELETE https://api.myvr.com/v1/photos/{KEY}/




Arguments

key
string
The identifier of the Photo to delete. The identifier can be a MyVR Photo key, which is provided after you create a Photo, or an externalId you've set on the Photo.
Required  


Example Request

curl https://api.myvr.com/v1/photos/{KEY}/ -u YOUR_API_KEY:  -X DELETE


Response

If the Photo is deleted successfully, a http status code of 204 will be returned with an empty result. If an error occurs, we'll return an http status code reflective of the error.


Example Response

{}

List Photos

Returns a list of photos from the account. The photos are returned in sorted order, with the most recent photos appearing first.

Endpoint

GET https://api.myvr.com/v1/photos/




Arguments

id
string
Find results by id, uri, or externalId.
Optional  
modified
string
Find results modified after this date and time.
Optional  
property
string
Find by key, uri or externalId of the associated property.
Optional  
uploadStatus
choice
Find photos matching the upload status.
  • "successful" Successful
  • "failed" Failed
  • "processing" Processing
  • "pending" Pending
Optional  


Example Request

curl https://api.myvr.com/v1/photos/ -u YOUR_API_KEY: 


Response

Returns a list of Photos from the account. The Photos are returned in sorted order, with the most recent Photos appearing first.


Example Response

{
    "count": 100, 
    "limit": 25, 
    "offset": 25, 
    "next": "https://api.myvr.com/v1/photos/?offset=50", 
    "previous": "https://api.myvr.com/v1/photos/?offset=0", 
    "results": [
        {
            "uri": "https://api.myvr.com/v1/photos/ca4bef0f8c60be55158aa2250e9d8330/", 
            "id": "ca4bef0f8c60be55158aa2250e9d8330", 
            "key": "ca4bef0f8c60be55158aa2250e9d8330", 
            "altText": null, 
            "caption": null, 
            "created": "2016-01-19T00:11:30Z", 
            "downloadUrl": "//image.myvr.com/b45b80f1d8764037/729dc028c692c4a0/house-front.jpg", 
            "externalId": null, 
            "modified": "2016-08-09T19:03:38Z", 
            "position": 2, 
            "property": {
                "name": "API Demo Property", 
                "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
                "id": "b6b0f2fe278f612b", 
                "externalId": null, 
                "key": "b6b0f2fe278f612b", 
                "slug": "api-demo-property"
            }, 
            "title": null, 
            "uploadError": "", 
            "uploadStatus": "successful"
        }
    ]
}
NOTE: The above example response only shows one result for brevity, whereas the meta info indicates it should have 25.

Rooms

One of the most common questions asked by guests is 'how are the beds arranged by room'? You can define room objects with associated beds to answer this question for renters.

The Room Object



Attributes

uri
uri
The uniform resource identifier for the object.
id
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
Deprecated  
key
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
bedCount
integer
The number of beds in the room.
beds
nested
The beds in the room.
  • mattress choice

    The type of mattress on the bed.

    box Box Spring Default
    foam Memory Foam
    hybrid Hybrid
    water Waterbed
    other Other
    pillow-top Pillow Top
  • size choice

    The size of the bed.

    king King Size
    full Full Size
    queen Queen Size Default
    crib Crib
    twin Single/Twin Size
    other Other
  • type choice

    The type of bed.

    wall-bed Murphy Bed
    hideaway Hideaway
    bunk Bunk Bed
    crib Crib
    standard Standard bed Default
    rollaway Rollaway Bed
    hammock Hammock
    canopy Canopy
    air Air Bed
    trundle Trundle
    other Other
    sofa-bed Fold-out Sofa Bed
created
datetime
The ISO-8601 datetime the object was created in MyVR.
externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
modified
datetime
The ISO-8601 datetime the object was last modified in MyVR.
property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.
type
choice
The type of bedroom.

guest Guest Bedroom
loft Loft
attic Attic
basement Basement
other Other
master Master Bedroom
bedroom Bedroom Default
studio Studio
childrens Children's bedroom

Example Response

{
    "uri": "https://api.myvr.com/v1/rooms/b025f414d1df50a6/", 
    "id": "b025f414d1df50a6", 
    "key": "b025f414d1df50a6", 
    "bedCount": 1, 
    "beds": [
        {
            "mattress": "box", 
            "size": "king", 
            "type": "standard"
        }
    ], 
    "created": "2016-01-19T00:03:25Z", 
    "externalId": null, 
    "modified": "2016-01-19T00:05:21Z", 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "type": "master"
}

Create Room

Create a new Room on your MyVR account. When a Room is created, it will be assigned a key.


Endpoint

POST https://api.myvr.com/v1/rooms/




Arguments

beds
nested
The beds in the room.
externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.
Required  
type
choice
The type of bedroom.
Default: bedroom  


Example Request

curl https://api.myvr.com/v1/rooms/ -u YOUR_API_KEY: 
	-d property="b6b0f2fe278f612b"


Response

If successfully created, a Room Object is returned with a newly assigned key. You can use this key to retrieve or update the Room in the future. If creation fails, an http error will be returned.


Example Response

{
    "uri": "https://api.myvr.com/v1/rooms/b025f414d1df50a6/", 
    "id": "b025f414d1df50a6", 
    "key": "b025f414d1df50a6", 
    "bedCount": 1, 
    "beds": [
        {
            "mattress": "box", 
            "size": "king", 
            "type": "standard"
        }
    ], 
    "created": "2016-01-19T00:03:25Z", 
    "externalId": null, 
    "modified": "2016-01-19T00:05:21Z", 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "type": "master"
}

Retrieve Room

Retrieve the details of an existing Room.

Endpoint

GET https://api.myvr.com/v1/rooms/{KEY}/




Arguments

key
string
The identifier of the Room to retrieve. The identifier can be a MyVR Room key, which is provided after you create a Room, or an externalId you've set on the Room.
Required  


Example Request

curl https://api.myvr.com/v1/rooms/{KEY}/ -u YOUR_API_KEY: 


Response

Returns a Room Object that matches the key or externalId.


Example Response

{
    "uri": "https://api.myvr.com/v1/rooms/b025f414d1df50a6/", 
    "id": "b025f414d1df50a6", 
    "key": "b025f414d1df50a6", 
    "bedCount": 1, 
    "beds": [
        {
            "mattress": "box", 
            "size": "king", 
            "type": "standard"
        }
    ], 
    "created": "2016-01-19T00:03:25Z", 
    "externalId": null, 
    "modified": "2016-01-19T00:05:21Z", 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "type": "master"
}

Update Room

Update data on an existing Room. Specify the Room to update by key or externalId in the URL.

Endpoint

PUT or PATCH https://api.myvr.com/v1/rooms/{KEY}/




Arguments

key
string
The identifier of the Room to update. The identifier can be a MyVR Room key, which is provided after you create a Room, or an externalId you've set on the Room.
beds
nested
The beds in the room.
externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.
type
choice
The type of bedroom.


Example Request

curl https://api.myvr.com/v1/rooms/{KEY}/ -u YOUR_API_KEY:  -X PATCH
	-d bedCount=1


Response

If successfully updated, a Room Object is returned with the updates applied.


Example Response

{
    "uri": "https://api.myvr.com/v1/rooms/b025f414d1df50a6/", 
    "id": "b025f414d1df50a6", 
    "key": "b025f414d1df50a6", 
    "bedCount": 1, 
    "beds": [
        {
            "mattress": "box", 
            "size": "king", 
            "type": "standard"
        }
    ], 
    "created": "2016-01-19T00:03:25Z", 
    "externalId": null, 
    "modified": "2016-01-19T00:05:21Z", 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "type": "master"
}

Delete Room

Delete a Room from your MyVR account. This is a permanent operation that cannot be undone, be very careful.

Endpoint

DELETE https://api.myvr.com/v1/rooms/{KEY}/




Arguments

key
string
The identifier of the Room to delete. The identifier can be a MyVR Room key, which is provided after you create a Room, or an externalId you've set on the Room.
Required  


Example Request

curl https://api.myvr.com/v1/rooms/{KEY}/ -u YOUR_API_KEY:  -X DELETE


Response

If the Room is deleted successfully, a http status code of 204 will be returned with an empty result. If an error occurs, we'll return an http status code reflective of the error.


Example Response

{}

List Rooms

Returns a list of rooms from the account. The rooms are returned in sorted order, with the most recent rooms appearing first.

Endpoint

GET https://api.myvr.com/v1/rooms/




Arguments

id
string
Find results by id, uri, or externalId.
Optional  
modified
string
Find results modified after this date and time.
Optional  
property
string
Find by key, uri or externalId of the associated property.
Optional  


Example Request

curl https://api.myvr.com/v1/rooms/ -u YOUR_API_KEY: 


Response

Returns a list of Rooms from the account. The Rooms are returned in sorted order, with the most recent Rooms appearing first.


Example Response

{
    "count": 100, 
    "limit": 25, 
    "offset": 25, 
    "next": "https://api.myvr.com/v1/rooms/?offset=50", 
    "previous": "https://api.myvr.com/v1/rooms/?offset=0", 
    "results": [
        {
            "uri": "https://api.myvr.com/v1/rooms/b025f414d1df50a6/", 
            "id": "b025f414d1df50a6", 
            "key": "b025f414d1df50a6", 
            "bedCount": 1, 
            "beds": [
                {
                    "mattress": "box", 
                    "size": "king", 
                    "type": "standard"
                }
            ], 
            "created": "2016-01-19T00:03:25Z", 
            "externalId": null, 
            "modified": "2016-01-19T00:05:21Z", 
            "property": {
                "name": "API Demo Property", 
                "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
                "id": "b6b0f2fe278f612b", 
                "externalId": null, 
                "key": "b6b0f2fe278f612b", 
                "slug": "api-demo-property"
            }, 
            "type": "master"
        }
    ]
}
NOTE: The above example response only shows one result for brevity, whereas the meta info indicates it should have 25.

Amenities

A property can have a number of defined amenities associated with it. This can be everything from a hot tub to a blender.

You can send a GET request to https://api.myvr.com/v1/amenities/ to view a list of amenities that you can register to a property.

The Amenity Object



Attributes

uri
uri
The uniform resource identifier for the object.
id
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
Deprecated  
key
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
amenity
string
The URI of the defined amenity in MyVR.
count
integer
The number of occurrences of this amenity on the property.
created
datetime
The ISO-8601 datetime the object was created in MyVR.
details
string
Additional helpful details about the amenity.
modified
datetime
The ISO-8601 datetime the object was last modified in MyVR.
nameOverride
string
Override the name of this amenity, if different from the defined amenity name.
property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.

Example Response

{
    "uri": "https://api.myvr.com/v1/property-amenities/511aa5902ace5ab2/", 
    "id": "511aa5902ace5ab2", 
    "key": "511aa5902ace5ab2", 
    "amenity": {
        "name": "Grill", 
        "externalId": null, 
        "uri": "https://api.myvr.com/v1/amenities/4db2e44fcc4cae7f/", 
        "key": "4db2e44fcc4cae7f", 
        "id": "4db2e44fcc4cae7f"
    }, 
    "count": 1, 
    "created": "2016-01-19T00:09:04Z", 
    "details": null, 
    "modified": "2016-01-19T00:09:04Z", 
    "nameOverride": "Grill", 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }
}

Create Amenity

Create a new Amenity on your MyVR account. When a Amenity is created, it will be assigned a key.


Endpoint

POST https://api.myvr.com/v1/property-amenities/




Arguments

amenity
string
The URI of the defined amenity in MyVR.
Required  
count
integer
The number of occurrences of this amenity on the property.
Min Value: 1  
details
string
Additional helpful details about the amenity.
nameOverride
string
Override the name of this amenity, if different from the defined amenity name.
property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.
Required  


Example Request

curl https://api.myvr.com/v1/property-amenities/ -u YOUR_API_KEY: 
	-d amenity="4db2e44fcc4cae7f"
	-d property="b6b0f2fe278f612b"


Response

If successfully created, a Amenity Object is returned with a newly assigned key. You can use this key to retrieve or update the Amenity in the future. If creation fails, an http error will be returned.


Example Response

{
    "uri": "https://api.myvr.com/v1/property-amenities/511aa5902ace5ab2/", 
    "id": "511aa5902ace5ab2", 
    "key": "511aa5902ace5ab2", 
    "amenity": {
        "name": "Grill", 
        "externalId": null, 
        "uri": "https://api.myvr.com/v1/amenities/4db2e44fcc4cae7f/", 
        "key": "4db2e44fcc4cae7f", 
        "id": "4db2e44fcc4cae7f"
    }, 
    "count": 1, 
    "created": "2016-01-19T00:09:04Z", 
    "details": null, 
    "modified": "2016-01-19T00:09:04Z", 
    "nameOverride": "Grill", 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }
}

Retrieve Amenity

Retrieve the details of an existing Amenity.

Endpoint

GET https://api.myvr.com/v1/property-amenities/{KEY}/




Arguments

key
string
The identifier of the Amenity to retrieve. The identifier can be a MyVR Amenity key, which is provided after you create a Amenity, or an externalId you've set on the Amenity.
Required  


Example Request

curl https://api.myvr.com/v1/property-amenities/{KEY}/ -u YOUR_API_KEY: 


Response

Returns a Amenity Object that matches the key or externalId.


Example Response

{
    "uri": "https://api.myvr.com/v1/property-amenities/511aa5902ace5ab2/", 
    "id": "511aa5902ace5ab2", 
    "key": "511aa5902ace5ab2", 
    "amenity": {
        "name": "Grill", 
        "externalId": null, 
        "uri": "https://api.myvr.com/v1/amenities/4db2e44fcc4cae7f/", 
        "key": "4db2e44fcc4cae7f", 
        "id": "4db2e44fcc4cae7f"
    }, 
    "count": 1, 
    "created": "2016-01-19T00:09:04Z", 
    "details": null, 
    "modified": "2016-01-19T00:09:04Z", 
    "nameOverride": "Grill", 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }
}

Update Amenity

Update data on an existing Amenity. Specify the Amenity to update by key or externalId in the URL.

Endpoint

PUT or PATCH https://api.myvr.com/v1/property-amenities/{KEY}/




Arguments

key
string
The identifier of the Amenity to update. The identifier can be a MyVR Amenity key, which is provided after you create a Amenity, or an externalId you've set on the Amenity.
amenity
string
The URI of the defined amenity in MyVR.
count
integer
The number of occurrences of this amenity on the property.
Min Value: 1  
details
string
Additional helpful details about the amenity.
nameOverride
string
Override the name of this amenity, if different from the defined amenity name.
property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.


Example Request

curl https://api.myvr.com/v1/property-amenities/{KEY}/ -u YOUR_API_KEY:  -X PATCH
	-d amenity="4db2e44fcc4cae7f"


Response

If successfully updated, a Amenity Object is returned with the updates applied.


Example Response

{
    "uri": "https://api.myvr.com/v1/property-amenities/511aa5902ace5ab2/", 
    "id": "511aa5902ace5ab2", 
    "key": "511aa5902ace5ab2", 
    "amenity": {
        "name": "Grill", 
        "externalId": null, 
        "uri": "https://api.myvr.com/v1/amenities/4db2e44fcc4cae7f/", 
        "key": "4db2e44fcc4cae7f", 
        "id": "4db2e44fcc4cae7f"
    }, 
    "count": 1, 
    "created": "2016-01-19T00:09:04Z", 
    "details": null, 
    "modified": "2016-01-19T00:09:04Z", 
    "nameOverride": "Grill", 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }
}

Delete Amenity

Delete a Amenity from your MyVR account. This is a permanent operation that cannot be undone, be very careful.

Endpoint

DELETE https://api.myvr.com/v1/property-amenities/{KEY}/




Arguments

key
string
The identifier of the Amenity to delete. The identifier can be a MyVR Amenity key, which is provided after you create a Amenity, or an externalId you've set on the Amenity.
Required  


Example Request

curl https://api.myvr.com/v1/property-amenities/{KEY}/ -u YOUR_API_KEY:  -X DELETE


Response

If the Amenity is deleted successfully, a http status code of 204 will be returned with an empty result. If an error occurs, we'll return an http status code reflective of the error.


Example Response

{}

List Amenities

Returns a list of amenities from the account. The amenities are returned in sorted order, with the most recent amenities appearing first.

Endpoint

GET https://api.myvr.com/v1/property-amenities/




Arguments

id
string
Find results by id, uri, or externalId.
Optional  
modified
string
Find results modified after this date and time.
Optional  
property
string
Find by key, uri or externalId of the associated property.
Optional  
amenity
string
Find by key, uri or externalId of the associated amenity.
Optional  


Example Request

curl https://api.myvr.com/v1/property-amenities/ -u YOUR_API_KEY: 


Response

Returns a list of Amenities from the account. The Amenities are returned in sorted order, with the most recent Amenities appearing first.


Example Response

{
    "count": 100, 
    "limit": 25, 
    "offset": 25, 
    "next": "https://api.myvr.com/v1/property-amenities/?offset=50", 
    "previous": "https://api.myvr.com/v1/property-amenities/?offset=0", 
    "results": [
        {
            "uri": "https://api.myvr.com/v1/property-amenities/511aa5902ace5ab2/", 
            "id": "511aa5902ace5ab2", 
            "key": "511aa5902ace5ab2", 
            "amenity": {
                "name": "Grill", 
                "externalId": null, 
                "uri": "https://api.myvr.com/v1/amenities/4db2e44fcc4cae7f/", 
                "key": "4db2e44fcc4cae7f", 
                "id": "4db2e44fcc4cae7f"
            }, 
            "count": 1, 
            "created": "2016-01-19T00:09:04Z", 
            "details": null, 
            "modified": "2016-01-19T00:09:04Z", 
            "nameOverride": "Grill", 
            "property": {
                "name": "API Demo Property", 
                "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
                "id": "b6b0f2fe278f612b", 
                "externalId": null, 
                "key": "b6b0f2fe278f612b", 
                "slug": "api-demo-property"
            }
        }
    ]
}
NOTE: The above example response only shows one result for brevity, whereas the meta info indicates it should have 25.

Calendar Events

A property's calendar is composed of calendar events. These events represent lengths of time that a property is available or unavailable for various reasons.

While calendar events are helpful for understanding a property's availability, they may not tell the whole story for Unit-Type Inventory. If you would like to retrieve the availability for a property, please use the Daily Availability endpoint.

The Calendar Event Object



Attributes

uri
uri
The uniform resource identifier for the object.
id
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
Deprecated  
key
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.
startDate
date
The date at which the calendar event begins.
endDate
date
The date at which the calendar event ends.
status
choice
The status of the event, selected from the list of choices below.

available Available
hold Hold
reserved Reserved
unavailable Unavailable
tentative Tentative
title
string
The title of the event.
editable
boolean
Whether or not this event can be updated or deleted via the API.
reservation
string
The reservation this calendar event relates to, if applicable.
created
datetime
The ISO-8601 datetime the object was created in MyVR.

Example Response

{
    "uri": "https://api.myvr.com/v1/events/cd5dc8b7e8fd2512/", 
    "id": "cd5dc8b7e8fd2512", 
    "key": "cd5dc8b7e8fd2512", 
    "property": {
        "uri": {
            "externalId": null, 
            "uri": "https://api.myvr.com/v1/properties/789ca6a43a7d3a08/", 
            "key": "789ca6a43a7d3a08", 
            "id": "789ca6a43a7d3a08"
        }, 
        "externalId": null, 
        "id": "789ca6a43a7d3a08", 
        "key": "789ca6a43a7d3a08", 
        "name": "Tahoe Snow House"
    }, 
    "startDate": "2016-02-01", 
    "endDate": "2016-02-07", 
    "status": "reserved", 
    "title": "John Doe", 
    "editable": false, 
    "reservation": {
        "externalId": null, 
        "uri": "https://api.myvr.com/v1/reservations/f1832913b3cc3d7d/", 
        "key": "f1832913b3cc3d7d", 
        "id": "f1832913b3cc3d7d"
    }, 
    "created": "2016-02-19T00:59:37Z"
}

Create Calendar Event

Create a new Calendar Event on your MyVR account. When a Calendar Event is created, it will be assigned a key.


Endpoint

POST https://api.myvr.com/v1/calendar-events/




Arguments

property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.
Required  
startDate
date
The date at which the calendar event begins.
Required  
endDate
date
The date at which the calendar event ends.
Required  
status
choice
The status of the event, selected from the list of choices below.
Required  
title
string
The title of the event.


Example Request

curl https://api.myvr.com/v1/calendar-events/ -u YOUR_API_KEY: 
	-d property="789ca6a43a7d3a08"
	-d startDate="2016-02-01"
	-d endDate="2016-02-07"
	-d status="reserved"


Response

If successfully created, a Calendar Event Object is returned with a newly assigned key. You can use this key to retrieve or update the Calendar Event in the future. If creation fails, an http error will be returned.


Example Response

{
    "uri": "https://api.myvr.com/v1/events/cd5dc8b7e8fd2512/", 
    "id": "cd5dc8b7e8fd2512", 
    "key": "cd5dc8b7e8fd2512", 
    "property": {
        "uri": {
            "externalId": null, 
            "uri": "https://api.myvr.com/v1/properties/789ca6a43a7d3a08/", 
            "key": "789ca6a43a7d3a08", 
            "id": "789ca6a43a7d3a08"
        }, 
        "externalId": null, 
        "id": "789ca6a43a7d3a08", 
        "key": "789ca6a43a7d3a08", 
        "name": "Tahoe Snow House"
    }, 
    "startDate": "2016-02-01", 
    "endDate": "2016-02-07", 
    "status": "reserved", 
    "title": "John Doe", 
    "editable": false, 
    "reservation": {
        "externalId": null, 
        "uri": "https://api.myvr.com/v1/reservations/f1832913b3cc3d7d/", 
        "key": "f1832913b3cc3d7d", 
        "id": "f1832913b3cc3d7d"
    }, 
    "created": "2016-02-19T00:59:37Z"
}

Retrieve Calendar Event

Retrieve the details of an existing Calendar Event.

Endpoint

GET https://api.myvr.com/v1/calendar-events/{KEY}/




Arguments

key
string
The identifier of the Calendar Event to retrieve. The identifier can be a MyVR Calendar Event key, which is provided after you create a Calendar Event, or an externalId you've set on the Calendar Event.
Required  


Example Request

curl https://api.myvr.com/v1/calendar-events/{KEY}/ -u YOUR_API_KEY: 


Response

Returns a Calendar Event Object that matches the key or externalId.


Example Response

{
    "uri": "https://api.myvr.com/v1/events/cd5dc8b7e8fd2512/", 
    "id": "cd5dc8b7e8fd2512", 
    "key": "cd5dc8b7e8fd2512", 
    "property": {
        "uri": {
            "externalId": null, 
            "uri": "https://api.myvr.com/v1/properties/789ca6a43a7d3a08/", 
            "key": "789ca6a43a7d3a08", 
            "id": "789ca6a43a7d3a08"
        }, 
        "externalId": null, 
        "id": "789ca6a43a7d3a08", 
        "key": "789ca6a43a7d3a08", 
        "name": "Tahoe Snow House"
    }, 
    "startDate": "2016-02-01", 
    "endDate": "2016-02-07", 
    "status": "reserved", 
    "title": "John Doe", 
    "editable": false, 
    "reservation": {
        "externalId": null, 
        "uri": "https://api.myvr.com/v1/reservations/f1832913b3cc3d7d/", 
        "key": "f1832913b3cc3d7d", 
        "id": "f1832913b3cc3d7d"
    }, 
    "created": "2016-02-19T00:59:37Z"
}

Update Calendar Event

Update data on an existing Calendar Event. Specify the Calendar Event to update by key or externalId in the URL.

Endpoint

PUT or PATCH https://api.myvr.com/v1/calendar-events/{KEY}/




Arguments

key
string
The identifier of the Calendar Event to update. The identifier can be a MyVR Calendar Event key, which is provided after you create a Calendar Event, or an externalId you've set on the Calendar Event.
property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.
startDate
date
The date at which the calendar event begins.
endDate
date
The date at which the calendar event ends.
status
choice
The status of the event, selected from the list of choices below.
title
string
The title of the event.


Example Request

curl https://api.myvr.com/v1/calendar-events/{KEY}/ -u YOUR_API_KEY:  -X PATCH
	-d property="789ca6a43a7d3a08"


Response

If successfully updated, a Calendar Event Object is returned with the updates applied.


Example Response

{
    "uri": "https://api.myvr.com/v1/events/cd5dc8b7e8fd2512/", 
    "id": "cd5dc8b7e8fd2512", 
    "key": "cd5dc8b7e8fd2512", 
    "property": {
        "uri": {
            "externalId": null, 
            "uri": "https://api.myvr.com/v1/properties/789ca6a43a7d3a08/", 
            "key": "789ca6a43a7d3a08", 
            "id": "789ca6a43a7d3a08"
        }, 
        "externalId": null, 
        "id": "789ca6a43a7d3a08", 
        "key": "789ca6a43a7d3a08", 
        "name": "Tahoe Snow House"
    }, 
    "startDate": "2016-02-01", 
    "endDate": "2016-02-07", 
    "status": "reserved", 
    "title": "John Doe", 
    "editable": false, 
    "reservation": {
        "externalId": null, 
        "uri": "https://api.myvr.com/v1/reservations/f1832913b3cc3d7d/", 
        "key": "f1832913b3cc3d7d", 
        "id": "f1832913b3cc3d7d"
    }, 
    "created": "2016-02-19T00:59:37Z"
}

Delete Calendar Event

Delete a Calendar Event from your MyVR account. This is a permanent operation that cannot be undone, be very careful.

Endpoint

DELETE https://api.myvr.com/v1/calendar-events/{KEY}/




Arguments

key
string
The identifier of the Calendar Event to delete. The identifier can be a MyVR Calendar Event key, which is provided after you create a Calendar Event, or an externalId you've set on the Calendar Event.
Required  


Example Request

curl https://api.myvr.com/v1/calendar-events/{KEY}/ -u YOUR_API_KEY:  -X DELETE


Response

If the Calendar Event is deleted successfully, a http status code of 204 will be returned with an empty result. If an error occurs, we'll return an http status code reflective of the error.


Example Response

{}

List Calendar Events

Returns a list of calendar events from the account. The calendar events are returned in sorted order, with the most recent calendar events appearing first.

Endpoint

GET https://api.myvr.com/v1/calendar-events/




Arguments

id
string
Find results by id, uri, or externalId.
Optional  
modified
string
Find results modified after this date and time.
Optional  
property
string
The key or externalId of the property that the events are associated with.
Optional  
startDate
date
Only return calendar events that occur on or after the given date.
Optional  
endDate
date
Only return calendar events that occur on or before the given date.
Optional  
editable
boolean
Only return editable calendar events when set to true. Exclude calendar events that are editable when set to false.
Optional  
status
choice
Restrict to calendar events with a specific status.
  • "available" Available
  • "hold" Hold
  • "reserved" Reserved
  • "unavailable" Unavailable
  • "tentative" Tentative
Optional  


Example Request

curl https://api.myvr.com/v1/calendar-events/ -u YOUR_API_KEY: 


Response

Returns a list of Calendar Events from the account. The Calendar Events are returned in sorted order, with the most recent Calendar Events appearing first.


Example Response

{
    "count": 100, 
    "limit": 25, 
    "offset": 25, 
    "next": "https://api.myvr.com/v1/calendar-events/?offset=50", 
    "previous": "https://api.myvr.com/v1/calendar-events/?offset=0", 
    "results": [
        {
            "uri": "https://api.myvr.com/v1/events/cd5dc8b7e8fd2512/", 
            "id": "cd5dc8b7e8fd2512", 
            "key": "cd5dc8b7e8fd2512", 
            "property": {
                "uri": {
                    "externalId": null, 
                    "uri": "https://api.myvr.com/v1/properties/789ca6a43a7d3a08/", 
                    "key": "789ca6a43a7d3a08", 
                    "id": "789ca6a43a7d3a08"
                }, 
                "externalId": null, 
                "id": "789ca6a43a7d3a08", 
                "key": "789ca6a43a7d3a08", 
                "name": "Tahoe Snow House"
            }, 
            "startDate": "2016-02-01", 
            "endDate": "2016-02-07", 
            "status": "reserved", 
            "title": "John Doe", 
            "editable": false, 
            "reservation": {
                "externalId": null, 
                "uri": "https://api.myvr.com/v1/reservations/f1832913b3cc3d7d/", 
                "key": "f1832913b3cc3d7d", 
                "id": "f1832913b3cc3d7d"
            }, 
            "created": "2016-02-19T00:59:37Z"
        }
    ]
}
NOTE: The above example response only shows one result for brevity, whereas the meta info indicates it should have 25.

Daily Availability

A breakdown of availability for a property by date. Includes rate information. This endpoint is the preferred method for retrieving availability for a property, particularly for Unit-Type Inventory, and provides more detailed information than the Calendar Events endpoint.

The Daily Availability Object



Attributes

date
date
Date in ISO 8601 YYYY-MM-DD format.
nightlyRate
integer
The nightly rate of the property for the specified date.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
available
boolean
If the property is available on this date.
minNights
integer
The minimum night stay required to book this date.
closedForArrival
boolean
If the property is unavailable for a check in on this day. If the property is a unit-type, closed for arrival is true if there are no units under the unit-type that can support an arrival on this day.
closedForDeparture
boolean
If the property is unavailable for a check out on this day.If the property is a unit-type, closed for departure is true if there are no units under the unit-type that can support a departure on this day.
unitsTotal
integer
The total units potentially available for this date. This represents the total number of stays you can accommodate on this date without overbooking. If the number of unitsBooked exceeds the number of unitsTotal, the property is overbooked for the day.

Note: This is helpful when retrieving availability for a unit-type property with multiple units underneath it.
Feature: Unit-Type Inventory
unitsAvailable
integer
The total units currently available for this date. In other words, how many of the totalUnits are still available to be booked. This number will never be lower than zero, even when a property is over booked.

Note: This is helpful when retrieving availability for a unit-type property with multiple units underneath it.
Feature: Unit-Type Inventory
unitsBooked
integer
The total units currently booked for this date. This includes bookings made at the unit-type property as well as bookings made directly to individual units.If the unitsBooked exceeds unitsTotal, the property is overbooked for the date.

Note: This is helpful when retrieving availability for a unit-type property with multiple units underneath it.
Feature: Unit-Type Inventory

List Daily Availability

Returns a list of Daily Availability Objects for a particular property and date range.


Endpoint

GET https://api.myvr.com/v1/availability/




Arguments

property
string
The property to retrieve availability for. This can be the URI, key, or externalId of the property.
Required  
startDate
date
The first day to retrieve availability for in ISO 8601 YYYY-MM-DD format. If not provided, the current date is assumed.
Optional  
endDate
date
The last day to retrieve availability for in ISO 8601 YYYY-MM-DD format. If not provided, 30 days from the startDate is assumed. A maximum of 1 year of availability can be retrieved in a single request.
Optional  


Example Request

curl https://api.myvr.com/v1/availability/ -u YOUR_API_KEY: 


Response

Returns a list of Daily Availability from the account. The Daily Availability are returned in sorted order, with the most recent Daily Availability appearing first.


Rate Plans

Rates can be grouped into reusable collections known as Rate Plans. Rate Plans can then be assigned to one or more properties in your account. Rate Plans are a great way to simplify rate management across similar units.

Rate Plans can be global in scope, meaning they can be applied to any property, or they can be property scoped, meaning they can only be used by a property and it's descendants.

By default, all properties have their own default, property-scoped Rate Plan. The property can optionally use this default Rate Plan or select an alternative Rate Plan.

Feature Required: Pricing Plans

The Rate Plan Object



Attributes

uri
uri
The uniform resource identifier for the object.
key
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
created
datetime
The ISO-8601 datetime the object was created in MyVR.
currency
string
The currency being used for this plan. The currency is represented as a 3 character ISO 4217 currency code.
default
boolean
Whether or not this is the default plan for the associated property. Every property has one default plan associated with it.
modified
datetime
The ISO-8601 datetime the object was last modified in MyVR.
name
string
The name of the plan, used for internal reference and never shown to a guest.
pricingModel
choice


modern Modern Pricing
classic Classic Pricing Default
property
string
The optional property the plan is restricted to. If a property is specified, the plan can only be used by the specified property and it's descendants.
scope
choice
The scope of the plan which restricts which properties it can be applied to. Plans can have a scope of account, which indicates it can be applied to all properties in the account, or a scope of property, which indicates it can only be used on the specified property and it's descendants.

account Account Wide Default
property Listing Specific
weekendNights
string
Which days of the week count as a weekend nightly rate as a comma separated string. We use ISO standard weekday representation, Monday is 1 and Sunday is 7.

Example Response

{
    "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
    "key": "862caa3f5267602d", 
    "created": "2019-09-19T05:22:16Z", 
    "currency": "USD", 
    "default": true, 
    "modified": "2019-09-19T05:22:16Z", 
    "name": "Default Rates for Property", 
    "pricingModel": "classic", 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "scope": "property", 
    "weekendNights": [
        5, 
        6
    ]
}

Retrieve Rate Plan

Retrieve the details of an existing Rate Plan.

Endpoint

GET https://api.myvr.com/v1/rate-plans/{KEY}/




Arguments

key
string
The identifier of the Rate Plan to retrieve. The identifier can be a MyVR Rate Plan key, which is provided after you create a Rate Plan, or an externalId you've set on the Rate Plan.
Required  


Example Request

curl https://api.myvr.com/v1/rate-plans/{KEY}/ -u YOUR_API_KEY: 


Response

Returns a Rate Plan Object that matches the key or externalId.


Example Response

{
    "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
    "key": "862caa3f5267602d", 
    "created": "2019-09-19T05:22:16Z", 
    "currency": "USD", 
    "default": true, 
    "modified": "2019-09-19T05:22:16Z", 
    "name": "Default Rates for Property", 
    "pricingModel": "classic", 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "scope": "property", 
    "weekendNights": [
        5, 
        6
    ]
}

List Rate Plans

Returns a list of rate plans from the account. The rate plans are returned in sorted order, with the most recent rate plans appearing first.

Endpoint

GET https://api.myvr.com/v1/rate-plans/




Arguments

currency
string
Filter plans by currency.
Optional  
default
boolean
Find plans that are the default for their associated property. Every property has one default plan associated with it.
Optional  
name
string
Filter plans by name.
Optional  
pricingModel
choice
Find plans with the specified pricing model.
  • "modern" Modern Pricing
  • "classic" Classic Pricing
Optional  
property
string
Find by key, uri or externalId of the property the plan is restricted to.
Optional  
scope
choice
Find plans with the specified scope.
  • "account" Account Wide
  • "property" Listing Specific
Optional  
id
string
Find results by id, uri, or externalId.
Optional  
modified
string
Find results modified after this date and time.
Optional  


Example Request

curl https://api.myvr.com/v1/rate-plans/ -u YOUR_API_KEY: 


Response

Returns a list of Rate Plans from the account. The Rate Plans are returned in sorted order, with the most recent Rate Plans appearing first.


Example Response

{
    "count": 100, 
    "limit": 25, 
    "offset": 25, 
    "next": "https://api.myvr.com/v1/rate-plans/?offset=50", 
    "previous": "https://api.myvr.com/v1/rate-plans/?offset=0", 
    "results": [
        {
            "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
            "key": "862caa3f5267602d", 
            "created": "2019-09-19T05:22:16Z", 
            "currency": "USD", 
            "default": true, 
            "modified": "2019-09-19T05:22:16Z", 
            "name": "Default Rates for Property", 
            "pricingModel": "classic", 
            "property": {
                "name": "API Demo Property", 
                "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
                "id": "b6b0f2fe278f612b", 
                "externalId": null, 
                "key": "b6b0f2fe278f612b", 
                "slug": "api-demo-property"
            }, 
            "scope": "property", 
            "weekendNights": [
                5, 
                6
            ]
        }
    ]
}
NOTE: The above example response only shows one result for brevity, whereas the meta info indicates it should have 25.

Reset Rate Plan Rates

Special bulk endpoint to reset the rates for this Rate Plan. Submit a collection of Rate Objects for this Rate Plan, and all existing rates for this Rate Plan will be replaced by those provided. The collection of rates should be submitted to the endpoint as an array of Rate Objects using an HTTP PUT. Below you'll find example arguments for a Rate Object.

Note: Resetting the rates on a rate plan could impact the rates of zero properties or many properties, depending on how many properties currently use the rate plan.


Endpoint

PUT https://api.myvr.com/v1/rate-plans/{KEY}/rates/




Arguments

externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
baseRate
boolean
A flag indicating this rate is the base rate for the property. Each property should have one base rate that is used when no other rates apply.
changeoverDay
integer
The changeover day is an optional settings that restricts rentals to weeklong increments. If a day of the week is specified, rentals must select this day as the check-in and check-out day. This is useful if you require Saturday to Saturday rentals, for example. ISO standard values are used: 1 = Monday, 2 = Tuesday, ... 7 = Sunday.
Min Value: 1   Max Value: 7  
endDate
date
The ending date for which the rate applies. Base rates do not require end dates, and if provided, are ignored. Repeating rates ignore the year portion of the end date.
minStay
integer
The minimum number of nights required for a reservation with this rate.
monthly
integer
The amount to charge per month for this rate.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
name
string
The name of the rate, as presented to renters.
weekNight
integer
[Deprecated, use `nightly`]. The nightly rate for a day that is classified as a week night. A day is classified as a week night based on the weekendNights setting of the associated property.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
Deprecated  
nightly
integer
The base nightly rate for for this rental period.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
position
integer
The position of this rate relative to other rates for this property. The value of position is used to determine the order in which rates are shown to renters.
property
string
The property the rate belongs to. For create/update operations, this can be the URI, id, key, or externalId of the property.

For create/update operations, you must specify either the ratePlan or property but never both. If the ratePlan is not provided but the property is, the rate will be assigned to the default rate plan for the property, even if it's not the active rate plan for the property.
ratePlan
string
The plan this rate belongs to. For create/update operations, this can be the URI or key of the rate plan.

For create/update operations, you must specify either the `ratePlan` or `property` but never both. If the `ratePlan` is not provided but the `property` is, the rate will be assigned to the default rate plan for the property, even if it's not the active rate plan for the property.
repeat
boolean
A flag indicating the rate repeats every year on the same start and end date (month and day only). If true, the year portion of startDate and endDate are ignored.
startDate
date
The starting date for which the rate applies. Base rates do not require start dates, and if provided, are ignored. Repeating rates ignore the year portion of the start date.
weekend
integer
The amount to charge for an entire weekend for this rate.Weekends are determined by the weekendNights setting of the associated property.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
weekendNight
integer
The nightly rate for a day that is classified as a weekend night. A day is classified as a weekend night based on the weekendNights setting of the associated property. If provided, this rate supersedes the nightly rate for weekendNights.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
weekly
integer
The amount to charge per week for this rate.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.


Example Request

curl https://api.myvr.com/v1/rate-plans/{KEY}/rates/ -u YOUR_API_KEY:  -X PUT


Response

If successful, all previous rates for the Rate Plan will be replace with the rates provided.



Rates

Rates determine what you charge to rent your property. Rates can be created with a time period over which they apply, and may repeat year over year. Rates let you specify how much you would like to charge nightly, weekly, monthly, and more.

Rates do not include fees you charge, such as a cleaning fee or security deposit. That data is represented by the Fee Object .

All rate endpoints support bulk operations, making it easy to create, update, or delete multiple rates in a single API request.

Additionally, we've designed a special Reset Property Rates endpoint for resetting the rates for an individual property.

The Rate Object



Attributes

uri
uri
The uniform resource identifier for the object.
id
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
Deprecated  
key
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
baseRate
boolean
A flag indicating this rate is the base rate for the property. Each property should have one base rate that is used when no other rates apply.
changeoverDay
integer
The changeover day is an optional settings that restricts rentals to weeklong increments. If a day of the week is specified, rentals must select this day as the check-in and check-out day. This is useful if you require Saturday to Saturday rentals, for example. ISO standard values are used: 1 = Monday, 2 = Tuesday, ... 7 = Sunday.
created
datetime
The ISO-8601 datetime the object was created in MyVR.
currency
string
The currency being used for this fee. This read only field is derived from the currency on the property this fee is associated with. The currency is represented as a 3 character ISO 4217 currency code.
endDate
date
The ending date for which the rate applies. Base rates do not require end dates, and if provided, are ignored. Repeating rates ignore the year portion of the end date.
minStay
integer
The minimum number of nights required for a reservation with this rate.
modified
datetime
The ISO-8601 datetime the object was last modified in MyVR.
monthly
integer
The amount to charge per month for this rate.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
name
string
The name of the rate, as presented to renters.
weekNight
integer
[Deprecated, use `nightly`]. The nightly rate for a day that is classified as a week night. A day is classified as a week night based on the weekendNights setting of the associated property.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
Deprecated  
nightly
integer
The base nightly rate for for this rental period.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
position
integer
The position of this rate relative to other rates for this property. The value of position is used to determine the order in which rates are shown to renters.
property
string
The property the rate belongs to. For create/update operations, this can be the URI, id, key, or externalId of the property.

For create/update operations, you must specify either the ratePlan or property but never both. If the ratePlan is not provided but the property is, the rate will be assigned to the default rate plan for the property, even if it's not the active rate plan for the property.
ratePlan
string
The plan this rate belongs to. For create/update operations, this can be the URI or key of the rate plan.

For create/update operations, you must specify either the `ratePlan` or `property` but never both. If the `ratePlan` is not provided but the `property` is, the rate will be assigned to the default rate plan for the property, even if it's not the active rate plan for the property.
repeat
boolean
A flag indicating the rate repeats every year on the same start and end date (month and day only). If true, the year portion of startDate and endDate are ignored.
startDate
date
The starting date for which the rate applies. Base rates do not require start dates, and if provided, are ignored. Repeating rates ignore the year portion of the start date.
weekend
integer
The amount to charge for an entire weekend for this rate.Weekends are determined by the weekendNights setting of the associated property.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
weekendNight
integer
The nightly rate for a day that is classified as a weekend night. A day is classified as a weekend night based on the weekendNights setting of the associated property. If provided, this rate supersedes the nightly rate for weekendNights.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
weekly
integer
The amount to charge per week for this rate.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.

Example Response

{
    "uri": "https://api.myvr.com/v1/rates/3ce07818cb83cd1f/", 
    "id": "3ce07818cb83cd1f", 
    "key": "3ce07818cb83cd1f", 
    "externalId": null, 
    "baseRate": false, 
    "changeoverDay": null, 
    "created": "2016-01-19T00:06:21Z", 
    "currency": "USD", 
    "endDate": "2020-05-15", 
    "minStay": 3, 
    "modified": "2019-05-16T08:01:00Z", 
    "monthly": 0, 
    "name": "Ski Season", 
    "weekNight": 49500, 
    "nightly": 49500, 
    "position": 1, 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "ratePlan": {
        "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
        "key": "862caa3f5267602d", 
        "name": "Default Rates for Property"
    }, 
    "repeat": true, 
    "startDate": "2019-12-01", 
    "weekend": 0, 
    "weekendNight": 0, 
    "weekly": 0
}

Create Rate

Create a new Rate on your MyVR account. When a Rate is created, it will be assigned a key.

Bulk Operations Supported

This endpoint supports bulk operations. If you'd like to create multiple Rate at once, post multiple objects in an array.


Endpoint

POST https://api.myvr.com/v1/rates/




Arguments

externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
baseRate
boolean
A flag indicating this rate is the base rate for the property. Each property should have one base rate that is used when no other rates apply.
changeoverDay
integer
The changeover day is an optional settings that restricts rentals to weeklong increments. If a day of the week is specified, rentals must select this day as the check-in and check-out day. This is useful if you require Saturday to Saturday rentals, for example. ISO standard values are used: 1 = Monday, 2 = Tuesday, ... 7 = Sunday.
Min Value: 1   Max Value: 7  
endDate
date
The ending date for which the rate applies. Base rates do not require end dates, and if provided, are ignored. Repeating rates ignore the year portion of the end date.
minStay
integer
The minimum number of nights required for a reservation with this rate.
monthly
integer
The amount to charge per month for this rate.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
name
string
The name of the rate, as presented to renters.
weekNight
integer
[Deprecated, use `nightly`]. The nightly rate for a day that is classified as a week night. A day is classified as a week night based on the weekendNights setting of the associated property.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
Deprecated  
nightly
integer
The base nightly rate for for this rental period.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
position
integer
The position of this rate relative to other rates for this property. The value of position is used to determine the order in which rates are shown to renters.
property
string
The property the rate belongs to. For create/update operations, this can be the URI, id, key, or externalId of the property.

For create/update operations, you must specify either the ratePlan or property but never both. If the ratePlan is not provided but the property is, the rate will be assigned to the default rate plan for the property, even if it's not the active rate plan for the property.
ratePlan
string
The plan this rate belongs to. For create/update operations, this can be the URI or key of the rate plan.

For create/update operations, you must specify either the `ratePlan` or `property` but never both. If the `ratePlan` is not provided but the `property` is, the rate will be assigned to the default rate plan for the property, even if it's not the active rate plan for the property.
repeat
boolean
A flag indicating the rate repeats every year on the same start and end date (month and day only). If true, the year portion of startDate and endDate are ignored.
startDate
date
The starting date for which the rate applies. Base rates do not require start dates, and if provided, are ignored. Repeating rates ignore the year portion of the start date.
weekend
integer
The amount to charge for an entire weekend for this rate.Weekends are determined by the weekendNights setting of the associated property.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
weekendNight
integer
The nightly rate for a day that is classified as a weekend night. A day is classified as a weekend night based on the weekendNights setting of the associated property. If provided, this rate supersedes the nightly rate for weekendNights.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
weekly
integer
The amount to charge per week for this rate.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.


Example Request

curl https://api.myvr.com/v1/rates/ -u YOUR_API_KEY: 


Response

If successfully created, a Rate Object is returned with a newly assigned key. You can use this key to retrieve or update the Rate in the future. If creation fails, an http error will be returned.


Example Response

{
    "uri": "https://api.myvr.com/v1/rates/3ce07818cb83cd1f/", 
    "id": "3ce07818cb83cd1f", 
    "key": "3ce07818cb83cd1f", 
    "externalId": null, 
    "baseRate": false, 
    "changeoverDay": null, 
    "created": "2016-01-19T00:06:21Z", 
    "currency": "USD", 
    "endDate": "2020-05-15", 
    "minStay": 3, 
    "modified": "2019-05-16T08:01:00Z", 
    "monthly": 0, 
    "name": "Ski Season", 
    "weekNight": 49500, 
    "nightly": 49500, 
    "position": 1, 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "ratePlan": {
        "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
        "key": "862caa3f5267602d", 
        "name": "Default Rates for Property"
    }, 
    "repeat": true, 
    "startDate": "2019-12-01", 
    "weekend": 0, 
    "weekendNight": 0, 
    "weekly": 0
}

Retrieve Rate

Retrieve the details of an existing Rate.

Endpoint

GET https://api.myvr.com/v1/rates/{KEY}/




Arguments

key
string
The identifier of the Rate to retrieve. The identifier can be a MyVR Rate key, which is provided after you create a Rate, or an externalId you've set on the Rate.
Required  


Example Request

curl https://api.myvr.com/v1/rates/{KEY}/ -u YOUR_API_KEY: 


Response

Returns a Rate Object that matches the key or externalId.


Example Response

{
    "uri": "https://api.myvr.com/v1/rates/3ce07818cb83cd1f/", 
    "id": "3ce07818cb83cd1f", 
    "key": "3ce07818cb83cd1f", 
    "externalId": null, 
    "baseRate": false, 
    "changeoverDay": null, 
    "created": "2016-01-19T00:06:21Z", 
    "currency": "USD", 
    "endDate": "2020-05-15", 
    "minStay": 3, 
    "modified": "2019-05-16T08:01:00Z", 
    "monthly": 0, 
    "name": "Ski Season", 
    "weekNight": 49500, 
    "nightly": 49500, 
    "position": 1, 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "ratePlan": {
        "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
        "key": "862caa3f5267602d", 
        "name": "Default Rates for Property"
    }, 
    "repeat": true, 
    "startDate": "2019-12-01", 
    "weekend": 0, 
    "weekendNight": 0, 
    "weekly": 0
}

Update Rate

Update data on an existing Rate. Specify the Rate to update by key or externalId in the URL.
Bulk Operations Supported

This endpoint supports bulk operations. If you'd like to update multiple Rate at once, post multiple objects in an array.


Endpoint

PUT or PATCH https://api.myvr.com/v1/rates/{KEY}/




Arguments

key
string
The identifier of the Rate to update. The identifier can be a MyVR Rate key, which is provided after you create a Rate, or an externalId you've set on the Rate.
externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
baseRate
boolean
A flag indicating this rate is the base rate for the property. Each property should have one base rate that is used when no other rates apply.
changeoverDay
integer
The changeover day is an optional settings that restricts rentals to weeklong increments. If a day of the week is specified, rentals must select this day as the check-in and check-out day. This is useful if you require Saturday to Saturday rentals, for example. ISO standard values are used: 1 = Monday, 2 = Tuesday, ... 7 = Sunday.
Min Value: 1   Max Value: 7  
endDate
date
The ending date for which the rate applies. Base rates do not require end dates, and if provided, are ignored. Repeating rates ignore the year portion of the end date.
minStay
integer
The minimum number of nights required for a reservation with this rate.
monthly
integer
The amount to charge per month for this rate.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
name
string
The name of the rate, as presented to renters.
weekNight
integer
[Deprecated, use `nightly`]. The nightly rate for a day that is classified as a week night. A day is classified as a week night based on the weekendNights setting of the associated property.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
Deprecated  
nightly
integer
The base nightly rate for for this rental period.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
position
integer
The position of this rate relative to other rates for this property. The value of position is used to determine the order in which rates are shown to renters.
property
string
The property the rate belongs to. For create/update operations, this can be the URI, id, key, or externalId of the property.

For create/update operations, you must specify either the ratePlan or property but never both. If the ratePlan is not provided but the property is, the rate will be assigned to the default rate plan for the property, even if it's not the active rate plan for the property.
ratePlan
string
The plan this rate belongs to. For create/update operations, this can be the URI or key of the rate plan.

For create/update operations, you must specify either the `ratePlan` or `property` but never both. If the `ratePlan` is not provided but the `property` is, the rate will be assigned to the default rate plan for the property, even if it's not the active rate plan for the property.
repeat
boolean
A flag indicating the rate repeats every year on the same start and end date (month and day only). If true, the year portion of startDate and endDate are ignored.
startDate
date
The starting date for which the rate applies. Base rates do not require start dates, and if provided, are ignored. Repeating rates ignore the year portion of the start date.
weekend
integer
The amount to charge for an entire weekend for this rate.Weekends are determined by the weekendNights setting of the associated property.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
weekendNight
integer
The nightly rate for a day that is classified as a weekend night. A day is classified as a weekend night based on the weekendNights setting of the associated property. If provided, this rate supersedes the nightly rate for weekendNights.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
weekly
integer
The amount to charge per week for this rate.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.


Example Request

curl https://api.myvr.com/v1/rates/{KEY}/ -u YOUR_API_KEY:  -X PATCH
	-d baseRate=false


Response

If successfully updated, a Rate Object is returned with the updates applied.


Example Response

{
    "uri": "https://api.myvr.com/v1/rates/3ce07818cb83cd1f/", 
    "id": "3ce07818cb83cd1f", 
    "key": "3ce07818cb83cd1f", 
    "externalId": null, 
    "baseRate": false, 
    "changeoverDay": null, 
    "created": "2016-01-19T00:06:21Z", 
    "currency": "USD", 
    "endDate": "2020-05-15", 
    "minStay": 3, 
    "modified": "2019-05-16T08:01:00Z", 
    "monthly": 0, 
    "name": "Ski Season", 
    "weekNight": 49500, 
    "nightly": 49500, 
    "position": 1, 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "ratePlan": {
        "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
        "key": "862caa3f5267602d", 
        "name": "Default Rates for Property"
    }, 
    "repeat": true, 
    "startDate": "2019-12-01", 
    "weekend": 0, 
    "weekendNight": 0, 
    "weekly": 0
}

Delete Rate

Delete a Rate from your MyVR account. This is a permanent operation that cannot be undone, be very careful.
Bulk Operations Supported

This endpoint supports bulk operations. If you'd like to delete multiple Rates at once, filter the set of objects you'd like to delete by providing query parameters (see List endpoint for filter options) and submitting an HTTP DELETE request. Please use bulk deletes with extreme caution since they can be dangerous.


Endpoint

DELETE https://api.myvr.com/v1/rates/{KEY}/




Arguments

key
string
The identifier of the Rate to delete. The identifier can be a MyVR Rate key, which is provided after you create a Rate, or an externalId you've set on the Rate.
Required  


Example Request

curl https://api.myvr.com/v1/rates/{KEY}/ -u YOUR_API_KEY:  -X DELETE


Response

If the Rate is deleted successfully, a http status code of 204 will be returned with an empty result. If an error occurs, we'll return an http status code reflective of the error.


Example Response

{}

List Rates

Returns a list of rates from the account. The rates are returned in sorted order, with the most recent rates appearing first.

Endpoint

GET https://api.myvr.com/v1/rates/




Arguments

id
string
Find results by id, uri, or externalId.
Optional  
modified
string
Find results modified after this date and time.
Optional  
property
string
Find by key, uri or externalId the associated property.
Optional  
startDate
date
If provided, only return rates that apply after the start date. Accepts a valid ISO-8601 date.
Optional  
endDate
date
If provided, only return rates that apply before the end date. Accepts a valid ISO-8601 date.
Optional  
baseRate
boolean
If provided, filters the rates by the baseRate flag. Useful for retrieving the base rate for a property.
Optional  


Example Request

curl https://api.myvr.com/v1/rates/ -u YOUR_API_KEY: 


Response

Returns a list of Rates from the account. The Rates are returned in sorted order, with the most recent Rates appearing first.


Example Response

{
    "count": 100, 
    "limit": 25, 
    "offset": 25, 
    "next": "https://api.myvr.com/v1/rates/?offset=50", 
    "previous": "https://api.myvr.com/v1/rates/?offset=0", 
    "results": [
        {
            "uri": "https://api.myvr.com/v1/rates/3ce07818cb83cd1f/", 
            "id": "3ce07818cb83cd1f", 
            "key": "3ce07818cb83cd1f", 
            "externalId": null, 
            "baseRate": false, 
            "changeoverDay": null, 
            "created": "2016-01-19T00:06:21Z", 
            "currency": "USD", 
            "endDate": "2020-05-15", 
            "minStay": 3, 
            "modified": "2019-05-16T08:01:00Z", 
            "monthly": 0, 
            "name": "Ski Season", 
            "weekNight": 49500, 
            "nightly": 49500, 
            "position": 1, 
            "property": {
                "name": "API Demo Property", 
                "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
                "id": "b6b0f2fe278f612b", 
                "externalId": null, 
                "key": "b6b0f2fe278f612b", 
                "slug": "api-demo-property"
            }, 
            "ratePlan": {
                "uri": "https://api.myvr.com/v1/rate-plans/862caa3f5267602d/", 
                "key": "862caa3f5267602d", 
                "name": "Default Rates for Property"
            }, 
            "repeat": true, 
            "startDate": "2019-12-01", 
            "weekend": 0, 
            "weekendNight": 0, 
            "weekly": 0
        }
    ]
}
NOTE: The above example response only shows one result for brevity, whereas the meta info indicates it should have 25.

Fee Plans

Fees can be grouped into reusable collections known as Fee Plans. Fee Plans can then be assigned to one or more properties in your account. Fee Plans are a great way to simplify fee management across similar units.

Fee Plans can be global in scope, meaning they can be applied to any property, or they can be property scoped, meaning they can only be used by a property and it's descendants.

By default, all properties have their own default, property-scoped Fee Plan. The property can optionally use this default Fee Plan or select an alternative Fee Plan.

Feature Required: Pricing Plans

The Fee Plan Object



Attributes

uri
uri
The uniform resource identifier for the object.
key
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
created
datetime
The ISO-8601 datetime the object was created in MyVR.
currency
string
The currency being used for this plan. The currency is represented as a 3 character ISO 4217 currency code.
default
boolean
Whether or not this is the default plan for the associated property. Every property has one default plan associated with it.
modified
datetime
The ISO-8601 datetime the object was last modified in MyVR.
name
string
The name of the plan, used for internal reference and never shown to a guest.
property
string
The optional property the plan is restricted to. If a property is specified, the plan can only be used by the specified property and it's descendants.
scope
choice
The scope of the plan which restricts which properties it can be applied to. Plans can have a scope of account, which indicates it can be applied to all properties in the account, or a scope of property, which indicates it can only be used on the specified property and it's descendants.

account Account Wide Default
property Listing Specific

Example Response

{
    "uri": "https://api.myvr.com/v1/fee-plans/4d1c44383755051b/", 
    "key": "4d1c44383755051b", 
    "created": "2019-09-19T05:42:33Z", 
    "currency": "USD", 
    "default": true, 
    "modified": "2019-09-19T05:42:33Z", 
    "name": "Default Fees for Listing", 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "scope": "property"
}

Retrieve Fee Plan

Retrieve the details of an existing Fee Plan.

Endpoint

GET https://api.myvr.com/v1/rate-plans/{KEY}/




Arguments

key
string
The identifier of the Fee Plan to retrieve. The identifier can be a MyVR Fee Plan key, which is provided after you create a Fee Plan, or an externalId you've set on the Fee Plan.
Required  


Example Request

curl https://api.myvr.com/v1/rate-plans/{KEY}/ -u YOUR_API_KEY: 


Response

Returns a Fee Plan Object that matches the key or externalId.


Example Response

{
    "uri": "https://api.myvr.com/v1/fee-plans/4d1c44383755051b/", 
    "key": "4d1c44383755051b", 
    "created": "2019-09-19T05:42:33Z", 
    "currency": "USD", 
    "default": true, 
    "modified": "2019-09-19T05:42:33Z", 
    "name": "Default Fees for Listing", 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "scope": "property"
}

List Fee Plans

Returns a list of fee plans from the account. The fee plans are returned in sorted order, with the most recent fee plans appearing first.

Endpoint

GET https://api.myvr.com/v1/rate-plans/




Arguments

currency
string
Filter plans by currency.
Optional  
default
boolean
Find plans that are the default for their associated property. Every property has one default plan associated with it.
Optional  
name
string
Filter plans by name.
Optional  
property
string
Find by key, uri or externalId of the property the plan is restricted to.
Optional  
scope
choice
Find plans with the specified scope.
  • "account" Account Wide
  • "property" Listing Specific
Optional  
id
string
Find results by id, uri, or externalId.
Optional  
modified
string
Find results modified after this date and time.
Optional  


Example Request

curl https://api.myvr.com/v1/rate-plans/ -u YOUR_API_KEY: 


Response

Returns a list of Fee Plans from the account. The Fee Plans are returned in sorted order, with the most recent Fee Plans appearing first.


Example Response

{
    "count": 100, 
    "limit": 25, 
    "offset": 25, 
    "next": "https://api.myvr.com/v1/rate-plans/?offset=50", 
    "previous": "https://api.myvr.com/v1/rate-plans/?offset=0", 
    "results": [
        {
            "uri": "https://api.myvr.com/v1/fee-plans/4d1c44383755051b/", 
            "key": "4d1c44383755051b", 
            "created": "2019-09-19T05:42:33Z", 
            "currency": "USD", 
            "default": true, 
            "modified": "2019-09-19T05:42:33Z", 
            "name": "Default Fees for Listing", 
            "property": {
                "name": "API Demo Property", 
                "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
                "id": "b6b0f2fe278f612b", 
                "externalId": null, 
                "key": "b6b0f2fe278f612b", 
                "slug": "api-demo-property"
            }, 
            "scope": "property"
        }
    ]
}
NOTE: The above example response only shows one result for brevity, whereas the meta info indicates it should have 25.

Fees

Fees are incremental charges that may apply to a rental on top of your standard rates. For example, you may charge a cleaning fee, apply taxes, or collect a security deposit.

Individual fees can be optional or required. They can be based on a flat amount (eg: $250 cleaning fee) or as a percentage of rent and taxable fees (eg: 10% Occupancy Tax).

The Fee Object



Attributes

uri
uri
The uniform resource identifier for the object.
id
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
Deprecated  
key
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
basis
choice
The basis for how the fee should be calculated when generated quotes for renters.

flat Flat Rate Per Stay Default
nights Flat Rate Per Night
people Flat Rate Per Person
months Flat Rate Per Month
person-nights Flat Rate Per Person Per Night
rent-percentage Percentage of Rent
other Other
total-percentage Percentage of Rent, Fees & Taxes
percentage Percentage of Rent & Taxable Fees
weeks Flat Rate Per Week
cost
integer
The cost associated with this fee. For example, if the basis of the fee is flat, a cost of 10000 would indicate a flat fee of $100.00

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
created
datetime
The ISO-8601 datetime the object was created in MyVR.
currency
string
The currency being used for this fee. This read only field is derived from the currency on the property this fee is associated with. The currency is represented as a 3 character ISO 4217 currency code.
description
string
A description of the fee, as presented to renters.
feePlan
string
COMING SOON(presently read only). The plan this fee belongs to. For create/update operations, this can be the URI or key of the fee plan.

For create/update operations, you must specify either the feePlan or property but never both. If the feePlan is not provided but the property is, the rate will be assigned to the default fee plan for the property, even if it's not the active fee plan for the property.
guestThreshold
integer
A threshold on the number of guests before a per person adjustment kicks in. Only applicable to fees of type per-person. For example, if there is an addition charge for guests over 4, you would set the guestThreshold to 4.
includeChildren
boolean
A flag indicating the number of children should be included in per-person adjustment fees.
included
boolean
If the fee should be automatically included in all quotes.
locked
boolean
A flag indicating that the fee cannot be edited within the MyVR application or via MyVR connect.
modified
datetime
The ISO-8601 datetime the object was last modified in MyVR.
name
string
The name of the fee, as presented to renters.
optional
boolean
If the fee is an optional fee that may be removed/added by a renter.
percentage
decimal
The percentage that should be used to calculate this fee. For example, a fee for 10% Occupancy Tax would have a value of 10%. When this fee is calculated, the rental rate and all taxable fees are used in the percentage calculation.
position
integer
The position of the fee relative to other fees for this property. The position is used to determine the order in which fees are presented to renters.
property
string
The property the fee belongs to. For create/update operations, this can be the URI, id, key, or externalId of the property.

For create/update operations, you must specify either the feePlan or property but never both. If the feePlan is not provided but the property is, the rate will be assigned to the default fee plan for the property, even if it's not the active fee plan for the property.
refundable
boolean
If the fee is refundable once the rental is complete. For example, damage deposits are often refundable after a stay.
taxable
boolean
A flag indicating the fee should be included in the tax calculation for this rental.
type
choice
The type of fee.

fee Fee Default
pet Pet Fee
per-person Per-person-adjustment
tax Tax
other Other
cleaning Cleaning Fee
deposit Refundable Security Deposit

Example Response

{
    "uri": "https://api.myvr.com/v1/fees/caeb9c167089c18e/", 
    "id": "caeb9c167089c18e", 
    "key": "caeb9c167089c18e", 
    "externalId": null, 
    "basis": "flat", 
    "cost": 25000, 
    "created": "2016-01-19T00:06:59Z", 
    "currency": "USD", 
    "description": null, 
    "feePlan": {
        "uri": "https://api.myvr.com/v1/fee-plans/4d1c44383755051b/", 
        "key": "4d1c44383755051b", 
        "name": "Default Fees for Listing"
    }, 
    "guestThreshold": 0, 
    "includeChildren": false, 
    "included": true, 
    "locked": false, 
    "modified": "2016-01-19T00:06:59Z", 
    "name": "Cleaning Fee", 
    "optional": false, 
    "percentage": null, 
    "position": 0, 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "refundable": false, 
    "taxable": true, 
    "type": "cleaning"
}

Create Fee

Create a new Fee on your MyVR account. When a Fee is created, it will be assigned a key.


Endpoint

POST https://api.myvr.com/v1/fees/




Arguments

externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
basis
choice
The basis for how the fee should be calculated when generated quotes for renters.
Default: flat  
cost
integer
The cost associated with this fee. For example, if the basis of the fee is flat, a cost of 10000 would indicate a flat fee of $100.00

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
description
string
A description of the fee, as presented to renters.
guestThreshold
integer
A threshold on the number of guests before a per person adjustment kicks in. Only applicable to fees of type per-person. For example, if there is an addition charge for guests over 4, you would set the guestThreshold to 4.
includeChildren
boolean
A flag indicating the number of children should be included in per-person adjustment fees.
included
boolean
If the fee should be automatically included in all quotes.
name
string
The name of the fee, as presented to renters.
Required  
optional
boolean
If the fee is an optional fee that may be removed/added by a renter.
percentage
decimal
The percentage that should be used to calculate this fee. For example, a fee for 10% Occupancy Tax would have a value of 10%. When this fee is calculated, the rental rate and all taxable fees are used in the percentage calculation.
position
integer
The position of the fee relative to other fees for this property. The position is used to determine the order in which fees are presented to renters.
property
string
The property the fee belongs to. For create/update operations, this can be the URI, id, key, or externalId of the property.

For create/update operations, you must specify either the feePlan or property but never both. If the feePlan is not provided but the property is, the rate will be assigned to the default fee plan for the property, even if it's not the active fee plan for the property.
Required  
refundable
boolean
If the fee is refundable once the rental is complete. For example, damage deposits are often refundable after a stay.
taxable
boolean
A flag indicating the fee should be included in the tax calculation for this rental.
type
choice
The type of fee.
Default: fee  


Example Request

curl https://api.myvr.com/v1/fees/ -u YOUR_API_KEY: 
	-d name="Cleaning Fee"
	-d property="b6b0f2fe278f612b"


Response

If successfully created, a Fee Object is returned with a newly assigned key. You can use this key to retrieve or update the Fee in the future. If creation fails, an http error will be returned.


Example Response

{
    "uri": "https://api.myvr.com/v1/fees/caeb9c167089c18e/", 
    "id": "caeb9c167089c18e", 
    "key": "caeb9c167089c18e", 
    "externalId": null, 
    "basis": "flat", 
    "cost": 25000, 
    "created": "2016-01-19T00:06:59Z", 
    "currency": "USD", 
    "description": null, 
    "feePlan": {
        "uri": "https://api.myvr.com/v1/fee-plans/4d1c44383755051b/", 
        "key": "4d1c44383755051b", 
        "name": "Default Fees for Listing"
    }, 
    "guestThreshold": 0, 
    "includeChildren": false, 
    "included": true, 
    "locked": false, 
    "modified": "2016-01-19T00:06:59Z", 
    "name": "Cleaning Fee", 
    "optional": false, 
    "percentage": null, 
    "position": 0, 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "refundable": false, 
    "taxable": true, 
    "type": "cleaning"
}

Retrieve Fee

Retrieve the details of an existing Fee.

Endpoint

GET https://api.myvr.com/v1/fees/{KEY}/




Arguments

key
string
The identifier of the Fee to retrieve. The identifier can be a MyVR Fee key, which is provided after you create a Fee, or an externalId you've set on the Fee.
Required  


Example Request

curl https://api.myvr.com/v1/fees/{KEY}/ -u YOUR_API_KEY: 


Response

Returns a Fee Object that matches the key or externalId.


Example Response

{
    "uri": "https://api.myvr.com/v1/fees/caeb9c167089c18e/", 
    "id": "caeb9c167089c18e", 
    "key": "caeb9c167089c18e", 
    "externalId": null, 
    "basis": "flat", 
    "cost": 25000, 
    "created": "2016-01-19T00:06:59Z", 
    "currency": "USD", 
    "description": null, 
    "feePlan": {
        "uri": "https://api.myvr.com/v1/fee-plans/4d1c44383755051b/", 
        "key": "4d1c44383755051b", 
        "name": "Default Fees for Listing"
    }, 
    "guestThreshold": 0, 
    "includeChildren": false, 
    "included": true, 
    "locked": false, 
    "modified": "2016-01-19T00:06:59Z", 
    "name": "Cleaning Fee", 
    "optional": false, 
    "percentage": null, 
    "position": 0, 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "refundable": false, 
    "taxable": true, 
    "type": "cleaning"
}

Update Fee

Update data on an existing Fee. Specify the Fee to update by key or externalId in the URL.

Endpoint

PUT or PATCH https://api.myvr.com/v1/fees/{KEY}/




Arguments

key
string
The identifier of the Fee to update. The identifier can be a MyVR Fee key, which is provided after you create a Fee, or an externalId you've set on the Fee.
externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
basis
choice
The basis for how the fee should be calculated when generated quotes for renters.
cost
integer
The cost associated with this fee. For example, if the basis of the fee is flat, a cost of 10000 would indicate a flat fee of $100.00

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
description
string
A description of the fee, as presented to renters.
guestThreshold
integer
A threshold on the number of guests before a per person adjustment kicks in. Only applicable to fees of type per-person. For example, if there is an addition charge for guests over 4, you would set the guestThreshold to 4.
includeChildren
boolean
A flag indicating the number of children should be included in per-person adjustment fees.
included
boolean
If the fee should be automatically included in all quotes.
name
string
The name of the fee, as presented to renters.
optional
boolean
If the fee is an optional fee that may be removed/added by a renter.
percentage
decimal
The percentage that should be used to calculate this fee. For example, a fee for 10% Occupancy Tax would have a value of 10%. When this fee is calculated, the rental rate and all taxable fees are used in the percentage calculation.
position
integer
The position of the fee relative to other fees for this property. The position is used to determine the order in which fees are presented to renters.
property
string
The property the fee belongs to. For create/update operations, this can be the URI, id, key, or externalId of the property.

For create/update operations, you must specify either the feePlan or property but never both. If the feePlan is not provided but the property is, the rate will be assigned to the default fee plan for the property, even if it's not the active fee plan for the property.
refundable
boolean
If the fee is refundable once the rental is complete. For example, damage deposits are often refundable after a stay.
taxable
boolean
A flag indicating the fee should be included in the tax calculation for this rental.
type
choice
The type of fee.


Example Request

curl https://api.myvr.com/v1/fees/{KEY}/ -u YOUR_API_KEY:  -X PATCH
	-d basis="flat"


Response

If successfully updated, a Fee Object is returned with the updates applied.


Example Response

{
    "uri": "https://api.myvr.com/v1/fees/caeb9c167089c18e/", 
    "id": "caeb9c167089c18e", 
    "key": "caeb9c167089c18e", 
    "externalId": null, 
    "basis": "flat", 
    "cost": 25000, 
    "created": "2016-01-19T00:06:59Z", 
    "currency": "USD", 
    "description": null, 
    "feePlan": {
        "uri": "https://api.myvr.com/v1/fee-plans/4d1c44383755051b/", 
        "key": "4d1c44383755051b", 
        "name": "Default Fees for Listing"
    }, 
    "guestThreshold": 0, 
    "includeChildren": false, 
    "included": true, 
    "locked": false, 
    "modified": "2016-01-19T00:06:59Z", 
    "name": "Cleaning Fee", 
    "optional": false, 
    "percentage": null, 
    "position": 0, 
    "property": {
        "name": "API Demo Property", 
        "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
        "id": "b6b0f2fe278f612b", 
        "externalId": null, 
        "key": "b6b0f2fe278f612b", 
        "slug": "api-demo-property"
    }, 
    "refundable": false, 
    "taxable": true, 
    "type": "cleaning"
}

Delete Fee

Delete a Fee from your MyVR account. This is a permanent operation that cannot be undone, be very careful.

Endpoint

DELETE https://api.myvr.com/v1/fees/{KEY}/




Arguments

key
string
The identifier of the Fee to delete. The identifier can be a MyVR Fee key, which is provided after you create a Fee, or an externalId you've set on the Fee.
Required  


Example Request

curl https://api.myvr.com/v1/fees/{KEY}/ -u YOUR_API_KEY:  -X DELETE


Response

If the Fee is deleted successfully, a http status code of 204 will be returned with an empty result. If an error occurs, we'll return an http status code reflective of the error.


Example Response

{}

List Fees

Returns a list of fees from the account. The fees are returned in sorted order, with the most recent fees appearing first.

Endpoint

GET https://api.myvr.com/v1/fees/




Arguments

id
string
Find results by id, uri, or externalId.
Optional  
modified
string
Find results modified after this date and time.
Optional  
property
string
Find by key, uri or externalId of the associated property.
Optional  


Example Request

curl https://api.myvr.com/v1/fees/ -u YOUR_API_KEY: 


Response

Returns a list of Fees from the account. The Fees are returned in sorted order, with the most recent Fees appearing first.


Example Response

{
    "count": 100, 
    "limit": 25, 
    "offset": 25, 
    "next": "https://api.myvr.com/v1/fees/?offset=50", 
    "previous": "https://api.myvr.com/v1/fees/?offset=0", 
    "results": [
        {
            "uri": "https://api.myvr.com/v1/fees/caeb9c167089c18e/", 
            "id": "caeb9c167089c18e", 
            "key": "caeb9c167089c18e", 
            "externalId": null, 
            "basis": "flat", 
            "cost": 25000, 
            "created": "2016-01-19T00:06:59Z", 
            "currency": "USD", 
            "description": null, 
            "feePlan": {
                "uri": "https://api.myvr.com/v1/fee-plans/4d1c44383755051b/", 
                "key": "4d1c44383755051b", 
                "name": "Default Fees for Listing"
            }, 
            "guestThreshold": 0, 
            "includeChildren": false, 
            "included": true, 
            "locked": false, 
            "modified": "2016-01-19T00:06:59Z", 
            "name": "Cleaning Fee", 
            "optional": false, 
            "percentage": null, 
            "position": 0, 
            "property": {
                "name": "API Demo Property", 
                "uri": "https://api.myvr.com/v1/properties/b6b0f2fe278f612b/", 
                "id": "b6b0f2fe278f612b", 
                "externalId": null, 
                "key": "b6b0f2fe278f612b", 
                "slug": "api-demo-property"
            }, 
            "refundable": false, 
            "taxable": true, 
            "type": "cleaning"
        }
    ]
}
NOTE: The above example response only shows one result for brevity, whereas the meta info indicates it should have 25.

Groups

A property group is a named collection of properties. You can create as many property groups as you like, and include as many or as few properties as you like in each group.

The Group Object



Attributes

uri
uri
The uniform resource identifier for the object.
key
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
created
datetime
The ISO-8601 datetime the object was created in MyVR.
externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
modified
datetime
The ISO-8601 datetime the object was last modified in MyVR.
name
string
The name of the property group.
propertyCount
integer
The total number of properties in the group.

Example Response

{
    "uri": "https://api.myvr.com/v1/property-groups/b122a0ff5a236ce1/", 
    "key": "b122a0ff5a236ce1", 
    "created": "2015-02-27T22:31:09Z", 
    "externalId": null, 
    "modified": "2015-04-16T17:37:53Z", 
    "name": "LA Beach Properties", 
    "propertyCount": 6
}

Create Group

Create a new Group on your MyVR account. When a Group is created, it will be assigned a key.


Endpoint

POST https://api.myvr.com/v1/property-groups/




Arguments

externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
name
string
The name of the property group.
Required  


Example Request

curl https://api.myvr.com/v1/property-groups/ -u YOUR_API_KEY: 
	-d name="LA Beach Properties"


Response

If successfully created, a Group Object is returned with a newly assigned key. You can use this key to retrieve or update the Group in the future. If creation fails, an http error will be returned.


Example Response

{
    "uri": "https://api.myvr.com/v1/property-groups/b122a0ff5a236ce1/", 
    "key": "b122a0ff5a236ce1", 
    "created": "2015-02-27T22:31:09Z", 
    "externalId": null, 
    "modified": "2015-04-16T17:37:53Z", 
    "name": "LA Beach Properties", 
    "propertyCount": 6
}

Retrieve Group

Retrieve the details of an existing Group.

Endpoint

GET https://api.myvr.com/v1/property-groups/{KEY}/




Arguments

key
string
The identifier of the Group to retrieve. The identifier can be a MyVR Group key, which is provided after you create a Group, or an externalId you've set on the Group.
Required  


Example Request

curl https://api.myvr.com/v1/property-groups/{KEY}/ -u YOUR_API_KEY: 


Response

Returns a Group Object that matches the key or externalId.


Example Response

{
    "uri": "https://api.myvr.com/v1/property-groups/b122a0ff5a236ce1/", 
    "key": "b122a0ff5a236ce1", 
    "created": "2015-02-27T22:31:09Z", 
    "externalId": null, 
    "modified": "2015-04-16T17:37:53Z", 
    "name": "LA Beach Properties", 
    "propertyCount": 6
}

Update Group

Update data on an existing Group. Specify the Group to update by key or externalId in the URL.

Endpoint

PUT or PATCH https://api.myvr.com/v1/property-groups/{KEY}/




Arguments

key
string
The identifier of the Group to update. The identifier can be a MyVR Group key, which is provided after you create a Group, or an externalId you've set on the Group.
externalId
string
A unique identifier of the object in your external system. If provided, you can lookup the object by externalId in addition to key.
name
string
The name of the property group.


Example Request

curl https://api.myvr.com/v1/property-groups/{KEY}/ -u YOUR_API_KEY:  -X PATCH
	-d created="2015-02-27T22:31:09Z"


Response

If successfully updated, a Group Object is returned with the updates applied.


Example Response

{
    "uri": "https://api.myvr.com/v1/property-groups/b122a0ff5a236ce1/", 
    "key": "b122a0ff5a236ce1", 
    "created": "2015-02-27T22:31:09Z", 
    "externalId": null, 
    "modified": "2015-04-16T17:37:53Z", 
    "name": "LA Beach Properties", 
    "propertyCount": 6
}

Delete Group

Delete a Group from your MyVR account. This is a permanent operation that cannot be undone, be very careful.

Endpoint

DELETE https://api.myvr.com/v1/property-groups/{KEY}/




Arguments

key
string
The identifier of the Group to delete. The identifier can be a MyVR Group key, which is provided after you create a Group, or an externalId you've set on the Group.
Required  


Example Request

curl https://api.myvr.com/v1/property-groups/{KEY}/ -u YOUR_API_KEY:  -X DELETE


Response

If the Group is deleted successfully, a http status code of 204 will be returned with an empty result. If an error occurs, we'll return an http status code reflective of the error.


Example Response

{}

List Groups

Returns a list of groups from the account. The groups are returned in sorted order, with the most recent groups appearing first.

Endpoint

GET https://api.myvr.com/v1/property-groups/




Arguments

id
string
Find results by id, uri, or externalId.
Optional  
modified
string
Find results modified after this date and time.
Optional  
name
string
Filter the list of groups by name.
Optional  
minProperties
integer
Restrict the list of groups to those that meet a minimum property count.
Optional  
maxProperties
integer
Restrict the list of groups to those that do not exceed a maximum property count.
Optional  
orderBy
string
Sort the property groups results by the field name provided here. Valid options are: name, propertyCount, created, externalId.
Optional  


Example Request

curl https://api.myvr.com/v1/property-groups/ -u YOUR_API_KEY: 


Response

Returns a list of Groups from the account. The Groups are returned in sorted order, with the most recent Groups appearing first.


Example Response

{
    "count": 100, 
    "limit": 25, 
    "offset": 25, 
    "next": "https://api.myvr.com/v1/property-groups/?offset=50", 
    "previous": "https://api.myvr.com/v1/property-groups/?offset=0", 
    "results": [
        {
            "uri": "https://api.myvr.com/v1/property-groups/b122a0ff5a236ce1/", 
            "key": "b122a0ff5a236ce1", 
            "created": "2015-02-27T22:31:09Z", 
            "externalId": null, 
            "modified": "2015-04-16T17:37:53Z", 
            "name": "LA Beach Properties", 
            "propertyCount": 6
        }
    ]
}
NOTE: The above example response only shows one result for brevity, whereas the meta info indicates it should have 25.

Memberships

The collection of property to group mappings. You can include as many or as few properties as you like in each group. Properties can only be added to a group once.

The membership endpoint supports bulk operations.

The Membership Object



Attributes

uri
uri
The uniform resource identifier for the object.
key
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
created
datetime
The ISO-8601 datetime the object was created in MyVR.
group
string
The property group this object relates to. For create and update operations, this can be the URI, key, or externalId.
modified
datetime
The ISO-8601 datetime the object was last modified in MyVR.
position
integer
The default position of the property within the group.
property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.

Example Response

{
    "uri": "https://api.myvr.com/v1/property-memberships/1595c0a4cd6e1981/", 
    "key": "1595c0a4cd6e1981", 
    "created": "2017-08-22T07:00:00Z", 
    "group": {
        "externalId": null, 
        "uri": "https://api.myvr.com/v1/property-groups/b122a0ff5a236ce1/", 
        "key": "b122a0ff5a236ce1", 
        "name": "LA Beach Properties"
    }, 
    "modified": "2017-08-22T07:00:00Z", 
    "position": 1, 
    "property": {
        "name": "Modern Villa", 
        "uri": "https://api.myvr.com/v1/properties/ecb43df9c4b87a56/", 
        "id": "ecb43df9c4b87a56", 
        "externalId": null, 
        "key": "ecb43df9c4b87a56", 
        "slug": "modern-villa"
    }
}

Create Membership

Create a new Membership on your MyVR account. When a Membership is created, it will be assigned a key.


Endpoint

POST https://api.myvr.com/v1/property-memberships/




Arguments

group
string
The property group this object relates to. For create and update operations, this can be the URI, key, or externalId.
Required  
position
integer
The default position of the property within the group.
property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.
Required  


Example Request

curl https://api.myvr.com/v1/property-memberships/ -u YOUR_API_KEY: 
	-d group="b122a0ff5a236ce1"
	-d property="ecb43df9c4b87a56"


Response

If successfully created, a Membership Object is returned with a newly assigned key. You can use this key to retrieve or update the Membership in the future. If creation fails, an http error will be returned.


Example Response

{
    "uri": "https://api.myvr.com/v1/property-memberships/1595c0a4cd6e1981/", 
    "key": "1595c0a4cd6e1981", 
    "created": "2017-08-22T07:00:00Z", 
    "group": {
        "externalId": null, 
        "uri": "https://api.myvr.com/v1/property-groups/b122a0ff5a236ce1/", 
        "key": "b122a0ff5a236ce1", 
        "name": "LA Beach Properties"
    }, 
    "modified": "2017-08-22T07:00:00Z", 
    "position": 1, 
    "property": {
        "name": "Modern Villa", 
        "uri": "https://api.myvr.com/v1/properties/ecb43df9c4b87a56/", 
        "id": "ecb43df9c4b87a56", 
        "externalId": null, 
        "key": "ecb43df9c4b87a56", 
        "slug": "modern-villa"
    }
}

Retrieve Membership

Retrieve the details of an existing Membership.

Endpoint

GET https://api.myvr.com/v1/property-memberships/{KEY}/




Arguments

key
string
The identifier of the Membership to retrieve. The identifier can be a MyVR Membership key, which is provided after you create a Membership, or an externalId you've set on the Membership.
Required  


Example Request

curl https://api.myvr.com/v1/property-memberships/{KEY}/ -u YOUR_API_KEY: 


Response

Returns a Membership Object that matches the key or externalId.


Example Response

{
    "uri": "https://api.myvr.com/v1/property-memberships/1595c0a4cd6e1981/", 
    "key": "1595c0a4cd6e1981", 
    "created": "2017-08-22T07:00:00Z", 
    "group": {
        "externalId": null, 
        "uri": "https://api.myvr.com/v1/property-groups/b122a0ff5a236ce1/", 
        "key": "b122a0ff5a236ce1", 
        "name": "LA Beach Properties"
    }, 
    "modified": "2017-08-22T07:00:00Z", 
    "position": 1, 
    "property": {
        "name": "Modern Villa", 
        "uri": "https://api.myvr.com/v1/properties/ecb43df9c4b87a56/", 
        "id": "ecb43df9c4b87a56", 
        "externalId": null, 
        "key": "ecb43df9c4b87a56", 
        "slug": "modern-villa"
    }
}

Update Membership

Update data on an existing Membership. Specify the Membership to update by key or externalId in the URL.

Endpoint

PUT or PATCH https://api.myvr.com/v1/property-memberships/{KEY}/




Arguments

key
string
The identifier of the Membership to update. The identifier can be a MyVR Membership key, which is provided after you create a Membership, or an externalId you've set on the Membership.
group
string
The property group this object relates to. For create and update operations, this can be the URI, key, or externalId.
position
integer
The default position of the property within the group.
property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.


Example Request

curl https://api.myvr.com/v1/property-memberships/{KEY}/ -u YOUR_API_KEY:  -X PATCH
	-d created="2017-08-22T07:00:00Z"


Response

If successfully updated, a Membership Object is returned with the updates applied.


Example Response

{
    "uri": "https://api.myvr.com/v1/property-memberships/1595c0a4cd6e1981/", 
    "key": "1595c0a4cd6e1981", 
    "created": "2017-08-22T07:00:00Z", 
    "group": {
        "externalId": null, 
        "uri": "https://api.myvr.com/v1/property-groups/b122a0ff5a236ce1/", 
        "key": "b122a0ff5a236ce1", 
        "name": "LA Beach Properties"
    }, 
    "modified": "2017-08-22T07:00:00Z", 
    "position": 1, 
    "property": {
        "name": "Modern Villa", 
        "uri": "https://api.myvr.com/v1/properties/ecb43df9c4b87a56/", 
        "id": "ecb43df9c4b87a56", 
        "externalId": null, 
        "key": "ecb43df9c4b87a56", 
        "slug": "modern-villa"
    }
}

Delete Membership

Delete a Membership from your MyVR account. This is a permanent operation that cannot be undone, be very careful.

Endpoint

DELETE https://api.myvr.com/v1/property-memberships/{KEY}/




Arguments

key
string
The identifier of the Membership to delete. The identifier can be a MyVR Membership key, which is provided after you create a Membership, or an externalId you've set on the Membership.
Required  


Example Request

curl https://api.myvr.com/v1/property-memberships/{KEY}/ -u YOUR_API_KEY:  -X DELETE


Response

If the Membership is deleted successfully, a http status code of 204 will be returned with an empty result. If an error occurs, we'll return an http status code reflective of the error.


Example Response

{}

List Memberships

Returns a list of memberships from the account. The memberships are returned in sorted order, with the most recent memberships appearing first.

Endpoint

GET https://api.myvr.com/v1/property-memberships/




Arguments

id
string
Find results by id, uri, or externalId.
Optional  
modified
string
Find results modified after this date and time.
Optional  
property
string
Return all memberships associated with the provided property, identified by the key or externalId of the property.
Optional  
group
string
Return all memberships associated with the provided group, identified by the key or externalId of the group.
Optional  


Example Request

curl https://api.myvr.com/v1/property-memberships/ -u YOUR_API_KEY: 


Response

Returns a list of Memberships from the account. The Memberships are returned in sorted order, with the most recent Memberships appearing first.


Example Response

{
    "count": 100, 
    "limit": 25, 
    "offset": 25, 
    "next": "https://api.myvr.com/v1/property-memberships/?offset=50", 
    "previous": "https://api.myvr.com/v1/property-memberships/?offset=0", 
    "results": [
        {
            "uri": "https://api.myvr.com/v1/property-memberships/1595c0a4cd6e1981/", 
            "key": "1595c0a4cd6e1981", 
            "created": "2017-08-22T07:00:00Z", 
            "group": {
                "externalId": null, 
                "uri": "https://api.myvr.com/v1/property-groups/b122a0ff5a236ce1/", 
                "key": "b122a0ff5a236ce1", 
                "name": "LA Beach Properties"
            }, 
            "modified": "2017-08-22T07:00:00Z", 
            "position": 1, 
            "property": {
                "name": "Modern Villa", 
                "uri": "https://api.myvr.com/v1/properties/ecb43df9c4b87a56/", 
                "id": "ecb43df9c4b87a56", 
                "externalId": null, 
                "key": "ecb43df9c4b87a56", 
                "slug": "modern-villa"
            }
        }
    ]
}
NOTE: The above example response only shows one result for brevity, whereas the meta info indicates it should have 25.

Channel Listings

Collection of integrated listings on 3rd party marketing channels, such as Airbnb, HomeAway, Booking.com, etc.

The Channel Listing Object



Attributes

uri
uri
The uniform resource identifier for the object.
key
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
property
string
The property this object relates to. For create and update operations, this can be the URI, key, or externalId.
channel
nested
The channel the listing if for.
  • code string

  • name string

externalUrl
url
The external URL of the listing on the associated channel.
externalId
string
The ID of the listing in the external channel's system.
status
choice
The status of the listing, selected from the list of choices below.

paused Paused
pending Pending Approval
suspended Suspended
active Active
new New Default
discontinued Discontinued / Deleted
incomplete Setup Incomplete
healthy
boolean
If the listing is passing all validations and active and live on the channel.

Example Response

{
    "uri": "https://api.myvr.com/v1/reservations/f36babf7645c43cc/", 
    "key": "f36babf7645c43cc", 
    "property": {
        "name": "Villa #106 Vuemont", 
        "uri": "https://api.myvr.com/v1/properties/e209f57a8a1b380c/", 
        "id": "e209f57a8a1b380c", 
        "externalId": null, 
        "key": "e209f57a8a1b380c", 
        "slug": "villa-106-vuemont"
    }, 
    "channel": {
        "code": "airbnb", 
        "name": "Airbnb"
    }, 
    "externalUrl": "", 
    "externalId": "", 
    "status": "discontinued", 
    "healthy": false
}

Retrieve Channel Listing

Retrieve the details of an existing Channel Listing.

Endpoint

GET https://api.myvr.com/v1/channel-listings/{KEY}/




Arguments

key
string
The identifier of the Channel Listing to retrieve. The identifier can be a MyVR Channel Listing key, which is provided after you create a Channel Listing, or an externalId you've set on the Channel Listing.
Required  


Example Request

curl https://api.myvr.com/v1/channel-listings/{KEY}/ -u YOUR_API_KEY: 


Response

Returns a Channel Listing Object that matches the key or externalId.


Example Response

{
    "uri": "https://api.myvr.com/v1/reservations/f36babf7645c43cc/", 
    "key": "f36babf7645c43cc", 
    "property": {
        "name": "Villa #106 Vuemont", 
        "uri": "https://api.myvr.com/v1/properties/e209f57a8a1b380c/", 
        "id": "e209f57a8a1b380c", 
        "externalId": null, 
        "key": "e209f57a8a1b380c", 
        "slug": "villa-106-vuemont"
    }, 
    "channel": {
        "code": "airbnb", 
        "name": "Airbnb"
    }, 
    "externalUrl": "", 
    "externalId": "", 
    "status": "discontinued", 
    "healthy": false
}

List Channel Listings

Returns a list of channel listings from the account. The channel listings are returned in sorted order, with the most recent channel listings appearing first.

Endpoint

GET https://api.myvr.com/v1/channel-listings/




Arguments

id
string
Find results by id, uri, or externalId.
Optional  
modified
string
Find results modified after this date and time.
Optional  
channel
string
Return all channel listings associated with the provided channel, identified by the code or name of the channel.
Optional  
property
string
Return all channel listings associated with the provided property, identified by the key or externalId of the property.
Optional  
status
choice
Return all channel listings of the provided status.
  • "paused" Paused
  • "pending" Pending Approval
  • "suspended" Suspended
  • "active" Active
  • "new" New
  • "discontinued" Discontinued / Deleted
  • "incomplete" Setup Incomplete
Optional  


Example Request

curl https://api.myvr.com/v1/channel-listings/ -u YOUR_API_KEY: 


Response

Returns a list of Channel Listings from the account. The Channel Listings are returned in sorted order, with the most recent Channel Listings appearing first.


Example Response

{
    "count": 100, 
    "limit": 25, 
    "offset": 25, 
    "next": "https://api.myvr.com/v1/channel-listings/?offset=50", 
    "previous": "https://api.myvr.com/v1/channel-listings/?offset=0", 
    "results": [
        {
            "uri": "https://api.myvr.com/v1/reservations/f36babf7645c43cc/", 
            "key": "f36babf7645c43cc", 
            "property": {
                "name": "Villa #106 Vuemont", 
                "uri": "https://api.myvr.com/v1/properties/e209f57a8a1b380c/", 
                "id": "e209f57a8a1b380c", 
                "externalId": null, 
                "key": "e209f57a8a1b380c", 
                "slug": "villa-106-vuemont"
            }, 
            "channel": {
                "code": "airbnb", 
                "name": "Airbnb"
            }, 
            "externalUrl": "", 
            "externalId": "", 
            "status": "discontinued", 
            "healthy": false
        }
    ]
}
NOTE: The above example response only shows one result for brevity, whereas the meta info indicates it should have 25.

Promotions

A promotion allows you to provide discounts for all, some, or one of your properties.

The Promotion Object



Attributes

basis
choice
The approach to use for calculating the value of the promotion.

flat Flat Amount Default
percent Percentage of Rent
blackouts
nested
Optional set of blackout dates for the promotion. The promotion will not be usable for reservations that occur within a specified blackout window.
  • endDate date

    The end date for the blackout window, inclusive. Promotions are not usable for reservations that fall within a blackout window.

  • repeats boolean

    A flag indicating that the blackout window repeats annually.

  • startDate date

    The start date for the blackout window, inclusive. Promotions are not usable for reservations that fall within a blackout window.

code
string
The code your renters can use to redeem the promotion.
created
datetime
The ISO-8601 datetime the object was created in MyVR.
customOffer
string
Text representing a non monetary promo (e.g. '1 night at Clubhouse').
discounts
nested
The discount details for the promotion. Cost represents either a percent amount or a money amount, depending on the basis. For example, a cost of 10.5 could represent a discount of 10.5 percent or a discount of 10.5 currency.
  • cost decimal

    The amount of the discount (eg: 10%, $100, etc), given by the promotion.

  • currency choice

    The currency to use for the discount. We expect a 3 character ISO 4217 currency code.

    ARS Argentine Peso
    AUD Australian Dollar
    BHD Bahraini Dinar
    BBD Barbados Dollar
    BRL Brazilian Real
    GBP British Pound Sterling
    BND Brunei Dollar
    CAD Canadian Dollar
    CLP Chilean Peso
    CNY Chinese Yuan
    CRC Costa Rican Colon
    CZK Czech Koruna
    DKK Danish Krone
    EUR Euro
    GTQ Guatemalan Quetzal
    HKD Hong Kong Dollar
    HUF Hungarian Forint
    ISK Icelandic Krona
    INR Indian Rupee
    IDR Indonesian Rupiah
    ILS Israeli New Shekel
    JMD Jamaican Dollar
    JPY Japanese Yen
    KZT Kazakhstani Tenge
    KWD Kuwaiti Dinar
    MYR Malaysian Ringgit
    MUR Mauritian Rupee
    MXN Mexican Peso
    NPR Nepalese Rupee
    TWD New Taiwan Dollar
    NZD New Zealand Dollar
    NOK Norwegian Krone
    PKR Pakistani Rupee
    PLN Polish Złoty
    QAR Qatari Rial
    RUB Russian Ruble
    SAR Saudi Riyal
    SGD Singapore Dollar
    ZAR South African Rand
    KRW South Korean Won
    LKR Sri Lankan Rupee
    SEK Swedish Krona
    CHF Swiss Franc
    THB Thai Baht
    USD US Dollar Default
    AED United Arab Emirates Dirham
key
string
The unique identifier of the object in MyVR. This can be used to retrieve the object.
limitPerRenter
integer
The number of times the promo code can be used by a renter booking with the same email address. Zero represents unlimited.
maxRedemptions
integer
The number of times the promo code can be used in total. Zero represents unlimited.
minStay
integer
The minimum number of nights required for the promotion.
modified
datetime
The ISO-8601 datetime the object was last modified in MyVR.
name
string
The name of the promotion.
property
string
The property this promotion applies to. For create operations, this can be the URI, id, key, or externalId. Either property or propertyGroup must be defined.
propertyGroup
string
The property group this promotion applies to. For create operations, this can be the URI, id, key, or externalId. Either property or propertyGroup must be defined.
redemptionRangeEnd
date
The end date for a range that a renter can redeem this promotion. If both the stayRangeStart and the stayRangeStartEnd are blank, all dates are allowed. Repeating promotions ignore the year protion of the end date.
redemptionRangeRepeats
boolean
A flag indicating that the redemption period repeats annually.
redemptionRangeStart
date
The starting date for a range that a renter can redeem this promotion. If both the stayRangeStart and the stayRangeStartEnd are blank, all dates are allowed. Repeating promotions ignore the year protion of the start date.
status
choice
The active status of the promotion.

active Active Default
paused Paused
pending Pending
stayRangeEnd
date
The ending date for a range that a renter can redeem this promotion. If both the stayRangeStart and the stayRangeStartEnd are blank, all dates are allowed. Repeating promotions ignore the year protion of the end date.
stayRangeRepeats
boolean
A flag indicating that the stay range period repeats annually.
stayRangeStart
date
The starting date for a range that a reservation must be between to be elligible for this promotion. If both the stayRangeStart and the stayRangeStartEnd are blank, all dates are allowed. Repeating promotions ignore the year protion of the start date.
termsAndConditions
string
The terms and conditions of the promotion.
uri
uri
The uniform resource identifier for the object.

Example Response

{
    "basis": "flat", 
    "blackouts": [], 
    "code": "abc123", 
    "created": "2018-05-21T22:40:45Z", 
    "customOffer": null, 
    "discounts": [
        {
            "cost": "50.000", 
            "currency": "USD"
        }
    ], 
    "key": "c4c8dc295d6010e3", 
    "limitPerRenter": 1, 
    "maxRedemptions": 5000, 
    "minStay": 3, 
    "modified": "2018-05-21T22:40:45Z", 
    "name": "Example Promotion", 
    "property": null, 
    "propertyGroup": {
        "externalId": null, 
        "uri": "https://api.myvr.com/v1/property-groups/c785bc1c27178088/", 
        "key": "c785bc1c27178088", 
        "name": "All Properties"
    }, 
    "redemptionRangeEnd": null, 
    "redemptionRangeRepeats": false, 
    "redemptionRangeStart": null, 
    "status": "paused", 
    "stayRangeEnd": "2018-09-01", 
    "stayRangeRepeats": true, 
    "stayRangeStart": "2018-06-01", 
    "termsAndConditions": null, 
    "uri": "https://api.myvr.com/v1/promotions/c4c8dc295d6010e3/"
}

Create Promotion

Create a new Promotion on your MyVR account. When a Promotion is created, it will be assigned a key.

Bulk Operations Supported

This endpoint supports bulk operations. If you'd like to create multiple Promotion at once, post multiple objects in an array.


Endpoint

POST https://api.myvr.com/v1/promotions/




Arguments

basis
choice
The approach to use for calculating the value of the promotion.
Default: flat  
blackouts
nested
Optional set of blackout dates for the promotion. The promotion will not be usable for reservations that occur within a specified blackout window.
code
string
The code your renters can use to redeem the promotion.
Required  
customOffer
string
Text representing a non monetary promo (e.g. '1 night at Clubhouse').
discounts
nested
The discount details for the promotion. Cost represents either a percent amount or a money amount, depending on the basis. For example, a cost of 10.5 could represent a discount of 10.5 percent or a discount of 10.5 currency.
Required  
limitPerRenter
integer
The number of times the promo code can be used by a renter booking with the same email address. Zero represents unlimited.
maxRedemptions
integer
The number of times the promo code can be used in total. Zero represents unlimited.
minStay
integer
The minimum number of nights required for the promotion.
name
string
The name of the promotion.
Required  
property
string
The property this promotion applies to. For create operations, this can be the URI, id, key, or externalId. Either property or propertyGroup must be defined.
propertyGroup
string
The property group this promotion applies to. For create operations, this can be the URI, id, key, or externalId. Either property or propertyGroup must be defined.
redemptionRangeEnd
date
The end date for a range that a renter can redeem this promotion. If both the stayRangeStart and the stayRangeStartEnd are blank, all dates are allowed. Repeating promotions ignore the year protion of the end date.
redemptionRangeRepeats
boolean
A flag indicating that the redemption period repeats annually.
redemptionRangeStart
date
The starting date for a range that a renter can redeem this promotion. If both the stayRangeStart and the stayRangeStartEnd are blank, all dates are allowed. Repeating promotions ignore the year protion of the start date.
status
choice
The active status of the promotion.
Default: active  
stayRangeEnd
date
The ending date for a range that a renter can redeem this promotion. If both the stayRangeStart and the stayRangeStartEnd are blank, all dates are allowed. Repeating promotions ignore the year protion of the end date.
stayRangeRepeats
boolean
A flag indicating that the stay range period repeats annually.
stayRangeStart
date
The starting date for a range that a reservation must be between to be elligible for this promotion. If both the stayRangeStart and the stayRangeStartEnd are blank, all dates are allowed. Repeating promotions ignore the year protion of the start date.
termsAndConditions
string
The terms and conditions of the promotion.


Example Request

curl https://api.myvr.com/v1/promotions/ -u YOUR_API_KEY: 
	-d code="abc123"
	-d discounts=[{"cost": "50.000", "currency": "USD"}]
	-d name="Example Promotion"


Response

If successfully created, a Promotion Object is returned with a newly assigned key. You can use this key to retrieve or update the Promotion in the future. If creation fails, an http error will be returned.


Example Response

{
    "basis": "flat", 
    "blackouts": [], 
    "code": "abc123", 
    "created": "2018-05-21T22:40:45Z", 
    "customOffer": null, 
    "discounts": [
        {
            "cost": "50.000", 
            "currency": "USD"
        }
    ], 
    "key": "c4c8dc295d6010e3", 
    "limitPerRenter": 1, 
    "maxRedemptions": 5000, 
    "minStay": 3, 
    "modified": "2018-05-21T22:40:45Z", 
    "name": "Example Promotion", 
    "property": null, 
    "propertyGroup": {
        "externalId": null, 
        "uri": "https://api.myvr.com/v1/property-groups/c785bc1c27178088/", 
        "key": "c785bc1c27178088", 
        "name": "All Properties"
    }, 
    "redemptionRangeEnd": null, 
    "redemptionRangeRepeats": false, 
    "redemptionRangeStart": null, 
    "status": "paused", 
    "stayRangeEnd": "2018-09-01", 
    "stayRangeRepeats": true, 
    "stayRangeStart": "2018-06-01", 
    "termsAndConditions": null, 
    "uri": "https://api.myvr.com/v1/promotions/c4c8dc295d6010e3/"
}

Retrieve Promotion

Retrieve the details of an existing Promotion.

Endpoint

GET https://api.myvr.com/v1/promotions/{KEY}/




Arguments

key
string
The identifier of the Promotion to retrieve. The identifier can be a MyVR Promotion key, which is provided after you create a Promotion, or an externalId you've set on the Promotion.
Required  


Example Request

curl https://api.myvr.com/v1/promotions/{KEY}/ -u YOUR_API_KEY: 


Response

Returns a Promotion Object that matches the key or externalId.


Example Response

{
    "basis": "flat", 
    "blackouts": [], 
    "code": "abc123", 
    "created": "2018-05-21T22:40:45Z", 
    "customOffer": null, 
    "discounts": [
        {
            "cost": "50.000", 
            "currency": "USD"
        }
    ], 
    "key": "c4c8dc295d6010e3", 
    "limitPerRenter": 1, 
    "maxRedemptions": 5000, 
    "minStay": 3, 
    "modified": "2018-05-21T22:40:45Z", 
    "name": "Example Promotion", 
    "property": null, 
    "propertyGroup": {
        "externalId": null, 
        "uri": "https://api.myvr.com/v1/property-groups/c785bc1c27178088/", 
        "key": "c785bc1c27178088", 
        "name": "All Properties"
    }, 
    "redemptionRangeEnd": null, 
    "redemptionRangeRepeats": false, 
    "redemptionRangeStart": null, 
    "status": "paused", 
    "stayRangeEnd": "2018-09-01", 
    "stayRangeRepeats": true, 
    "stayRangeStart": "2018-06-01", 
    "termsAndConditions": null, 
    "uri": "https://api.myvr.com/v1/promotions/c4c8dc295d6010e3/"
}

List Promotions

Returns a list of promotions from the account. The promotions are returned in sorted order, with the most recent promotions appearing first.

Endpoint

GET https://api.myvr.com/v1/promotions/




Example Request

curl https://api.myvr.com/v1/promotions/ -u YOUR_API_KEY: 


Response

Returns a list of your promotions.



Example Response

{
    "count": 100, 
    "limit": 25, 
    "offset": 25, 
    "next": "https://api.myvr.com/v1/promotions/?offset=50", 
    "previous": "https://api.myvr.com/v1/promotions/?offset=0", 
    "results": [
        {
            "basis": "flat", 
            "blackouts": [], 
            "code": "abc123", 
            "created": "2018-05-21T22:40:45Z", 
            "customOffer": null, 
            "discounts": [
                {
                    "cost": "50.000", 
                    "currency": "USD"
                }
            ], 
            "key": "c4c8dc295d6010e3", 
            "limitPerRenter": 1, 
            "maxRedemptions": 5000, 
            "minStay": 3, 
            "modified": "2018-05-21T22:40:45Z", 
            "name": "Example Promotion", 
            "property": null, 
            "propertyGroup": {
                "externalId": null, 
                "uri": "https://api.myvr.com/v1/property-groups/c785bc1c27178088/", 
                "key": "c785bc1c27178088", 
                "name": "All Properties"
            }, 
            "redemptionRangeEnd": null, 
            "redemptionRangeRepeats": false, 
            "redemptionRangeStart": null, 
            "status": "paused", 
            "stayRangeEnd": "2018-09-01", 
            "stayRangeRepeats": true, 
            "stayRangeStart": "2018-06-01", 
            "termsAndConditions": null, 
            "uri": "https://api.myvr.com/v1/promotions/c4c8dc295d6010e3/"
        }
    ]
}
NOTE: The above example response only shows one result for brevity, whereas the meta info indicates it should have 25.

Quotes

A quote contains information about the pricing and availability of a property for a specified date range.

The Quote Object



Attributes

adults
integer
The number of adult guests.
amount
integer
The total amount to be charged including all fees and rent, in cents.

Monetary fields are represented as integers of cents. For example, $5.00 would be represented as 500.
bookingUrl
uri
A URL for starting the booking flow with the quote data.
checkIn
date
The first day of the stay.
checkOut
date
The last day of the stay.
children
integer
The number of child guests.
commissions
nested
The commissions associated with the quote.