NAV Navbar
javascript php
  • Introduction
  • Quick Start
  • Common Questions
  • Authentication
  • Dictionary Data
  • Property Static Data
  • Property Dynamic Data
  • Booking Data
  • Billing Data
  • Filtering
  • Sorting
  • Errors
  • Introduction

    Welcome to the Lodgable API Documentation. You can use our API to get started developing Lodgable API endpoints, which will provide you with everything you need to integrate with Lodgable for property distribution or to enhance your users' management functionality.

    We have provided AngularJS request and response examples. You can view code examples in the dark area to the right.

    Quick Start

    To begin developing your integration you will want to have access to our sandbox environment to provide as close an experience to production as possible during your development cycle. From here you can create and activate properties without the worry of affecting real channels with changes. We can even generate fake bookings for you to test against

    1. Sandbox Account

    Reach out to Lodgable for a sandbox account. Send an email over to our business development team to get things started. Provide us with an email address you would like to use for the sandbox account. We will set it up and send you a password

    2. Company Questionnaire

    Fill out our company questionnaire

    3. API Terms of Use

    Sign and send over the API Terms of Use to our business development team

    4. Development

    Setup your sandbox account

    Sign in to your sandbox account and run through the new account setup checklist to prime the account for development (you can use test data for this setup, such as test credit cards,ex: 4111111111111111)

    Make an API call

    Try making your first API call

    Create a property

    Create a property via the API

    Activate the property

    Activate a property via the API

    Setup rates and availability maintenance

    Setup your system to propagate property information changes (especially rates and availability)

    Pull reservations

    Periodically pull reservations via the API

    Pull reservation credit card information (optional)

    Periodically pull reservation credit card information via the API

    5. Get Certified

    After you are certified we will activate your OAuth client account on production. This will allow you to obtain user permission to access their account information on Lodgable

    6. Get CC info (optional)

    Provide attestation of PCI compliance

    Send your attestation of PCI / DSS compliance over to our business development team

    Common Questions

    Is Lodgable capable of processing regular updates with the API?

    Yes, when you send listing information to Lodgable, events are fired to distribute the changes to the channels. When bookings are received, webhooks are fired to distribute them to the PMS. You can pull our API endpoints for updates but webhooks are recommended.

    Can we automatically build and publish new listings to channels using your API?

    Yes, when our API endpoints are implemented correctly you can create and update listings whenever you push new content.

    Is your system able to only publish my listings to selected channels?

    Yes, we will just need to know which channels to exclude for each of your customers. Currently this must be done from within the Lodgable platform. We have plans to make this available in the API in the future.

    Is your system able to pause listings in channels automatically when our API alerts you to do this?

    Yes, marking a listing as deactivate or activate in Lodgable will unpublish the listing from all channels. This can be triggered via the API.

    Is your system able to reactivate listings in channels automatically when our API alerts you to this?

    No, currently you must request this from the Lodgable platform. We may make this functionality available in the future.

    Is your system capable of supporting real-time or nearly real-time rate and availability updates?

    Yes, we use webhooks to keep calendaring in near real time. However, the PMS can cause delays if their API doesn’t push updates when they change. Can you pass credit card credentials to my merchant processor when the channel requires my hosts to charge the guests? Yes, however you must be PCI DSS compliant and provide a valid attestation of compliance. We will also charge a $150 monthly fee to monitor and validate your continued compliance, paid to our security partner.

    Do you support installment based payments?

    Sometimes. When the channel is merchant of record a 100% payment is required. When the host is merchant on record installments can be made.

    Are your rates based on nightly rates or on the entire length of stay?

    We accept net nightly rates and then offer length of stay discounts as an added option.

    How do you apply discounts using nightly rates?

    Discounts are calculated based on the length of stay and discount period.

    Do you support extra guest fees?

    Yes, per guest over a standard guest count.

    Are we able to send you rental license numbers via API and you are automatically providing those to channels?

    Yes, we can display rental licenses in the property description. Not all channels have a specific field that we can map too. Are you able to pass through to us, via API, the external channel listing IDs, URLs, statuses, and errors? Our API does not currently support sharing the external ID, URL, status or listing errors. This is something that we may be adding in the future.

    Can you send guest reviews from all or any of the channels to us via API?

    No, this information is rarely provided to us by the channels and we don’t support it in our API.

    Where a channel has a “messenger” functionality, are you to share those messages with us via API?

    No, while some channels make this available to us we currently do not provide a proxy message API.

    Are you able to provide info about the page ranking, page views, or other channel metrics?

    No, this information is rarely shared with us by the channel and we do not offer a service to gather and export this information to you via API.

    Can I push my listings to a single account or multiple accounts?

    We can structure this however you would like. Typically with other PMS companies, each customer has their own account but we could do a master account.

    How are currencies handled in Lodgable?

    We support one currency per account.

    What kind of customer support does Lodgable offer?

    We have chat, phone, and email support. You will also get a dedicated account manager. Typical response time is 5 to 30 minutes during local business times for chat.

    How long does it take to publish a listing for all the sales channels?

    It depends on the channel and how responsive the host is. Most listing are published within 24 to 48 hours. Some channels accept the listings within minutes. Some have a 1 week to 2 week approval process.

    How do payments work with Lodgable?

    When the channel is merchant on record, they will issue a payout. Depending on the channel, Lodgable may act as a limited payment agent to facilitate the distribution of funds. When the host is merchant of record, the channel will issue credit card details to Lodgable and it will be populated inside each reservation. If you wish to accept payments in your own system, please reference the question above about PCI DSS compliance.

    Authentication

    Single account

    // To authorize in angular use:
    $http.post(
        "https://app.lodgable.com/oauth",
        {
            grant_type: "password",
            username: "[email protected]", // Email address
            password: "", // Your password here
            client_id: "frontend"
        }
    );
    
    // The client in the example is provided by Lodgable. On success this returns
    {
        "access_token": "827b82828a93397c55b87c136915d630bd2c21ee",
        "expires_in": 3600,
        "token_type": "Bearer",
        "scope": null,
        "refresh_token": "fa04eaea934945a6264eaac91ff868db561dc55c",
        "host_id": 42,
        "user_id": 72
    }
    

    OAuth2 serves as the Lodgable API authentication mechanism. Prior to requesting information from the Lodgable API, you will need to retrieve an access token to send with your requests to authenticate and authorize the requests. The simplest process for doing this is to use a public oAuth client

    // In Angular a request would look like
    $http.post(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-calendar-range/1",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    

    Lodgable OAuth Workflow

    This process begins after you authorize the app in a browser and receive an authorization token. We assume in this example that an oath client exists with the client_id=testclient and the client_secret=testsecret with a redirect uri of: https://app.lodgable.com/oauth/receivecode

    1. In the browser request a new token by navigating to:

    https://app.lodgable.com/oauth/authorize?response_type=code&client_id=testclient&redirect_uri=https://app.lodgable.com/oauth/receivecode&state=999

    An authorization code will be issued and can be used in the RESTFUL call below.

    2. Get an access token

    POST https://app.lodgable.com/oauth
    Accept: application/json
    Content-Type: application/json

    {
    "redirect_uri": "https://app.lodgable.com/oauth/receivecode",
    "client_id": "testclient",
    "client_secret": "testsecret",
    "code": "9ff58ba2c09ba93c901b6f0e1e88fdbc0d446464",
    "grant_type" : "authorization_code"
    }

    {
    "access_token": "ae6a9aaea39facde2f89bc8d3bd8de0c93f422ff",
    "expires_in": 3600,
    "token_type": "Bearer",
    "scope": null,
    "refresh_token": "cfc45b2b17a8dcc5fbbaf9ecb0434d770b3c8c8a", "host_id": 42, "user_id": 72
    }

    3. Test a resource

    GET https://app.lodgable.com/oauth/resource HTTP/1.1
    Accept: application/json
    Authorization: Bearer ae6a9aaea39facde2f89bc8d3bd8de0c93f422ff

    {
    "success": true,
    "message": "You accessed my APIs!"
    }

    4. Get a new access token

    POST https://app.lodgable.com/oauth HTTP/1.1
    Accept: application/json
    Content-Type: application/json

    {
    "grant_type": "refresh_token",
    "refresh_token": "cfc45b2b17a8dcc5fbbaf9ecb0434d770b3c8c8a",
    "client_id": "testclient",
    "client_secret": "testsecret"
    }

    {
    "access_token": "18c41d5d7c8aec0336306b9e046a8376d02787da",
    "expires_in": 3600,
    "token_type": "Bearer",
    "scope": null,
    "refresh_token": "edcaa0d6879ef850db59b51bbe18ef43e442d620", "host_id": 42, "user_id": 72
    }

    Multi account

    If you are integrating for multiple accounts you will want to leverage OAuth2's ability to delegate access to keep the control with the user.

    https://app.lodgable.com/oauth/authorize?response_type=code&client_id=<client_id>&redirect_uri=<redirect_uri>&state=<csrf_token>

    Parameter Required Description
    response_type yes What will be returned. Always use code here
    client_id yes Your assigned oAuth client ID
    redirect_uri no URI to redirect to after authorization has been approved/denied. Defaults to the redirect uri provided during client account setup if it was provided
    state yes CSRF token you provide and can use for validation
    // To obtain an access token in angular use:
    $http.post(
        "https://app.lodgable.com/oauth",
        {
            grant_type: "authorization_code",
            client_id: "<client_id>",
            client_secret: "<client_secret>",
            code: "<authorization code>",
            redirect_uri: "<redirect_uri>"
        }
    );
    
    // On success this returns
    {
        "access_token": "94807c3fcdad85fa1aa3ec8202a875630d7e1261",
        "expires_in": 3600,
        "token_type": "Bearer",
        "scope": null,
        "refresh_token": "1f0d490be73ce3893b0ca4306173a5874bac43c6",
        "host_id": 42,
        "user_id": 72
    }
    

    POST https://app.lodgable.com/oauth

    Request Parameters

    Parameter Required Default Type Description
    redirect_uri yes null string Your redirect URI
    client_id yes null string Your sandbox client id
    client_secret yes null string Your sandbox client secret
    code yes null string This is the authorization code you received in the query string
    grant_type yes null string Use "authorization_code" in this case

    Dictionary Data

    Countries

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/country",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/country?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/country"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/country?page=1"
            }
        },
        "_embedded": {
            "country": [
                {
                    "isoAlpha3": "AND",
                    "isoNumeric": 20,
                    "fipsCode": "AN",
                    "name": "Andorra",
                    "capital": "Andorra la Vella",
                    "areaInSqKm": 468,
                    "population": 84000,
                    "continent": "EU",
                    "tld": ".ad",
                    "currency": "EUR",
                    "currencyName": "Euro",
                    "Phone": "376",
                    "postalCodeFormat": "AD###",
                    "postalCodeRegex": "^(?:AD)*(d{3})$",
                    "languages": "ca",
                    "neighbours": null,
                    "equivalentFipsCode": null,
                    "geonameId": 3041565,
                    "id": "AD",
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/country/AD"
                        }
                    }
                }
            ]
        },
        "page_count": 1,
        "page_size": 300,
        "total_items": 252,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/country/AU",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "isoAlpha3": "AUS",
        "isoNumeric": 36,
        "fipsCode": "AS",
        "name": "Australia",
        "capital": "Canberra",
        "areaInSqKm": 7686850,
        "population": 21515754,
        "continent": "OC",
        "tld": ".au",
        "currency": "AUD",
        "currencyName": "Dollar",
        "Phone": "61",
        "postalCodeFormat": "####",
        "postalCodeRegex": "^(d{4})$",
        "languages": "en-AU",
        "neighbours": null,
        "equivalentFipsCode": null,
        "geonameId": 2077456,
        "id": "AU",
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/country/AU"
            }
        }
    }
    

    Provides a list of all countries that can be associated with a property and profile

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/country

    GET /api/v2/country/:id

    Currencies

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/currency",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/currency?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/currency"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/currency?page=1"
            }
        },
        "_embedded": {
            "currency": [
                {
                    "name": "Australian Dollar",
                    "code": "AUD",
                    "before": "$",
                    "after": null,
                    "zero": "$0.00",
                    "places": 2,
                    "thousands": ",",
                    "decimals": ".",
                    "negative": "()",
                    "escape": false,
                    "id": 1,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/currency/1"
                       }
                    }
                }
            ]
        },
        "page_count": 1,
        "page_size": 25,
        "total_items": 25,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/currency/3",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "name": "Canadian Dollar",
        "code": "CAD",
        "before": "$",
        "after": null,
        "zero": "$0.00",
        "places": 2,
        "thousands": ",",
        "decimals": ".",
        "negative": "()",
        "escape": false,
        "id": 3,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/currency/3"
            }
        }
    }
    

    Provides a list of all currencies

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/currency

    GET /api/v2/currency/:id

    Languages

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/language",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/language?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/language"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/language?page=1"
            }
        },
        "_embedded": {
            "language": [
                {
                    "name": "English",
                    "code": "en",
                    "id": 1,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/language/1"
                        }
                    }
                }
            ]
        },
        "page_count": 1,
        "page_size": 25,
        "total_items": 11,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/language/2",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "name": "Spanish",
        "code": "es",
        "id": 2,
        "propertyRule": {},
        "bedroomDescription": {},
        "propertyDescription": {},
        "propertyRentalAgreement": {},
        "propertyWelcome": {},
        "guests": {},
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/language/2"
            }
        }
    }
    

    Provides access to languages supported by Lodgable that can be used for description translations or to specify a user or guest's native language

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/language

    GET /api/v2/language/:id

    States & Territories

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/state",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/state?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/state"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/state?page=13"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/state?page=2"
            }
        },
        "_embedded": {
            "state": [
            {
                    "code": "BI.17",
                    "name": "Makamba",
                    "geonameId": 422233,
                    "id": 300,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/state/300"
                        }
                    }
                }
            ]
        },
        "page_count": 13,
        "page_size": 300,
        "total_items": 3870,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/state/4",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "code": "AD.02",
        "name": "Canillo",
        "geonameId": 3041203,
        "id": 4,
        "locationProperty": {},
        "location": {},
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/state/4"
            }
        }
    }
    

    Provides a list of all states associated with each country

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/state

    GET /api/v2/state/:id

    Time Zones

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/time-zone",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/time-zone?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/time-zone"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/time-zone?page=6"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/time-zone?page=2"
            }
        },
        "_embedded": {
            "time_zone": [
                {
                    "zone": "America/Caracas",
                    "display": "(GMT-04:00) Caracas",
                    "id": 25,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/time-zone/25"
                        }
                    }
                }
            ]
        },
        "page_count": 6,
        "page_size": 25,
        "total_items": 142,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/time-zone/6",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "zone": "America/Los_Angeles",
        "display": "(GMT-08:00) Pacific Time (US & Canada)",
        "id": 6,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/time-zone/6"
            }
        }
    }
    

    Provides a list of world time zones

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/time-zone

    GET /api/v2/time-zone/:id

    Property Static Data

    Activation

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/lodgable/activate-property-check/2340",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this on success:
    {
        "status": "Ok",
        "results": {...},
        "message": "Property can be activated"
    }
    
    // would return JSON structured like this on error:
    {
            "incompleteSteps": [
            {
                "name": "Description",
                "url": "/properties/update_description/2340"
            },
            {
                "name": "Bedroom Details",
                "url": "/properties/update_bedrooms/2340"
            },
            {
                "name": "Amenities",
                "url": "/properties/update_amenities/2340"
            },
            {
                "name": "Photos",
                "url": "/properties/update_images/2340"
            },
            {
                "name": "Rates & Availability",
                "url": "/properties/update_baseRates/2340"
            },
            {
                "name": "Fees & Taxes",
                "url": "/properties/update_fees/2340"
            },
            {
                "name": "Policies",
                "url": "/properties/update_conditions/2340"
            },
            {
                "name": "Address",
                "url": "/properties/update_address/2340"
            }
        ],
        "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
        "title": "Unprocessable Entity",
        "status": 422,
        "detail": "Property could not be activated"
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/lodgable/property/2340/activate",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this on success:
    {
        "id": 2340,
        "name": "Whistler Two Bed Townhome steps to ski lifts and village! Best location!"
    }
    
    // would return JSON structured like this on error:
    {
        "validationMessages": {
            "Property Description": "The property description is incomplete",
            "Property Bedroom Details": "The bedroom details are incomplete",
            "Property Amenities": "The property's amenities are incomplete",
            "Property Photos": "The property's photos are incomplete",
            "Property Rates & Availability": "The property's rates and availability are incomplete",
            "Property Fees & Taxes": "The property's fees and taxes are incomplete",
            "Property Policies": "The property's policies are incomplete",
            "Property Address": "The property's address is incomplete"
        },
        "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
        "title": "Unprocessable Entity",
        "status": 422,
        "detail": "Could not activate the property"
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/lodgable/property/2340/deactivate",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this on success:
    {
        "id": 2340,
        "name": "Whistler Two Bed Townhome steps to ski lifts and village! Best location!"
    }
    

    Provides property activation management

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/lodgable/activate-property-check/:id

    GET /api/lodgable/property/:id/activate

    GET /api/lodgable/property/:id/deactivate

    Minimum requirements for property activation in Lodgable are as follows (channels may have additional/varying requirements):

    Property info -
    * Property name
    * Property type
    * Property owner
    * Floor number
    * Rent space
    * Living area
    * Occupancy - 1 person minimum
    * Bedrooms - if none, set to 0
    * Full bathrooms - if none, set to 0
    * Half bathrooms - if none, set to 0

    Address -
    * Street address
    * City
    * State/District/Province
    * Zip code
    * Country

    Description -
    * Property description - 400 characters minimum

    Bedroom Details -
    * Bedrooms - 1 bed minimum

    Amenities -
    * 1 amenity minimum

    Photos -
    * 10 photos minimum

    Rates and Availability -
    * Weekday nightly base rate - $10 minimum cost
    * Weekend nightly base rate - $10 minimum cost
    * Minimum night stay
    * Maximum night stay

    Fees and Taxes -
    * Include/exclude taxes - must set

    Policies -
    * Calendar lead time - default enabled, 1 day

    Amenity List

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/amenity",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/amenity?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/amenity"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/amenity?page=15"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/amenity?page=2"
            }
        },
        "_embedded": {
            "amenity": [
                {
                    "name": "Air Conditioning",
                    "haName": "AMENITIES_AIR_CONDITIONING",
                    "id": 1,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/amenity/1"
                        }
                    }
                }
            ]
        },
        "page_count": 15,
        "page_size": 25,
        "total_items": 355,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/amenity/1",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "name": "Air Conditioning",
        "haName": "AMENITIES_AIR_CONDITIONING",
        "id": 1,
        "_embedded": {
            "amenityType": {
                "name": "Most Popular",
                "id": 1,
                "_links": {
                    "self": {
                        "href": "https://app.lodgable.com/api/v2/amenity-type/1"
                    }
                }
            }
        },
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/amenity/1"
            }
        }
    }
    

    Provides a list of property amenities, these amenities do not change and may safely be cached, periodically we may add a new amenities so it is recommended to periodically pull for new records

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/amenity

    GET /api/v2/amenity/:id

    Associated Amenities

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-amenity",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-amenity?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/property-amenity"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/property-amenity?page=7"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/property-amenity?page=2"
            }
        },
        "_embedded": {
            "property_amenity": [
                {
                    "id": 448,
                    "property": 1535,
                    "amenity": 205,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/property-amenity/448"
                        }
                    }
                }
            ]
        },
        "page_count": 7,
        "page_size": 25,
        "total_items": 162,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-amenity/435",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "id": 435,
        "property": 1535,
        "amenity": 47,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-amenity/435"
            }
        }
    }
    
    // An angularjs POST request such as:
    $http(
        {
        "method": "POST",
        "url": "https://app.lodgable.com/api/v2/property-amenity",
        "headers": {
            "Authorization": "Bearer " + access_token
        },
        "data": {
            "property": 1535,
            "amenity": 4
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "id": 3424,
        "property": 1535,
        "amenity": 4,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/lodgable/property-amenity/3424"
            }
        }
    }
    
    // An angularjs DELETE request such as:
    $http(
        {
        "method": "DELETE",
        "url": "https://app.lodgable.com/api/v2/property-amenity/3424",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    // would return: 204 No Content
    

    Associates an amenity with a property

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property-amenity

    GET /api/v2/property-amenity/:id

    POST /api/v2/property-amenity

    Request Parameters

    Parameter Required Default Type Description
    property yes null int Property ID
    amenity yes null int Amenity type ID

    DELETE /api/v2/property-amenity/:id

    Bed Types

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/bed-type",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/bed-type?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/bed-type"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/bed-type?page=1"
            }
        },
        "_embedded": {
            "bed_type": [
                    {
                        "name": "King",
                        "haName": "",
                        "id": 1,
                        "_links": {
                            "self": {
                                "href": "https://app.lodgable.com/api/v2/bed-type/1"
                            }
                        }
                    }
                }
            ]
        },
        "page_count": 1,
        "page_size": 25,
        "total_items": 10,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/bed-type/2",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "name": "Queen",
        "haName": "",
        "id": 2,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/bed-type/2"
            }
        }
    }
    

    Provides a list of property bed types associated with a bedroom

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/bed-type

    GET /api/v2/bed-type/:id

    Bedrooms

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/bedroom",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/bedroom?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/bedroom"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/bedroom?page=27"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/bedroom?page=2"
            }
        },
        "_embedded": {
            "bedroom": [
                {
                    "name": "Bedroom 1",
                    "description": null,
                    "importId": null,
                    "id": 98,
                    "bedroomDescription": [
                        231
                    ],
                    "bedroomBedType": [
                        66
                    ],
                    "property": 1535,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/bedroom/98"
                        }
                    }
                }
            ]
        },
        "page_count": 27,
        "page_size": 25,
        "total_items": 658,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/bedroom/98",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "name": "Bedroom 1",
        "description": null,
        "importId": null,
        "id": 98,
        "bedroomDescription": [
            231
        ],
        "bedroomBedType": [
            66
        ],
        "property": 1535,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/bedroom/98"
            }
        }
    }
    

    Provides the ability to manage a host's properties bedrooms

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/bedroom

    GET /api/v2/bedroom/:id

    Bedroom Descriptions

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/bedroom-description",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/bedroom-description?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/bedroom-description"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/bedroom-description?page=9"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/bedroom-description?page=2"
            }
        },
        "_embedded": {
            "bedroom_description": [
                {
                    "description": "asdf",
                    "id": 231,
                    "bedroom": 98,
                    "language": 1,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/bedroom-description/231"
                         }
                    }
                }
            ]
        },
        "page_count": 9,
        "page_size": 25,
        "total_items": 216,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/bedroom-description/313",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "description": "boom",
        "id": 313,
        "bedroom": 1015,
        "language": 1,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/bedroom-description/313"
            }
        }
    }
    
    // An angularjs POST request such as:
    $http(
        {
        "method": "POST",
        "url": "https://app.lodgable.com/api/v2/property-description",
        "headers": {
            "Authorization": "Bearer " + access_token
        },
        "data": {
            "bedroom": 134,
            "language": 1,
            "description": "sweet crib"
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "description": "sweet crib",
        "id": 577,
        "bedroom": 134,
        "language": 1,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/bedroom-description/577"
            }
        }
    }
    
    // An angularjs PATCH request such as:
    $http(
        {
        "method": "PATCH",
        "url": "https://app.lodgable.com/api/v2/bedroom-description/577",
        "headers": {
            "Authorization": "Bearer " + access_token
        },
        "data": {
            "bedroom": 135,
            "language": 2,
            "description": "sweet crib room"
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "description": "sweet crib room",
        "id": 577,
        "bedroom": 135,
        "language": 2,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/bedroom-description/577"
            }
        }
    }
    
    // An angularjs DELETE request such as:
    $http(
        {
        "method": "DELETE",
        "url": "https://app.lodgable.com/api/v2/bedroom-description/577",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    // would return: 204 No Content
    

    Provides the ability to manage bedroom descriptions for properties

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/bedroom-description

    GET /api/v2/bedroom-description/:id

    POST /api/v2/bedroom-description

    Request Parameters

    Parameter Required Default Type Description
    bedroom yes null int Bedroom ID
    language yes null int Language ID
    description yes null string Description message

    PATCH /api/v2/bedroom-description/:id

    Request Parameters

    Parameter Required Default Type Description
    bedroom no null int Bedroom ID
    language no null int Language ID
    description no null string Description message

    DELETE /api/v2/bedroom-description/:id

    Cancellation Policies

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/cancellation-policy",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/cancellation-policy?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/cancellation-policy"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/cancellation-policy?page=4"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/cancellation-policy?page=2"
            }
        },
        "_embedded": {
            "cancellation_policy": [
                {
                    "withinDays": 7,
                    "amount": 0,
                    "active": true,
                    "id": 29,
                    "property": 1548,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/cancellation-policy/29"
                        }
                    }
                }
            ]
        },
        "page_count": 4,
        "page_size": 25,
        "total_items": 84,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/cancellation-policy/25",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "withinDays": 7,
        "amount": 40,
        "active": false,
        "id": 25,
        "property": 1535,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/cancellation-policy/25"
            }
        }
    }
    
    // An angularjs POST request such as:
    $http(
        {
          "method": "POST",
          "url": "https://app.lodgable.com/api/v2/cancellation-policy",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
            "withinDays": 3,
            "amount": 75,
            "property": 1535
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "withinDays": 3,
        "amount": 75,
        "active": 1,
        "id": 555,
        "property": 1535,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/cancellation-policy/555"
            }
        }
    }
    
    // An angularjs PATCH request such as:
    $http(
        {
          "method": "PATCH",
          "url": "https://app.lodgable.com/api/v2/cancellation-policy/554",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
            "amount": 70,
            "property": 1547
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "withinDays": 3,
        "amount": 70,
        "active": true,
        "id": 557,
        "property": 1547,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/cancellation-policy/557"
            }
        }
    }
    
    // An angularjs DELETE request such as:
    $http(
        {
          "method": "DELETE",
          "url": "https://app.lodgable.com/api/v2/cancellation-policy/556",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    // would return: 204 No Content
    

    Provides the property cancellation policies

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/cancellation-policy

    GET /api/v2/cancellation-policy/:id

    POST /api/v2/cancellation-policy

    Request Parameters

    Parameter Required Default Type Description
    withinDays yes null int Number of days before check in the policy will start to take effect
    amount yes null int Cancellation policy charge percentage
    property yes null int The associated property's ID. See the properties endpoint for more information

    PATCH /api/v2/cancellation-policy/:id

    Updating a cancellation policy does not actually update the existing record. It will mark the current policy as inactive and create a new policy with the changes. This provides consistency for bookings using cancellation policies. If a cancellation policy in use by a reservation was updated it would invalidate the agreed upon cancellation policy at the time of the booking

    Request Parameters

    Parameter Required Default Type Description
    withinDays no null int Number of days before check in the policy will start to take effect
    amount no null int Cancellation policy charge percentage
    property no null int The associated property's ID. See the properties endpoint for more information

    DELETE /api/v2/cancellation-policy/:id

    It is important to note that deleting a cancellation policy effectively marks it as inactive. Since there are bookings that may be using the cancellation policy it cannot be outright deleted

    Change Over Policies

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property/change-over",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property/change-over?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/property/change-over"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/property/change-over?page=1"
            }
        },
        "_embedded": {
            "change_over": [
                {
                    "checkInMonday": true,
                    "checkInTuesday": true,
                    "checkInWednesday": true,
                    "checkInThursday": true,
                    "checkInFriday": true,
                    "checkInSaturday": true,
                    "checkInSunday": true,
                    "checkOutMonday": true,
                    "checkOutTuesday": true,
                    "checkOutWednesday": true,
                    "checkOutThursday": true,
                    "checkOutFriday": true,
                    "checkOutSaturday": true,
                    "checkOutSunday": true,
                    "defaultCheckInDay": 3,
                    "id": 30,
                    "property": 1553,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/property/change-over/30"
                        }
                    }
                }
            ]
        },
        "page_count": 1,
        "page_size": 25,
        "total_items": 14,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property/change-over/8",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // An angularjs POST request such as:
    $http(
        {
          "method": "POST",
          "url": "https://app.lodgable.com/api/v2/property/change-over",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
            "checkInMonday": true,
            "checkInTuesday": true,
            "checkInWednesday": true,
            "checkInThursday": true,
            "checkInFriday": true,
            "checkInSaturday": true,
            "checkInSunday": false,
            "checkOutMonday": true,
            "checkOutTuesday": false,
            "checkOutWednesday": false,
            "checkOutThursday": true,
            "checkOutFriday": true,
            "checkOutSaturday": false,
            "checkOutSunday": false,
            "defaultCheckInDay": null,
            "property": 2032
          }
        }
    );
    
    // An angularjs PATCH request such as:
    $http(
        {
          "method": "PATCH",
          "url": "https://app.lodgable.com/api/v2/property/change-over/32",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
            "checkInMonday": false,
            "checkInTuesday": false,
            "property": 2032
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "checkInMonday": false,
        "checkInTuesday": false,
        "checkInWednesday": true,
        "checkInThursday": true,
        "checkInFriday": true,
        "checkInSaturday": true,
        "checkInSunday": false,
        "checkOutMonday": true,
        "checkOutTuesday": false,
        "checkOutWednesday": false,
        "checkOutThursday": true,
        "checkOutFriday": true,
        "checkOutSaturday": false,
        "checkOutSunday": false,
        "defaultCheckInDay": 2,
        "id": 32,
        "property": 2032,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property/change-over/32"
            }
        }
    }
    

    Provides the property change over day policies

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property/change-over

    GET /api/v2/property/change-over/:id

    POST /api/v2/property/change-over

    Request Parameters

    Parameter Required Default Type Description
    checkInMonday no null boolean Monday check in allowed
    checkInTuesday no null boolean Tuesday check in allowed
    checkInWednesday no null boolean Wednesday check in allowed
    checkInThursday no null boolean Thursday check in allowed
    checkInFriday no null boolean Friday check in allowed
    checkInSaturday no null boolean Saturday check in allowed
    checkInSunday no null boolean Sunday check in allowed
    checkOutMonday no null boolean Monday check out allowed
    checkOutTuesday no null boolean Tuesday check out allowed
    checkOutWednesday no null boolean Wednesday check out allowed
    checkOutThursday no null boolean Thursday check out allowed
    checkOutFriday no null boolean Friday check out allowed
    checkOutSaturday no null boolean Saturday check out allowed
    checkOutSunday no null boolean Sunday check out allowed
    property yes null int The associated property's ID. See the properties endpoint for more information

    PATCH /api/v2/property/change-over/:change_over_id

    Request Parameters

    Parameter Required Default Type Description
    checkInMonday no null boolean Monday check in allowed
    checkInTuesday no null boolean Tuesday check in allowed
    checkInWednesday no null boolean Wednesday check in allowed
    checkInThursday no null boolean Thursday check in allowed
    checkInFriday no null boolean Friday check in allowed
    checkInSaturday no null boolean Saturday check in allowed
    checkInSunday no null boolean Sunday check in allowed
    checkOutMonday no null boolean Monday check out allowed
    checkOutTuesday no null boolean Tuesday check out allowed
    checkOutWednesday no null boolean Wednesday check out allowed
    checkOutThursday no null boolean Thursday check out allowed
    checkOutFriday no null boolean Friday check out allowed
    checkOutSaturday no null boolean Saturday check out allowed
    checkOutSunday no null boolean Sunday check out allowed

    Check In/Out Times

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/check-in-out",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/check-in-out?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/check-in-out"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/check-in-out?page=3"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/check-in-out?page=2"
            }
        },
        "_embedded": {
            "check_in_out": [
                {
                    "checkInFrom": 14,
                    "checkInTo": 17,
                    "checkOutUntil": 11,
                    "autoCheckInAfter": 12,
                    "createdAt": null,
                    "lastModifiedAt": null,
                    "id": 48,
                    "property": 1623,
                    "createdBy": null,
                    "lastModifiedBy": null,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/check-in-out/48"
                        }
                    }
                }
            ]
        },
        "page_count": 3,
        "page_size": 25,
        "total_items": 66,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property/check-in-out/22",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // An angularjs POST request such as:
    $http(
        {
          "method": "POST",
          "url": "https://app.lodgable.com/api/v2/property/check-in-out",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
            "checkInFrom": 14,
            "checkInTo": 17,
            "checkOutUntil": 11,
            "property": 2032
          }
        }
    );
    
    // An angularjs PATCH request such as:
    $http(
        {
          "method": "PATCH",
          "url": "https://app.lodgable.com/api/v2/property/change-in-out/260",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
            "checkInFrom": 15,
            "checkInTo": 18,
            "property": 2032
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "checkInFrom": 15,
        "checkInTo": 18,
        "checkOutUntil": 11,
        "autoCheckInAfter": "12",
        "createdAt": {
            "date": "2018-06-08 18:52:55.024795",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "lastModifiedAt": {
            "date": "2018-06-08 18:52:55.024831",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 260,
        "property": 2032,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/check-in-out/260"
            }
        }
    }
    

    Provides the time of day a guest can check in and out for a property (24hr format)

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/check-in-out

    GET /api/v2/check-in-out/:id

    POST /api/v2/check-in-out

    Request Parameters

    Parameter Required Default Type Description
    checkInFrom no null int Starting time a guest can check in
    checkInTo no null int Ending time a guest can check in
    checkOutUntil no null int Ending time a guest can check out
    property yes null int The associated property's ID. See the properties endpoint for more information

    PATCH /api/v2/check-in-out/:id

    Request Parameters

    Parameter Required Default Type Description
    checkInFrom no null int Starting time a guest can check in
    checkInTo no null int Ending time a guest can check in
    checkOutUntil no null int Ending time a guest can check out

    Description

    // An angularjs GET request such as:
    $http(
        {
        "method": "GET",
        "url": "https://app.lodgable.com/api/v2/property-description",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-description?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/property-description"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/property-description?page=6"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/property-description?page=2"
            }
        },
        "_embedded": {
            "property_description": [
                {
                    "description": "great ocean view",
                    "createdAt": {
                        "date": "2017-03-27 22:34:29.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "id": 38,
                    "property": 1548,
                    "language": 1,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/property-description/38"
                        }
                    }
                },
        "page_count": 6,
        "page_size": 25,
        "total_items": 149,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-description/38",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "description": "great ocean view",
        "createdAt": {
            "date": "2017-03-27 22:34:29.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 38,
        "property": 1548,
        "language": 1,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-description/38"
            }
        }
    }
    
    // An angularjs POST request such as:
    $http(
        {
        "method": "POST",
        "url": "https://app.lodgable.com/api/v2/property-description",
        "headers": {
            "Authorization": "Bearer " + access_token
        },
        "data": {
            "property": 1557,
            "language": 1,
            "description": "api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description"
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "description": "api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description",
        "createdAt": {
            "date": "2018-12-19 01:42:55.468898",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 362,
        "property": 1557,
        "language": 1,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-description/362"
            }
        }
    }
    
    // An angularjs PATCH request such as:
    $http(
        {
        "method": "PATCH",
        "url": "https://app.lodgable.com/api/v2/property-description/362",
        "headers": {
            "Authorization": "Bearer " + access_token
        },
        "data": {
            "language": 2,
            "description": "api test description in another language, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description"
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "description": "api test description in another language, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description, api test description",
        "createdAt": {
            "date": "2018-12-19 01:42:55.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 362,
        "property": 1557,
        "language": 2,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-description/362"
            }
        }
    }
    
    // An angularjs DELETE request such as:
    $http(
        {
        "method": "DELETE",
        "url": "https://app.lodgable.com/api/v2/property-description/36",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    // would return: 204 No Content
    

    Provides the ability to manage the property description associated with an accounts properties

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property-description

    GET /api/v2/property-description/:id

    POST /api/v2/property-description

    Request Parameters

    Parameter Required Default Type Description
    property yes null int Property ID
    language yes null int Language ID
    description yes null string Description message

    PATCH /api/v2/property-description/:id

    Request Parameters

    Parameter Required Default Type Description
    property no null int Property ID
    language no null int Language ID
    description no null string Description message

    DELETE /api/v2/property-description/:id

    Listing

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/property"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/property?page=1"
            }
        },
        "_embedded": {
            "property": [
                {
                    "name": "Split level 80's with charm",
                    "area": 445,
                    "bedroomCount": 1,
                    "fullBathroomCount": 0,
                    "halfBathroomCount": 1,
                    "address": "123 Street",
                    "city": "Pleasantville",
                    "postalCode": "63551",
                    "latitude": "40.2188914",
                    "longitude": "-92.5748523",
                    "minimumGuestCount": 1,
                    "standardGuestCount": 0,
                    "maximumGuestCount": 2,
                    "minimumNightStay": 1,
                    "minimumNotice": 2,
                    "cleaningTime": null,
                    "floor": 0,
                    "hasInstantBooking": true,
                    "leadTime": 0,
                    "lastModifiedAt": {
                        "date": "2018-05-31 16:26:27.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "createdAt": {
                        "date": "2017-10-10 02:34:12.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "featured": null,
                    "bedCount": 1,
                    "uid": "59dc31a40bf0b8-24412345",
                    "importId": null,
                    "leadTimeInDays": 3,
                    "id": 12345,
                    "changeOver": null,
                    "propertyDeposit": null,
                    "propertyCalendarBaseRate": 12345,
                    "propertyRule": [],
                    "cancellationPolicy": [
                        12345
                    ],
                    "propertyFee": [],
                    "propertyTax": [],
                    "propertyRestriction": [],
                    "propertyAmenity": [
                        12345
                    ],
                    "bedroom": [
                        12345
                    ],
                    "propertyVideo": [],
                    "propertyStorageAssetImage": {
                        "0": {
                            "storageAsset": {
                                "url": "https://lodgable-images.s3.amazonaws.com/lodgableDefault5adfb3d9fe",
                                "thumbUrl": "https://lodgable-images.s3.amazonaws.com/lodgableThumb5ad3a3da45",
                                "mediumUrl": "https://lodgable-images.s3.amazonaws.com/lodgableMedium5ad3b3da87",
                                "metadata": {
                                    "ContentType": "image/jpeg"
                                },
                                "id": 12345,
                                "propertyManager": null,
                                "originalUrl": "https://lodgable-images.s3.amazonaws.com/lodgable5ad3a7fac9",
                                "isOptimized": false,
                                "userProfile": {},
                                "propertyManagerStorageAsset": {},
                                "propertyStorageAssetImage": {},
                                "invoiceStorageAsset": null
                            }
                        }
                    },
                    "propertyDescription": [
                        12345
                    ],
                    "propertyRentalAgreement": [],
                    "propertyWelcome": [],
                    "areaType": 1,
                    "state": "Missouri",
                    "propertyType": 12,
                    "rentalType": 1,
                    "propertyGroup": "My Rentals",
                    "propertyManager": 12345,
                    "user": 12345,
                    "status": {},
                    "location": null,
                    "createdBy": null,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/property/12345"
                        }
                    }
                }
            ]
        },
        "page_count": 1,
        "page_size": 25,
        "total_items": 1,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property/12345",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "name": "Split level 80's with charm",
        "area": 322,
        "bedroomCount": 1,
        "fullBathroomCount": 0,
        "halfBathroomCount": 1,
        "address": "123 Street",
        "city": "Pleasantville",
        "postalCode": "63551",
        "latitude": "40.2188914",
        "longitude": "-92.5748523",
        "minimumGuestCount": 1,
        "standardGuestCount": 0,
        "maximumGuestCount": 2,
        "minimumNightStay": 1,
        "minimumNotice": 2,
        "cleaningTime": null,
        "floor": 0,
        "hasInstantBooking": true,
        "leadTime": 0,
        "lastModifiedAt": {
            "date": "2018-05-30 19:23:40.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "createdAt": {
            "date": "2017-10-10 02:34:12.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "featured": null,
        "bedCount": 1,
        "uid": "59dc31a40bf0b8-24412345",
        "importId": null,
        "leadTimeInDays": 3,
        "id": 12345,
        "changeOver": null,
        "propertyDeposit": null,
        "propertyCalendarBaseRate": 12345,
        "propertyRule": [],
        "cancellationPolicy": [
            12345
        ],
        "propertyFee": [],
        "propertyTax": [],
        "propertyRestriction": [],
        "propertyAmenity": [
            12345,
        ],
        "bedroom": [
            12345,
        ],
        "propertyVideo": [],
        "propertyStorageAssetImage": {
            "0": {
                "storageAsset": {
                    "url": "https://lodgable-images.s3.amazonaws.com/lodgableDefault5afb3d9fe",
                    "thumbUrl": "https://lodgable-images.s3.amazonaws.com/lodgableThumb5assdfa7fb3da45",
                    "mediumUrl": "https://lodgable-images.s3.amazonaws.com/lodgableMedium5aa7asdfsdffb3da87",
                    "metadata": {},
                    "id": 12345,
                    "propertyManager": null,
                    "originalUrl": "https://lodgable-images.s3.amazonaws.com/lodgable5adsadfsdfsada7fc9",
                    "isOptimized": false,
                    "userProfile": {},
                    "propertyManagerStorageAsset": {},
                    "propertyStorageAssetImage": {},
                    "invoiceStorageAsset": null
                }
            },
        },
        "propertyDescription": [],
        "propertyRentalAgreement": [],
        "propertyWelcome": [],
        "areaType": 1,
        "state": "Missouri",
        "propertyType": 12,
        "rentalType": 1,
        "propertyGroup": "My Rentals",
        "propertyManager": 12345,
        "user": 12345,
        "status": {},
        "location": null,
        "createdBy": null,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property/12345"
            }
        }
    }
    
    // An angularjs POST request such as:
    $http(
        {
          "method": "POST",
          "url": "https://app.lodgable.com/api/v2/property",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
        "name": "Split level 80's with charm",
        "area": 322,
        "bedroomCount": 1,
        "fullBathroomCount": 0,
        "halfBathroomCount": 1,
        "address": "123 Street",
        "city": "Pleasantville",
        "postalCode": "63551",
        "minimumGuestCount": 1,
        "standardGuestCount": 0,
        "maximumGuestCount": 2,
        "minimumNightStay": 1,
        "minimumNotice": 2,
        "cleaningTime": null,
        "hasInstantBooking": true,
        "leadTime": 0,
        "status": 1,
        "featured": null,
        "esignatureLocation": null,
        "leadTimeInDays": 3,
        "areaType": 1,
        "floor": 0,
        "country": "US",
        "state": "Missouri",
        "propertyType": 12,
        "rentalType": 1,
        "propertyGroup": "My Rentals",
        "timeZone": 3,
        "bedCount": 1
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "name": "Split level 80's with charm",
        "area": 322,
        "bedroomCount": 1,
        "fullBathroomCount": 0,
        "halfBathroomCount": 1,
        "address": "123 Street",
        "city": "Pleasantville",
        "postalCode": "63551",
        "latitude": "40.2188914",
        "longitude": "-92.5748523",
        "minimumGuestCount": 1,
        "standardGuestCount": 0,
        "maximumGuestCount": 2,
        "minimumNightStay": 1,
        "minimumNotice": 2,
        "cleaningTime": null,
        "floor": 0,
        "hasInstantBooking": true,
        "leadTime": 0,
        "lastModifiedAt": {
            "date": "2018-05-30 19:23:40.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "createdAt": {
            "date": "2017-10-10 02:34:12.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "featured": null,
        "bedCount": 1,
        "uid": "59dc31a40bf0b8-24412345",
        "importId": null,
        "leadTimeInDays": 3,
        "id": 12345,
        "changeOver": null,
        "propertyDeposit": null,
        "propertyCalendarBaseRate": 12345,
        "propertyRule": [],
        "cancellationPolicy": [
            12345
        ],
        "propertyFee": [],
        "propertyTax": [],
        "propertyRestriction": [],
        "propertyAmenity": [
            12345,
        ],
        "bedroom": [
            12345,
        ],
        "propertyVideo": [],
        "propertyStorageAssetImage": {
            "0": {
                "storageAsset": {
                    "url": "https://lodgable-images.s3.amazonaws.com/lodgableDefault5afb3d9fe",
                    "thumbUrl": "https://lodgable-images.s3.amazonaws.com/lodgableThumb5assdfa7fb3da45",
                    "mediumUrl": "https://lodgable-images.s3.amazonaws.com/lodgableMedium5aa7asdfsdffb3da87",
                    "metadata": {},
                    "id": 12345,
                    "propertyManager": null,
                    "originalUrl": "https://lodgable-images.s3.amazonaws.com/lodgable5adsadfsdfsada7fc9",
                    "isOptimized": false,
                    "userProfile": {},
                    "propertyManagerStorageAsset": {},
                    "propertyStorageAssetImage": {},
                    "invoiceStorageAsset": null
                }
            },
        },
        "propertyDescription": [],
        "propertyRentalAgreement": [],
        "propertyWelcome": [],
        "areaType": 1,
        "state": "Missouri",
        "propertyType": 12,
        "rentalType": 1,
        "propertyGroup": "My Rentals",
        "propertyManager": 12345,
        "user": 12345,
        "status": {},
        "location": null,
        "createdBy": null,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property/12345"
            }
        }
    }
    
    // An angularjs PATCH request such as:
    $http(
        {
          "method": "PATCH",
          "url": "https://app.lodgable.com/api/v2/property/12345",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
        "name": "Split level 90's with charm",
        "area": 323,
        "bedroomCount": 2,
        "fullBathroomCount": 1,
        "halfBathroomCount": 2,
         "minimumGuestCount": 2,
        "standardGuestCount": 1,
        "maximumGuestCount": 3
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "name": "Split level 90's with charm",
        "area": 323,
        "bedroomCount": 2,
        "fullBathroomCount": 1,
        "halfBathroomCount": 2,
        "address": "123 Street",
        "city": "Pleasantville",
        "postalCode": "63551",
        "latitude": "40.2188914",
        "longitude": "-92.5748523",
        "minimumGuestCount": 2,
        "standardGuestCount": 1,
        "maximumGuestCount": 3,
        "minimumNightStay": 1,
        "minimumNotice": 2,
        "cleaningTime": null,
        "floor": 0,
        "hasInstantBooking": true,
        "leadTime": 0,
        "lastModifiedAt": {
            "date": "2018-05-30 19:23:40.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "createdAt": {
            "date": "2017-10-10 02:34:12.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "featured": null,
        "bedCount": 1,
        "uid": "59dc31a40bf0b8-24412345",
        "importId": null,
        "leadTimeInDays": 3,
        "id": 12345,
        "changeOver": null,
        "propertyDeposit": null,
        "propertyCalendarBaseRate": 12345,,
        "propertyRule": [],
        "cancellationPolicy": [
            12345
        ],
        "propertyFee": [],
        "propertyTax": [],
        "propertyRestriction": [],
        "propertyAmenity": [
            12345,
        ],
        "bedroom": [
            12345,
        ],
        "propertyVideo": [],
        "propertyStorageAssetImage": {
            "0": {
                "storageAsset": {
                    "url": "https://lodgable-images.s3.amazonaws.com/lodgableDefault5afb3d9fe",
                    "thumbUrl": "https://lodgable-images.s3.amazonaws.com/lodgableThumb5assdfa7fb3da45",
                    "mediumUrl": "https://lodgable-images.s3.amazonaws.com/lodgableMedium5aa7asdfsdffb3da87",
                    "metadata": {},
                    "id": 12345,
                    "propertyManager": null,
                    "originalUrl": "https://lodgable-images.s3.amazonaws.com/lodgable5adsadfsdfsada7fc9",
                    "isOptimized": false,
                    "userProfile": {},
                    "propertyManagerStorageAsset": {},
                    "propertyStorageAssetImage": {},
                    "invoiceStorageAsset": null
                }
            },
        },
        "propertyDescription": [],
        "propertyRentalAgreement": [],
        "propertyWelcome": [],
        "areaType": 1,
        "state": "Missouri",
        "propertyType": 12,
        "rentalType": 1,
        "propertyGroup": "My Rentals",
        "propertyManager": 12345,
        "user": 12345,
        "status": {},
        "location": null,
        "createdBy": null,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property/12345"
            }
        }
    }
    
    // An angularjs DELETE request such as:
    $http(
        {
          "method": "DELETE",
          "url": "https://app.lodgable.com/api/v2/property/12345",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    // would return: 204 No Content
    

    Manages all of a host's property records

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property

    GET /api/v2/property/:id

    POST /api/v2/property

    Request Parameters

    Parameter Required Default Type Description
    name yes null string Property name
    area yes null int Property area
    bedroomCount yes null int Number of bedrooms
    fullbathroomCount yes null int Number of full bathrooms
    halfbathroomCount no null int Number of half bathrooms
    address no null string Property street address
    city no null string Property city
    postalCode no null string Property postal code
    minimumGuestCount yes null int Property minimum guest count
    standardGuestCount yes null int Property standard guest count
    maximumGuestCount yes null int Property maximum guest count
    mimimumNightStay yes null int Property minimum guest count
    cleaningTime no null int Property cleaning time
    hasInstantBooking yes null boolean Property instant booking receive status
    leadTime yes 1 boolean Property lead time set status
    status no 0 boolean Property activation status
    featured no null string Property featured date
    leadTimeInDays no 1 int Property lead time in days
    areaType yes null int Property area type ID
    floor no null int Property floor level ID
    country no null int Property country ID
    state no null int Property state ID
    propertyType yes null int Property type ID
    rentalType yes null int Property rental type ID
    propertyGroup no null int Property group ID
    timeZone no null int Property time zone ID
    bedCount no null int Number of beds in property

    PATCH /api/v2/property/:id

    Request Parameters

    Parameter Required Default Type Description
    name no null string Property name
    area no null int Property area
    bedroomCount no null int Number of bedrooms
    fullbathroomCount no null int Number of full bathrooms
    halfbathroomCount no null int Number of half bathrooms
    address no null string Property street address
    city no null string Property city
    postalCode no null string Property postal code
    minimumGuestCount no null int Property minimum guest count
    standardGuestCount no null int Property standard guest count
    maximumGuestCount no null int Property maximum guest count
    mimimumNightStay no null int Property minimum guest count
    cleaningTime no no int Property cleaning time
    hasInstantBooking no null boolean Property instant booking receive status
    leadTime no 1 boolean Property lead time set status
    status no 0 boolean Property activation status
    featured no null string Property featured date
    leadTimeInDays no 1 int Property lead time in days
    areaType no null int Property area type ID
    floor no null int Property floor level ID
    country no null int Property country ID
    state no null int Property state ID
    propertyType no null int Property type ID
    rentalType no null int Property rental type ID
    propertyGroup no null int Property group ID
    timeZone no null int Property time zone ID
    bedCount no null int Number of beds in property

    DELETE /api/v2/property/:id

    Property Groups

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-group",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-group?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/property-group"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/property-group?page=1"
            }
        },
        "_embedded": {
            "property_group": [
                {
                    "name": "My Rentals",
                    "createdAt": {
                        "date": "2016-12-05 20:32:01.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "description": null,
                    "leadTimeInDays": 1,
                    "id": 35,
                    "propertyManager": 42,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/property-group/35"
                        }
                    }
                }
            ]
        },
        "page_count": 1,
        "page_size": 25,
        "total_items": 2,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-group/36",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "name": "mansion2",
        "createdAt": {
            "date": "2016-12-05 23:37:35.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "description": "huge properties",
        "leadTimeInDays": 1,
        "id": 36,
        "propertyManager": 42,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-group/36"
            }
        }
    }
    
    // An angularjs PATCH request such as:
    $http(
        {
          "method": "PATCH",
          "url": "https://app.lodgable.com/api/v2/property-group/36",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
            "name": "lit rents",
            "leadTimeInDays": 2,
            "description": "describe me"
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "name": "lit rents",
        "createdAt": {
            "date": "2016-12-05 23:37:35.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "description": "describe me",
        "leadTimeInDays": 2,
        "id": 36,
        "propertyManager": 42,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-group/36"
            }
        }
    }
    

    Provides a list of property groups for a host

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property-group

    GET /api/v2/property-group/:id

    PATCH /api/v2/property-group/:id

    Request Parameters

    Parameter Required Default Type Description
    name no null string Property group name
    leadTimeInDays no null int Property group lead time
    description no null string Property group description

    Property Images

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property/2110/image",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property/2110/image"
            }
        },
        "_embedded": {
            "property_image": [
                {
                    "sort": 0,
                    "caption": "front view",
                    "id": 831,
                    "property": {
                        "id": 2110,
                        "name": "coastal cottage tripadvisor 2"
                    },
                    "storageAsset": {},
                    "imageType": 3,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/property/2110/image/831"
                        }
                    }
                },
            ]
        },
        "total_items": 11
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property/2110/image/832",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "sort": 1,
        "caption": "interior view",
        "id": 832,
        "property": {
            "id": 2110,
            "name": "coastal cottage tripadvisor 2"
        },
        "storageAsset": {},
        "imageType": 4,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property/2110/image/832"
            }
        }
    }
    
    // An angularjs POST request such as:
    $http(
        {
          "method": "POST",
          "url": "https://app.lodgable.com/api/v2/property/2110/image",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
            "file": 'file path',
            "caption": "this is a test"
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "sort": 12,
        "caption": "this is a test",
        "id": 853,
        "property": {
            "id": 2110,
            "name": "coastal cottage tripadvisor 2"
        },
        "storageAsset": {},
        "imageType": 2,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property/2110/image/853"
            }
        }
    }
    
    // An angularjs PATCH request such as:
    $http(
        {
          "method": "PATCH",
          "url": "https://app.lodgable.com/api/v2/property/2110/image/853",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
            "caption": "this is another test"
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "sort": 12,
        "caption": "this is another test",
        "id": 853,
        "property": {
            "id": 2110,
            "name": "coastal cottage tripadvisor 2"
        },
        "storageAsset": {},
        "imageType": 2,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property/2110/image/853"
            }
        }
    }
    
    // An angularjs DELETE request such as:
    $http(
        {
        "method": "DELETE",
        "url": "https://app.lodgable.com/api/v2/property/2110/image/853",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    // would return: 204 No Content
    

    Provides a way to upload property images and captions to a particular property

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property/:property_id/image

    GET /api/v2/property/:property_id/image/image_id

    POST /api/v2/property/:property_id/image

    Request Parameters

    Parameter Required Default Type Description
    file yes null file File to upload
    caption no null string Image caption

    PATCH /api/v2/property/:property_id/image/image_id

    Request Parameters

    Parameter Required Default Type Description
    caption no null string Image caption

    DELETE /api/v2/property/:property_id/image/image_id

    Property Manager

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-manager",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "companyName": "lodgable rents",
        "doingBusinessAs": "dba2",
        "phone": "",
        "email": "[email protected]",
        "address": "9220 S 1310 E",
        "city": "Sandy",
        "postalCode": "84094",
        "accountingMethod": "accrual",
        "website": "google.com",
        "serviceFeePercent": "4.51",
        "processingFeePercent": 2.997219075084967,
        "customerServicePhone": "+1 801-555-5555",
        "customerServiceEmail": "[email protected]",
        "companyDescription": "business 2",
        "createdAt": {
            "date": "2018-06-27 15:45:33.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "serviceFeeChargedToGuest": false,
        "processingFeeChargedToGuest": false,
        "hash": "EES8VE37",
        "isCompany": null,
        "feePercentageChargedToGuest": 99,
        "lastModifiedAt": {
            "date": "2019-03-06 19:21:49.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 42,
        "country": "US",
        "currency": 25,
        "state": 3603,
        "companyType": 6,
        "timeZone": 9,
        "status": {
            "id": 1,
            "name": "Active"
        },
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-manager"
            }
        }
    }
    

    Returns the property manager of the current account

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property-manager

    Property Types

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-type",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-type?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/property-type"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/property-type?page=1"
            }
        },
        "_embedded": {
            "property_type": [
                {
                    "name": "Townhome",
                    "id": 17,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/property-type/17"
                        }
                    }
                }
            ]
        },
        "page_count": 1,
        "page_size": 25,
        "total_items": 20,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-type/12",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "name": "House",
        "id": 12,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-type/12"
            }
        }
    }
    

    Provides a list of all property types

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property-type

    GET /api/v2/property-type/:id

    Rental Types

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/rental-type",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/rental-type?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/rental-type"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/rental-type?page=1"
            }
        },
        "_embedded": {
            "rental_type": [
                {
                    "name": "Shared Room",
                    "image": "http://quintessenceblog.com/wp-content/uploads/%2522Man-Cave%2522-room-at-Tom-Delavans-home-200x200.jpg",
                    "popDescription": "You're renting out part of a common area, such as a bed in a living room.",
                    "id": 3,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/rental-type/3"
                        }
                    }
                }
            ]
        },
        "page_count": 1,
        "page_size": 25,
        "total_items": 3,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/rental-type/1",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "name": "Entire House",
        "image": "http://www.kiawahresort.com/images/premier-home-200x200.jpg",
        "popDescription": "You're renting out an entire home or private space.",
        "id": 1,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/rental-type/1"
            }
        }
    }
    

    Provides a list of all rental types

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/rental-type

    GET /api/v2/rental-type/:id

    Room Configuration

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/bedroom-bed-type",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/bedroom-bed-type?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/bedroom-bed-type"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/bedroom-bed-type?page=17"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/bedroom-bed-type?page=2"
            }
        },
        "_embedded": {
            "bedroom_bed_type": [
                {
                    "quantity": 1,
                    "id": 66,
                    "bedroom": 98,
                    "bedType": 1,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/bedroom-bed-type/66"
                          }
                    }
                }
            ]
        },
        "page_count": 17,
        "page_size": 25,
        "total_items": 407,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/bedroom-bed-type/66",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "quantity": 1,
        "id": 66,
        "bedroom": 98,
        "bedType": 1,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/bedroom-bed-type/66"
            }
        }
    }
    
    // An angularjs POST request such as:
    $http(
        {
        "method": "POST",
        "url": "https://app.lodgable.com/api/v2/bedroom-bed-type",
        "headers": {
            "Authorization": "Bearer " + access_token
        },
        "data": {
            "quantity": 4,
            "bedType": 5,
            "bedroom": 103  
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "quantity": 4,
        "id": 1094,
        "bedroom": 103,
        "bedType": 5,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/lodgable/bedroom-bed-type/1094"
            }
        }
    }
    
    // An angularjs PATCH request such as:
    $http(
        {
          "method": "PATCH",
          "url": "https://app.lodgable.com/api/v2/bedroom-bed-type/66",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
              "quantity": 2,
              "bedType": 2,
              "bedroom": 99  
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "quantity": 2,
        "id": 66,
        "bedroom": 99,
        "bedType": 2,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/lodgable/bedroom-bed-type/66"
            }
        }
    }
    
    // An angularjs DELETE request such as:
    $http(
        {
        "method": "DELETE",
        "url": "https://app.lodgable.com/api/v2/bedroom-bed-type/66",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    // would return: 204 No Content
    

    Associates a bedtype with a bedroom

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/bedroom-bed-type

    GET /api/v2/bedroom-bed-type/:id

    POST /api/v2/bedroom-bed-type

    Request Parameters

    Parameter Required Default Type Description
    quantity yes null int Bed type quantity
    bedType yes null int Bed type ID
    bedroom yes null int Bedroom ID associated with property

    PATCH /api/v2/bedroom-bed-type/:id

    Request Parameters

    Parameter Required Default Type Description
    quantity no null int Bed type quantity
    bedType no null int Bed type ID
    bedroom no null int Bedroom ID associated with property

    DELETE /api/v2/bedroom-bed-type/:id

    Rules

    // An angularjs GET request such as:
    $http(
        {
        "method": "GET",
        "url": "https://app.lodgable.com/api/v2/property-rule",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-rule?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/property-rule"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/property-rule?page=4"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/property-rule?page=2"
            }
        },
        "_embedded": {
            "property_rule": [
                {
                    "description": "no smoking",
                    "createdAt": {
                        "date": "2017-04-03 20:52:05.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "id": 54,
                    "property": 1608,
                    "language": 1,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/property-rule/54"
                        }
                    }
                }
            ]
        },
        "page_count": 4,
        "page_size": 25,
        "total_items": 98,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-rule/32",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "description": "no smoking",
        "createdAt": {
            "date": "2017-03-27 22:50:31.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 32,
        "property": 1548,
        "language": 1,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-rule/32"
            }
        }
    }
    
    // An angularjs POST request such as:
    $http(
        {
        "method": "POST",
        "url": "https://app.lodgable.com/api/v2/property-rule",
        "headers": {
            "Authorization": "Bearer " + access_token
        },
        "data": {
            "property": 1558,
            "language": 2,
            "description": "no partying"
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "description": "no partying",
        "createdAt": {
            "date": "2018-12-21 02:38:39.510642",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 271,
        "property": 1558,
        "language": 2,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-rule/271"
            }
        }
    }
    
    // An angularjs PATCH request such as:
    $http(
        {
        "method": "PATCH",
        "url": "https://app.lodgable.com/api/v2/property-rule/271",
        "headers": {
            "Authorization": "Bearer " + access_token
        },
        "data": {
            "language": 1,
            "description": "no partying, smoking, or drinking"
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "description": "no partying, smoking, or drinking",
        "createdAt": {
            "date": "2018-12-21 02:38:39.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 271,
        "property": 1558,
        "language": 1,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-rule/271"
            }
        }
    }
    
    // An angularjs DELETE request such as:
    $http(
        {
        "method": "DELETE",
        "url": "https://app.lodgable.com/api/v2/property-rule/271",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    // would return: 204 No Content
    

    Provides the ability to manage the property rule associated with an accounts properties

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property-rule

    GET /api/v2/property-rule/:id

    POST /api/v2/property-rule

    Request Parameters

    Parameter Required Default Type Description
    property yes null int Property ID
    language yes null int Language ID
    description yes null string Rule message

    PATCH /api/v2/property-rule/:id

    Request Parameters

    Parameter Required Default Type Description
    property no null int Property ID
    language no null int Language ID
    description no null string Rule message

    DELETE /api/v2/property-rule/:id

    Welcome Details

    // An angularjs GET request such as:
    $http(
        {
        "method": "GET",
        "url": "https://app.lodgable.com/api/v2/property-welcome",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-welcome?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/property-welcome"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/property-welcome?page=6"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/property-welcome?page=2"
            }
        },
        "_embedded": {
            "property_welcome": [
                {
                    "description": "welcome",
                    "createdAt": {
                        "date": "2017-03-27 18:16:09.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "id": 35,
                    "language": 1,
                    "property": 1547,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/property-welcome/35"
                        }
                    }
                },
        "page_count": 4,
        "page_size": 25,
        "total_items": 98,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-welcome/38",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "description": "welcome",
        "createdAt": {
            "date": "2017-04-03 15:52:57.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 38,
        "language": 1,
        "property": 1580,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-welcome/38"
            }
        }
    }
    
    // An angularjs POST request such as:
    $http(
        {
        "method": "POST",
        "url": "https://app.lodgable.com/api/v2/property-welcome",
        "headers": {
            "Authorization": "Bearer " + access_token
        },
        "data": {
            "property": 1558,
            "language": 1,
            "description": "welcome to my crib"
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "description": "welcome to my crib",
        "createdAt": {
            "date": "2018-12-21 18:44:48.547157",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 323,
        "language": 1,
        "property": 1558,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-welcome/323"
            }
        }
    }
    
    // An angularjs PATCH request such as:
    $http(
        {
        "method": "PATCH",
        "url": "https://app.lodgable.com/api/v2/property-welcome/323",
        "headers": {
            "Authorization": "Bearer " + access_token
        },
        "data": {
            "language": 2,
            "description": "welcome to my crib in another language"
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "description": "welcome to my crib in another language",
        "createdAt": {
            "date": "2018-12-21 18:44:48.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 323,
        "language": 2,
        "property": 1558,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-welcome/323"
            }
        }
    }
    
    // An angularjs DELETE request such as:
    $http(
        {
        "method": "DELETE",
        "url": "https://app.lodgable.com/api/v2/property-welcome/323",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    // would return: 204 No Content
    

    Provides the ability to manage the property welcome message associated with an accounts properties

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property-welcome

    GET /api/v2/property-welcome/:id

    POST /api/v2/property-welcome

    Request Parameters

    Parameter Required Default Type Description
    property yes null int Property ID
    language yes null int Language ID
    description yes null string Welcome message

    PATCH /api/v2/property-welcome/:id

    Request Parameters

    Parameter Required Default Type Description
    property no null int Property ID
    language no null int Language ID
    description no null string Welcome message

    DELETE /api/v2/property-welcome/:id

    Property Dynamic Data

    Base Rates

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-calendar-base-rate/12345",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // An angularjs PATCH request such as:
    $http(
        {
          "method": "PATCH",
          "url": "https://app.lodgable.com/api/v2/property-calendar-base-rate/12345",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
            "weekdayRate": "675.00",
            "weekendRate": "675.00",
            "minimumStay": 3,
            "maximumStay": 30,
          }
        }
    );
    
    // would return JSON structured like this:
    {
      "weekdayRate": "675.00",
      "weekendRate": "675.00",
      "minimumStay": 3,
      "maximumStay": 30,
      "id": 12345,
      "_links": {
        "self": {
          "href": "https://app.lodgable.com/api/v2/property-calendar-base-rate/12345"
        }
      }
    }
    

    This endpoint provides the default rates and stay requirements for the property

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property-calendar-base-rate

    GET /api/v2/property-calendar-base-rate/:id

    PATCH /api/v2/property-calendar-base-rate/:id

    Request Parameters

    Parameter Required Default Type Description
    weekdayRate no null float Defines the nightly booking rate for a property during weekdays. Friday and Saturday night are considered weekends
    weekendRate no null float Defines the nightly booking rate for a property during weekends
    minimumStay no null int Defines the minimum number of nights allowed when booking the associated property
    maximumStay no null int Defines the maximum number of nights allowed when booking the associated property

    Calendar

    // An angularjs GET request such as:
    $http(
        {
        "method": "GET",
        "url": "https://app.lodgable.com/api/v2/property/2030/calendar",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    
    // would return JSON structured like this:
    [
    {
        "id": "2695954",
        "type": "range",
        "status": 1,
        "note": null,
        "startAt": {
            "date": "2018-06-01 00:00:00.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "endAt": {
            "date": "2018-06-08 00:00:00.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "available": true,
        "weekendRate": "140.00",
        "weekdayRate": "120.00",
        "minimumStay": "3",
        "maximumStay": "14"
    }
    ]
    
    // An angularjs PATCH request such as:
    $http(
        {
        "method": "PATCH",
        "url": "https://app.lodgable.com/api/v2/property/2030/calendar",
        "headers": {
            "Authorization": "Bearer " + access_token
        },
        "data": {
            "startAt": "2018-06-12",
            "endAt": "2018-06-13",
            "minimumStay": 2
        }
    }
    );
    
    // would return JSON structured like this:
    [
    {
        "startAt": {
            "date": "2018-06-13 00:00:00.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "endAt": {
            "date": "2018-06-13 00:00:00.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "weekdayRate": null,
        "weekendRate": null,
        "minimumStay": 2,
        "maximumStay": null,
        "id": 2719053,
        "propertyCalendarStatus": 1,
        "propertyCalendarCategory": null,
        "property": 2030,
        "uid": "5b1dbe046ba3e6-25777254",
        "note": "Unavailable",
        "createdAt": {
            "date": "2018-06-11 00:10:44.440694",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "lastModifiedAt": {
            "date": "2018-06-11 00:10:44.440728",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "createdBy": 72,
        "lastModifiedBy": 72
    }
    ]
    

    Consolidates property calendar information into a single contiguous set of data, this endpoint takes the property's base rates, calendar edits, and reservations into consideration to produce an accurate presentation of the calendar and all associated information

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property/:id/calendar

    Query Parameters

    When performing a GET request, you can customize the date range retrieved

    Parameter Required Default Type Description
    startAt no today string Start date of range
    endAt no today + 1 month string End date of range

    PATCH /api/v2/property/:id/calendar

    To update your calendar you will need to define what the date range and provide the information you want to update. This call will update the calendar but does not affect any reservations.

    Request Parameters

    Parameter Required Default Type Description
    startAt yes null string Start date of range
    endAt yes null string End date of range
    weekdayRate no null float Weekday rate amount
    weekendRate no null float Weekend rate amount
    minimumStay no null int Minimum night stay
    maximumStay no null int Maximum night stay
    propertyCalendarStatus no null int Calendar range availability status. Checkout the property calendar status endpoint for available values
    note no null string Calendar range note

    Calendar Statuses

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-calendar-status",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-calendar-status?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/property-calendar-status"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/property-calendar-status?page=1"
            }
        },
        "_embedded": {
            "property_calendar_status": [
                {
                    "name": "Available",
                    "id": 1,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/property-calendar-status/1"
                        }
                    }
                }
            ]
        },
        "page_count": 1,
        "page_size": 25,
        "total_items": 4,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-calendar-status/4",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "name": "Unavailable: Maintenance",
        "id": 4,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-calendar-status/4"
            }
        }
    }
    

    Provides a list of all the property calendar statuses

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property-calendar-status

    GET /api/v2/property-calendar-status/:id

    Fees

    // An angularjs GET request such as:
    $http(
        {
        "method": "GET",
        "url": "https://app.lodgable.com/api/v2/property-fee",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-fee?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/property-fee"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/property-fee?page=35"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/property-fee?page=2"
            }
        },
        "_embedded": {
            "property_fee": [
                {
                    "amount": "11.50",
                    "extraData": "3",
                    "optional": true,
                    "name": null,
                    "id": 2,
                    "property": 1501,
                    "fee": 1,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/property-fee/2"
                        }
                    }
                },
        "page_count": 35,
        "page_size": 25,
        "total_items": 871,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-fee/4",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "amount": "4.00",
        "extraData": "1",
        "optional": true,
        "name": null,
        "id": 4,
        "property": 1502,
        "fee": 2,
        "_links": {
            "self": {
                "href": "https://staging-app.lodgable.com/api/v2/property-fee/4"
            }
        }
    }
    
    // An angularjs POST request such as:
    $http(
        {
        "method": "POST",
        "url": "https://app.lodgable.com/api/v2/property-fee",
        "headers": {
            "Authorization": "Bearer " + access_token
        },
        "data": {
            "amount": "11.60",
            "property": 2035,
            "fee": 1,
            "language": 1
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "amount": "11.60",
        "extraData": null,
        "optional": true,
        "name": null,
        "id": 872,
        "property": 2035,
        "fee": 1,
        "_links": {
            "self": {
                "href": "https://staging-app.lodgable.com/api/v2/property-fee/872"
            }
        }
    }
    
    // An angularjs PATCH request such as:
    $http(
        {
        "method": "PATCH",
        "url": "https://app.lodgable.com/api/v2/property-fee/4",
        "headers": {
            "Authorization": "Bearer " + access_token
        },
        "data": {
            "amount": "11.60",
            "extra_data": "2",
            "name": "abc"
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "amount": "11.60",
        "extraData": "2",
        "optional": true,
        "name": "abc",
        "id": 4,
        "property": 1502,
        "fee": 2,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-fee/4"
            }
        }
    }
    
    // An angularjs DELETE request such as:
    $http(
        {
        "method": "DELETE",
        "url": "https://app.lodgable.com/api/v2/property-fee/25",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    // would return: 204 No Content
    

    Provides the ability to manage the property fee associated with an accounts properties

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property-fee

    GET /api/v2/property-fee/:id

    POST /api/v2/property-fee

    The fee field can be one of three integer values:

    1 - Cleaning Fee
    2 - Extra Guest Fee
    3 - Custom Fee

    Request Parameters

    Parameter Required Default Type Description
    amount yes null float Fee amount
    property yes null int Property ID
    fee yes null int Fee type
    name no null string Fee name
    extra_data required only for extra guest fee type null int Flag set for extra guest fee
    language yes null int Fee name language

    PATCH /api/v2/property-fee/:id

    Request Parameters

    Parameter Required Default Type Description
    amount no null float Fee amount
    property no null int Property ID
    fee no null int Fee type
    name no null string Fee name
    extra_data required only for extra guest fee type null int Flag set for extra guest fee

    DELETE /api/v2/property-fee/:id

    Long Stay Discounts

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-calendar-long-stay-discount",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-calendar-long-stay-discount?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/property-calendar-long-stay-discount"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/property-calendar-long-stay-discount?page=2"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/property-calendar-long-stay-discount?page=2"
            }
        },
        "_embedded": {
            "property_calendar_long_stay_discount": [
                {
                    "startAt": "2017-01-17",
                    "endAt": "2017-06-06",
                    "discountPercentage": "10.00",
                    "minimumStay": 3,
                    "maximumStay": 7,
                    "createdAt": null,
                    "lastModifiedAt": null,
                    "id": 15,
                    "createdBy": null,
                    "lastModifiedBy": null,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/property-calendar-long-stay-discount/15"
                        }
                    }
                }
            ]
        },
        "page_count": 2,
        "page_size": 25,
        "total_items": 30,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-calendar-long-stay-discount/29",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "startAt": "2017-03-29",
        "endAt": "2019-03-29",
        "discountPercentage": "15.00",
        "minimumStay": 1,
        "maximumStay": 20,
        "createdAt": null,
        "lastModifiedAt": null,
        "id": 29,
        "createdBy": null,
        "lastModifiedBy": null,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-calendar-long-stay-discount/29"
            }
        }
    }
    
    // An angularjs POST request such as:
    $http(
        {
          "method": "POST",
          "url": "https://app.lodgable.com/api/v2/property-calendar-long-stay-discount",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
            "startAt": "2017-05-29",
            "endAt": "2018-10-29",
            "discountPercentage": "20",
            "minimumStay": 2,
            "maximumStay": 14,
            "property": 2030
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "startAt": "2017-05-29",
        "endAt": "2018-10-29",
        "discountPercentage": "20",
        "minimumStay": 2,
        "maximumStay": 14,
        "createdAt": {
            "date": "2018-06-11 04:18:32.463519",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "lastModifiedAt": {
            "date": "2018-06-11 04:18:32.463579",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 114,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-calendar-long-stay-discount/114"
            }
        }
    }
    
    // An angularjs PATCH request such as:
    $http(
        {
          "method": "PATCH",
          "url": "https://app.lodgable.com/api/v2/property-calendar-long-stay-discount/114",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
            "discountPercentage": "10",
            "minimumStay": 3,
            "maximumStay": 21
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "startAt": "2017-05-29",
        "endAt": "2018-10-29",
        "discountPercentage": "10",
        "minimumStay": 3,
        "maximumStay": 21,
        "createdAt": {
            "date": "2018-06-11 04:18:32.463519",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "lastModifiedAt": {
            "date": "2018-06-11 04:18:32.463579",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 114,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-calendar-long-stay-discount/114"
            }
        }
    }
    
    // An angularjs DELETE request such as:
    $http(
        {
          "method": "DELETE",
          "url": "https://app.lodgable.com/api/v2/property-calendar-long-stay-discount/114",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    // would return: 204 No Content
    

    Provides the property's long stay discounts

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property-calendar-long-stay-discount

    GET /api/v2/property-calendar-long-stay-discount/:id

    POST /api/v2/property-calendar-long-stay-discount

    Request Parameters

    Parameter Required Default Type Description
    startAt yes null string Start date of long stay discount
    endAt yes null string End date of long stay discount
    discountPercentage yes null int % of the discount
    minimumStay yes null int Minimum night stay for long stay discount to take effect
    maximumStay yes null int Maximum night stay for long stay discount to take effect
    property yes null int The associated property's ID. See the properties endpoint for more information

    PATCH /api/v2/property-calendar-long-stay-discount/:id

    Request Parameters

    Parameter Required Default Type Description
    startAt no null string Start date of long stay discount
    endAt no null string End date of long stay discount
    discountPercentage no null int % of the discount
    minimumStay no null int Minimum night stay for long stay discount to take effect
    maximumStay no null int Maximum night stay for long stay discount to take effect

    DELETE /api/v2/property-calendar-long-stay-discount/:id

    Taxes

    // An angularjs GET request such as:
    $http(
        {
        "method": "GET",
        "url": "https://app.lodgable.com/api/v2/property-tax",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-tax?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/property-tax"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/property-tax?page=6"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/property-tax?page=2"
            }
        },
        "_embedded": {
            "property_tax": [
                {
                    "taxRate": "5.00",
                    "lastModified": {
                        "date": "2017-01-19 18:49:51.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "id": 25,
                    "property": 1537,
                    "taxType": 1,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/property-tax/25"
                        }
                    }
                }
            ]
        },
        "page_count": 6,
        "page_size": 25,
        "total_items": 142,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/property-tax/1",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "taxRate": "0.00",
        "lastModified": {
            "date": "2016-08-17 15:15:00.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 1,
        "property": 1501,
        "taxType": 1,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-tax/1"
            }
        }
    }
    
    // An angularjs POST request such as:
    $http(
        {
        "method": "POST",
        "url": "https://app.lodgable.com/api/v2/property-tax",
        "headers": {
            "Authorization": "Bearer " + access_token
        },
        "data": {
            "taxType": 1,
            "property": 2030,
            "taxRate": "15.00"
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "taxRate": "15.00",
        "lastModified": {
            "date": "2018-06-02 00:32:14.458226",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 143,
        "property": 2030,
        "taxType": 1,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-tax/143"
            }
        }
    }
    
    // An angularjs PATCH request such as:
    $http(
        {
        "method": "PATCH",
        "url": "https://app.lodgable.com/api/v2/property-tax/143",
        "headers": {
            "Authorization": "Bearer " + access_token
        },
        "data": {
            "taxRate": "16.11"
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "taxRate": 16.11,
        "lastModified": {
            "date": "2018-06-02 00:32:14.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 143,
        "property": 2030,
        "taxType": 1,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/property-tax/143"
            }
        }
    }
    
    // An angularjs DELETE request such as:
    $http(
        {
        "method": "DELETE",
        "url": "https://app.lodgable.com/api/v2/property-tax/143",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    // would return: 204 No Content
    

    Provides the ability to manage the property tax associated with an accounts properties

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/property-tax

    GET /api/v2/property-tax/:id

    POST /api/v2/property-tax

    The tax type field can be one of six integer values:

    1 - General Taxes
    2 - Occupancy Taxes
    3 - Sales Taxes
    4 - VAT
    5 - Lodging Taxes
    6 - No Tax

    Request Parameters

    Parameter Required Default Type Description
    taxType yes null int Type of tax
    property yes null int Property ID
    taxRate yes null float Tax amount

    PATCH /api/v2/property-tax/:id

    Request Parameters

    Parameter Required Default Type Description
    taxType no null int Type of tax
    property no null int Property ID
    taxRate no null float Tax amount

    DELETE /api/v2/property-tax/:id

    Booking Data

    Bookings

    // An angularjs GET request such as:
    $http(
       {
        "method": "GET",
        "url": "https://app.lodgable.com/api/v2/reservation",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/reservation?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/reservation"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/reservation?page=205"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/reservation?page=2"
            }
        },
        "_embedded": {
            "reservation": [
                {
                    "createdAt": {
                        "date": "2016-12-05 21:48:28.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "startAt": "2016-12-12",
                    "endAt": "2016-12-13",
                    "scheduledCheckoutDate": {
                        "date": "2016-12-14 00:00:00.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "checkedIn": {
                        "date": "2016-12-05 23:06:25.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "checkedOut": {
                        "date": "2016-12-05 23:07:34.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "lastModifiedAt": {
                        "date": "2017-05-02 22:29:26.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "guestCount": 1,
                    "notes": "hi",
                    "guestComment": null,
                    "reservationNumber": "DXJP5P",
                    "securityDeposit": "80.00",
                    "lengthOfStayNights": 2,
                    "lengthOfStayDays": 3,
                    "securityDepositClaimed": null,
                    "uid": "59090830756055-22006513",
                    "id": 88,
                    "invoice": {
                        "id": 88,
                        "balance": "276.35",
                        "balanceStatus": "overdue",
                        "total": "418.85",
                        "payment": [
                            {
                                "id": 122,
                                "amount": "442.50",
                                "invoice": 88,
                                "notes": null,
                                "paymentRefund": [
                                    {
                                        "id": 12,
                                        "createdAt": {
                                            "date": "2016-12-05 22:27:30.000000",
                                            "timezone_type": 3,
                                            "timezone": "UTC"
                                        },
                                        "paymentStatus": {
                                            "id": 2,
                                            "name": "Received"
                                        },
                                        "notes": "overpayment",
                                        "amount": "442.50"
                                    }
                                ],
                                "paymentStatus": {
                                    "id": 2,
                                    "name": "Received"
                                },
                                "createdAt": {
                                    "date": "2016-12-05 22:11:50.000000",
                                    "timezone_type": 3,
                                    "timezone": "UTC"
                                },
                                "lastModifiedAt": {
                                    "date": "2016-12-05 22:11:50.000000",
                                    "timezone_type": 3,
                                    "timezone": "UTC"
                                }
                            },
                        ]
                    },            
                    "cancellationPolicies": [
                        {
                            "withinDays": 1,
                            "amount": 110,
                            "revision": null,
                            "id": 15,
                            "property": 1535,
                            "active": false
                        }
                    ],
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/reservation/88"
                        }
                    }
                }
            ]
        },
        "page_count": 205,
        "page_size": 25,
        "total_items": 5114,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
        "method": "GET",
        "url": "https://app.lodgable.com/api/v2/reservation/88",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "createdAt": {
            "date": "2016-12-05 21:48:28.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "startAt": "2016-12-12",
        "endAt": "2016-12-13",
        "scheduledCheckoutDate": {
            "date": "2016-12-14 00:00:00.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "checkedIn": {
            "date": "2016-12-05 23:06:25.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "checkedOut": {
            "date": "2016-12-05 23:07:34.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "lastModifiedAt": {
            "date": "2017-05-02 22:29:26.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "guestCount": 1,
        "notes": "hi",
        "guestComment": null,
        "reservationNumber": "DXJP5P",
        "securityDeposit": "80.00",
        "lengthOfStayNights": 2,
        "lengthOfStayDays": 3,
        "securityDepositClaimed": null,
        "uid": "59090830756055-22006513",
        "id": 88,
        "invoice": {
            "id": 88,
            "balance": "276.35",
            "balanceStatus": "overdue",
            "total": "418.85",
            "payment": [
                {
                    "id": 122,
                    "amount": "442.50",
                    "invoice": 88,
                    "notes": null,
                    "paymentRefund": [
                        {
                            "id": 12,
                            "createdAt": {
                                "date": "2016-12-05 22:27:30.000000",
                                "timezone_type": 3,
                                "timezone": "UTC"
                            },
                            "paymentStatus": {
                                "id": 2,
                                "name": "Received"
                            },
                            "notes": "overpayment",
                            "amount": "442.50"
                        }
                    ],
                    "paymentStatus": {
                        "id": 2,
                        "name": "Received"
                    },
                    "createdAt": {
                        "date": "2016-12-05 22:11:50.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "lastModifiedAt": {
                        "date": "2016-12-05 22:11:50.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    }
                },
            ]
        },            
        "cancellationPolicies": [
            {
                "withinDays": 1,
                "amount": 110,
                "revision": null,
                "id": 15,
                "property": 1535,
                "active": false
            }
        ],
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/reservation/88"
            }
        }
    }
    
    // An angularjs GET request such as:
    $http(
        {
        "method": "GET",
        "url": "https://app.lodgable.com/api/v2/reservation?createdAt=2016-12-05",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/reservation?createdAt=2016-12-05&page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/reservation?createdAt=2016-12-05"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/reservation?createdAt=2016-12-05&page=205"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/reservation?createdAt=2016-12-05&page=2"
            }
        },
        "_embedded": {
            "reservation": [
                {
                    "createdAt": {
                        "date": "2016-12-05 21:48:28.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "startAt": "2016-12-12",
                    "endAt": "2016-12-13",
                    "scheduledCheckoutDate": {
                        "date": "2016-12-14 00:00:00.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "checkedIn": {
                        "date": "2016-12-05 23:06:25.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "checkedOut": {
                        "date": "2016-12-05 23:07:34.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "cancelledDate": null,
                    "lastModifiedAt": {
                        "date": "2017-05-02 22:29:26.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "guestCount": 1,
                    "notes": "hi",
                    "guestComment": null,
                    "reservationNumber": "DXJP5P",
                    "securityDeposit": "80.00",
                    "lengthOfStayNights": 2,
                    "lengthOfStayDays": 3,
                    "rentalsUnitedId": null,
                    "securityDepositClaimed": null,
                    "securityDepositClaimReason": null,
                    "securityDepositClaimDetails": null,
                    "finalized": null,
                    "uid": "59090830756055-22006513",
                    "cancellationReasonText": null,
                    "id": 88,
                    "comment": {},
                    "invoice": {
                        "id": 88,
                        "balance": "276.35",
                        "balanceStatus": "overdue",
                        "total": "418.85",
                        "payment": [
                            {
                                "id": 122,
                                "amount": "442.50",
                                "invoice": 88,
                                "notes": null,
                                "paymentRefund": [
                                    {
                                        "id": 12,
                                        "createdAt": {
                                            "date": "2016-12-05 22:27:30.000000",
                                            "timezone_type": 3,
                                            "timezone": "UTC"
                                        },
                                        "paymentStatus": {
                                            "id": 2,
                                            "name": "Received"
                                        },
                                        "notes": "overpayment",
                                        "amount": "442.50"
                                    }
                                ],
                                "paymentStatus": {
                                    "id": 2,
                                    "name": "Received"
                                },
                                "createdAt": {
                                    "date": "2016-12-05 22:11:50.000000",
                                    "timezone_type": 3,
                                    "timezone": "UTC"
                                },
                                "lastModifiedAt": {
                                    "date": "2016-12-05 22:11:50.000000",
                                    "timezone_type": 3,
                                    "timezone": "UTC"
                                }
                            },
                            {
                                "id": 123,
                                "amount": "500.00",
                                "invoice": 88,
                                "notes": "hi",
                                "paymentRefund": [
                                    {
                                        "id": 15,
                                        "createdAt": {
                                            "date": "2016-12-05 22:31:10.000000",
                                            "timezone_type": 3,
                                            "timezone": "UTC"
                                        },
                                        "paymentStatus": {
                                            "id": 2,
                                            "name": "Received"
                                        },
                                        "notes": "",
                                        "amount": "57.50"
                                    },
                                    {
                                        "id": 16,
                                        "createdAt": {
                                            "date": "2016-12-05 22:36:07.000000",
                                            "timezone_type": 3,
                                            "timezone": "UTC"
                                        },
                                        "paymentStatus": {
                                            "id": 2,
                                            "name": "Received"
                                        },
                                        "notes": "",
                                        "amount": "300.00"
                                    }
                                ],
                                "paymentStatus": {
                                    "id": 2,
                                    "name": "Received"
                                },
                                "createdAt": {
                                    "date": "2016-12-05 22:12:14.000000",
                                    "timezone_type": 3,
                                    "timezone": "UTC"
                                },
                                "lastModifiedAt": {
                                    "date": "2016-12-05 22:12:14.000000",
                                    "timezone_type": 3,
                                    "timezone": "UTC"
                                }
                            },
                        ]
                    },     
                    "cancellationReason": null,
                    "cancellationPolicies": [
                        {
                            "withinDays": 1,
                            "amount": 110,
                            "revision": null,
                            "id": 15,
                            "property": 1535,
                            "active": false
                        }
                    ],
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/reservation/88"
                        }
                    }
                }
            ]
        },
        "page_count": 205,
        "page_size": 25,
        "total_items": 5114,
        "page": 1
    }
    

    Provides information on a host's reservations

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/reservation

    GET /api/v2/reservation/:id

    Checkout the filtering section on how to filter reservations by creation time and guest ID

    Cancellations

    Agreements with the channels prevent Lodgable or the System of Record (SoR) from canceling a booking via an API or on their personal platforms.

    Guests or the channel should be the only parties that are allowed to cancel a reservation unless a property manager, homeowner, or another host (Supplier) has an extenuating circumstance that prevents honoring the booking. For extenuating circumstances, the Supplier must contact Lodgable and/or the channel to request a cancellation. Supplier initiated cancellations may be liable to penalties.

    Once a booking has been canceled, Lodgable will modify the booking status and make the update available.

    Estimated Earnings

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/reservation/30698/estimated-earnings",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "grossAmountGuestPaid": "287.73",
        "channelHostFee": "0.00",
        "channelGuestFee": "0.00",
        "lodgableGuestFee": "12.95",
        "bookingSettled": null,
        "refundableAmount": "0.00",
        "taxesWitheld": null,
        "netEarning": "266.13",
        "id": 30253,
        "reservation": 30698,
        "creditCardFee": "8.65",
        "transferFee": "0.00"
    }
    

    Provides the estimated earnings for a reservation

    HTTP Request

    GET /api/v2/reservation/:id/estimated-earnings

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    Guests

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/guest",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/guest?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/guest"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/guest?page=307"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/guest?page=2"
            }
        },
        "_embedded": {
            "guest": [
                {
                    "firstName": "John",
                    "lastName": "Doe",
                    "address": "9400 S 1306 E",
                    "city": "Sandy",
                    "postalCode": "84093",
                    "phone": "+1 801-555-5555",
                    "email": "[email protected]",
                    "id": 23,
                    "guestCompany": null,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/guest/23"
                        }
                    }
                },
            ]
        },
        "page_count": 307,
        "page_size": 25,
        "total_items": 7668,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/guest/24",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "firstName": "Antonio",
        "lastName": "Sanders",
        "address": null,
        "city": null,
        "postalCode": null,
        "phone": "+1 801-555-5555",
        "email": "[email protected]",
        "id": 24,
        "guestCompany": null,
        "country": null,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/guest/24"
            }
        }
    }
    
    // An angularjs POST request such as:
    $http(
        {
          "method": "POST",
          "url": "https://app.lodgable.com/api/v2/guest",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
            "firstName": "John",
            "lastName": "Doe",
            "address": "9402 S 1303 E",
            "city": "Sandy",
            "postalCode": "84093",
            "birthday": "1987-03-15",
            "phone": "+1 801-777-5555",
            "email": "[email protected]",
            "state": 3603,
            "country": "US",
            "propertyManager": 42,
            "language": 1
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "firstName": "John",
        "lastName": "Doe",
        "address": "9402 S 1303 E",
        "city": "Sandy",
        "postalCode": "84093",
        "phone": "+1 801-777-5555",
        "email": "[email protected]",
        "id": 46710,
        "guestCompany": null,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/guest/46710"
            }
        }
    }
    
    // An angularjs PATCH request such as:
    $http(
        {
          "method": "PATCH",
          "url": "https://app.lodgable.com/api/v2/guest/46710",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
            "firstName": "Jane",
            "lastName": "Doole",
            "address": "9410 S 1311 E",
            "phone": "+1 801-666-7777",
            "email": "[email protected]"
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "firstName": "Jane",
        "lastName": "Doole",
        "address": "9410 S 1311 E",
        "city": "Sandy",
        "postalCode": "84093",
        "phone": "+1 801-666-7777",
        "email": "[email protected]",
        "id": 46710,
        "guestCompany": null,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/guest/46710"
            }
        }
    }
    

    Provides information on a host's guests

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/guest

    GET /api/v2/guest/:id

    POST /api/v2/guest

    Request Parameters

    Parameter Required Default Type Description
    firstName yes null string First name
    lastName yes null string Last name
    address no null string Street address
    city no null string City
    postalCode no null string Postal code
    birthday no null string Birthday
    phone no null string Phone number contact
    email yes null string E-mail contact address
    state no null int State ID. See the states endpoint for more information
    country no null string Country ID. See the countries endpoint for more information
    propertyManager yes null int Property manager ID
    language no null int Language ID. See the languages endpoint for more information

    PATCH /api/v2/guest/:id

    Request Parameters

    Parameter Required Default Type Description
    firstName no null string First name
    lastName no null string Last name
    address no null string Street address
    city no null string City
    postalCode no null string Postal code
    birthday no null string Birthday
    phone no null string Phone number contact
    email no null string E-mail contact address
    state no null int State ID. See See the states endpoint for more information
    country no null string Country ID. See the countries endpoint for more information
    language no null int Language ID. See the languages endpoint for more information

    Invoices

    // An angularjs GET request such as:
    $http(
       {
        "method": "GET",
        "url": "https://app.lodgable.com/api/v2/invoice",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/invoice?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/invoice"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/invoice?page=213"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/invoice?page=2"
            }
        },
        "_embedded": {
            "invoice": [
                {
                    "dueDate": {
                        "date": "2016-12-06 00:00:00.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "invoiceDate": {
                        "date": "2016-12-05 00:00:00.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "paid": 142.5,
                    "createdAt": {
                        "date": "2016-12-05 21:48:28.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "balance": 276.35,
                    "balanceStatus": "overdue",
                    "total": "418.85",
                    "lastModifiedAt": {
                        "date": "2018-08-06 19:08:29.000000",
                        "timezone_type": 3,
                        "timezone": "UTC"
                    },
                    "id": 88,
                    "invoiceItem": [
                        569,
                        570,
                        571,
                        2402
                    ],
                    "payment": [
                        {
                            "id": 122,
                            "amount": "442.50",
                            "invoice": 88,
                            "notes": null,
                            "paymentRefund": [
                                {
                                    "id": 12,
                                    "createdAt": {
                                        "date": "2016-12-05 22:27:30.000000",
                                        "timezone_type": 3,
                                        "timezone": "UTC"
                                    },
                                    "paymentStatus": {
                                        "id": 2,
                                        "name": "Received"
                                    },
                                    "notes": "overpayment",
                                    "amount": "442.50"
                                }
                            ],
                            "paymentStatus": {
                                "id": 2,
                                "name": "Received"
                            },
                            "createdAt": {
                                "date": "2016-12-05 22:11:50.000000",
                                "timezone_type": 3,
                                "timezone": "UTC"
                            },
                            "lastModifiedAt": {
                                "date": "2016-12-05 22:11:50.000000",
                                "timezone_type": 3,
                                "timezone": "UTC"
                            }
                        },
                    ],
                },
                "invoiceTerm": 1,
                "guest": 23,
                "_links": {
                    "self": {
                        "href": "https://app.lodgable.com/api/v2/invoice/88"
                    }
                }
            }
        ]
    },
    "page_count": 213,
    "page_size": 25,
    "total_items": 5311,
    "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
        "method": "GET",
        "url": "https://app.lodgable.com/api/v2/invoice/88",
        "headers": {
            "Authorization": "Bearer " + access_token
        }
    }
    );
    
    // would return JSON structured like this:
    {
        "dueDate": {
            "date": "2016-12-06 00:00:00.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "invoiceDate": {
            "date": "2016-12-05 00:00:00.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "paid": 142.5,
        "createdAt": {
            "date": "2016-12-05 21:48:28.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "balance": 276.35,
        "balanceStatus": "overdue",
        "total": "418.85",
        "lastModifiedAt": {
            "date": "2018-08-06 19:08:29.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        },
        "id": 88,
        "invoiceItem": [
            569,
            570,
            571,
            2402
        ],
        "payment": [
            {
                "id": 122,
                "amount": "442.50",
                "invoice": 88,
                "notes": null,
                "paymentRefund": [
                    {
                        "id": 12,
                        "createdAt": {
                            "date": "2016-12-05 22:27:30.000000",
                            "timezone_type": 3,
                            "timezone": "UTC"
                        },
                        "paymentStatus": {
                            "id": 2,
                            "name": "Received"
                        },
                        "notes": "overpayment",
                        "amount": "442.50"
                    }
                ],
                "paymentStatus": {
                    "id": 2,
                    "name": "Received"
                },
                "createdAt": {
                    "date": "2016-12-05 22:11:50.000000",
                    "timezone_type": 3,
                    "timezone": "UTC"
                },
                "lastModifiedAt": {
                    "date": "2016-12-05 22:11:50.000000",
                    "timezone_type": 3,
                    "timezone": "UTC"
                }
            },
        ],
        "invoiceTerm": 1,
        "guest": 23,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/invoice/88"
            }
        }
    }
    

    Provides information on a host's invoices

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/invoice

    GET /api/v2/invoice/:id

    Origins

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/booking-origin",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/booking-origin?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/booking-origin"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/booking-origin?page=4"
            },
            "next": {
                "href": "https://app.lodgable.com/api/v2/booking-origin?page=2"
            }
        },
        "_embedded": {
            "booking_origin": [
                {
                    "name": "HomeAway",
                    "url": "https://www.homeaway.com/",
                    "id": 3,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/booking-origin/3"
                        }
                    }
                }
            ]
        },
        "page_count": 4,
        "page_size": 25,
        "total_items": 80,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/booking-origin/4",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "name": "FlipKey",
        "url": "https://www.flipkey.com/",
        "id": 4,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/booking-origin/4"
            }
        }
    }
    

    Provides a list of all booking channel origins for a reservation

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/booking-origin

    GET /api/v2/booking-origin/:id

    Checkout the filtering section on how to filter booking origins

    Checkout the sorting section on how to sort booking origins

    Statuses

    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/booking-status",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/booking-status?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/booking-status"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/booking-status?page=1"
            }
        },
        "_embedded": {
            "booking_status": [
                 {
                    "name": "Confirmed",
                    "id": 1,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/booking-status/1"
                        }
                    }
                }
            ]
        },
        "page_count": 1,
        "page_size": 25,
        "total_items": 6,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
        {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/booking-status/1",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "name": "Confirmed",
        "id": 1,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/booking-status/1"
            }
        }
    }
    

    Provides a list of all booking statuses in the lifecycle of a reservation

    HTTP Request

    Request Headers

    Header Value
    Accept application/javascript; application/*+javascript
    Content-Type application/javascript

    GET /api/v2/booking-status

    GET /api/v2/booking-status/:id

    Webhooks

    Management

    Webhooks can be managed from the lodgable administration page under the development dropdown menu at Callback URLs. On clicking the option you will be routed to the webhooks page which lists all currently setup urls for the account. Adding a new url is simple, click on the 'add a new callback url' button to get started. On the 'create a callback url' page enter the url of the server you will be testing on and then select the information event you want it to listen for in the 'listens for' dropdown and save. The new webhook should now show on the listing page and be active and ready for testing. Each individual webhook can be updated with a new url, what to listen for, and enabled/disabled accordingly using the dropdown menu on the right hand corner of that url and clicking update. The listing page also supports filtering for and searching by specific parameters to quickly find specific urls.

    Testing

    Testing is done by opening up an active socket listening session on the server you will be testing on with the appropriate active webhook then using the dropdown menu and clicking send test. If everything in the webhook and listening server was configured correctly and the appropriate changed data is available to send you should receive a url encoded string message of that information from your account on the server you're testing on. If the test data was successfully sent you will receive a toast notification saying so otherwise a notification will tell you if the data is unavailable.

    URL events

    Currently their are four webhook events that can be listened for when testing:

    1. Base Rates and Stay Information

    Sends information on weekday and weekend base rates, minimum and maximum night stays, as well as the associated property ID, host ID, and property name.

    2. Invoices

    Sends information on the invoice and line items for a reservation including the reservation ID and host ID associated with the invoice, due date, balance status, tax rate, item ID, item number, product or service, description, and amount.

    // Here is an example of an invoice payload:
    {  
       "id":"30957",
       "dueDate":{  
          "date":"2019-05-28 00:00:00.000000",
          "timezone_type":"3",
          "timezone":"UTC"
       },
       "paid":"10.00",
       "taxRate":"0.0000",
       "invoiceItem":[  
          {  
             "id":"39157",
             "amount":"403.15",
             "product":"Nightly Rental Charge",
             "description":"#2341 - Whistler Three Bed Townhome Steps to ski and village"
          },
          {  
             "id":"39158",
             "amount":"10.77",
             "product":"Nightly Rental Charge",
             "description":"#2341 - Whistler Three Bed Townhome Steps to ski and village"
          },
          {  
             "id":"39159",
             "amount":"10.77",
             "product":"Nightly Rental Charge",
             "description":"#2341 - Whistler Three Bed Townhome Steps to ski and village"
          },
          {  
             "id":"39160",
             "amount":"403.15",
             "product":"Nightly Rental Charge",
             "description":"#2341 - Whistler Three Bed Townhome Steps to ski and village"
          },
          {  
             "id":"39161",
             "amount":"403.15",
             "product":"Nightly Rental Charge",
             "description":"#2341 - Whistler Three Bed Townhome Steps to ski and village"
          }
       ],
       "balance":"1220.99",
       "balanceStatus":"unpaid",
       "total":"1230.99",
       "payment":[  
          {  
             "id":"31067",
             "amount":"20.00",
             "paymentRefund":[  
                {  
                   "id":"545",
                   "amount":"10.00",
                   "createdAt":{  
                      "date":"2019-05-06 19:29:16.000000",
                      "timezone_type":"3",
                      "timezone":"UTC"
                   },
                   "paymentStatus":{  
                      "id":"2",
                      "name":"Received"
                   },
                   "notes":""
                }
             ],
             "paymentStatus":{  
                "id":"2",
                "name":"Received"
             },
             "createdAt":{  
                "date":"2019-05-06 19:29:01.000000",
                "timezone_type":"3",
                "timezone":"UTC"
             },
             "lastModifiedAt":{  
                "date":"2019-05-06 19:29:01.000000",
                "timezone_type":"3",
                "timezone":"UTC"
             }
          },
          {  
             "id":"31068",
             "amount":"15.10",
             "notes":"test payment",
             "paymentRefund":[  
                {  
                   "id":"546",
                   "amount":"15.10",
                   "createdAt":{  
                      "date":"2019-05-06 19:31:04.000000",
                      "timezone_type":"3",
                      "timezone":"UTC"
                   },
                   "paymentStatus":{  
                      "id":"2",
                      "name":"Received"
                   },
                   "notes":"test refund"
                }
             ],
             "paymentStatus":{  
                "id":"2",
                "name":"Received"
             },
             "createdAt":{  
                "date":"2019-05-06 19:30:50.000000",
                "timezone_type":"3",
                "timezone":"UTC"
             },
             "lastModifiedAt":{  
                "date":"2019-05-06 19:30:50.000000",
                "timezone_type":"3",
                "timezone":"UTC"
             }
          }
       ],
       "host":"42"
    }
    
    3. Rates, Availability, and Stay Information

    Sends information on calendar information including range status weekday, weekend, minimum, maximum night stay information as well as range status such as blocked and reason. The associated property ID, host ID, and property name is also sent along in the associated string.

    4. Reservations

    Sends information on reservation information including the host ID, reservation ID, number, booking origin ID, booking status, balance status, security deposit amount, length of stay, cancellation policy amount, LSD amount, guest count, invoice items, start/end date, scheduled checkout date, associated property ID and name. Invoice item info sent includes the due date, tax rate, item ID, item number, product or service, description and cost. Standard guest information is also sent over in the payload such as the first name, last name, guest ID, street address, city, state, country, postal code, phone number, email, and language.

    // Here is an example of a reservation payload:
    {  
       "id":"88",
       "uid":"59090830756055-22006513",
       "reservationNumber":"DXJP5P",
       "guestCount":"1",
       "notes":"hi",
       "invoice":{  
          "id":"88",
          "dueDate":{  
             "date":"2016-12-06 00:00:00.000000",
             "timezone_type":"3",
             "timezone":"UTC"
          },
          "paid":"142.50",
          "taxRate":"0.0500",
          "invoiceItem":[  
             {  
                "id":"569",
                "amount":"209.00",
                "product":"Nightly Rental Charge",
                "description":"#0 - the mansion"
             },
             {  
                "id":"570",
                "amount":"40.00",
                "product":"Long Stay Discount",
                "description":"20.00% discount for a 1- to 7-night stay"
             },
             {  
                "id":"571",
                "amount":"209.00",
                "product":"Nightly Rental Charge",
                "description":"#0 - the mansion"
             },
             {  
                "id":"2402",
                "amount":"20.90",
                "product":"Cleaning Fee",
                "description":"Covers the cost of cleaning the rental"
             }
          ],
          "balance":"276.35",
          "balanceStatus":"overdue",
          "total":"418.85",
          "payment":[  
             {  
                "id":"122",
                "amount":"442.50",
                "paymentRefund":[  
                   {  
                      "id":"12",
                      "amount":"442.50",
                      "createdAt":{  
                         "date":"2016-12-05 22:27:30.000000",
                         "timezone_type":"3",
                         "timezone":"UTC"
                      },
                      "paymentStatus":{  
                         "id":"2",
                         "name":"Received"
                      },
                      "notes":"overpayment"
                   }
                ],
                "paymentStatus":{  
                   "id":"2",
                   "name":"Received"
                },
                "createdAt":{  
                   "date":"2016-12-05 22:11:50.000000",
                   "timezone_type":"3",
                   "timezone":"UTC"
                },
                "lastModifiedAt":{  
                   "date":"2016-12-05 22:11:50.000000",
                   "timezone_type":"3",
                   "timezone":"UTC"
                }
             },
          ]
       },
       "property":{  
          "id":"1535",
          "name":"the mansion1"
       },
       "startAt":{  
          "date":"2016-12-12 00:00:00.000000",
          "timezone_type":"3",
          "timezone":"UTC"
       },
       "endAt":{  
          "date":"2016-12-13 00:00:00.000000",
          "timezone_type":"3",
          "timezone":"UTC"
       },
       "securityDeposit":"80.00",
       "lengthOfStayNights":"2",
       "scheduledCheckoutDate":{  
          "date":"2016-12-14 00:00:00.000000",
          "timezone_type":"3",
          "timezone":"UTC"
       },
       "guest":{  
          "id":"23",
          "firstName":"Vincent",
          "lastName":"Holt",
          "address":"",
          "city":"",
          "postalCode":"",
          "email":"[email protected]",
          "phone":"+1 801-661-7855",
          "country":{  
             "id":"US",
             "name":"United States"
          },
          "state":{  
             "id":"3603",
             "name":"Utah"
          },
          "language":{  
             "id":"1",
             "name":"English"
          }
       },
       "bookingOrigin":{  
          "id":"1",
          "name":"Lodgable"
       },
       "bookingStatus":{  
          "id":"4",
          "name":"Checked Out"
       },
       "cancellationPolicies":[  
          {  
             "id":"15",
             "withinDays":"1",
             "amount":"110",
             "active":"0"
          }
       ],
       "currency":{  
          "id":"25",
          "name":"US Dollars"
       },
       "host":"42"
    }
    

    Billing Data

    Billing

    Management

    Billing methods can be managed from the account profile page under the Billing tab. A stripe account can be set up quickly from the 'Guest Payments' section by selecting an appropriate plan and clicking 'Manage' stripe, a development mode prompt should appear, click to finish setup and connect stripe, see Stripe section for more info.

    Set Up

    Adding a new billing method:

    1. After creating an account from the main dashboard click on the user profile image in the top right hand corner to open a dropdown menu and select 'Account Settings' then select 'Billing Method'.

    2. On the billing method page click the button that says 'Add billing method' which will then bring a dialog box up.

    3. Enter the required field info, the bank name should automatically fill based on your routing number, the submit button will become active to click. Test cards are permitted to be used due to stripe being in development mode.

    4. The added payment method should now show on the billing page, if previous billing info has been set up the latest one will automatically be set as the default payment method, other billing methods can be changed at anytime.

    Host's Payout Address

    // An angularjs GET request such as:
    $http(
          {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/location",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/location?page=1"
            },
            "first": {
                "href": "https://app.lodgable.com/api/v2/location"
            },
            "last": {
                "href": "https://app.lodgable.com/api/v2/location?page=1"
            }
        },
        "_embedded": {
            "location": [
                {
                    "address": "6900 S Highland Dr",
                    "city": "Murray",
                    "postalCode": "84121",
                    "lat": null,
                    "lng": null,
                    "formatted_address": null,
                    "id": 27,
                    "propertyManager": 42,
                    "_links": {
                        "self": {
                            "href": "https://app.lodgable.com/api/v2/location/27"
                        }
                    }
                }
            ]
        },
        "page_count": 1,
        "page_size": 25,
        "total_items": 6,
        "page": 1
    }
    
    // An angularjs GET request such as:
    $http(
          {
          "method": "GET",
          "url": "https://app.lodgable.com/api/v2/location/27",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "address": "6900 S Highland Dr",
        "city": "Murray",
        "postalCode": "84121",
        "lat": null,
        "lng": null,
        "formatted_address": null,
        "id": 27,
        "propertyManager": 42,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/location/27"
            }
        }
    }
    
    // An angularjs POST request such as:
    $http(
           {
          "method": "POST",
          "url": "https://app.lodgable.com/api/v2/location",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
       "address": "6910 S Highland Dr",
       "city": "Murray",
       "state": 3603,
       "postalCode": "84121",
       "country": "US"
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "address": "6910 S Highland Dr",
        "city": "Murray",
        "postalCode": "84121",
        "lat": null,
        "lng": null,
        "formatted_address": null,
        "id": 35,
        "propertyManager": 42,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/location/35"
            }
        }
    }
    
    // An angularjs POST request such as:
    $http(
            {
          "method": "PATCH",
          "url": "https://app.lodgable.com/api/v2/location/35",
          "headers": {
            "Authorization": "Bearer " + access_token
          },
          "data": {
              "address": "6920 S Highland Dr"
          }
        }
    );
    
    // would return JSON structured like this:
    {
        "address": "6920 S Highland Dr",
        "city": "Murray",
        "postalCode": "84121",
        "lat": null,
        "lng": null,
        "formatted_address": null,
        "id": 35,
        "propertyManager": 42,
        "_links": {
            "self": {
                "href": "https://app.lodgable.com/api/v2/location/35"
            }
        }
    }
    
    // An angularjs DELETE request such as:
    $http(
        {
          "method": "DELETE",
          "url": "https://app.lodgable.com/api/v2/location/35",
          "headers": {
            "Authorization": "Bearer " + access_token
          }
        }
    );
    // would return: 204 No Content
    

    Provides a list of all payout addresses associated with the host

    HTTP Request

    Request Headers

    Header Value
    Accept application/json; application/*+json
    Content-Type application/json

    GET /api/v2/location

    GET /api/v2/location/:location_id

    POST /api/v2/location

    Request Parameters

    Parameter Required Default Type Description
    address yes null string Street address
    city no null string City
    lat no null float World latitude
    lng no null float World longitude
    formatted_address no null string Complete address
    postalCode no null string Postal code
    country no null string Country
    state no null string State

    PATCH /api/v2/location/:location_id

    Request Parameters

    Parameter Required Default Type Description
    address no null string Street address
    city no null string City
    lat no null float World latitude
    lng no null float World longitude
    formatted_address no null string Complete address
    postalCode no null string Postal code
    country no null string Country
    state no null string State

    DELETE /api/v2/location/:location_id

    Payouts

    Management

    Payout methods can be managed from the account profile page under the Payouts tab.

    Set Up

    Adding a new payout method:

    1. After creating an account from the main dashboard click on the user profile image in the top right hand corner to open a dropdown menu and select 'Account Settings' then 'Payouts'.

    2. On the payouts method page click the button that says 'Add payout method' which will then bring a dialog box up.

    3. Enter the required contact field info including an address associated with the payout , the submit button will become active to click

    4. The added payout method should now show on the payouts page, if previous payout info has been set up the latest one will automatically be set as the default payment method, other payout methods can be changed at anytime.

    Stripe

    Management

    Stripe can be managed from the account profile page under the Guest Payments tab.

    Set Up

    Adding a new stripe account:

    1. After creating an account from the main dashboard click on the user profile image in the top right hand corner to open a dropdown menu and select 'Account Settings' then 'Guest Payments'.

    2. On the guest payments page select an appropriate stripe plan to begin setup.

    3. Sign into an existing account to connect it, proceed to create a new account or alternatively skip sign up by clicking the development mode prompt to connect stripe.

    4. The connected stripe account dashboard should now be accessible from the guest payments page by clicking 'Manage Stripe' on the currently set plan.

    5. Proceed to set up a billing method if not already done.

    Filtering

    Filtering is accomplished by passing query parameters to the endpoint. For example, to pull all of the reservations created since July 4th, 2018 3:45 PM you could use:

    /api/v2/reservation?filter%5B0%5D%5Bfield%5D=createdAt&filter%5B0%5D%5Btype%5D=gte&filter%5B0%5D%5Bformat%5D=Y-m-d+H%3Ai&filter%5B0%5D%5Bvalue%5D=2018-07-04+15%3A45

    Let's checkout how this is made in Javascript and PHP to simplify it a bit ->

    // Using angularjs's $http service
    $http(
        {
            method: "GET",
            url: "https://app.lodgable.com/api/v2/reservation",
            data: {
                "filter":[
                    {
                        "field": "createdAt",
                        "type": "gte",
                        "format": "Y-m-d H:i",
                        "value": "2018-07-04 15:45"
                    }
                ]
            }
        }
    )
    // In the background this encodes the data structure for inclusion as a query string
    
    <?php
    $data = [
        'filter' => [
            [
                'field' => 'createdAt',
                'type' => 'gte',
                'format' => 'Y-m-d H:i',
                'value' => '2018-07-04 15:45'
            ]
        ]
    ];
    
    echo http_build_query($data);
    // filter%5B0%5D%5Bfield%5D=createdAt&filter%5B0%5D%5Btype%5D=gte&filter%5B0%5D%5Bformat%5D=Y-m-d+H%3Ai&filter%5B0%5D%5Bvalue%5D=2018-07-04+15%3A45
    

    Here is another example on how to filter by guest ID, in this example we pull all of the reservations with a guest ID of 23:

    /api/v2/reservation?filter%5B0%5D%5Bconditions%5D=&filter%5B0%5D%5Bfield%5D=guest&filter%5B0%5D%5Btype%5D=innerjoin&filter%5B0%5D%5Bwhere%5D=&filter%5B0%5D%5Balias%5D=g&filter%5B0%5D%5Bvalue%5D=&filter%5B1%5D%5Bconditions%5D=&filter%5B1%5D%5Bfield%5D=id&filter%5B1%5D%5Btype%5D=eq&filter%5B1%5D%5Bwhere%5D=&filter%5B1%5D%5Balias%5D=g&filter%5B1%5D%5Bvalue%5D=23&order-by%5B0%5D%5Bfield%5D=startAt&order-by%5B0%5D%5Btype%5D=field&order-by%5B0%5D%5Bdirection%5D=asc

    Let's checkout how this is made in Javascript and PHP to simplify it a bit ->

    // Using angularjs's $http service
    $http(
        {
            method: "GET",
            url: "https://app.lodgable.com/api/v2/reservation",
            data: {
                "filter":[
                    {
                        "field": "guest",
                        "type": "innerjoin",
                        "alias": "g"
                    }
                    {
                        "field": "id",
                        "type": "field",
                        "value": "23"
                    }
                ]
            }
        }
    )
    
    <?php
    $data = [
        'filter' => [
            [
                'field' => 'guest',
                'type' => 'innerjoin',
                'alias' => 'g',
            ]
            [
                'field' => 'id',
                'type' => 'field',
                'value' => '23'
            ]
        ]
    ];
    
    echo http_build_query($data);
    // filter%5B0%5D%5Bconditions%5D=&filter%5B0%5D%5Bfield%5D=guest&filter%5B0%5D%5Btype%5D=innerjoin&filter%5B0%5D%5Bwhere%5D=&filter%5B0%5D%5Balias%5D=g&filter%5B0%5D%5Bvalue%5D=&filter%5B1%5D%5Bconditions%5D=&filter%5B1%5D%5Bfield%5D=id&filter%5B1%5D%5Btype%5D=eq&filter%5B1%5D%5Bwhere%5D=&filter%5B1%5D%5Balias%5D=g&filter%5B1%5D%5Bvalue%5D=23&order-by%5B0%5D%5Bfield%5D=startAt&order-by%5B0%5D%5Btype%5D=field&order-by%5B0%5D%5Bdirection%5D=asc
    

    Here is an example on how to filter a booking origin by name, in this example we pull all of the booking origin names in that start with the letter 'A':

    /api/v2/booking-origin?filter%5B0%5D%5Bconditions%5D=&filter%5B0%5D%5Bfield%5D=name&filter%5B0%5D%5Btype%5D=like&filter%5B0%5D%5Bwhere%5D=&filter%5B0%5D%5Bvalue%5D=A%

    Let's checkout how this is made in Javascript and PHP to simplify it a bit ->

    // Using angularjs's $http service
    $http(
        {
            method: "GET",
            url: "https://app.lodgable.com/api/v2/booking-origin",
            data: {
                "filter":[
                    {
                        "field": "name",
                        "type": "eq",
                        "value": "A"
                    }
                ]
            }
        }
    )
    
    <?php
    $data = [
        'filter' => [
            [
                'field' => 'name',
                'type' => 'eq',
                'value' => 'A',
            ]
        ]
    ];
    
    echo http_build_query($data);
    // filter%5B0%5D%5Bconditions%5D=&filter%5B0%5D%5Bfield%5D=name&filter%5B0%5D%5Btype%5D=like&filter%5B0%5D%5Bwhere%5D=&filter%5B0%5D%5Bvalue%5D=A%
    

    Sorting

    Sorting is accomplished by passing query parameters to the endpoint. For example, to sort booking origins by alphabetical order you could use:

    /api/v2/booking-origin?order-by%5B0%5D%5Bfield%5D=name&order-by%5B0%5D%5Btype%5D=field&order-by%5B0%5D%5Bdirection%5D=asc

    Let's checkout how this is made in Javascript and PHP to simplify it a bit ->

    // Using angularjs's $http service
    $http(
        {
            method: "GET",
            url: "https://app.lodgable.com/api/v2/booking-origin",
            data: {
                "order-by":[
                    {
                        "field": "name",
                        "type": "field",
                        "direction": "asc"
                    }
                ]
            }
        }
    )
    
    <?php
    $data = [
        'order-by' => [
            [
                'field' => 'name',
                'type' => 'field',
                'direction' => 'asc',
            ]
        ]
    ];
    
    echo http_build_query($data);
    // order-by%5B0%5D%5Bfield%5D=name&order-by%5B0%5D%5Btype%5D=field&order-by%5B0%5D%5Bdirection%5D=asc
    

    Errors

    The Lodgable API uses the following error codes:

    Error Code Name Meaning
    400 Bad Request Something that you sent up does not quite jive with what we expected
    401 Unauthorized Did you provide an access token? Is it still good or does it need refreshed?
    403 Forbidden The access token you provided does not have permission to access the requested resource
    404 Not Found The API could not locate the requested information
    405 Method Not Allowed The API does not allow the provided HTTP method on the requested resource
    406 Not Acceptable Check your Accept HTTP header. It may be set to a value the API cannot provide
    409 Conflict Indicates that the request could not be processed because of conflict in the request, such as an edit conflict between multiple simultaneous updates
    410 Gone The requested resource has been removed
    415 Unsupported Media Type The request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format
    422 Unprocessable Entity The request was well-formed but was unable to be followed due to semantic errors. Check your payload
    423 Locked The resource that is being accessed is locked
    424 Failed Dependency The request failed because it depended on another request and that request failed
    429 Too Many Requests The user has sent too many requests in a given amount of time
    500 Internal Server Error A generic error message, given when an unexpected condition was encountered and no more specific message is suitable
    501 Not Implemented The server either does not recognize the request method, or it lacks the ability to fulfil the request
    503 Service Unavailable The server is currently unavailable (because it is overloaded or down for maintenance). Generally, this is a temporary state