NAV Navbar
json
  • Introduction
  • Authentication
  • Search
  • Accounts
  • Users
  • Integrations
  • Listings
  • Listing's calendar
  • Saved replies
  • Hooks
  • Reservations
  • Views
  • Guests
  • Phone Book Contacts
  • Auto Tasks
  • Tasks
  • Inbox - Guest conversations
  • Invoices
  • Invoice Items
  • Payment Methods
  • Websites
  • WebHooks
  • Webhook Structure
  • Errors
  • Introduction

    Welcome to the Guesty platform API.

    Default Base URL

    The default base URL for Guesty API is: https://api.guesty.com/api/v2/
    All data should be sent in JSON format and with a Content-Type: application/json header.

    Note: for security reasons, all Guesty APIs are served over HTTPS only.

    Authentication

    To use the Guesty API, you’ll need a private API key (JWT) that is linked to your account. Creating both tokens is possible through the Guesty Dashboard.
    You can lean how to generate one [here]https://support.guesty.com/hc/en-us/articles/115000256085-API-Toolkit)
    Both Basic and Bearer authentication is available.
    Be sure to keep this API key private. All API requests must be made over HTTPS and are authenticated via HTTP Basic Auth. Use your API key as the username and secret as the password.

    Search

    Search for everything

        [
            {
                "type": "reservation",
                "_id": "537266ab8cc22c0b000000b7",
                "title": "Booking #ABCDEF",
                "description": "Koby Soto on dates Oct. 28 - Nov. 01",
                "picture": "http://images.com/image.jpg"
            }
        ]
    

    HTTP Request

    GET /search

    Query Parameters

    Parameter Default Description Example
    q null Required Search query string. Koby Soto
    type null Limit search subjects. No limit when null. Options are accounts, users, contacts, integrations, listings, bookings, views. users
    limit 25 Pagination, max: 100 25
    skip 0 Pagination 0

    Users can be found using fullName, emails, phones properties.

    Integrations can be found using the nickname, externalLink, incomingEmail properties.

    Contacts can be found using the fullName, emails, phones properties.

    Listings can be found using the title, nickname, tags, address.full, integrations.externalUrl properties.

    Bookings can be found using the confirmationCode, guest.fullName, guest.emails, guest.phones properties.

    Views can be found using the title property.

    Response

    Attribute Description
    type Result type. Options are account, user, contact, integration, listing, reservation
    _id The result unique id in its collection, for instance, for users, users._id
    title The title to display. For accounts: name; For users: fullName; For contacts: fullName; For integrations: fullName; For listings: title; For bookings: Booking #confirmationCode; For views: title.
    description The description to display. For users: email, phone; For contacts: email, phone; For integrations: nickname, incomingEmail; For listings: address.full; For bookings: guest.fullname on dates checkIn-checkOut
    picture The picture to display. For users: picture.thumbnail; For contacts: null; For listings: picture.thumbnail; For bookings: guest.picture.thumbnail
    nickname For listings: nickname; For all others: null

    Accounts

    The account object

    {
        "_id" : "563e0b6a08a2710e00057b82",
        "companyLogo" : "https://cdn.filepicker.io/api/file/30ZpVdyR2maSmL8yVO9L",
        "pms" : {
            "paymentProcessing" : {
                "active" : true,
                "paymentProviders" : {
                    "stripe" : {
                        "accountName" : "Poll dancers etc.",
                        "active" : true,
                        "defaultCurrency" : "usd",
                        "payload" : {
                            "scope" : "read_write",
                            "stripe_user_id" : "acct_19nmQxLYcJ0oiNhY",
                            "stripe_publishable_key" : "pk_live_zO9llGmXVVYAxn34acaMpVUQ",
                            "token_type" : "bearer",
                            "refresh_token" : "rt_ADYlUvPUGWceBqGEJd7KXjQctLV229jRoH0fCg5ADbKIcvAU",
                            "livemode" : true,
                            "access_token" : "sk_live_zJh3jMS2bJPM7pcfn3rtC7oH",
                            "id" : "acct_19nmQxLYcJ0oiNhY"
                        },
                        "status" : "ACTIVE",
                        "syncedAt" : ISODate("2017-03-02T13:06:31.857Z")
                    }
                }
            },
            "calendar" : {
                "requireReasonForUpdatingAvailability" : true,
                "requireReasonForUpdatingPricing" : true
            },
            "cleaningStatus" : {
                "markAsDirtyOnCheckIn" : true,
                "statusFade" : {
                    "toStatus" : "dirty",
                    "days" : 15,
                    "active" : true
                }
            },
            "inbox" : {
                "customSignature" : "Tnx Naama"
            }
        },
        "ignoredHooks" : [],
        "createdAt" : "2015-11-07T14:32:10.215Z",
        "receptionistsService" : {
            "contactPersonUserId" : "5803d02f7f2b400f00f0d471",
            "screening" : {
                "checklist" : [
                    {
                        "item" : "Verifications: social media",
                        "isProactive" : false,
                        "_id" : "570d1527d124300e007cc2db"
                    },
                    {
                        "item" : "No children (up to 12 years)",
                        "isProactive" : false,
                        "_id" : "570d1527d124300e007cc2da"
                    },
                    {
                        "item" : "No pets",
                        "isProactive" : false,
                        "_id" : "570d1527d124300e007cc2d9"
                    },
                    {
                        "item" : "Booking is up to 3 months in advance",
                        "isProactive" : false,
                        "_id" : "570d1527d124300e007cc2d8"
                    },
                    {
                        "item" : "Booking requests: Approve",
                        "isProactive" : false,
                        "_id" : "570d1527d124300e007cc2d7"
                    }
                ]
            },
            "receptionDesk" : {
                "whiteLabel" : false,
                "ittt" : [
                    {
                        "ifThis" : "Old",
                        "thenThat" : "<p>New user.</p>",
                        "_id" : "570d1527d124300e007cc2d6"
                    },
                    {
                        "ifThis" : "keys are missing",
                        "thenThat" : "<p>Call Roei</p>",
                        "_id" : "57e254c3a77e1e0f00218fb7"
                    },
                    {
                        "ifThis" : "house burns down",
                        "thenThat" : "<p>call 911</p>",
                        "_id" : "591c1199dbb50f1000f9e7ac"
                    }
                ]
            }
        },
        "active" : true,
        "netIncomeFormula" : "host_payout",
        "whiteLabel" : {
            "shouldWhiteLabelApp" : true,
            "integrationEmailDomains" : []
        },
        "mailingAddress" : {
            "state" : "New South Wales",
            "city" : "Waterloo, New South Wales, Australia",
            "address" : "Waterloo",
            "lat" : 32.0733456,
            "lng" : 34.7820248,
            "full" : "Waterloo, New South Wales, Australia",
            "zipcode" : "2017",
            "country" : "Australia"
        },
        "availablePhoneNumbers" : [],
        "customFields" : [
            {
                "type" : "number",
                "key" : "Floor",
                "_id" : "57e27416a77e1e0f00219bbd",
                "options" : [],
                "isPublic" : false,
                "object" : "listing"
            },
            {
                "_id" : "57e275b658621d0f003eb5f6",
                "options" : [],
                "isPublic" : false,
                "object" : "listing",
                "type" : "user",
                "key" : "Home Owner"
            },
            {
                "object" : "listing",
                "type" : "number",
                "isPublic" : true,
                "key" : "Key No.",
                "_id" : "581757702e90710f000a41c5",
                "options" : []
            }
        ],
        "hadFirstBookingAt" : "2016-07-12T11:35:35.001Z",
        "currency" : "EUR",
        "activatedAt" : "2016-04-05T10:07:19.054Z",
        "timezone" : "Asia/Jerusalem",
        "name" : "ExampleAccount",
        "commissionFormula" : "net_income*0.1",
        "commissionTaxPercentage" : null,
        "systemEmailsRecipients" : [
            "580c817ed4b70d0f00dcf6f6",
            "587b8283fc6b2610000f9b39"
        ]
    }
    
    Attribute Type Description
    _id String Unique id
    active Boolean
    name String
    mailingAddress Object
    createdAt Date
    timezone String
    currency String
    companyLogo String
    availablePhoneNumbers [String] Phone numbers that the user has bought
    proxyEmail String
    whiteLabel Object
    ---shouldWhiteLabelApp Boolean
    ---brand Object
    ------name String
    ------picture String
    ---appDomain String
    ---integrationEmailDomains [Object]
    ------domain String
    ------smtp Object
    ---------user String
    ---------pass String
    ---integrationsEmailDomain String
    systemEmailsRecipients [String] User IDs
    receptionistsService Object
    ---contactPersonUserId String User ID
    ---receptionDesk Object
    ------ittt [Object]
    ---------ifThis String
    ---------thenThat String
    ------whiteLabel Boolean
    ------customImpersonation String
    ------customSignature String
    ---screening Object
    ------checklist [Object]
    ---------item String
    ---------isProactive Boolean
    postBookingService Object
    ---manualWorkDescription String
    pms Object
    ---inbox Object
    ------customSignature String
    ---cleaningStatus Object
    ------statusFade Object
    ---------active Boolean
    ---------days Number
    ---------toStatus Enum ['unknown', 'dirty']
    ------markAsDirtyOnCheckIn Boolean
    ---calendar Object
    ------requireReasonForUpdatingAvailability Boolean
    ------requireReasonForUpdatingPricing Boolean
    ---paymentProcessing Object
    ------active Boolean
    ------paymentProviders: Object
    ---------stripe Object
    ------------active Boolean
    ------------status String ADD EXAMPLES
    ------------accountName String
    ------------defaultCurrency String
    ------------syncedAt Date
    ------------payload Enum
    apiKeys [Object]
    ---key String
    ---secret String
    ---label String
    netIncomeFormula String
    commissionFormula String
    commissionTaxPercentage Number [0-100]
    customFields Object
    ---object Enum ['listing', 'reservation']
    ---key String Custom field name
    ---type Enum ['text', 'longtext', 'number', 'date', 'time', 'boolean', 'user', 'contact', 'enum']
    ---options [String] For Enum custom fields
    ---isPublic Boolean

    Retrieve account stats

        {
            "confirmed": {
                "value": 37
            },
            "checkins": {
                "value": 13
            },
            "avgPayout": {
                "value": 1540,
                "currency": "$"
            },
            "avgNights": {
                "value": 3.5
            },
            "avgGuests": {
                "value": 2.4
            },
            "avgDaysInAdvance": {
                "value": 31
            },
            "listingsCount": {
                "active": 4,
                "unlisted": 3
            }
        }
    

    HTTP Request

    GET /accounts/:id/stats OR GET /accounts/me/stats

    Query Parameters

    Parameter Default Description Example
    accountId --- Required with admin token, Unavailable with user token. 531968414930a7f09b075800
    listingId --- Limit to a certain listing. If given no listingsCount is returned. 531967884930a7f09b0756e7

    Response

    Stats for the requested account/listing.

    Attribute Structure Description
    confirmed Object: value The amount of bookings that their createdAt is in the last 30 days
    checkins Object: value The amount of bookings that their checkIn is in the last 30 days
    avgPayout Object: value, currency The avg. hostPayout of bookings created in the last 30 days
    avgNights Object: value The avg. nightsCount of bookings created in the last 30 days
    avgGuests Object: value The avg. guestsCount of bookings created in the last 30 days
    avgDaysInAdvance Object: value The avg. of days from booking.createdAt and booking.checkIn for bookings created in the last 30 days
    listingsCount Object: active, unlisted Active is the number of managed and listed listings at the moment, Unlisted are managed and unlisted

    Retrieve account's billing status

        {
            "status": "ok",
            "accountBalance": {
                "amount": 203,
                "currency": "$"
            },
            "nextBillingDate": "2015-09-24 14:30:22.744Z"
        }
    

    HTTP Request

    GET /accounts/:id/billing-status OR GET /accounts/me/billing-status

    Response

    Billing status for the requested user.

    Attribute Structure Description
    status Enum ok if all payments method haven't failed
    missing if missing payment method
    failed if there is a payment method that has failed.
    accountBalance Object: amount, currency The credits available for the user
    nextBillingDate Date The date for the next billing cycle

    Create a stripe account for our account

        {
                "_id": "563e0b6a08a2710e00057b82",
                "timezone": "Asia/Jerusalem",
                "name": "BnbAir",
                "pms": {
                    "paymentProcessing": {
                        "active": true,
                        "paymentProviders": {
                            "stripe": {
                                "accountName": "Poll dancers etc.",
                                "active": true,
                                "defaultCurrency": "usd",
                                "payload": {
                                    "access_token": ACCESS_TOKEN,
                                    "livemode": true,
                                    "refresh_token": REFRESH_TOKEN,
                                    "token_type": "bearer",
                                    "stripe_publishable_key": PUBLISHABLE_KEY,
                                    "stripe_user_id": USER_ID,
                                    "scope": "read_write",
                                    "id": "acct_19nmQxLYcJ0oiNhY"
                                },
                                "status": "ACTIVE",
                                "syncedAt": "2017-03-02T13:06:31.857Z"
                            }
                        }
                    }
                },
                "billing": {
                    "stripeCustomerId": CUSTOMER_ID,
                    "prevBillingDate": "2017-07-03T15:30:50.174Z",
                    "paymentMethods": [],
                    "balance": {
                        "amount": 3,
                        "currency": "USD"
                    },
                    "nextBillingDate": "2017-07-10T15:30:50.174Z",
                    "billingDay": 1,
                    "billingCycle": "Weekly"
                },
                "id": "563e0b6a08a2710e00057b82"
            }
    

    Body Parameters

    Parameter Default
    country US

    HTTP Request

    POST /accounts/:id/create-stripe-account OR POST /accounts/me/create-stripe-account

    Response

    Account object with updated paymentProcessingFeature field. Under 'paymentProcessingFeature.stripe.verification.fields_needed' you can find the missing fields for account verification

    Update the stripe account

        {
                "_id": "563e0b6a08a2710e00057b82",
                "timezone": "Asia/Jerusalem",
                "name": "BnbAir",
                "pms": {
                    "paymentProcessing": {
                        "active": true,
                        "paymentProviders": {
                            "stripe": {
                                "accountName": "Poll dancers etc.",
                                "active": true,
                                "defaultCurrency": "usd",
                                "payload": {
                                    "access_token": ACCESS_TOKEN,
                                    "livemode": true,
                                    "refresh_token": REFRESH_TOKEN,
                                    "token_type": "bearer",
                                    "stripe_publishable_key": PUBLISHABLE_KEY,
                                    "stripe_user_id": USER_ID,
                                    "scope": "read_write",
                                    "id": "acct_19nmQxLYcJ0oiNhY"
                                },
                                "status": "ACTIVE",
                                "syncedAt": "2017-03-02T13:06:31.857Z"
                            }
                        }
                    }
                },
                "billing": {
                    "stripeCustomerId": CUSTOMER_ID,
                    "prevBillingDate": "2017-07-03T15:30:50.174Z",
                    "paymentMethods": [],
                    "balance": {
                        "amount": 3,
                        "currency": "USD"
                    },
                    "nextBillingDate": "2017-07-10T15:30:50.174Z",
                    "billingDay": 1,
                    "billingCycle": "Weekly"
                },
                "id": "563e0b6a08a2710e00057b82"
            }
    

    Body Parameters

    Same params as in stripe update account: Stripe api docs

    HTTP Request

    POST /accounts/:id/update-stripe-account OR POST /accounts/me/update-stripe-account

    Response

    Account object with updated paymentProcessingFeature field.

    Connect a stripe account with Guesty account

        {
                    "_id": "563e0b6a08a2710e00057b82",
                    "timezone": "Asia/Jerusalem",
                    "name": "BnbAir",
                    "pms": {
                        "paymentProcessing": {
                            "active": true,
                            "paymentProviders": {
                                "stripe": {
                                    "accountName": "Poll dancers etc.",
                                    "active": true,
                                    "defaultCurrency": "usd",
                                    "payload": {
                                        "access_token": ACCESS_TOKEN,
                                        "livemode": true,
                                        "refresh_token": REFRESH_TOKEN,
                                        "token_type": "bearer",
                                        "stripe_publishable_key": PUBLISHABLE_KEY,
                                        "stripe_user_id": USER_ID,
                                        "scope": "read_write",
                                        "id": "acct_19nmQxLYcJ0oiNhY"
                                    },
                                    "status": "ACTIVE",
                                    "syncedAt": "2017-03-02T13:06:31.857Z"
                                }
                            }
                        }
                    },
                    "billing": {
                        "stripeCustomerId": CUSTOMER_ID,
                        "prevBillingDate": "2017-07-03T15:30:50.174Z",
                        "paymentMethods": [],
                        "balance": {
                            "amount": 3,
                            "currency": "USD"
                        },
                        "nextBillingDate": "2017-07-10T15:30:50.174Z",
                        "billingDay": 1,
                        "billingCycle": "Weekly"
                    },
                    "id": "563e0b6a08a2710e00057b82"
                }
    

    Body Parameters

    Parameter Default Description Example
    code null Stripe Authorization code

    HTTP Request

    POST /accounts/:id/connect-stripe-account OR POST /accounts/me/connect-stripe-account

    Response

    Account object with updated payments field. Under 'paymentProcessingFeature.stripe.id' you can find the ID of the connected stripe account Read more: Stripe api docs

    [comment:] todo - check to see if this is the correct route. (should be post to /websites/ collection)

    Check website name availability

        {
            "available": true
        }
    

    HTTP Request

    POST /accounts/website-name-availability

    Response

    Attribute Structure Description
    available Boolean True if this website name is available to use, false otherwise.

    Users

    The user object

    {
        "_id": "58b84839f5af6810009fa1bf",
        "fullName": "Nadav Margalit",
        "preferredContactMethod": "email",
        "firstName": "Nadav",
        "lastName": "Margalit",
        "phone" : "972539405243",
        "email": "example@guesty.com",
        "accountId": "563e0b6a08a2710e00057b82",
        "googleChromeNotificationsSubscriptionIds": [],
        "roles": [
            {
                "roleId": "57447a900ebc04ba98064035",
                "_id": "5989d585e5d9600f000c1d15"
            }
        ],
        "phones": [
            "972539405243"
        ],
        "emails": [
            "example@guesty.com"
        ],
        "tags": [],
        "__v": 1,
        "settings": {
            "notifications": {
                "subscriptions": [
                    {
                        "type": "PAYMENT",
                        "name": "FAILED",
                        "_id": "595395f081739d1000122b08",
                        "targets": ["DASHBOARD"]
                    },
                    {
                        "type": "PAYMENT",
                        "name": "RECEIVED",
                        "_id": "595395f081739d1000122b07",
                        "targets": ["DASHBOARD"]
                    },
                    {
                        "type": "RESERVATION",
                        "name": "INQUIRY",
                        "_id": "595395f081739d1000122b06",
                        "targets": ["DASHBOARD"]
                    }
                ]
            }
        },
        "picture": {
            "thumbnail": "https://cdn.filepicker.io/api/file/Dxeu26bsQ5SySXc1wt9u",
            "regular": "https://cdn.filepicker.io/api/file/Dxeu26bsQ5SySXc1wt9u"
        }
    }
    
    Attribute Type Description
    _id String
    email String Primary email address
    accountId String
    firstName String
    lastName String
    fullName String
    title String
    timezone String Europe/Amsterdam
    picture Object (see below)
    tags [String]
    emails [String]
    phones [String]
    preferredContactMethod Enum [email, sms]
    noteBeforeContacting String
    phone String Primary phone number
    notes String
    roles [Object] (see below)
    googleChromeNotificationsSubscriptionIds [String]
    settings Object
    ---notifications Object
    ------subscriptions [Object] (see below)

    The picture object

    {
        "picture": {
            "thumbnail": "https://cdn.filepicker.io/api/file/bBnKEk8TlmJAUHcLApRx",
            "regular": "https://cdn.filepicker.io/api/file/bBnKEk8TlmJAUHcLApRx"
        }
    }
    
    Attribute Type Description
    thumbnail String
    regular String
    large String

    The role object

    {
        "roles": [
            {
                "roleId": "57447a900ebc04ba98064035",
                "_id": "58bd665b8f464b10002bf9f9"
            }
        ]
    }
    
    Attribute Type Description
    roleId String unique role Id
    listingIds [String] Array of listing Ids

    The subscriptions object

    {
        "settings": {
            "notifications": {
                "subscriptions": [
                    {
                        "type": "TASK",
                        "name": "NEW_ATTACHMENT",
                        "_id": "59788adba3bdfd0f00ff9984",
                        "targets": [
                            "DASHBOARD"
                        ]
                    },
                    {
                        "type": "TASK",
                        "name": "NEW_COMMENT",
                        "_id": "59788adba3bdfd0f00ff9983",
                        "targets": [
                            "DASHBOARD"
                        ]
                    }
                ]
            }
        }
    }
    
    Attribute Type Description
    type String TASK, PAYMENT, RESERVATION
    name String FAILED, NEW_ATTACHMENT, CANCELED, ALTERATION, NEW_COMMENT
    target [String] 'DASHBOARD', 'SMS'

    List all users

    {
        "results": [
            {
                "_id": "5901fa614258fd10000b78e3",
                "fullName": "Elad Kremer",
                "preferredContactMethod": "email",
                "firstName": "Elad",
                "lastName": "Kremer",
                "email": "example@guesty.com",
                "accountId": "563e0b6a08a2710e00057b82",
                "googleChromeNotificationsSubscriptionIds": [],
                "roles": [
                    {
                        "roleId": "57447a900ebc04ba98064035",
                        "_id": "5961ed9396897b1000e9be47"
                    }
                ],
                "phones": [],
                "emails": [
                    "example@guesty.com"
                ],
                "tags": [
                    "newguy",
                    "new"
                ],
                "settings": {
                    "notifications": {
                        "subscriptions": [
                            {
                                "type": "PAYMENT",
                                "name": "FAILED",
                                "_id": "5963924c2b5be11000077f67",
                                "targets": [
                                    "DASHBOARD"
                                ]
                            }
                        ]
                    }
                }
            }
        ],
        "count": 1,
        "fields": "",
        "limit": 25,
        "skip": 0
    }
    

    HTTP Request

    GET /users

    Query Parameters

    Parameter Default Description Example
    q null Search query string. Searches in fullName, emails, phones Koby Soto
    fields null Selection of fields, separated by space firstName lastName email
    limit 25 Pagination, max: 100 25
    skip 0 Pagination 0

    Response

    Array of requested users

    Retrieve a user

    {
        "_id": "5901fa614258fd10000b78e3",
        "fullName": "Elad Kremer",
        "preferredContactMethod": "email",
        "firstName": "Elad",
        "lastName": "Kremer",
        "email": "example@guesty.com",
        "accountId": "563e0b6a08a2710e00057b82",
        "googleChromeNotificationsSubscriptionIds": [],
        "roles": [
            {
                "roleId": "57447a900ebc04ba98064035",
                "_id": "5961ed9396897b1000e9be47"
            }
        ],
        "phones": [],
        "emails": [
            "example@guesty.com"
        ],
        "tags": [
            "newguy",
            "new"
        ],
        "settings": {
            "notifications": {
                "subscriptions": [
                    {
                        "type": "PAYMENT",
                        "name": "FAILED",
                        "_id": "5963924c2b5be11000077f67",
                        "targets": [
                            "DASHBOARD"
                        ]
                    }
                ]
            }
        }
    }
    

    HTTP Request

    GET /users/:id OR GET /me

    Query Parameters

    Parameter Default Description Example
    fields --- Selection of fields, separated by space firstName lastName email

    Response

    The requested user.

    Update a user

    HTTP Request

    PUT /users/:id OR PUT /me

    Response

    Retrieve the updated user, selection of fields that were sent in body.

    Create a user

    Response

    {
        "__v": 0,
        "fullName": "Uria Goldy",
        "email": "urigold@guesty.com",
        "accountId": "563e0b6a08a2710e00057b82",
        "_id": "59b9083432123a1000b50a9c",
        "settings": {
            "notifications": {
                "subscriptions": []
            }
        },
        "googleChromeNotificationsSubscriptionIds": [],
        "roles": [
            {
                "roleId": "57447a900ebc04ba98064035",
                "_id": "59b9083432123a1000b50a9d"
            }
        ],
        "phones": [],
        "emails": [
            "urigold@guesty.com"
        ],
        "tags": [],
        "id": "59b9083432123a1000b50a9c"
    }
    

    HTTP Request

    POST /users

    Body Parameters

    Parameter Default Description
    fullName Required Full guest name 'Ari Gold'
    email Required (Unique) Valid email address
    emails Required Array of of the users emails
    password Required Strong password, atleast 6 characters long.

    Example

    Body

    { "fullName": "Uria Goldy", "email": "urigold@guesty.com", "password": "123456789", "emails": ["urigold@guesty.com"] }

    Response

    The created user.

    Delete a user

    HTTP Request

    DELETE /users/:id

    Validation

    Cannot delete self, cannot delete last user in account.

    Check email address availability

        {
            "available": true
        }
    

    HTTP Request

    POST /users/email-availability

    Authorization

    Accessible to everyone. No need to authenticate.

    Body Parameters

    Parameter Default Description
    email Required The requested email

    Response

    Attribute Structure Description
    available Boolean True if this email is available to use, false otherwise.

    Open a support ticket

    "OK"
    

    HTTP Request

    POST /users/:id/support OR POST /me/support

    Body Parameters

    Parameter Default Description Example
    subject "Support issue" Subject line "Issue"
    message --- Message to be included in the ticket "Issue"

    Response

    "OK"

    Integrations

    The integration object

    {
        "_id": "5958c7e5884e961000817799",
        "accountId": "563e0b6a08a2710e00057b82",
        "rentalsUnited": {
            "ignored": {
                "listings": [],
                "reservations": []
            }
        },
        "flags": {
            "accountBlocked": {
                "sentTemplates": []
            },
            "accountDisabled": {
                "sentTemplates": []
            },
            "wrongPasswordDetected": {
                "sentTemplates": []
            },
            "twoStepVerification": {
                "sentTemplates": []
            },
            "accountIdVerification": {
                "sentTemplates": []
            }
        },
        "listingsList": [],
        "pendingTasks": [],
        "lastSynced": {
            "bookings": []
        },
        "incomingEmail": "naama@user.guesty.com",
        "__v": 0,
        "airbnb": {
            "importCalendars": true,
            "ignored": {
                "reservations": [],
                "listings": []
            },
            "emailsFromSupport": []
        },
        "forwardEmails": {
            "all": true,
            "emails": [
                "hipit10@hotmail.com"
            ]
        },
        "platform": "airbnb",
        "nickname": "naama"
    }
    
    Attribute Type Description
    _id String Unique id
    accountId String Owner
    platform Enum [airbnb, rentalsUnited, manual]
    id Number External ID
    active Boolean Status of connection
    nickname String
    forwardEmails Object
    ---all Boolean
    ---confirmations Boolean
    ---inquiries Boolean
    ---requests Boolean
    ---reviews Boolean
    ---payments Boolean
    ---reminders Boolean
    ---emailsFromGuest Boolean
    ---externals Boolean
    ---emails [String]
    ---asGuest String
    credentials Object
    ---username String
    ---password String
    incomingEmail String
    connectedAt Date
    disconnectedAt Date
    firstName String The name of the host as appears on that integration
    lastName String The name of the host as appears on that integration
    fullName String The name of the host as appears on that integration
    birthDate String yyyy-mm-dd
    externalLink String
    listingsList Array @see POST /integrations/:id/retrieve-external-listings
    airbnb Object Only if platform is airbnb
    ---emailsFromSupport [Object]
    ---ignored Object
    ------listings [String] external ids of deleted listings
    ------reservations [String] external ids of deleted reservations
    rentalsUnited Object Only if platform is rentalsUnited
    ---ignored Object
    ------listings [String] external ids of deleted listings
    ------reservations [String] external ids of deleted reservations

    airbnb object

    Attribute Type Description
    id Number The id of the user in Airbnb
    incomingEmail String The email address that we receive emails from.
    username String Login credentials for the Airbnb account.
    password String Login credentials
    forwardEmails Object Toggles to forward the incoming emails. Boolean value.
    Fields include: all, confirmations, inquiries, payments, requests, reviews, reminders, emailsFromGuest, externals.
    Field emails is an array of email addresses to be forwarded to.

    rentalsUnited object

    Attribute Type Description
    id Number The id of the user in Airbnb
    incomingEmail String The email address that we receive emails from
    username String
    password String

    List all integrations

    {
        "count": 1,
        "limit": 25,
        "skip": 0,
        "results": [
           { "_id": "58f77ff3f13d691000af7e12",
                "platform": "airbnb",
                "incomingEmail": "xxxxx@user.guesty.com",
                "accountId": "563e0b6a08a2710e00057b82",
                "active" : false,
                "nickname": "Test",
                "airbnb": {
                    "importCalendars": false,
                    "ignored": {
                        "reservations": [],
                        "listings": []
                    },
                    "emailsFromSupport": []
                },
                "listingsList": [],
                "pendingTasks": [],
                "lastSynced": {
                    "bookings": []
                },
                "forwardEmails": {
                    "emails": []
                },
                "__v": 0
            }
        ]
    }
    

    HTTP Request

    GET /integrations

    Query Parameters

    Parameter Default Description Example
    fields null Selection of fields, separated by space "platform incomingEmail credentials.username"
    sort "-active nickname" Sorting "nickname"
    limit 25 Pagination, max: 100 25
    skip 0 Pagination 0

    Retrieve an integration

    HTTP Request

    GET /integrations/:id

    Query Parameters

    Parameter Default Description Example
    fields null Selection of fields, separated by space. When null retrieve the main properties of the object. We recommend always specifying the specific fields you'd like to receive to ensure that you get them. Please see the full list above. "firstName lastName"

    Response

    Integration object.

    Create an integration

    Response

    {
        "__v": 0,
        "platform": "airbnb",
        "incomingEmail": "sergrin2_ovzov6k@user.guesty.com",
        "accountId": "563e0b6a08a2710e00057b82",
        "nickname": "sergrin2_ovzov6k",
        "_id": "59b91f4a8e6bb3100021531f",
        "bookingCom": {
            "ignored": {
                "reservations": [],
                "listings": []
            }
        },
        "rentalsUnited": {
            "ignored": {
                "reservations": [],
                "listings": []
            }
        },
        "airbnb": {
            "importCalendars": true,
            "ignored": {
                "reservations": [],
                "listings": []
            },
            "emailsFromSupport": []
        },
        "flags": {
            "twoStepVerification": {
                "sentTemplates": []
            },
            "accountIdVerification": {
                "sentTemplates": []
            },
            "accountBlocked": {
                "sentTemplates": []
            },
            "accountDisabled": {
                "sentTemplates": []
            },
            "wrongPasswordDetected": {
                "sentTemplates": []
            }
        },
        "listingsList": [],
        "pendingTasks": [],
        "lastSynced": {
            "bookings": []
        },
        "forwardEmails": {
            "emails": []
        },
        "createAt": "2017-09-13T12:06:34.998Z",
        "permissions": []
    }
    

    HTTP Request

    POST /integrations

    Body

    Parameter Default Description
    platform Required rentalsUnited, airbnb, manual,

    Example

    Body

    {"platform": "manual"}

    Response

    The created integration object.

    Update an integration

    HTTP Request

    PUT /integrations/:id

    Response

    The updated integration with only the fields that were sent in body.

    Delete an integration

    HTTP Request

    DELETE /integrations/:id

    Response

    OK

    Retrieve all the external listings

        {
            "count": 1,
            "limit": 25,
            "skip": 0,
            "results": [
    
            ]
        }
    

    HTTP Request

    POST /integrations/:id/retrieve-external-listings

    Response

    OK

    To get the results, query for integration with field listingsList. The format of listingsList:

    Attribute Type
    externalId String
    title String
    address String

    Import external listings

    Create listings from external listings

    HTTP Request

    POST /integrations/:id/import-external-listings

    Body params

    Parameter Default Description Example
    externalIds Required String or array. The external ids of listings to import.

    Response

    OK

    Listings

    The listing object

    {
        "_id": "59ac245d27cb310f0017afe3",
        "accommodates": 2,
        "bedrooms": 1,
        "beds": 1,
        "bathrooms": 1,
        "defaultCheckInTime": "15:00",
        "defaultCheckOutTime": "10:00",
        "propertyType": "Apartment",
        "roomType": "Entire home/apt",
        "timezone": "Asia/Jerusalem",
        "nickname": "ETDT",
        "title": "example listing",
        "accountId": "563e0b6a08a2710e00057b82",
        "occupancyStats": [],
        "preBooking": [],
        "importedAt": "2017-09-03T15:48:45.072Z",
        "offeredServices": [],
        "calendarRules": {
            "rentalPeriods": [],
            "seasonalMinNights": []
        },
        "customFields": [],
        "active": true,
        "receptionistsService": {},
        "sales": {
            "salesService": {
                "atPhones": []
            }
        },
        "pms": {
            "active": true,
            "cleaningStatus": {
                "markAsDirtyOnCheckIn": null,
                "statusFade": null,
                "active": true
            },
            "autoPayments": {
                "policy": []
            },
            "tasks": {
                "defaultTasks": []
            },
            "automation": {
                "autoList": {},
                "autoPricing": {},
                "autoReviews": {},
                "homeAutomation": {},
                "calendarSmartRules": {},
                "hooks": {},
                "answeringMachine": {}
            }
        },
        "prices": {
            "currency": "EUR",
            "basePrice": 859,
            "guestsIncludedInRegularFee": 5,
            "weeklyPriceFactor": 0.95,
            "monthlyPriceFactor": 0.9,
            "cleaningFee": 35,
            "securityDepositFee": 350,
            "extraPersonFee": 10
        },
        "terms": {
            "minNights": 1,
            "maxNights": 45
        },
        "amenitiesNotIncluded": [
            "TV",
            "Cable TV",
            "Internet",
            "Wireless Internet",
            "Air conditioning",
            "Pool",
            "Kitchen"
        ],
        "amenities": [
            "Microwave",
            "Smoke detector",
            "Laptop friendly workspace",
            "Bathtub",
            "Refrigerator",
            "Stove"
        ],
        "pictures": [],
        "picture": {
            "thumbnail": "https://cdn.filepicker.io/api/file/BE7EpDKNSviVKIRUw91o"
        },
        "address": {
            "full": "Kaplan St 2, Ramat Gan, Israel",
            "lng": 34.8202173,
            "lat": 32.0695525,
            "street": "Kaplan Street 2",
            "city": "Ramat Gan",
            "country": "Israel"
        },
        "tags": [],
        "pendingTasks": [],
        "integrations": [],
        "createdAt": "2017-09-03T15:48:45.070Z",
        "__v": 1,
        "isListed": true,
        "cleaningStatus": {
            "value": "unknown"
        }
    }
    
    Attribute Type Description
    _id String (ObjectId) Unique id
    accountId String (ObjectId) Unique id
    createdAt Date
    integrations Object (see below)
    isVirtual Boolean
    nickname String
    tags [String]
    isListed Boolean
    title String
    propertyType String
    roomType String
    bedType String
    accommodates Number
    bedrooms Number
    areaSquareFeet Number
    address Object (see below)
    publishedAddress Object (see below)
    timezone String
    instantBookable Object (see below)
    defaultCheckInTime String
    defaultCheckOutTime String
    cleaning Object (see below)
    cleaningStatus Object (see below)
    picture Object (see below)
    pictures [pictures] (see below)
    amenities [String]
    amenitiesNotIncluded [String]
    terms Object (see below)
    prices Object (see below) & Please see Financial section
    netIncomeFormula String
    commissionFormula String
    commissionTaxPrecentage String
    pms Object (see below)
    receptionistsService Object (see below)
    active Boolean
    customFields Object (see below)
    calendarRules Object (see below)
    publicDescription Object (see below)
    privateDescription Object (see below)
    markups Object (see below)

    The integrations object

    [
        {
            "platform" : "airbnb",
            "_id" : "571cb924a843c10e000dflk23",
            "externalUrl" : "https://www.airbnb.com/rooms/20392984",
            "airbnb" : {
                "starRating" : 4.5,
                "reviewsCount" : 57,
                "id" : 20392984,
                "importCalendar" : false,
                "isCalendarSynced" : true
            }
        },
        {
            "platform" : "rentalsUnited",
            "_id" : "56cd9ab369a2100e00dflk23",
            "rentalsUnited" : {
                "id" : 264100,
                "currency" : "EUR",
                "locationId" : "4558"
            }
        }
    ]
    
    Attribute Type Description
    _id String
    platform Enum airbnb, rentalsUnited, manual, bookingCom or homeaway
    airbnb Object Details related to Airbnb
    ---id Number
    ---reviewsCount Number
    ---starRating Number
    ---importCalendar Boolean
    ---isCalendarSynced Boolean
    rentalsUnited Object Details related to RU
    ---id Number
    ---currency String
    ---locationId String
    bookingCom Object Details related to bookingCom
    ---id Number
    ---hotelId Number
    ---rateId Number
    ---currency String
    markup Object
    ---amount Number
    ---units String

    The address object

    {
        "full": "Kaplan St 2, Ramat Gan, Israel",
        "lng": 34.8202173,
        "lat": 32.0695525,
        "street": "Kaplan Street 2",
        "city": "Ramat Gan",
        "country": "Israel"
    }
    
    Attribute Type Description
    full String
    city String
    state String
    country String
    zipcode String
    neighborhood String
    street String
    apt String
    lat Number
    lng Number
    searchable String
    floor Number

    The publishedAddress object

    {
        "full": "73 High St, Irvine KA12 0AL, UK",
        "lng": -4.6662351,
        "lat": 55.6144919,
        "street": "High Street 73",
        "city": "Irvine",
        "country": "United Kingdom"
    }
    
    Attribute Type Description
    full String
    city String
    state String
    country String
    zipcode String
    neighborhood String
    street String
    apt String
    lat Number
    lng Number
    searchable String
    floor Number

    The cleaning object

    Attribute Type Description
    defaultCleaningTime String
    instructions String

    The cleaningStatus object

    Attribute Type Description
    value Enum clean, dirty, unknown
    updatedAt Date

    The picture object

    Attribute Type Description
    thumbnail String
    regular String
    large String
    caption String

    The pictures object

    [
        {
            "original": "https://cdn.filepicker.io/api/file/BE7EpDKNSviVKIRUw91o",
            "thumbnail": "https://cdn.filepicker.io/api/file/BE7EpDKNSviVKIRUw91o",
            "_id": "59ac245d27cb310f0017afe5"
        },
        {
            "original": "https://cdn.filepicker.io/api/file/zpZ1l5QaSAatCLXasslZ",
            "thumbnail": "https://cdn.filepicker.io/api/file/zpZ1l5QaSAatCLXasslZ",
            "_id": "59ac245d27cb310f0017afe4"
        }
    ]
    
    Attribute Type Description
    _id String (ObjectId)
    thumbnail String
    regular String
    large String
    caption String
    original String
    isProfessional Boolean
    sort Number

    The terms object

    {
        "minNights": 1,
        "maxNights": 45
    }
    
    Attribute Type Description
    minNights Number
    maxNights Number
    cancellation String

    The prices object

    {
        "currency": "EUR",
        "basePrice": 859,
        "guestsIncludedInRegularFee": 5,
        "weeklyPriceFactor": 0.95,
        "monthlyPriceFactor": 0.9,
        "cleaningFee": 35,
        "securityDepositFee": 350,
        "extraPersonFee": 10
    }
    

    Please see Financial section

    Attribute Type Description
    guestsIncludedInRegularFee Number
    extraPersonFee Number
    basePrice Number
    basePriceUSD Number
    monthlyPriceFactor Number
    weeklyPriceFactor Number
    weeendBasePrice Number
    securityDepositFee Number
    currency String
    cleaningFee Number

    The receptionistsService object

    {
        "active": true,
        "contactPersonUserId": "5901fa614258fd10000b78e3",
        "reviews": {
            "monitorIncomingReviews": true,
            "writeReviewsForGuests": true,
            "monitorIncomingReviewsGuidelines": "these are the guidelines",
            "writeReviewsGuidelines": "these are the guidelines"
        },
        "screening": {
            "goOverChecklist": true,
            "ifSuccess": "approve",
            "ifFailed": "flag",
            "checklist": [
                {
                    "item": "If you get",
                    "_id": "59aeb934462d1a0f00d7b8a9"
                },
                {
                    "item": "a ticket from this listing",
                    "_id": "59aeb934462d1a0f00d7b8a8"
                },
                {
                    "item": "just clear it",
                    "_id": "59aeb934462d1a0f00d7b8a7"
                },
                {
                    "item": "because it's a FAKE",
                    "_id": "59aeb934462d1a0f00d7b8a6"
                }
            ]
        },
        "receptionDesk": {
            "textSupport": true,
            "smsSupport": true,
            "phoneSupport": true,
            "whiteLabel": true,
            "customImpersonation": "Impersonation",
            "customSignature": "Signature",
            "atPhones": [],
            "ittt": [
                {
                    "ifThis": "This",
                    "thenThat": "<p>That!</p>",
                    "_id": "59aeccb6edad8d0f00d7c391"
                }
            ]
        }
    }
    
    Attribute Type Description
    active Boolean
    contactPersonUserId String (ObjectId)
    receptionDesk Object
    ---ittt Object
    ------ifThis String
    ------thenThat String
    ---approveRequests Boolean
    ---textSupport Boolean
    ---smsSupport Boolean
    ---phoneSupport Boolean
    ---atPhones [String]
    ---reservationTask Boolean
    ---whiteLabel Boolean
    ---customImpersonation String
    ---customSignature String
    screening Object
    ---goOverChecklist Boolean
    ---checklist Object
    ------item String
    ------isProactive Boolean
    ---ifFailed Enum flag, decline
    ---ifSuccess Enum flag, approve, ask
    reviews Object
    ---monitorIncomingReviews Boolean
    ---monitorIncomingReviewsGuidelines String
    ---writeReviewsForGuests Boolean
    ---writeReviewsGuidelines String

    The customFields object

    [
        {
            "fieldId": "58aecc18c982ba1a00aac98e",
            "value": "INSTRUCTIONS!",
            "_id": "59aecd66462d1a0f00d99823"
        }
    ]
    
    Attribute Type Description
    fieldId String (ObjectId)
    value Mixed
    fullText String

    The calendarRules object

    {
        "rentalPeriods": [
            {
                "from": "2017-04-01",
                "to": "2017-05-31",
                "_id": "59a6a8c3f2ddec0f0025c95e"
            },
            {
                "from": "2017-06-01",
                "to": "2018-07-01",
                "_id": "59a6a8c3f2ddec0f0025c95d"
            }
        ],
        "seasonalMinNights": [
            {
                "from": "2017-09-06",
                "to": "2017-09-07",
                "minNights": 2,
                "_id": "59afac78ea809c0f00a21b8d"
            },
            {
                "from": "2017-09-08",
                "to": "2017-09-08",
                "minNights": 1,
                "_id": "59afac78ea809c0f00a21b8c"
            }
        ]
    }
    
    Attribute Type Description
    seasonalMinNights [seasonMinNights]
    ---from String
    ---to String
    rentalPeriods [rentalPeriods]
    ---from String
    ---to String
    offeredServices [offeredServices]
    ---title String
    ---amount Number
    ---calculation String

    The privateDescription object

    Attribute Type Description
    directions String
    houseManual String
    wifi Object
    ---network String
    ---password String

    The markups object

    Attribute Type Description
    manual valueScheme Object (see below)
    airbnb valueScheme Object (see below)
    agoda valueScheme Object (see below)
    bookingCom valueScheme Object (see below)

    The valueSchema object

    Attribute Type Description
    amount Number
    units enum PERCENTAGE

    The publicDescription object

    {
        "summary": "this is the summary",
        "space": "this is the space3",
        "access": "guest access FTW",
        "neighborhood": "the neighborhood is humping",
        "transit": "easy peazy",
        "notes": "just noting some more stuff",
        "interactionWithGuests": "this is my interaction"
    }
    
    Attribute Type Description
    summery String
    space String
    access String
    neighborhood String
    transit String
    notes String
    houseRules String
    interactionWithGuests String

    The sales object

    Attribute Type Description
    distribution Boolean
    salesService Object
    textual Boolean
    phone Boolean
    atPhones [String]

    The pms object

    {
        "active": true,
        "cleaningStatus": {
            "markAsDirtyOnCheckIn": true,
            "statusFade": {
                "active": true,
                "days": 15,
                "toStatus": "dirty"
            }
        },
        "autoPayments": {
            "policy": []
        },
        "tasks": {
            "defaultTasks": []
        },
        "automation": {}
    }
    
    Attribute Type Description
    active Boolean
    automation Object (see below)
    inbox Object
    ---customSignature String
    cleaningStatus Object
    ---active Boolean
    ---markAsDirtyOnCheckIn Boolean
    ---statusFade Object
    ------active Boolean
    ------days Number
    ------toStatus Enum unknown, dirty
    paymentProcessing Object
    ---active Boolean
    autoPayments Object
    ---policy [policy] (see below)

    The automation object

    {
        "autoList": {
            "config": [
                "101110111101011101101111",
                "110110111101111101111011",
                "110110101011011101101111",
                "110110111001011101101111",
                "101110111101010101111111",
                "111100111101011101101111",
                "111110111101011101101111"
            ],
            "active": true
        },
        "autoPricing": {
            "active": true,
            "rules": [
                {
                    "startingFromDaysAhead": 4,
                    "tillDaysAhead": 10,
                    "amount": -10,
                    "unit": "%",
                    "subject": "available",
                    "_id": "59aea8faf2fc8c9a00ac02f2",
                    "condition": {
                        "amount": 3
                    }
                }
            ]
        },
        "autoReviews": {
            "starRating": 5,
            "daysBeforeSending": 3,
            "active": true,
            "templates": [
                "example number one",
                "example number two"
            ]
        },
        "homeAutomation": {
            "buzzer": {
                "toDial": "2",
                "active": true,
                "incomingNumber": "97250404534"
            }
        },
        "calendarSmartRules": {
            "active": true,
            "blockListings": [
                "59a415396f6f010f0099b391"
            ]
        },
        "hooks": {
            "active": true,
            "ignoredHooks": []
        },
        "answeringMachine": {
            "active": true,
            "unconfirmedSubsequentMessage": {
                "active": true,
                "message": "example",
                "delayInMinutes": 45
            },
            "unconfirmedFirstMessage": {
                "active": true,
                "message": "example",
                "delayInMinutes": 55
            },
            "confirmedAfterCheckOut": {
                "active": true,
                "message": "example",
                "delayInMinutes": 45
            },
            "confirmedDuringStay": {
                "active": true,
                "message": "example",
                "delayInMinutes": 45
            },
            "confirmedDayOfCheckOut": {
                "active": true,
                "message": "example",
                "delayInMinutes": 45
            },
            "confirmedDayOfCheckIn": {
                "active": true,
                "message": "example",
                "delayInMinutes": 45
            },
            "confirmedBeforeCheckIn": {
                "active": true,
                "message": "example",
                "delayInMinutes": 45
            }
        }
    }
    
    Attribute Type Description
    answeringMachine Object
    ---active Boolean
    ---confirmedBeforeCheckIn Object
    ------active Boolean
    ------message String
    ------daysInMinutes Number
    ---confirmedDayOfCheckIn Object
    ------active Boolean
    ------message String
    ------daysInMinutes Number
    ---confirmedDayOfCheckOut Object
    ------active Boolean
    ------message String
    ------daysInMinutes Number
    ---confirmedDuringStay Object
    ------active Boolean
    ------message String
    ------daysInMinutes Number
    ---confirmedAfterCheckOut Object
    ------active Boolean
    ------message String
    ------daysInMinutes Number
    ---unconfirmedFirstMessage Object
    ------active Boolean
    ------message String
    ------daysInMinutes Number
    ---unconfirmedSubsequentMessage Object
    ------active Boolean
    ------message String
    ------daysInMinutes Number
    hooks Object
    ---active Boolean
    ---ignoredHooks [String]-(ObjectId)
    calendarSmartRules Object
    ---active Boolean
    ---blockListings [String]-(ObjectId)
    homeAutomation Object
    ---buzzer Object
    ------active Boolean
    ------incomingNumber String
    ------toDial String
    autoList Object
    ----active Boolean
    ----config [String]
    autoReviews Object
    ---active Boolean
    ---daysBeforeSending Number
    ---templates [String]
    ---starRating Number
    autoPricing Object
    ---active Boolean
    ---rules [Object]
    ------startingFromDaysAhead Number
    ------tillDaysAhead Number
    ------amount Number
    ------unit Enum %, currency
    ------subject Enum available, gaps, occupancy
    ------condition Object
    ---------amount Number
    ---------operator Enum $gte, $lte

    The policy object

    {
        "chargeType": "PERCENTAGE",
        "amount": 30,
        "useGuestCard": true,
        "_id": "59aebaf3edad8d0f00d68f55",
        "scheduleTo": {
            "reservationEvent": "CHECK_IN",
            "timeRelation": {
                "relation": "AT",
                "unit": "HOURS",
                "amount": 1
            }
        }
    }
    
    Attribute Type Description
    chargeType Enum
    amount Number
    useGuestCard Boolean
    scheduledTo Object
    ---reservationEvent Enum CHECK_IN, CHECK_OUT, CONFIRMATION
    ---timeRelation Object
    ------relation Enum AT, AFTER, BEFORE
    ------unit Enum SECONDS, MINUTES, HOURS, DAYS
    ------amount Number

    List all listings

    {
        "results": [
            {
                "_id": "59ac245d27cb310f0017afe3",
                "accommodates": 2,
                "bedrooms": 1,
                "beds": 1,
                "bathrooms": 1,
                "defaultCheckInTime": "15:00",
                "defaultCheckOutTime": "10:00",
                "propertyType": "Apartment",
                "roomType": "Entire home/apt",
                "timezone": "Asia/Jerusalem",
                "nickname": "ETDT",
                "title": "Example listing",
                "accountId": "563e0b6a08a2710e00057b82",
                "occupancyStats": [],
                "preBooking": [],
                "importedAt": "2017-09-03T15:48:45.072Z",
                "offeredServices": [],
                "calendarRules": {
                    "rentalPeriods": [],
                    "seasonalMinNights": []
                },
                "customFields": [],
                "active": true,
                "receptionistsService": {},
                "sales": {
                    "salesService": {
                        "atPhones": []
                    }
                },
                "pms": {
                    "active": true,
                    "cleaningStatus": {},
                    "autoPayments": {
                        "policy": []
                    },
                    "tasks": {
                        "defaultTasks": []
                    },
                    "automation": {
                        "autoList": {},
                        "autoPricing": {},
                        "autoReviews": {},
                        "homeAutomation": {},
                        "calendarSmartRules": {},
                        "hooks": {},
                        "answeringMachine": {}
                    }
                },
                "prices": {
                    "currency": "EUR",
                    "basePrice": 859,
                    "guestsIncludedInRegularFee": 5,
                    "weeklyPriceFactor": 0.95,
                    "monthlyPriceFactor": 0.9,
                    "cleaningFee": 35,
                    "securityDepositFee": 350,
                    "extraPersonFee": 10
                },
                "terms": {
                    "minNights": 1,
                    "maxNights": 45
                },
                "amenitiesNotIncluded": [],
                "amenities": [],
                "pictures": [],
                "picture": {
                    "thumbnail": "https://cdn.filepicker.io/api/file/BE7EpDKNSviVKIRUw91o"
                },
                "address": {},
                "tags": [
                    "tag56",
                    "tag2"
                ],
                "pendingTasks": [],
                "integrations": [],
                "SaaS": {
                    "autoRenew": true
                },
                "createdAt": "2017-09-03T15:48:45.070Z",
                "__v": 6,
                "isListed": false,
                "cleaningStatus": {
                    "value": "unknown"
                },
                "publishedAddress": {},
                "cleaning": {},
                "publicDescription": {}
            }
        ],
        "title": "Listings Report",
        "count": 1,
        "fields": "",
        "limit": 25,
        "skip": 0
    }
    

    HTTP Request

    GET /listings

    Query Parameters

    Parameter Default Description Example
    ids null Limit results to these ids
    nids null Limit results to not include these ids
    viewId null Pull a specific view (view is a saved settings of accountId, filters, fields, sort) 556d95083c59ae58e3fdd8f4
    q null Search query string. Searches in title, internalNote, address.full "Cozy luxurious"
    city null Limit results to city
    active true Limit results to active state. Boolean, true for only active, false for only inactive, don't include for all.
    pmsActive null Limit results to listings with the feature "pms" active. Boolean, true for only active, false for only inactive, don't include for all.
    integrationId null Limit results to specific integration "531968414930a7f09b075800"
    listed null Limit results to listed state. Boolean, true for only listed, false for only unlisted, don't include for all.
    available null Limit results to only available listings in specific dates {checkIn: 'yyyy-mm-dd', checkOut: 'yyyy-mm-dd', minOccupancy: 3}
    tags null Limit results to listings with specific tags ['D1', 'D2']
    fields null Selection of fields, separated by space "title address"
    sort "title" Sorting "title"
    limit 25 Pagination, max: 100 25
    skip 0 Pagination 0

    Response

    Array of requested listings

    Retrieve listing Financials

    {
        "guestsIncludedInRegularFee": 4,
        "currency": "EUR",
        "basePriceUSD": 28,
        "basePrice": 100,
        "securityDepositFee": null,
        "extraPersonFee": 200,
        "weeklyPriceFactor": 0.89,
        "monthlyPriceFactor": 0.89,
        "cleaningFee": {
            "lastUpdated": "2018-04-25T13:10:53.665Z",
            "value": {
                "valueType": "PERCENTAGE",
                "multiplier": "PER_STAY",
                "formula": 0
            },
            "airbnb": {
                "value": {
                    "formula": 0,
                    "multiplier": "PER_STAY",
                    "valueType": "FIXED",
                    "_id": "5ae07e5d0e9598001f2fa9a8"
                }
            },
            "rentalsUnited": {
                "status": "MANUALLY_ALTERED",
                "value": {
                    "valueType": "FIXED",
                    "multiplier": "PER_STAY",
                    "formula": 54,
                    "_id": "5ae07e5d0e9598001f2fa9a9"
                },
                "homeAway": {
                    "value": {
                        "formula": 5,
                        "valueType": "PERCENTAGE",
                        "multiplier": "PER_STAY",
                        "_id": "5ae07cef6299df001faa860f"
                    }
                },
                "expedia": {
                    "value": {
                        "formula": 0,
                        "valueType": "PERCENTAGE",
                        "multiplier": "PER_STAY",
                        "_id": "5ae071069ab7e3001f65bc9b"
                    }
                },
                "despegar": {
                    "value": {
                        "formula": 5,
                        "valueType": "PERCENTAGE",
                        "multiplier": "PER_STAY",
                        "_id": "5ae07cef6299df001faa8610"
                    }
                },
                "bookingCom": {
                    "value": {
                        "formula": 5,
                        "valueType": "PERCENTAGE",
                        "multiplier": "PER_STAY",
                        "_id": "5ae07cef6299df001faa860e"
                    }
                }
            }
        }
    }
    

    Description

    The new financials object represents the new setup of listing financials and specifically the Cleaning Fee in Guesty. This is a sub object of Listing and replaces the prices object under listing.

    HTTP Request

    GET /financials/listings/:listingId

    The financials object

    Attribute Type Description
    guestsIncludedInRegularFee Number Same as in prices
    extraPersonFee Number Same as in prices
    basePrice Number Same as in prices
    basePriceUSD Number Same as in prices
    monthlyPriceFactor Number Same as in prices
    weeklyPriceFactor Number Same as in prices
    weeendBasePrice Number Same as in prices
    securityDepositFee Number Same as in prices
    currency String Same as in prices
    cleaningFee Object Supports the new cleaning fee feature in Guesty.
    ---value Object Default settings for cleaning fee
    ------valueType Enum FIXED, PERCENTAGE
    ------multiplier Enum PER_STAY, PER_GUEST, PER_NIGHT, PER_GUEST_PER_NIGHT,
    ------formula Number Fixed price or %.
    ---lastUpdatedAt Date Last update date.

    Per channel settings will be saved as the channel name - airbnb, rentalsUnited, bookingCom.

    Authorization

    Only accessible to Admin or User tokens.

    Response

    The requested listings' financial object.

    Update listing Financials

    HTTP Request

    PUT /financials/listings/:listingId

    Authorization

    Only accessible to Admin or User tokens.

    Body

    {<Field>:<Updated value>}

    Response

    The updated financial object.

    Create a listing

    Response:

    {
        "__v": 0,
        "title": "example listing",
        "accountId": "563e0b6a08a2710e00057b82",
        "timezone": "Asia/Jerusalem",
        "_id": "59b8f53a0454a61000a34a31",
        "occupancyStats": [],
        "preBooking": [],
        "importedAt": "2017-09-13T09:07:06.450Z",
        "offeredServices": [],
        "calendarRules": {
            "rentalPeriods": [],
            "seasonalMinNights": []
        },
        "customFields": [],
        "active": true,
        "receptionistsService": {
            "screening": {
                "checklist": []
            },
            "receptionDesk": {
                "atPhones": [],
                "ittt": []
            }
        },
        "sales": {
            "salesService": {
                "atPhones": []
            }
        },
        "pms": {
            "active": true,
            "autoPayments": {
                "policy": []
            },
            "tasks": {
                "defaultTasks": []
            },
            "automation": {
                "autoPricing": {
                    "rules": []
                },
                "autoReviews": {
                    "templates": []
                },
                "calendarSmartRules": {
                    "blockListings": []
                },
                "hooks": {
                    "ignoredHooks": []
                },
                "answeringMachine": {
                    "unconfirmedSubsequentMessage": {
                        "delayInMinutes": 45
                    },
                    "unconfirmedFirstMessage": {
                        "delayInMinutes": 55
                    },
                    "confirmedAfterCheckOut": {
                        "delayInMinutes": 45
                    },
                    "confirmedDuringStay": {
                        "delayInMinutes": 45
                    },
                    "confirmedDayOfCheckOut": {
                        "delayInMinutes": 45
                    },
                    "confirmedDayOfCheckIn": {
                        "delayInMinutes": 45
                    },
                    "confirmedBeforeCheckIn": {
                        "delayInMinutes": 45
                    }
                }
            }
        },
        "amenitiesNotIncluded": [],
        "amenities": [],
        "pictures": [],
        "address": {
            "full": "Eliezer Kaplan St 2, Tel Aviv-Yafo, Israel",
            "street": "Eliezer Kaplan Street 2",
            "city": "Tel Aviv-Yafo",
            "country": "Israel",
            "lat": 32.0733456,
            "lng": 34.78202479999999
        },
        "tags": [],
        "pendingTasks": [],
        "integrations": [],
        "SaaS": {
            "autoRenew": true
        },
        "plan": [
            {
                "name": "SOFTWARE",
                "planType": "RESERVATION_COMMISSION",
                "isLocked": true,
                "id": null
            },
            {
                "name": "RECEPTIONISTS_SERVICE",
                "planType": "RESERVATION_COMMISSION",
                "isLocked": true,
                "id": null
            },
            {
                "name": "RENTALS_UNITED",
                "planType": "RESERVATION_COMMISSION",
                "isLocked": true,
                "id": null
            },
            {
                "name": "AIRBNB",
                "planType": "RESERVATION_COMMISSION",
                "isLocked": true,
                "id": null
            }
        ],
        "createdAt": "2017-09-13T09:07:06.448Z",
        "id": "59b8f53a0454a61000a34a31"
    }
    

    HTTP Request

    POST /listings

    Authorization

    Only accessible to Admin or User tokens.

    Body

    Parameter Default Description
    address Requiered Any full address will do, we advise using the full property (the data will be parsed to the rest of the fields)

    PMS is automatically ON for this listing.

    Example

    Body

    {"address":{"full": "Eliezer Kaplan St 2, Tel Aviv-Yafo, Israel"}, "title": "example listing"}

    Retrieve a listing

    {
                "_id": "59ac245d27cb310f0017afe3",
                "accommodates": 2,
                "bedrooms": 1,
                "beds": 1,
                "bathrooms": 1,
                "defaultCheckInTime": "15:00",
                "defaultCheckOutTime": "10:00",
                "propertyType": "Apartment",
                "roomType": "Entire home/apt",
                "timezone": "Asia/Jerusalem",
                "nickname": "ETDT",
                "title": "Example listing",
                "accountId": "563e0b6a08a2710e00057b82",
                "occupancyStats": [],
                "preBooking": [],
                "importedAt": "2017-09-03T15:48:45.072Z",
                "offeredServices": [],
                "calendarRules": {},
                "customFields": [],
                "active": true,
                "receptionistsService": {},
                "sales": {},
                "pms": {
                    "active": true,
                    "cleaningStatus": {},
                    "autoPayments": {},
                    "tasks": {},
                    "automation": {}
                },
                "prices": {},
                "terms": {
                    "minNights": 1,
                    "maxNights": 45
                },
                "amenitiesNotIncluded": [],
                "amenities": [],
                "pictures": [],
                "picture": {},
                "address": {},
                "tags": [
                    "tag56",
                    "tag2"
                ],
                "pendingTasks": [],
                "integrations": [],
                "SaaS": {},
                "createdAt": "2017-09-03T15:48:45.070Z",
                "__v": 9,
                "isListed": false,
                "cleaningStatus": {},
                "publishedAddress": {},
                "cleaning": {},
                "publicDescription": {}
            }
    

    HTTP Request

    GET /listings/:id

    Query Parameters

    Parameter Default Description Example
    fields null Selection of fields, separated by space "title address"

    Response

    Listing object

    Update a listing

    HTTP Request

    PUT /listings/:id

    Response

    Retrieve the updated listing, selection of fields that were sent in body.

    Add new integration for a listing

    {
        "_id": "59b928bb8e6bb31000219e58",
        "integrations": [
            {
                "platform": "rentalsUnited",
                "_id": "596b6f5aa6bd32100050be2a"
            },
            {
                "platform": "airbnb",
                "_id": "563e0b6a08a2710e00057b83"
            }
        ],
        "id": "59b928bb8e6bb31000219e58"
    }
    

    HTTP Request

    POST /listings/:id/integrations

    Body

    Parameter Default Description
    _id Required id of the integration to add

    Example

    Body

    {"_id":"563e0b6a08a2710e00057b83"}

    Response

    Retrieve the updated listing, with the selection of only integrations field.

    List all cities

    [
        "Burnt Ranch",
        "New York",
        "Autun",
        "Kfar Sirkin",
        "London",
        "Newton",
        "Atlanta",
        "Montpelier",
        "Tel Aviv-Yafo",
        "Decatur",
        "Vancouver",
        "Amsterdam",
        "Cuyahoga Falls",
        "Palo Alto",
        "Ramat Gan"
    ]
    

    HTTP Request

    GET /listings/cities

    Response

    Array of cities (strings).

    List all tags

    [
        "Tag A",
        "Tag B",
        "Tag C"
    ]
    

    HTTP Request

    GET /listings/tags

    Response

    Array of tags (strings).

    Export as CSV

    HTTP Request

    GET /listings.csv

    Same as /listings but results are returned as a downloadable csv file

    Send results in email

    HTTP Request

    POST /listings.email

    Same as /listings but results are sent as an email

    Body Parameters

    Parameter Default Description Example
    to Required Address of recipient koby@guesty.com

    Listing's calendar

    The calendar day object

    {
        "_id": "5964712d353cb94e91a7b386",
        "date": "2017-07-11",
        "listingId": "588e01488b66181000065ca1",
        "accountId": "563e0b6a08a2710e00057b82",
        "status": "booked",
        "price": 100,
        "currency": "USD",
        "reservationId": "58ad731ad298a1100074cc32"
    }
    
    Attribute Type Description
    date String (Date) Format: YYYY-MM-DD
    accountId String (ObjectId) ref to Account
    listingId String (ObjectId) ref to Listing
    status String (Enum) available, unavailable, reserved, booked
    note String
    price Number The price that that day cost
    currency String (Enum) 3 letter iso currency code
    reservationId String (ObjectId) Linked reservation (Only if booked or reserved)
    originalPrice Number Used by pricing automation
    ignoreAutoPricing Boolean Ignore this day in pricing automation

    Retrieve single calendar

    [
        {
            "_id": "593577d1353cb94e917d040f",
            "date": "2017-06-01",
            "listingId": "588e01488b66181000065ca1",
            "accountId": "563e0b6a08a2710e00057b82",
            "status": "booked",
            "price": 100,
            "currency": "USD",
            "reservationId": "5919be619e2b4210006f5ef0"
        },
        {
            "_id": "593577d1353cb94e917d0410",
            "date": "2017-06-02",
            "listingId": "588e01488b66181000065ca1",
            "accountId": "563e0b6a08a2710e00057b82",
            "status": "booked",
            "price": 100,
            "currency": "USD",
            "reservationId": "5919be619e2b4210006f5ef0"
        },
        {
            "_id": "593577d1353cb94e917d0411",
            "date": "2017-06-03",
            "listingId": "588e01488b66181000065ca1",
            "accountId": "563e0b6a08a2710e00057b82",
            "status": "booked",
            "price": 100,
            "currency": "USD",
            "reservationId": "5919be619e2b4210006f5ef0"
        },
        {
            "_id": "593577d1353cb94e917d0412",
            "date": "2017-06-04",
            "listingId": "588e01488b66181000065ca1",
            "accountId": "563e0b6a08a2710e00057b82",
            "status": "booked",
            "price": 100,
            "currency": "USD",
            "reservationId": "5919be619e2b4210006f5ef0"
        }
    ]
    

    HTTP Request

    GET /listings/:id/calendar

    Query Parameters

    Parameter Default Description Example
    from Required Return dates starting from this date. Format: YYYY-MM-DD. 2016-01-10
    to Required Return dates ending at this date. Format: YYYY-MM-DD. 2016-01-11
    fields null Selection of fields, separated by space status

    Response

    Array of calendar day objects

    Retrieve multiple calendars

    [
        {
            "listingId": "58299eb3b400eb100078992d",
            "accountId": "563e0b6a08a2710e00057b82",
            "date": "2017-06-01",
            "price": 100,
            "currency": "USD",
            "status": "available"
        },
        {
            "listingId": "58299eb3b400eb100078992d",
            "accountId": "563e0b6a08a2710e00057b82",
            "date": "2017-06-02",
            "price": 100,
            "currency": "USD",
            "status": "available"
        },
        {
            "listingId": "5977693f0094bb0f00626c9a",
            "accountId": "563e0b6a08a2710e00057b82",
            "date": "2017-06-01",
            "currency": "EUR",
            "status": "available"
        },
        {
            "listingId": "5977693f0094bb0f00626c9a",
            "accountId": "563e0b6a08a2710e00057b82",
            "date": "2017-06-02",
            "currency": "EUR",
            "status": "available"
        },
        {
            "listingId": "5937f5497f2a961000a5cac5",
            "accountId": "563e0b6a08a2710e00057b82",
            "date": "2017-06-01",
            "price": 200,
            "currency": "USD",
            "status": "available"
        },
        {
            "listingId": "5937f5497f2a961000a5cac5",
            "accountId": "563e0b6a08a2710e00057b82",
            "date": "2017-06-02",
            "price": 200,
            "currency": "USD",
            "status": "available"
        }
    ]
    

    HTTP Request

    GET /listings/calendars

    Query Parameters

    Parameter Default Description Example
    ids first 10 listings Array of listing ids to return, maximum of 15 listings.
    from Required Return dates starting from this date. Format: yyyy-mm-dd. "2016-01-10"
    to Required Return dates ending at this date. Format: yyyy-mm-dd. "2016-01-11"
    fields null Selection of fields, separated by space "status"

    Response

    Object of calendar ids, where each id is an array of day objects.

    Update calendars

    HTTP Request

    PUT /listings/calendars

    Body Parameters

    Parameter Default Description Example
    listings Required Array of ids of listings to update, or a single id. ``
    from Required Update dates starting from this date. Format: yyyy-mm-dd. "2016-01-10"
    to Required Update dates ending at this date. Format: yyyy-mm-dd. "2016-01-11"
    status --- New status, enum: available, unavailable. available
    price --- New price, in the listing's currency. 100
    note --- Note to add to those dates.

    Response

    OK

    Saved replies

    The saved reply object

    Attribute Type Description
    _id ObjectId Unique id
    accountId ObjectId Owner user
    listingIds [ObjectId] Related listings
    tags [String]
    folder String Group replies in a folder
    question String
    answer String
    applyWhenNoBooking Boolean
    applyWhenHasBooking Boolean
    isAbstract Boolean
    type String (Enum) host, guest, contact, review
    reviewType String public, private
    language String 2 letters ISO code

    List all saved replies

    {
        "count": 1,
        "limit": 25,
        "skip": 0,
        "results": [
            {
                "_id": "563e0c2808a2710e00057b92",
                "language": "en",
                "isAbstract": false,
                "applyWhenNoBooking": true,
                "applyWhenHasBooking": true,
                "listingsIds": null,
                "__v": 0,
                "type": "guest",
                "question": "Check in time",
                "answer": "Check in is at {{checkin_time}}.",
                "accountId": "563e0b6a08a2710e00057b82"
            }
        ]
    }
    

    HTTP Request

    GET /saved-replies

    Query Parameters

    Parameter Default Description Example
    listingId null Limit to a specific listing 531968414930a7f09b075800
    q null Search query string. Searches in question, folder
    fields null Selection of fields, separated by space createdAt
    sort -createdAt Field to sort by. Prepend - for DESC. createdAt
    limit 25 Pagination 25
    skip 0 Pagination 0

    Response

    Array of saved replies objects

    Create a saved reply

    Response:

    {
        "__v": 0,
        "question": "Mirror, mirror, on the wall, Who in this land is fairest of all?",
        "answer": "not you?",
        "accountId": "563e0b6a08a2710e00057b82",
        "_id": "59b92e3832123a1000b68a94",
        "language": "en",
        "type": "guest",
        "isAbstract": false,
        "applyWhenNoBooking": true,
        "applyWhenHasBooking": true
    }
    

    HTTP Request

    POST /saved-replies

    Body

    Parameter Default
    question Required
    answer Required

    Example

    Body

    {"question":"Mirror, mirror, on the wall, Who in this land is fairest of all?", "answer": "not you?"}

    Response

    The inserted object.

    Retrieve a saved reply

    {
        "_id": "563e0c2808a2710e00057b92",
        "__v": 0,
        "question": "Check in time",
        "answer": "Check in is at {{checkin_time}}.",
        "accountId": "563e0b6a08a2710e00057b82",
        "language": "en",
        "type": "guest",
        "isAbstract": false,
        "applyWhenNoBooking": true,
        "applyWhenHasBooking": true,
        "tags": [],
        "listingsIds": null
    }
    

    HTTP Request

    GET /saved-replies/:id

    Query Parameters

    Parameter Default Description Example
    fields null Selection of fields, separated by space ``

    Response

    The requested object.

    Update a saved reply

    HTTP Request

    PUT /saved-replies/:id

    Body

    All saved reply fields apart from accountId are editable

    Response

    The updated object.

    Delete a saved reply

    HTTP Request

    DELETE /saved-replies/:id

    Response

    OK

    Hooks

    The hook object

    Attribute Type Description
    _id String (ObjectId) Unique id
    accountId String (ObjectId)
    listingIds [String (ObjectId)] Related listings
    excludeListingIds [String (ObjectId)] Excluded listings
    enabled Boolean Default: true
    filters Array of filters See filters object
    action String (Enum) send email, send sms, send platform message, receptionists dashboard, internal notes
    target String (Enum) user, guest, contact
    when String The delay from the trigger event
    replyTo String For email hooks - set a replyTo that differs from the sender
    trigger String(Enum) reservation confirmed, reservation altered, reservation canceled, check in, check out
    humanRepresentation String Textual representation
    templateId String (ObjectId) Unique id
    atTime String Specific hour to run this hook. Format HH:mm (24 hours)

    The filters Object

    Attribute Type Description
    field String Required Subject of the filter
    operator Required Enhanced MongoDB comparison operator: $eq, $not, $contains, $notcontains, $gt, $lt, $between
    value Required Value to filter by.

    The to object

    Attribute Type Description
    userId String (ObjectId) User when target is "user"
    contactId String (ObjectId) Contact when target is "contact"

    The email object

    Attribute Type Description
    subject String Subject line for the email
    body String Body in html format
    attachments
    cc Array (String) Array of emails to send this email in cc
    bcc Array (String) Array of emails to send this email in bcc

    The sms object

    Attribute Type Description
    body String Text of message, plain format

    The platform object

    Attribute Type Description
    body String Text of message, plain format

    The task object

    Attribute Type Description
    body String Text of task, plain format
    priority String (Enum) high, medium, low

    List all hooks

    {
        "count": 1,
        "limit": 25,
        "skip": 0,
        "results": [
            {
                "_id": "595cf0fe6e327d1000cac401",
                "accountId": "563e0b6a08a2710e00057b82",
                "listingIds": [
                    "588e01488b66181000065ca1"
                ],
                "enabled": false,
                "filters": [
                    {
                        "value": true,
                        "operator": "$eq",
                        "field": "review.shouldReview",
                        "passThrough": true,
                        "_id": "595cf0fe6e327d1000cac403"
                    },
                    {
                        "value": false,
                        "operator": "$exists",
                        "field": "review.hasGuestReviewed",
                        "passThrough": true,
                        "_id": "595cf0fe6e327d1000cac402"
                    }
                ],
                "action": "send platform message",
                "target": "guest",
                "when": "5 days",
                "trigger": "check out",
                "humanRepresentation": "Send platform message to guest 5 days after check out ONLY IF the guest should be reviewed for this reservation & the guest had not already reviewed the booking",
                "name": "Review Reminder - Second",
                "platform": {
                    "body": "Hey {{guest_first}},\n\nWe are sorry for asking you this again!"
                }
            }
        ]
    }
    

    HTTP Request

    GET /hooks

    Query Parameters

    Parameter Default Description Example
    listingId null Limit to a specific listing 531968414930a7f09b075800
    fields null Selection of fields, separated by space createdAt
    sort -createdAt Field to sort by. Prepend - for DESC. createdAt
    limit 25 Pagination, max: 100 25
    skip 0 Pagination 0

    Response

    The requested Hook objects

    Create a hook

    Response

    {
        "_id": "59b931b232123a1000b68cb5",
        "accountId": "563e0b6a08a2710e00057b82",
        "enabled": true,
        "filters": [],
        "action": "send sms",
        "target": "guest",
        "when": "1 hours",
        "trigger": "reservation confirmed",
        "humanRepresentation": "Send sms to guest 1 hour after booking confirmation",
        "name": "bookingHook1",
        "sms": {
            "body": "Love you for booking with us!"
        }
    }
    

    HTTP Request

    POST /hooks

    Body

    Parameter Default
    enabled true
    name Required
    action Required
    target Required
    when Required
    trigger Required
    name Required
    to Required
    email Required for send email action
    sms Required for send sms action
    platform Required for send platform message action
    task Required for receptionists dashboard, post bookings dashboard actions

    Example

    Body

    {"name": "bookingHook1","enabled":true,"action":"send sms", "target": "guest", "trigger": "reservation confirmed", "when": "1 hours", "sms": {"body": "Love you for booking with us!"}}

    Response

    The inserted object.

    Retrieve a hook

    HTTP Request

    GET /hooks/:id

    Query Parameters

    Parameter Default Description Example
    fields null Selection of fields, separated by space ``

    Response

    The requested Hook object.

    Update a hook

    HTTP Request

    PUT /hooks/:id

    Response

    The updated object.

    Delete a hook

    HTTP Request

    DELETE /hooks/:id

    Response

    OK

    Reservations

    The reservation object

    {
        "_id": "595fe29f4ab86112341425ac",
        "daysInAdvance": 39,
        "accountId": "55b9f9b5393dfe0e0023455d",
        "listingId": "582df199dd162a040123542",
        "guestId": "595fe29c4ab861100023423a",
        "status": "confirmed",
        "confirmationCode": "EXAMPLE",
        "checkInDateLocalized": "2017-08-16",
        "checkOutDateLocalized": "2017-08-28",
        "guestsCount": 2,
        "source": "Booking.com",
        "checkIn": "2017-08-16T13:00:00.000Z",
        "checkOut": "2017-08-28T09:00:00.000Z",
        "nightsCount": 12,
        "confirmedAt": "2017-07-07T19:35:59.896Z",
        "customFields": [
            {
                "fieldId": "57569cf62ed4400e001678fa",
                "value": "New",
                "_id": "595fe2a04ab8611000a525b0"
            }
        ],
        "log": [
            {
                "event": "Reservation was updated",
                "by": "Me",
                "_id": "595fe9660b9b6e10001649d2",
                "changes": [
                    {
                        "field": "customFields 1 _id",
                        "_id": "595fe9660b9b6e10001649e5",
                        "diff": [
                            {
                                "value": "595fe9650b9b6e10001649d1",
                                "added": true,
                                "_id": "595fe9660b9b6e10001649e6"
                            }
                        ]
                    }
                ],
                "at": "2017-07-07T20:04:54.058Z"
            }
        ],
        "review": {
            "shouldReview": true
        },
        "money": {
            "currency": "EUR",
            "hostPayout": 1119,
            "guestTotalPrice": 1119,
            "alreadyPaid": 0,
            "fareAccommodation": 1079,
            "fareCleaning": 40,
            "ownerRevenue": 718.5,
            "commissionIncTax": 214.5,
            "commissionTax": 37.23,
            "commissionTaxPercentage": 21,
            "commission": 177.27,
            "commissionFormula": "net_income + 50",
            "netIncome": 933,
            "netIncomeFormula": "round(host_payout+fare_cleaning)",
            "isFullyPaid": false,
            "balanceDue": 1119,
            "paymentsDue": 0,
            "totalPaid": 0,
            "totalRefunded": 0,
            "subTotalPrice": 1119,
            "hostPayoutUsd": 1301.786437223414,
            "autoPaymentsPolicy": [],
            "payments": [],
            "invoiceItems": [
                {
                    "title": "Accommodation fare",
                    "amount": 1079,
                    "currency": "EUR",
                    "isLocked": true,
                    "_id": "595fe29f4ab8611000a525ad"
                }
            ]
        },
        "integration": {
            "_id": "56cd9ab369a2100e00742341",
            "platform": "rentalsUnited",
            "rentalsUnited": {
                "id": 129132421,
                "listingId": 98920,
                "channelReservationId": "1906924521"
            }
        },
        "createdAt": "2017-07-07T19:35:59.900Z",
        "plannedArrival": "15:00",
        "plannedDeparture": "8:00",
        "listing": {
            "_id": "582df199dd162a04002c0693",
            "title": "Industrial and Minimal Mansion",
            "address": {
                "full": "The full address"
            },
            "picture": {
                "thumbnail": "//guestybookings.s3.amazonaws.com/listings/thumbnail_234161096.jpg"
            },
            "nickname": "nickname example"
        },
        "guest": {
            "_id": "595fe29c4ab8611000a525aa",
            "email": "example@example.com",
            "hometown": "76 grand drive City: auckland",
            "fullName": "Sara Duma",
            "phone": "447537986159",
            "picture": {}
        }
    }
    
    Attribute Type Description
    _id String Unique id
    accountId String (ObjectId)
    listingId String (ObjectId)
    createdAt Date
    lastUpdatedAt Date
    closedAt Date
    confirmedAt Date
    alteredAt Date
    canceledAt Date
    canceledBy String
    importedAt Date
    integration integration Object (see below)
    status Enum inquiry, declined, expired, canceled, closed, reserved, confirmed, checked_in, checked_out, awaiting_payment
    confirmationCode String
    checkIn Date
    checkInDateLocalized String
    checkOut Date
    checkOutDateLocalized String
    plannedArrival String Planned time of arrival: HH:mm
    plannedDeparture String Planned time of departure: HH:mm
    nightsCount Number
    daysInAdvance Number
    guestsCount Number
    cancellationPolicy String
    instantBook Boolean
    guestId String (ObjectId)
    isReturningGuest Boolean
    money money Object (see below)
    review review Object (see below)
    notes notes Object (see below)
    log log Object (see below)
    source String The source of the reservation
    customFields [customFields Object] (see below)

    The integration object

    Attribute Type Description
    _id String
    platform Enum airbnb, rentalsUnited, manual, bookingCom or homeaway (in development)
    airbnb object Details related to Airbnb (id, listingId, guestId)
    rentalsUnited Object Details related to RU (id, listingId)
    bookingCom Object Details related to bookingCom (id, listingId, reservationId)
    homeAway Object Coming soon!

    The money object

    Attribute Type Description
    currency String
    fareAccommodation Number
    fareCleaning Number
    subTotalPrice Number
    guestServiceFee Number
    guestTaxes Number
    guestTotalPrice Number
    alreadyPaid Number
    hostServiceFee Number
    hostTaxes Number
    hostPayout Number
    hostPayoutUsd Number
    hostOriginalPayout Number if reservation is canceled.
    netIncomeFormula String
    netIncome Number
    commissionFormula String
    commission Number
    commissionTaxPercentage Number
    commissionTax Number
    commissionIncTax Number
    ownerRevenue Number
    invoiceItems [invoiceItems] (see below)
    payments [payments] (see below)

    The payment object

    {
        "receiptId": 14464234,
        "paymentMethodId": "58a48a4fea2a13ea9fda5873",
        "guestId": "59a0cccb9437ed04001fa6df",
        "confirmationCode": "194017946",
        "amount": 1347,
        "currency": "GBP",
        "shouldBePaidAt": "2017-08-03T13:00:00.000Z",
        "paidAt": "2017-08-03T13:00:00.000Z",
        "_id": "59a24239a992940400fd8e49",
        "receiptTargets": [],
        "attempts": [],
        "createdAt": "2017-08-27T03:53:29.142Z",
        "refunds": [],
        "status": "SUCCEEDED"
    }
    
    Attribute Type Description
    paymentMethodId String (ObjectId)
    status String
    refunds [refunds]
    ---amount Number
    ---createdAt Date
    ---status String
    ---note String
    guestId String (ObjectId)
    confirmationCode String
    amount Number
    currency Enum
    createdAt Date
    shouldBePaidAt Date
    paidAt Date
    attempts [attempts]
    ---createdAt Date
    ---status String
    ---payload Object attempt payload
    ---error

    The invoiceItems object

    Attribute Type Description
    title String
    amount Number
    currency String
    isLocked Boolean

    The review object

    {
        "shouldReview" : true,
        "hostReview" : {
            "createdAt" : "2017-08-27T03:53:24.535Z",
            "public" : "Anies was the perfect guest and we can recommend to other owners without hesitation. We hope we get the opportunity to host them again in the future. Many thanks, Will&Team."
        },
        "hasGuestReviewed" : true,
        "guestReview" : {
            "public" : "The place is very clean. A nice high-ceilinged open-plan flat with huge living area and a modern kitchen. Walking distance to Angel and Exmouth Market. My parents and I had an enjoyable stay there.",
            "private" : "",
            "createdAt" : "2017-08-27T03:53:25.821Z"
        }
    }
    
    Attribute Type Description
    shouldReview Boolean deprecated
    hostReview
    guestReview
    hasGuestReviewed
    expiresAt

    The notes object

    Attribute Type Description
    cleaning String
    guest String
    other String

    The customFields object

    Attribute Type Description
    fieldId ObjectId Ref to the definition (account.customFields._id)
    value Mixed Type is according to the definition

    The log object

    {
        "event": "Reservation was updated",
        "by": "Me",
        "_id": "595fe9660b9b6e10001649d2",
        "changes": [
            {
                "field": "customFields 1 _id",
                "_id": "595fe9660b9b6e10001649e5",
                "diff": [
                    {
                        "value": "595fe9650b9b6e10001649d1",
                        "added": true,
                        "_id": "595fe9660b9b6e10001649e6"
                    }
                ]
            }
        ],
        "at": "2017-07-07T20:04:54.058Z"
    }
    
    Attribute Type Description
    event String
    description String
    by String
    at Date
    changes [changes]
    ---fields String
    ---diff [diff]
    ------- value String
    ------- added Boolean
    ------- removed Boolean

    Create a reservation

    Response

    {
        "__v": 0,
        "lastUpdatedAt": "2017-09-13T14:31:37.460Z",
        "listingId": "59b928bb8e6bb31000219e58",
        "checkInDateLocalized": "2017-09-15",
        "checkOutDateLocalized": "2017-09-18",
        "status": "inquiry",
        "accountId": "563e0b6a08a2710e00057b82",
        "guestId": "59b9414932123a1000b7cd54",
        "guestsCount": 1,
        "source": "Manual",
        "checkIn": "2017-09-15T12:00:00.000Z",
        "checkOut": "2017-09-18T08:00:00.000Z",
        "nightsCount": 3,
        "checkInIsFlexible": true,
        "checkOutIsFlexible": true,
        "_id": "59b9414932123a1000b7cd55",
        "customFields": [],
        "confirmedPreBookings": [],
        "log": [],
        "pendingTasks": [],
        "review": {
            "shouldReview": true
        },
        "money": {
            "ownerRevenue": 450,
            "commissionIncTax": 50,
            "commissionTax": 0,
            "commissionTaxPercentage": 0,
            "commission": 50,
            "commissionFormula": "net_income*0.1",
            "netIncome": 500,
            "netIncomeFormula": "host_payout",
            "isFullyPaid": false,
            "balanceDue": 500,
            "paymentsDue": 0,
            "totalPaid": 0,
            "totalRefunded": 0,
            "fareAccommodation": 500,
            "currency": "USD",
            "hostPayout": 500,
            "subTotalPrice": 500,
            "hostPayoutUsd": 500,
            "autoPaymentsPolicy": [],
            "payments": [],
            "invoiceItems": [
                {
                    "title": "Accommodation fare",
                    "amount": 500,
                    "currency": "USD",
                    "isLocked": true,
                    "_id": "59b9414932123a1000b7cd56"
                }
            ]
        },
        "integration": {
            "_id": "5784a3cc64ce9c0e00ecaf1e",
            "platform": "manual",
            "limitations": {
                "availableStatuses": []
            }
        },
        "createdAt": "2017-09-13T14:31:37.452Z",
        "id": "59b9414932123a1000b7cd55"
    }
    

    HTTP Request

    POST /reservations

    Body

    Parameter Default
    listingId Required
    guestId Required
    checkInDateLocalized Required
    checkOutDateLocalized Required
    status Required
    money Required
    ---fareAccommodation Required
    ---currency Required

    Validations:

    System will make sure reservation is according to terms (min, max nights, any other terms), and decline otherwise (401), unless flag (ignoreTerms). System will make sure calendar is available, and decline otherwise (401), unless flag (ignoreCalendar).

    Example

    Body

    {"listingId": "59b928bb8e6bb31000219e58", "checkInDateLocalized": "2017-09-15", "checkOutDateLocalized": "2017-09-18", "status": "inquiry", "money":{"fareAccommodation": "500", "currency": "USD"}}

    Response

    The inserted object.

    Retrieve a reservation

    HTTP Request

    GET /reservations/:id

    Query Parameters

    Parameter Default Description Example
    fields null Selection of fields, separated by space. When null retrieve the main properties of the object. We recommend always specifying the specific fields you'd like to receive to ensure that you get them. Please see the full list above. checkIn status

    Response

    Reservation object

    Update a reservation

    HTTP Request

    PUT /reservations/:id

    Body

    Can update checkIn/checkOut (in ISO date format, including hour) or with checkInDateLocalized/checkOutDateLocalized (format: 'yyyy-mm-dd') to update just the date and keep existing hour.

    Validations: System will make sure reservation is according to terms (min, max nights, any other terms), and decline otherwise (401), unless flag (ignoreTerms). System will make sure calendar is available, and decline otherwise (401), unless flag (ignoreCalendar).

    Response

    Retrieve the updated reservation, selection of fields that were sent in body.

    Add a payment for reservation

    HTTP Request

    POST /reservations/:id/payments

    Body

    Parameter Default Description
    method Required
    amount
    shouldBePaidAt
    paidAt
    note
    stripePaymentMethodToken Required if method is "stripe"

    Response

    Retrieve the updated reservation, selection of money.payments field.

    Update an existing payment

    HTTP Request

    PUT /reservations/:id/payments

    Body

    Parameter Default Description
    paymentId Required the _id of the payment to update
    method stripe/cash
    amount
    shouldBePaidAt
    paidAt
    note
    stripePaymentMethodToken

    Response

    Retrieve the updated reservation, selection of money.payments field.

    Delete an existing payment

    HTTP Request

    DELETE /reservations/:id/payments

    Body

    Parameter Default Description
    paymentId Required the _id of the payment to delete

    Response

    Retrieve the updated reservation, selection of money.payments field.

    Search reservations

    {
         "count": 3,
         "limit": 25,
         "skip": 0,
         "results": [
            {
                "_id" : "5655b3dec03ca814016a5038",
                "createdAt" : "2014-12-17T08:33:44.510Z",
                "integration" : {
                    "platform" : "airbnb",
                    "_id" : "53eb27386b51b257846cdd11",
                    "airbnb" : {
                        "listingId" : 1148991,
                        "guestId" : 3648962
                    }
                },
                "status" : "inquiry",
                "guestId" : "5655b3debf1fab1507921c33",
                "listingId" : "5319674d4930a7f09b075696",
                "checkIn" : "2013-11-21T22:00:00.000Z",
                "checkOut" : "2013-11-26T22:00:00.000Z",
                "checkInDateLocalized" : "2013-11-22",
                "checkOutDateLocalized" : "2013-11-27",
                "guestsCount" : 1,
                "money" : {
                    "ourCommission" : 0,
                    "ownerRevenue" : 0.0,
                    "userRevenue" : 0,
                    "userRevenueFormula" : "host_payout",
                    "netIncome" : 0,
                    "netIncomeFormula" : "fare_accommodation + fare_cleaning",
                    "commission" : 0,
                    "commissionFormula" : "net_income*0.2",
                    "commissionIncTax" : 0,
                    "commissionTax" : 0,
                    "commissionTaxPercentage" : 16
                },
                "accountId" : "5319674d4930a7f09b075695",
                "source" : "Airbnb",
                "lastUpdatedAt" : "2016-04-19T19:50:54.292Z"
            }
         ]
    }
    

    HTTP Request

    GET /reservations

    Query Parameters

    Parameter Default Description Example
    viewId null Pull a specific view (view is a saved settings of accountId, filters, fields, sort) 556d95083c59ae58e3fdd8f4
    filters [{field:'status', operator:'$in', value:['confirmed']},{field:'checkIn', operator:'$gt', context:'now', value:0}] Array of filters to query by (See below) See default
    fields checkIn checkOut confirmationCode guest.fullname listing.title Selection of fields, separated by space See default
    sort checkIn The field to sort by. Preppend - for DESC.
    limit 25 Pagination 25
    skip 0 Pagination 0

    Filters

    {
        "field": "checkIn",
        "operator": "$gt",
        "value": 0,
        "context": "now"
    }
    
    Parameter Default Description Example
    field Required Subject of the filter
    operator Required Enhanced MongoDB comparison operator: $eq, $not, $contains, $notcontains, $gt, $lt, $between
    value Required Value to filter by.
    context null Optional preprocessing. Options are now, createdAt, confirmedAt, canceledAt, alteredAt. When given, the date in value is relative to the context.

    Response

    Reservation objects

    Export as CSV

    HTTP Request

    GET /reservations.csv

    Same as /reservations but results are returned as a downloadable csv file

    Send results in email

    HTTP Request

    POST /reservations.email

    Same as /reservations but results are sent as an email

    Body Parameters

    Parameter Default Description Example
    to Required Address of recipient koby@guesty.com

    Approve a pending booking request

    {
        "status": "confirmed",
        "_id": "5a7306914976200093ee9ebf"
    }
    

    HTTP Request

    POST /reservations/:id/approve

    Response

    Reservation object - _id and status fields.

    Decline a pending booking request

    {
        "status": "declined",
        "_id": "5a7307182ffb49005b0bff9a"
    }
    

    HTTP Request

    POST /reservations/:id/decline

    Response

    Reservation object - _id and status fields.

    Views

    The view object

    {
        "_id": "58936fc2e582af100036351a",
        "updatedAt": "2017-08-07T11:58:20.437Z",
        "section": "reservations",
        "fields": "checkIn checkOut confirmationCode listing guest",
        "sort": "checkIn",
        "title": "Upcoming Bookings (Copy)",
        "accountId": "563e0b6a08a2710e00057b82",
        "__v": 4,
        "shares": [
            {
                "contactId": "5926bdfb1bfe871000d0a745",
                "_id": "598855dc3c31bf0f0075858f"
            }
        ],
        "scheduledEmails": [
            {
                "recipient": "EMAIL@EMAIL.COM",
                "hour": 10,
                "_id": "589d11a2567d7d10000c41a3",
                "days": [
                    0
                ]
            }
        ],
        "createdAt": "2017-02-02T17:43:30.207Z",
        "filters": [
            {
                "operator": "$gt",
                "field": "checkOut",
                "context": "now",
                "optionDisplayName": "is in the future",
                "_id": "556b2e43fe759c0e00e5cd15"
            },
            {
                "value": "confirmed",
                "operator": "$eq",
                "field": "status",
                "optionDisplayName": "is",
                "_id": "58936fc2e582af100036351c"
            },
            {
                "value": 4,
                "operator": "$eq",
                "field": "nightsCount",
                "optionDisplayName": "equals",
                "_id": "58936fc2e582af100036351b"
            }
        ]
    }
    
    Attribute Type Description
    _id String Unique id
    accountId String Id of the user owning this view
    title String Title for the view
    section String (Enum) reservations, listings, tasks, guest
    filters [filters] (see below)
    fields String Selection of fields, separated by space
    sort String
    createdAt Date
    updatedAt Date
    scheduledEmails Array (scheduledEmail Object) (see below)
    shares [shares] (see below)

    The filters object

    {
        "field": "checkIn",
        "operator": "$gt",
        "value": 0,
        "context": "now"
    }
    
    Parameter Default Description Example
    field Required Subject of the filter
    operator Required Enhanced MongoDB comparison operator: $eq, $not, $contains, $notcontains, $gt, $lt, $between
    value Required Value to filter by.
    context null Optional preprocessing. Options are now, createdAt, confirmedAt, canceledAt, alteredAt. When given, the date in value is relative to the context.

    The scheduledEmails object

    {
        "recipient": "EMAIL2@EMAIL.COM",
        "hour": 10,
        "_id": "598855c73c31bf0f007583d2",
        "days": [
            3,
            4,
            0
        ]
    }
    
    Parameter Default Description Example
    days [Number] Array of numbers 0-6, number per day 4 (send on Thursday)
    recipient String Emails separated by comma
    hour Number when the report should be sent

    The shares object

    {
        "contactId": "5926bdfb1bfe871000d0a745",
        "_id": "598855dc3c31bf0f0075858f"
    }
    
    Parameter Default Description Example
    contactId --- Required Contact ID to share with 5926bdfb1bfe871000d0a745

    List all views

    {
        "results": [
            {
                "_id": "597091be29050d10002ed4bc",
                "updatedAt": "2017-07-20T11:19:27.004Z",
                "section": "listings",
                "fields": "nickname title address.full tags picture.thumbnail active",
                "sort": "title",
                "title": "Active Listings (Copy)",
                "accountId": "563e0b6a08a2710e00057b82",
                "shares": [],
                "scheduledEmails": [],
                "createdAt": "2017-07-20T11:19:26.998Z",
                "filters": [
                    {
                        "value": true,
                        "operator": "$eq",
                        "field": "active",
                        "_id": "597091bf29050d10002ed4be"
                    },
                    {
                        "value": true,
                        "operator": "$eq",
                        "field": "isListed",
                        "_id": "597091be29050d10002ed4bd"
                    }
                ],
                "__v": 0
            }
        ],
        "count": 1,
        "fields": "",
        "limit": 25,
        "skip": 0
    }
    

    HTTP Request

    GET /views

    Query Parameters

    Parameter Default Description Example
    section Required One of guest,reservations,tasks,listings listings
    fields null Selection of fields, separated by space. When null retrieves all object. "title"
    limit 25 Pagination 25
    skip 0 Pagination 0

    Response

    Views objects

    Create a view

    Response

    {
        "__v": 0,
        "updatedAt": "2017-09-13T14:48:58.362Z",
        "title": "exampleView",
        "section": "reservation",
        "accountId": "563e0b6a08a2710e00057b82",
        "_id": "59b9455aff91be100056eccf",
        "shares": [],
        "scheduledEmails": [],
        "createdAt": "2017-09-13T14:48:58.360Z",
        "filters": []
    }
    

    HTTP Request

    POST /views

    Body

    Parameter Default
    title Required
    section Required

    Example

    Body

    {"title": "exampleView", "section":"reservation"}

    Response

    The inserted object.

    Retrieve a view

    {
        "_id": "58936fc2e582af100033251a",
        "updatedAt": "2017-03-01T05:08:22.018Z",
        "section": "reservations",
        "fields": "checkIn checkOut confirmationCode listing guest",
        "sort": "checkIn",
        "title": "example",
        "accountId": "563e0b6a08a2710e00057b82",
        "__v": 1,
        "shares": [],
        "scheduledEmails": [],
        "createdAt": "2017-04-05T17:23:31.277Z",
        "filters": [
            {
                "operator": "$gt",
                "field": "checkOut",
                "context": "now",
                "optionDisplayName": "is in the future",
                "_id": "556b2e43fe759c0e00e5cd32"
            }
        ]
    }
    

    HTTP Request

    GET /views/:id

    Report tokens

    Can only retrieve objects owned by connected token. 403 otherwise.

    Query Parameters

    Parameter Default Description Example
    fields null Selection of fields, separated by space "title"

    Response

    View object

    Update a view

    HTTP Request

    PUT /views/:id

    Response

    Retrieve the updated view, selection of updated fields.

    Delete a view

    HTTP Request

    DELETE /views/:id

    Response

    OK

    Guests

    The guest object

    {
        "_id" : "5803ca18e48f450300c76173",
        "fullName" : "Kristen",
        "firstName" : "Kristen",
        "accountId" : "563e0b6a08a2710e00057b82",
        "hasVerifiedId" : false,
        "hometown" : "US",
        "languages" : "",
        "paymentMethods" : [],
        "communicationMethods" : [
            "airbnb"
        ],
        "airbnb" : {
            "id" : 32931005,
            "url" : "https://www.airbnb.com/users/show/32931005",
            "firstName" : "Kristen",
            "lastName" : null,
            "fullName" : "Kristen"
        },
        "phones" : [],
        "emails" : [],
        "pictures" : [
            {
                "thumbnail" : "//guestybookings.s3.amazonaws.com/guests/thumbnail_e2cb8a96-45a9-45cd-b28e-57e1ca1fc988.jpg",
                "large" : "//guestybookings.s3.amazonaws.com/guests/large_e2cb8a96-45a9-45cd-b28e-57e1ca1fc988.jpg",
                "regular" : "//guestybookings.s3.amazonaws.com/guests/regular_e2cb8a96-45a9-45cd-b28e-57e1ca1fc988.jpg",
                "_id" : "5803ca18e48f450300c76174"
            }
        ],
        "verifications" : [
            "Email address"
        ],
        "__v" : 0
    }
    
    Attribute Type Description
    _id String Unique id
    accountId ObjectId (String) Id of owning user
    firstName String
    lastName String
    fullName String
    company String
    hometown String
    hasVerifiedId Boolean
    verifications [String] List of verifications
    picture Object (see below)
    pictures [picture] List of pictures
    email String Main use email address
    emails [String] List of emails
    privateEmail String
    phone String Main use phone number
    phones [String] List of phones
    confirmed Boolean True if the guest has confirmed bookings
    languages [String] List of languages the guest knows
    airbnb Object (see below)
    rentalsUnited Object (see below)
    bookingCom Object (see below)
    notes String
    communicationMethods [Enum] airbnb, email, sms
    paymentMethods [ObjectId] array of paymentMethod Ids
    paymentProviders Object
    ---stripe Object
    ------customerId String

    The picture object

    {
    "pictures" : [
            {
                "thumbnail" : "//guestybookings.s3.amazonaws.com/guests/thumbnail_e2cb8a96-45a9-45cd-b28e-57e1ca1fc988.jpg",
                "large" : "//guestybookings.s3.amazonaws.com/guests/large_e2cb8a96-45a9-45cd-b28e-57e1ca1fc988.jpg",
                "regular" : "//guestybookings.s3.amazonaws.com/guests/regular_e2cb8a96-45a9-45cd-b28e-57e1ca1fc988.jpg",
                "_id" : "5803ca18e48f450300c76174"
            }
        ]
    }
    
    Parameter Type Description
    thumbnail String
    large String
    regular String

    The airbnb object

    {
    "airbnb" : {
            "id" : 32931005,
            "url" : "https://www.airbnb.com/users/show/32931005",
            "firstName" : "Kristen",
            "lastName" : null,
            "fullName" : "Kristen"
        }
    }
    
    Parameter Type Description
    id Number
    url String
    firstName String
    lastName String
    fullName String

    The rentalsUnited object

    {
    "rentalsUnited": {
            "fullName": "Sergey Grinblat",
            "firstName": "Sergey",
            "lastName": "Grinblat"
        }
    }
    
    Parameter Type Description
    firstName String
    lastName String
    fullName String

    The bookingCom object

    {
    "bookingCom": {
            "fullName": "Sergey Grinblat",
            "firstName": "Sergey",
            "lastName": "Grinblat"
        }
    }
    
    Parameter Type Description
    firstName String
    lastName String
    fullName String

    List all guests

        {
            "count": 1,
            "limit": 25,
            "skip": 0,
            "results": [
                {
                    "_id" : "58243555fb61770400aede31",
                    "fullName" : "Koby Soto",
                    "lastName" : "Soto",
                    "firstName" : "Koby",
                    "accountId" : "55b9f9b53935550e004b6c5d",
                    "hasVerifiedId" : true,
                    "hometown" : "US",
                    "languages" : "",
                    "paymentMethods" : [],
                    "communicationMethods" : [
                        "airbnb"
                    ],
                    "airbnb" : {
                        "id" : 8555466,
                        "url" : "https://www.airbnb.com/users/show/8555466",
                        "firstName" : "Koby",
                        "lastName" : "Soto",
                        "fullName" : "Koby Soto"
                    },
                    "phones" : [],
                    "emails" : [],
                    "pictures" : [],
                    "verifications" : [
                        "Email address",
                        "Phone number",
                        "Personal info"
                    ]
                }
            ]
        }
    

    HTTP Request

    GET /guests

    Query Parameters

    Parameter Default Description Example
    q null Search query string. Searches in fullname, company, hometown, emails, phones "Koby"
    include_confirmed true Boolean true
    include_unconfirmed false Boolean false
    fields null Selection of fields, separated by space. When null retrieves all object. "firstName lastName phone"
    limit 25 Pagination, max: 100 25
    sort fullName Sorting fullName
    skip 0 Pagination 0

    Response

    Array of requested guests

    Create a guest

    Response

    {
        "__v": 0,
        "accountId": "563e0b6a08a2710e00057b82",
        "_id": "59b9466532123a1000b8665e",
        "paymentMethodIds": [],
        "communicationMethods": [],
        "airbnb": {
            "id": 1505314405905
        },
        "phones": [],
        "emails": [],
        "pictures": [],
        "verifications": []
    }
    

    HTTP Request

    POST /guests

    Body

    No required fields.

    Example

    Body

    Body is empty.

    Response

    The inserted object.

    Retrieve a guest

    HTTP Request

    GET /guests/:id

    Query Parameters

    Parameter Default Description Example
    fields null Selection of fields, separated by space. When null retrieve the main properties of the object. We recommend always specifying the specific fields you'd like to receive to ensure that you get them. Please see the full list above. "firstName lastName"

    Response

    Guest object

    Update a guest

    HTTP Request

    PUT /guests/:id

    Response

    The updated guest object.

    Delete a guest

    HTTP Request

    DELETE /guests/:id

    Response

    OK

    Phone Book Contacts

    The contact object

    {
        "_id": "57e9437fd0b2c00f00d3d808",
        "phone": "972541723456",
        "fullName": "(GodOfWar) Sergey Grinblat",
        "preferredContactMethod": "email",
        "firstName": "Sergey",
        "lastName": "Grinblat",
        "company": "Guesty",
        "notes": "Examples notes",
        "title": "GodOfWar",
        "email": "example@guesty.com",
        "accountId": "563e0b6a08a2710e00057b82",
        "phones": [
            "972541723456"
        ],
        "emails": [
            "example@guesty.com"
        ],
        "__v": 1
    }
    
    Attribute Type Description
    _id String Unique id
    accountId ObjectId (String) Owner
    firstName String
    lastName String
    fullName String
    nickname String
    title String
    company String
    picture Picture (Object) (see below)
    emails Array (String)
    phones Array (String)
    preferredContactMethod String
    email String Default email to use
    phone String Default phone to use
    notes String

    List all contacts

    {
        "results": [
            {
                "_id": "57e9437fd0b2c00f00d3d808",
                "phone": "97254172342",
                "fullName": "Sergey Grinblat",
                "preferredContactMethod": "email",
                "firstName": "Sergey",
                "lastName": "Grinblat",
                "email": "example@guesty.com",
                "accountId": "563e0b6a08a2710e00057b82",
                "phones": [
                    "97254172342"
                ],
                "emails": [
                    "example@guesty.com"
                ],
                "__v": 0
            }
        ],
        "count": 1,
        "fields": "",
        "limit": 50,
        "skip": 0
    }
    

    HTTP Request

    GET /contacts

    Query Parameters

    Parameter Default Description Example
    accountId --- Optional with admin token, Unavailable with user token. 531968414930a7f09b075800
    fields null Selection of fields, separated by space "fullName"
    sort null Sorting "nickname"
    limit 25 Pagination, max: 100 25
    skip 0 Pagination 0

    Create a contact

    Response

    {
        "__v": 0,
        "accountId": "563e0b6a08a2710e00057b82",
        "_id": "59b9486232123a1000b869fb",
        "phones": [],
        "emails": []
    }
    

    HTTP Request

    POST /contacts

    Body

    No required fields.

    Example

    Body

    Body is empty.

    Response

    The created object.

    Retrieve a contact

    {
        "_id": "57e9437fd0b2c00f00d3d808",
        "phone": "97254172342",
        "fullName": "Sergey Grinblat",
        "preferredContactMethod": "email",
        "firstName": "Sergey",
        "lastName": "Grinblat",
        "email": "example@guesty.com",
        "accountId": "563e0b6a08a2710e00057b82",
        "phones": [
            "97254172342"
        ],
        "emails": [
            "example@guesty.com"
        ],
        "__v": 0
    }
    

    HTTP Request

    GET /contacts/:id

    Authorization

    Only accessible to Admin or User tokens.

    User tokens

    Can only retrieve objects owned by connected user. 403 otherwise.

    Required permission: phoneBook.view. Can only return items of included listings.

    Query Parameters

    Parameter Default Description Example
    fields null Selection of fields, separated by space. When null retrieve the main properties of the object. We recommend always specifying the specific fields you'd like to receive to ensure that you get them. Please see the full list above. "firstName lastName"

    Response

    Contact object.

    Update a contact

    HTTP Request

    PUT /contacts/:id

    Authorization

    Only accessible to Admin or User tokens.

    Admin tokens

    Available fields: All object, except accountId (which is ignored).

    User tokens

    Can only update objects owned by connected user. 403 otherwise. Available fields: All object, except accountId (which is ignored).

    Required permission: phoneBook.edit. Can only edit items of included listings.

    Response

    The updated object with only the fields that were sent in body.

    Delete a contact

    HTTP Request

    DELETE /contacts/:id

    Authorization

    Only accessible to Admin or User tokens.

    User tokens

    Can only delete objects owned by connected user. 403 otherwise.

    Required permission: phoneBook.edit. Can only delete items of included listings.

    Response

    OK

    Auto Tasks

    The auto task object

    {
        "_id": "5899e50cdef6f910004f1561",
        "templateId": "5899e4e0d944981000d6ecc8",
        "event": "reservation confirmed",
        "canStartAfter": "current confirmed",
        "mustFinishBefore": "current confirmed minus 2 hours",
        "startTime": "current checkIn",
        "accountId": "563e0b6a08a2710e00057b82",
        "__v": 0
    }
    
    Attribute Type Description
    _id String Unique id
    accountId ObjectId (String) Owner
    templateId ObjectId (String) Task template Id
    event String reservation confirmed, rental period defined, calendar updated
    startTime String formula for exact start time
    canStartAfter String formula for flexible start time
    mustFinishBefore String formula for flexible end time

    List all auto tasks

    {
        "count": 1,
        "limit": 25,
        "skip": 0,
        "results": [
            {
                "_id": "587e42851f33d31000f39c1d",
                "templateId": "587e42721f33d31000f39c11",
                "event": "rental period defined",
                "canStartAfter": "",
                "mustFinishBefore": "",
                "startTime": "start at 09:00",
                "accountId": "563e0b6a08a2710e00057b82",
                "__v": 0
            }
        ]
    }
    

    HTTP Request

    GET /auto-tasks

    Query Parameters

    Parameter Default Description Example
    accountId --- Optional with admin token, Unavailable with user token. 531968414930a7f09b075800
    fields null Selection of fields, separated by space templateId event
    limit 25 Pagination 25
    skip 0 Pagination 0

    Response

    createdBy is populated as a user object with the fields: _id, fullName, picture.thumbnail. assignee is a populated version of assigneeId as a user object with the fields: _id, fullName, picture.thumbnail.

    Create an auto task

    Response

    {
        "__v": 0,
        "templateId": "59b9492e32123a1000b86af3",
        "event": "reservation confirmed",
        "startTime": "current checkOut minus 4 hours",
        "accountId": "563e0b6a08a2710e00057b82",
        "_id": "59b9498bff91be100056fa3a"
    }
    

    HTTP Request

    POST /auto-tasks

    Body

    Parameter Default
    templateId Required
    event Required
    statTime Required

    Examples

    Body

    {"templateId":"59b9492e32123a1000b86af3","event":"reservation confirmed","startTime":"current checkOut minus 4 hours"}

    Response

    The created object.

    Retrieve a task

    HTTP Request

    GET /auto-tasks/:id

    Query Parameters

    Parameter Default Description Example
    fields null Selection of fields, separated by space. When null retrieve the main properties of the object. We recommend always specifying the specific fields you'd like to receive to ensure that you get them. Please see the full list above. event

    Response

    Default task object.

    Update an auto task

    HTTP Request

    PUT /auto-tasks/:id

    Response

    The updated object with only the fields that were sent in body.

    Delete an auto task

    HTTP Request

    DELETE /auto-tasks/:id

    Response

    OK

    Tasks

    The task object

    Attribute Type Description
    _id String Unique id
    accountId ObjectId (String) Owner
    title String the task itself
    description String task description
    priority Enum (Number) 1-5
    assigneeGroup [String] tags
    assigneeId ObjectId (String) ref to User
    assigneeFullName String User full name
    supervisorId ObjectId (String) ref to User
    price Number task tariff
    checklist Array (String)
    attachments [attachment object] (see below)
    afterEffects [afterEffect object] (see below)
    tags [String] List of tags the task is under
    status Enum pending, confirmed, in progress, completed, canceled
    createdAt Date Date created
    createdBy ObjectId (String) ref to User
    startTime Date
    endTime Date
    plannedDuration Number planned duration for the task (in hours)
    actualDuration Number actual duration for the task (in hours)
    canStartAfter String formula for flexible start time
    mustFinishBefore String formula for flexible end time
    confirmedAt Date
    startedAt Date
    completedAt Date
    completedBy User (Object) Fields: _id, fullName, picture.thumbnail
    listingId ObjectId (String) ref to Listing
    reservationId ObjectId (String) ref to Reservation
    comments [comment object] (see below)
    lastComment String
    checklistFinished [String]
    prototypeId ObjectId (String) link to auto task
    feedbackScore Number [0-5]
    feedbackNotes String
    editedFields [String] fields that were manually edited and should not be automatically overridden
    log [log object] (see below)

    The log object

    {
    "log": [
                    {
                        "event": "Task was updated",
                        "by": "Roei Timor",
                        "_id": "58163205f4ff4b0f005f1070",
                        "changes": [
                            {
                                "field": "editedFields 0",
                                "_id": "58163205f4ff4b0f005f1073",
                                "diff": [
                                    {
                                        "value": "priority",
                                        "added": true,
                                        "_id": "58163205f4ff4b0f005f1074"
                                    }
                                ]
                            },
                            {
                                "field": "priority",
                                "_id": "58163205f4ff4b0f005f1071",
                                "diff": [
                                    {
                                        "value": "1",
                                        "added": true,
                                        "_id": "58163205f4ff4b0f005f1072"
                                    }
                                ]
                            }
                        ],
                        "at": "2016-10-30T17:46:45.627Z"
                    }
         ]
    }
    
    Attribute Type Description
    event String Required
    description String
    by String
    at Date
    changes [change object] (see below)

    The change object

    Attribute Type Description
    field String
    diff [diff object] (see below)

    The diff object

    Attribute Type Description
    value String
    added Boolean
    removed Boolean

    The comment object

    Attribute Type Description
    text String
    by ObjectId (String) ref to User
    at Date

    The afterEffect object

    {
        "afterEffects": [
            {
                "action": "CHANGE_CLEANING_STATUS",
                "_id": "58db6d2255652510008f0f0e",
                "payload": {
                    "message": {
                        "attachments": []
                    }
                }
            },
            {
                "action": "SEND_EMAIL",
                "_id": "58db6d2255652510008f0f0d",
                "payload": {
                    "target": "USER",
                    "targetId": "57d189e89528720f00e5c2fa",
                    "message": {
                        "body": "<p>HIIIIIIII</p>\n",
                        "subject": "HI",
                        "attachments": []
                    }
                }
            }
        ]
    }
    
    Attribute Type Description
    action Enum CHANGE_CLEANING_STATUS, SEND_SMS, SEND_EMAIL
    payload (payload object) (see below)

    The payload object

    Attribute Type Description
    target Enum user, contact, guest, supervisor
    targetId ObjectId ref to User
    message Object the message object

    The message object

    Attribute Type Description
    subject String
    body String
    attachment Object (see below)

    The attachment object

    Attribute Type Description
    _id String Unique id
    url String Required, attachment file url
    title String
    mimetype String
    size Number
    client String

    comments

    Array of comments:

    {
        "comments": [
                        {
                            "text": "Fff",
                            "by": "57d189e89528720f00e5c2fa",
                            "_id": "57fa45fbe966d50f00fa088a",
                            "at": "2016-10-09T13:28:27.034Z"
                        },
                        {
                            "text": "Check",
                            "by": "57d189e89528720f00e5c2fa",
                            "_id": "581a0f8e3bb4af0f00beb1c2",
                            "at": "2016-11-02T16:08:46.655Z"
                        }
                    ]
    }
    
    Attribute Type Description
    _id String Unique id
    text String Required, the comment
    by User (Object) Fields: _id, fullName, picture.thumbnail
    at Date Timestamp

    List all tasks

    {
        "results": [
            {
                "_id": "582b3933b6e8cc1000fb2cc1",
                "endTime": "2016-12-08T14:00:00.000Z",
                "startedAt": null,
                "completedAt": "2016-12-04T16:34:38.332Z",
                "confirmedAt": null,
                "plannedDuration": 3,
                "title": "Task for video",
                "description": "Clean the beach house.\nMake sure to clean the window in the living room.",
                "supervisorId": "56f93baaa2a34bec3605f416",
                "assigneeId": "56f93baaa2a34bec3605f416",
                "canStartAfter": "2016-12-08T08:00:00.000Z",
                "mustFinishBefore": null,
                "startTime": "2016-12-08T11:00:00.000Z",
                "accountId": "563e0b6a08a2710e00057b82",
                "prototypeId": "582b3933b6e8cc1000fb2ca3",
                "reservationId": "58170e8cb12fd30f00884412",
                "listingId": "57e2476e58621d0f003eaac5",
                "log": [
                    {
                        "event": "Task was created",
                        "by": "system",
                        "_id": "582b3933b6e8cc1000fb2cc2",
                        "changes": [],
                        "at": "2016-11-15T16:34:59.405Z"
                    },
                    {
                        "event": "Task was updated",
                        "by": "Roei Timor",
                        "_id": "582b3c572056f610002343ee",
                        "changes": [
                             {
                                "field": "status",
                                "_id": "582b3c572056f610002343ef",
                                "diff": [
                                    {
                                        "removed": true,
                                        "value": "pending",
                                        "_id": "582b3c572056f610002343f1"
                                    },
                                    {
                                        "added": true,
                                        "value": "completed",
                                        "_id": "582b3c572056f610002343f0"
                                    }
                                ]
                            }
                        ],
                        "at": "2016-11-15T16:48:23.400Z"
                    }
                ],
                "editedFields": [
                    "status"
                ],
                "checklistFinished": [],
                "comments": [],
                "status": "completed",
                "afterEffects": [
                    {
                        "action": "CHANGE_CLEANING_STATUS",
                        "_id": "58db6d2255652510008f0f0e",
                        "payload": {
                            "message": {
                                "attachments": []
                            }
                        }
                    }
                ],
                "attachments": [],
                "checklist": [
                    "TV",
                    "Wi-Fi router",
                    "Hair Dryer"
                ],
                "assigneeGroup": [],
                "createdAt": "2016-11-15T17:46:43.288Z",
                "__v": 3,
                "completedBy": "57d189e89528720f00e5c2fa",
                "tags": [],
                "assigneeFullName": "John Smith",
                "nextReservation": {
                    "_id": "5884e79cded55810009bb2dc"
                },
                "prevReservation": null,
                "nextReservationId": "5884e79cded55810009bb2dc"
            }
        ],
        "title": "Tasks Report",
        "count": 1,
        "fields": "",
        "limit": 25,
        "skip": 0
    }
    

    HTTP Request

    GET /tasks

    Query Parameters

    Parameter Default Description Example
    listingId null Filter by specific listing "531968414930a7f09b075800"
    reservationId null Filter by specific reservation "531968414930a7f09b075800"
    done false Whether to show completed tasks or uncompleted tasks or both.
    assignee null Filter by assignee's user id "531968414930a7f09b075800"
    viewId null Pull a specific view (view is a saved settings of accountId, filters, fields, sort) 556d95083c59ae58e3fdd8f4
    fields null Selection of fields, separated by space "title"
    sort createdAt; completedAt in completed mode Sorting "title"
    limit 25 Pagination, max: 100 25
    skip 0 Pagination 0

    Response

    createdBy is populated as a user object with the fields: _id, fullName, picture.thumbnail.

    completedBy is populated as a user object with the fields: _id, fullName, picture.thumbnail.

    assignee is a populated version of assigneeId as a user object with the fields: _id, fullName, picture.thumbnail.

    listing is a populated version of listingId as a listing object with the fields: _id, title, nickname, picture.thumbnail.

    reservation is a populated version of reservationId as a reservation object with the fields: _id, confirmationCode.

    Create a task

    Response

    {
        "__v": 0,
        "title": "Mana Mana",
        "accountId": "563e0b6a08a2710e00057b82",
        "_id": "59b94b67ff91be1000570008",
        "log": [],
        "editedFields": [],
        "checklistFinished": [],
        "comments": [],
        "createdAt": "2017-09-13T15:14:47.205Z",
        "status": "pending",
        "tags": [],
        "afterEffects": [],
        "attachments": [],
        "checklist": [],
        "assigneeGroup": []
    }
    

    HTTP Request

    POST /tasks

    Body

    Parameter Default
    title Required

    Example

    Body

    {"title":"Mana Mana"}

    Response

    The created object.

    Retrieve a task

    HTTP Request

    GET /tasks/:id

    Query Parameters

    Parameter Default Description Example
    fields null Selection of fields, separated by space. When null retrieve the main properties of the object. We recommend always specifying the specific fields you'd like to receive to ensure that you get them. Please see the full list above. "title"

    Response

    The requested Task object.

    Update a task

    HTTP Request

    PUT /tasks/:id

    Response

    The updated object with only the fields that were sent in body.

    Delete a task

    HTTP Request

    DELETE /tasks/:id

    Response

    OK

    Export as CSV

    HTTP Request

    GET /tasks.csv

    Same as /tasks but results are returned as a downloadable csv file

    Send results in email

    HTTP Request

    POST /tasks.email

    Same as /tasks but results are sent as an email

    Body Parameters

    Parameter Default Description Example
    to Required Address of recipient koby@guesty.com

    Inbox - Guest conversations

    Conversation object

    {
        "_id": "5815f92df4ff4b0f005f053b",
        "createdAt": "2016-10-30T13:44:13.031Z",
        "lastUpdatedAt": "2017-07-31T07:03:31.685Z",
        "isStarred": true,
        "isRead": true,
        "assignee": "59749d2537278b0f00396943",
        "readLog": [
            {
                "by": "587b8283fc6b2610000f9b39",
                "_id": "587c94ac66e78f10003ebff3",
                "at": "2017-01-16T09:38:52.237Z"
            },
            {
                "by": "591c23fddbb50f1000fa17ff",
                "_id": "591c514455392d280059964a",
                "at": "2017-05-17T13:33:56.815Z"
            }
        ],
        "pendingTasks": [],
        "accountId": "563e0b6a08a2710e00057b82",
        "integrationId": "5784a3cc64ce9c0e00ecaf1e",
        "thread": [
            {
                "module": "sms",
                "createdAt": "2017-07-31T07:03:31.685Z",
                "sentAt": "2017-07-31T07:04:52.312Z",
                "status": "completed",
                "isAutomatic": true,
                "reservationId": "5976e738739d2d0f008fe0d8",
                "by": "Us",
                "sms": {
                    "from": "447520619995",
                    "to": [
                        "353858767622"
                    ],
                    "body": "Hey just making sure you got this SMS"
                }
            }
        ]
    }
    
    Attribute Type Description
    _id String Unique id
    accountId ObjectId(Account)
    integrationId String Unique id
    guestId String Unique id
    pendingTasks [pendingTasks] (see below)
    thread [thread] (see below)
    assignee String Unique id
    isRead Boolean
    isStarred Boolean
    readLog [readLog]
    createdAt Date
    lastUpdatedAt Date

    The thread object

    {
        "thread": [
            {
                "module": "sms",
                "createdAt": "2017-07-31T07:03:31.685Z",
                "sentAt": "2017-07-31T07:04:52.312Z",
                "status": "completed",
                "isAutomatic": true,
                "reservationId": "5976e738739d2d0f008fe0d8",
                "by": "Us",
                "sms": {
                    "from": "447520619995",
                    "to": [
                        "353858767622"
                    ],
                    "body": "Hey just making sure you got this SMS"
                }
            }
        ]
    }
    
    Attribute Type Description
    _id String Unique id
    module Enum airbnb, email, sms, rentalsUnited, note
    createdAt Date
    sentAt Date
    shouldBeSentAt Date
    status enum pending, completed, error
    error String
    isAutomatic Boolean
    reservationId ObjectId (Reservation)
    sms Object (see below)
    email Object (see below)
    airbnb Object (see below)
    note Object (see below)

    The email object

    {
        "email": {
            "from": "BnbAir <example@user.guesty.com>",
            "to": [
                "example@gmail.com"
            ],
            "subject": "This is the subject",
            "body": "This is the body"
        }
    }
    
    Attribute Type Description
    from String
    to Array (String)
    cc Array (String) Array of emails to send this email in cc
    bcc Array (String) Array of emails to send this email in bcc
    subject String Subject line for the email
    body String Text of message, html format
    attachments Array of attachments

    The sms object

    {
        "sms": {
            "from": "447520619995",
            "to": [
                "353858767622"
            ],
            "body": "Hey just making sure you got this SMS"
        }
    }
    
    Attribute Type Description
    from String Source phone
    to Array (String) Phone targets
    body String Text of message, plain format

    The airbnb object

    {
        "airbnb": {
            "body": "Hey Host,\n\nOwer trip was perfect!"
        }
    }
    
    Attribute Type Description
    body String Text of message, plain format

    The note object

    {
        "note": {
            "body": "this is a note"
        }
    }
    
    Attribute Type Description
    body String Text of message, plain format

    The readLog object

    {
        "readLog": [
            {
                "by": "587b8283fc6b2610000f9b39",
                "_id": "587c94ac66e78f10003ebff3",
                "at": "2017-01-16T09:38:52.237Z"
            }
        ]
    }
    
    Attribute Type Description
    _id String Unique id
    by ObjectId (User) Unique Id
    at Date String

    List all conversations

    {
        "results": [
            {
                "_id": "59664e2a41e0311000598518",
                "createdAt": "2017-07-12T16:28:26.613Z",
                "lastUpdatedAt": "2017-07-12T16:28:45.381Z",
                "isRead": false,
                "readLog": [],
                "pendingTasks": [],
                "accountId": "563e0b6a08a2710e00057b82",
                "integrationId": "5784a3cc64ce9c0e00ecaf1e",
                "thread": [
                    {
                        "module": "email",
                        "createdAt": "2017-07-12T16:28:45.381Z",
                        "sentAt": "2017-07-12T16:28:48.095Z",
                        "status": "completed",
                        "by": "Us",
                        "email": {
                            "from": "BnbAir <orisee88126@user.guesty.com>",
                            "to": [
                                "sheliami@guesty.com"
                            ],
                            "subject": "Hey",
                            "body": "<p>This is a testy</p>\n"
                        }
                    }
                ]
            }
        ],
        "count": 1,
        "fields": "",
        "limit": 10,
        "skip": 0
    }
    

    HTTP Request

    GET /inbox/conversations

    Query Parameters

    Parameter Default Description Example
    accountId --- Optional with admin token, Unavailable with user token. 531968414930a7f09b075800
    guestId null Filter by specific guest 531968414930a7f09b075800
    reservationId null Filter by specific reservation 531968414930a7f09b075800
    fields null Selection of fields, separated by space thread
    sort createdAt; completedAt in completed mode Sorting lastUpdatedAt
    limit 25 Pagination, max: 100 25
    skip 0 Pagination 0

    Response

    Conversation objects.

    Retrieve a conversation

    {
        "_id": "59229452b4380d1000d52090",
        "createdAt": "2017-05-22T07:33:38.973Z",
        "lastUpdatedAt": "2017-06-04T13:39:21.395Z",
        "isRead": true,
        "assignee": "5803d02f7f2b400f00f0d471",
        "readLog": [
            {
                "by": "591c23fddbb50f1000fa17ff",
                "_id": "595a0595a8ec43100042dd70",
                "at": "2017-07-03T08:51:33.326Z"
            }
        ],
        "pendingTasks": [],
        "accountId": "563e0b6a08a2710e00057b82",
        "integrationId": "5784a3cc64ce9c0e00ecaf1e",
        "thread": [
            {
                "module": "note",
                "createdAt": "2017-06-04T13:39:21.395Z",
                "by": "Us",
                "note": {
                    "body": "Requested a wake up call @12"
                }
            }
        ]
    }
    

    HTTP Request

    GET /inbox/conversations/:id

    Query Parameters

    Parameter Default Description Example
    fields null Selection of fields, separated by space. When null retrieve the main properties of the object. We recommend always specifying the specific fields you'd like to receive to ensure that you get them. Please see the full list above. "thread"

    Response

    Conversation object.

    Post a new message to conversation

    Response

    {
        "_id": "5919be619e2b4210006f5ef7",
        "createdAt": "2017-05-15T14:42:41.435Z",
        "lastUpdatedAt": "2017-09-13T15:23:39.342Z",
        "isStarred": true,
        "isRead": true,
        "assignee": "580c817ed4b70d0f00dcf6f6",
        "readLog": [
            {
                "by": "580c817ed4b70d0f00dcf6f6",
                "_id": "599d33837bd4aa0f0015218e",
                "at": "2017-08-23T07:49:23.990Z"
            }
        ],
        "pendingTasks": [],
        "accountId": "563e0b6a08a2710e00057b82",
        "integrationId": "5784a3cc64ce9c0e00ecaf1e",
        "thread": [
            {
                "module": "sms",
                "createdAt": "2017-09-13T15:23:39.342Z",
                "status": "pending",
                "by": "Us",
                "sms": {
                    "from": "447520619995",
                    "to": [
                        "972502938411"
                    ],
                    "body": "HEY!"
                }
            },
            {
                "module": "sms",
                "createdAt": "2017-09-11T20:42:23.166Z",
                "sentAt": "2017-09-11T20:42:24.956Z",
                "status": "completed",
                "by": "Us",
                "sms": {
                    "from": "447520619995",
                    "to": [
                        "972502938411"
                    ],
                    "body": "alsie"
                }
            }
        ]
    }
    

    HTTP Request

    POST /inbox/conversations

    Body

    Parameter Default
    conversationId Required
    module Required
    email Required for email module
    sms Required for sms module

    Example

    Body

    {"conversationId":"5919be619e2b4210006f5ef7","module":"sms","email":{},"sms":{"body":"HEY!"}}

    Response

    The created object.

    Invoices

    Invoice object

    Attribute Type Description
    _id String Unique id
    accountId String Id of the user owning this invoice
    methodId String Id of the payment method.
    method Enum Can be any supported payment method, currently only stripe. (It is here to make it permanent as method can be deleted)
    methodText String Representable name of the payment method. e.g. "Visa 7243" (It is here to make it permanent as method can be deleted)
    status Enum Can be succeeded or failed or fully-refunded.
    amount Number The amount paid
    currency Enum Any supported currency.
    creditApplied Number The amount of credit that was used in this invoice.
    description String Text describing the invoice.
    createdAt Date The date this invoice was created.
    refundedAt Date The date this invoice was last refunded, even partially.
    refundedAmount Number The amount this invoice has been refunded.
    receiptExtraContent String Text to add to the receipt, usually defaulted to payment method. (It is here to make it permanent.)
    error String If there has been an error (status is failed) this is its description
    stripe Object An external object with details of this transaction.
    refundedBy String
    refundedReason String

    List invoices

    {
        "count": 1,
        "limit": 25,
        "skip": 0,
        "results": [
            {
                "_id": "595a632a420d0d04002682b9",
                "accountId": "563e0b6a08a2710e00057b82",
                "amount": 70,
                "currency": "USD",
                "createdAt": "2017-07-03T15:30:50.164Z",
                "__v": 0,
                "creditApplied": 2,
                "status": "succeeded"
            }
        ]
    

    HTTP Request

    GET /billing/invoices

    Query Parameters

    Parameter Default Description Example
    accountId null for admin token, connected account for user token with admin token, Unavailable with user token. 531968414930a7f09b075800
    methodId null Limit results to specific payment methods. Can send an array. 531968414930a7f09b075800
    include_failed true Boolean true
    fields null Selection of fields, separated by space amount createdAt
    sort -createdAt Field to sort by. Prepend - for DESC. createdAt
    limit 25 Pagination, max: 100 25
    skip 0 Pagination 0

    Response

    Invoice objects

    Upcoming invoice

    {
        "accountId": "563e0b6a08a2710e00057b82",
        "status": "upcoming",
        "amount": 28,
        "items": {
            "count": 1,
            "limit": 25,
            "skip": 0,
            "results": [
                {
                    "components": [
                        {
                            "name": "SOFTWARE",
                            "planType": "RESERVATION_COMMISSION",
                            "value": 1.5,
                            "isLocked": true,
                            "_id": "588e042f8b66181000065dec",
                            "amount": 28
                        }
                    ],
                    "isMinimumFee": false,
                    "planType": "RESERVATION_COMMISSION",
                    "confirmationCode": "MEQKll3",
                    "source": "Manual",
                    "checkIn": "2017-06-26",
                    "listing": {
                        "_id": "59213fbca3af9e1000228c09",
                        "nickname": "Nadav Test Listing",
                        "title": "Nadav's Best Awesome Listing"
                    },
                    "reservationId": "593903b35487aa1000944c85"
                }
            ]
        },
        "currency": "USD"
    }
    

    HTTP Request

    GET /billing/invoices/upcoming

    Used to get the customer upcoming invoices for each of his payment methods It is a little different since it is not really an invoice object yet. Invoices are created only upon payment. Also unlike invoices/list, each invoice also has its invoice items. Pagination is also available.

    Query Parameters

    Parameter Default Description Example
    methodId --- Required Limit results to the invoice of specific payment method. null for unassociated method's invoice (in case there is no payment method). 531968414930a7f09b075800
    limit 10 Pagination for invoice items 10
    skip 0 Pagination for invoice items 0

    Response

    List of invoice-like objects, where each item is a different payment method. status is pending. Not included fields are creditApplied, createdAt, paidAt, refundedAt, refundedAmount, receiptExtraContent, error, stripe.

    The items object

    Attribute Type Description
    count Number Total count of results
    skips Number Amount of results to skip
    limit Number Maximum number of invoice items to include in this object, always 10. For more, use invoice items.list
    results Array Array of invoice item objects

    Download invoices receipts as pdf

    HTTP Request

    POST /billing/invoices/download.pdf

    Body

    Parameter Default Description Example
    invoiceId --- Required What invoices to download. Can send an array. 531968414930a7f09b075800

    Response

    PDF file of receipts (use pages for multiple receipts) with download headers.

    Email invoices

    HTTP Request

    POST /billing/invoices/email

    Sends an email with attached receipt PDF file of receipts (use pages for multiple receipts).

    Query Parameters

    Parameter Default Description Example
    invoiceId --- Required What invoices to download. Can send an array. 531968414930a7f09b075800
    recipient --- Required The email of the recipient. Format Name <email>. Koby <koby@guesty.com>
    message `` A message to be included in the email. See attached receipt

    Response

    OK

    Retrieve an invoice

    {
        "_id": "595a632a420d0d04002682b9",
        "accountId": "563e0b6a08a2710e00057b82",
        "amount": 0,
        "currency": "USD",
        "createdAt": "2017-07-03T15:30:50.164Z",
        "__v": 0,
        "creditApplied": 2,
        "status": "succeeded"
    }
    

    HTTP Request

    GET /billing/invoices/:id

    Query Parameters

    Parameter Default Description Example
    fields null Selection of fields, separated by space "amount currency"

    Response

    Invoice object

    Update an invoice

    HTTP Request

    PUT /billing/invoices/:id

    Body Parameters

    Parameter Default Description Example
    receiptExtraContent --- Update the extra content that is added to the receipt. Guesty Inc.
    refundedAmount --- Used to refund a receipt. This is the amount to refund now. Maximum is the amount-(current)refundedAmount. 20
    logExtraContent --- Text that will be added to the update action. For instance, refund reason. Refund - Unsatisfied

    Response

    Updated invoice object

    Invoice Items

    Invoice item object

    {
        "_id": "586395fd5e88fb10000ceaa2",
        "accountId": "563e0b6a08a2710e00057b82",
        "reservationId": "586395fd5e88fb10000cea9f",
        "amount": 0,
        "currency": "USD",
        "description": "Booking fee - Free - OZVnoAB - Luxury House Near the City - Koby",
        "isOurFee": true,
        "shouldBePaidAt": "2017-01-28T14:32:10.215Z",
        "createdAt": "2016-12-28T10:37:49.524Z",
        "__v": 0,
        "components": [],
        "paidAt": "2017-06-12T15:31:04.364Z",
        "invoiceId": "593eb3b83e1b3d040060d084"
    }
    
    Attribute Type Description
    _id String Unique id
    accountId String Id of the user owning this invoice.
    reservationId String Id of the booking associated to this invoice item.
    invoiceId String Id of the invoice this item was liked to.
    createdAt Date The date this invoice was created.
    amount Number The amount of this charge.
    currency Enum Any supported currency.
    description String Text describing the invoice item.
    shouldBePaidAt Date The expected date of payment.
    paidAt Date The date this invoice was paid.
    isOurFee Boolean Whether it is Guesty fee.

    List invoice items

    {
        "count": 1,
        "limit": 10,
        "skip": 0,
        "results": [
            {
                "_id": "586395fd5e88fb10000ceaa2",
                "accountId": "563e0b6a08a2710e00057b82",
                "reservationId": "586395fd5e88fb10000cea9f",
                "amount": 0,
                "currency": "USD",
                "description": "Booking fee - Free - OZVnoAB - Luxury House Near the City - Koby",
                "isOurFee": true,
                "shouldBePaidAt": "2017-01-28T14:32:10.215Z",
                "createdAt": "2016-12-28T10:37:49.524Z",
                "__v": 0,
                "components": [],
                "paidAt": "2017-06-12T15:31:04.364Z",
                "invoiceId": "593eb3b83e1b3d040060d084"
            }
        ]
    }
    

    HTTP Request

    GET /billing/invoice-items

    Query Parameters

    Parameter Default Description Example
    methodId --- Limit results to a specific payment method 531968414930a7f09b075800
    invoiceId --- Limit results to a specific invoice 531968414930a7f09b075800
    include_paid true Whether to filter fo just paid items
    include_unpaid true Whether to filter to just unpaid items
    fields null Selection of fields, separated by space "amount"
    limit 10 Pagination 10
    skip 0 Pagination 0

    At least one of accountId, methodId or invoiceId is required.

    Response

    Object of total count, pagination (limit, skip) and results as array of invoice item objects.

    Retrieve an invoice item

    {
        "_id": "586395fd5e88fb10000ceaa2",
        "accountId": "563e0b6a08a2710e00057b82",
        "reservationId": "586395fd5e88fb10000cea9f",
        "amount": 0,
        "currency": "USD",
        "description": "Booking fee - Free - OZVnoAB - Luxury House Near the City - Koby",
        "isOurFee": true,
        "shouldBePaidAt": "2017-01-28T14:32:10.215Z",
        "__v": 0,
        "paidAt": "2017-06-12T15:31:04.364Z",
        "invoiceId": "593eb3b83e1b3d040060d084",
        "components": [],
        "createdAt": "2016-12-28T10:37:49.524Z"
    }
    

    HTTP Request

    GET /billing/invoice-items/:id

    Query Parameters

    Parameter Default Description Example
    fields null Fields to select. If null, returns all amount currency

    Download invoice's invoice items as csv

    "Description","Amount","Currency","Paid at"
    "Booking fee - 2.5% - GYZyAN0 - RU test - nickname - June 15th, 2017","1","USD","Jun 19th, 2017"
    "Booking fee - 1.5% - gxLXmVr - Manual - Nadav  - June 12th, 2017","11","USD","Jun 12th, 2017"
    "Booking fee - 1.5% - nYrV2Mp - Manual - Manhattan 1 - June 15th, 2017","2","USD","Jun 19th, 2017"
    "Booking fee - 0% - MEQmRp5 - Manual - nickname - June 21st, 2017","0","USD","Jul 3rd, 2017"
    "Booking fee - 1.5% - B8L7l3J - website - Luxury 123 - June 12th, 2017","1","USD","Jun 19th, 2017"
    "Booking fee - 0% - KYZkn6l - Manual - nickname - June 27th, 2017","0","USD","Jun 19th, 2017"
    "Booking fee - 1.5% - 8o6vQvj - elads - Liat - July 1st, 2017","2","USD","Jul 3rd, 2017"
    
    

    Returns a list of all paid invoice items.

    HTTP Request

    POST /billing/invoice-items/download.csv

    Query Parameters

    Parameter Default Description Example
    accountId --- Limit to user. 531968414930a7f09b075800
    methodId --- Limit to payment method. 531968414930a7f09b075800
    invoiceId --- What invoices to download. Can send an array. 531968414930a7f09b075800

    At least one of these is required: accountId, methodId or invoiceId.

    Response

    CSV file with download headers. One CSV file for all items (No separate file for each invoice).

    CSV is a spreadsheet of invoice items (fields): description, amount, currency, paidAt

    No limit on rows count.

    Payment Methods

    Payment method object

    {
        "_id" : "58bfe8b91e5a1c10007922c7",
        "accountId" : "57e2f67cb1261e0f0054cafe",
        "method" : "STRIPE",
        "payload" : {
            "tokenization_method" : null,
            "name" : "EXAMPLE",
            "last4" : "EXAMPLE",
            "funding" : "credit",
            "fingerprint" : "EXAMPLE",
            "exp_year" : 2016,
            "exp_month" : 6,
            "dynamic_last4" : null,
            "cvc_check" : null,
            "customer" : "cus_AFXughdfugEXAMPLE",
            "country" : "ISR",
            "brand" : "American Express",
            "address_zip_check" : null,
            "address_zip" : null,
            "address_state" : null,
            "address_line2" : null,
            "address_line1_check" : null,
            "address_line1" : null,
            "address_country" : null,
            "address_city" : null,
            "object" : "card",
            "id" : "card_19v2pAASsdaEXAMPLE"
        },
        "last4" : "EXAMPLE",
        "brand" : "American Express",
        "createdAt" : "2017-03-08T11:19:21.185Z",
        "saveForFutureUse" : true,
    }
    
    Attribute Type Description
    _id String Unique id
    accountId ObjectId (String) Owner
    method Enum Can be any supported payment method (STRIPE, CASH etc.).
    payload payload Object (see below)
    saveForFutureUse Boolean
    createdAt Date
    last4 String
    brand String Visa, MasterCard, American Express etc.

    The payload object

    @See Stripe api docs for description

    Attribute Type
    id String
    object String
    last4 String
    brand String
    funding String
    exp_month Number
    exp_year Number
    country String
    name String
    address_line1 String
    address_line2 String
    address_city String
    address_state String
    address_zip String
    address_country String
    cvc_check String
    address_line1_check String
    address_zip_check String
    tokenization_method String
    dynamic_last4 String
    metadata Object
    customer String

    List all payment methods

    {
        "count": 1,
        "limit": 25,
        "skip": 0,
        "results": [
            {
                "_id" : "58bfe8b91e5a1c10007922c7",
                "accountId" : "57e2f67cb1261e0f0054cafe",
                "method" : "STRIPE",
                "payload" : {
                    "tokenization_method" : null,
                    "name" : "EXAMPLE",
                    "last4" : "EXAMPLE",
                    "funding" : "credit",
                    "fingerprint" : "EXAMPLE",
                    "exp_year" : 2016,
                    "exp_month" : 6,
                    "dynamic_last4" : null,
                    "cvc_check" : null,
                    "customer" : "cus_AFXughdfugEXAMPLE",
                    "country" : "ISR",
                    "brand" : "American Express",
                    "address_zip_check" : null,
                    "address_zip" : null,
                    "address_state" : null,
                    "address_line2" : null,
                    "address_line1_check" : null,
                    "address_line1" : null,
                    "address_country" : null,
                    "address_city" : null,
                    "object" : "card",
                    "id" : "card_19v2pAASsdaEXAMPLE"
                },
                "last4" : "EXAMPLE",
                "brand" : "American Express",
                "createdAt" : "2017-03-08T11:19:21.185Z",
                "saveForFutureUse" : true,
            }
        ]
    }
    

    HTTP Request

    GET /billing/payment-methods

    Query Parameters

    Parameter Default Description Example
    accountId null Limit to a specific user 531968414930a7f09b075800
    fields null Selection of fields, separated by space "listings"

    Response

    Payment method objects

    Add a payment method

    HTTP Request

    POST /billing/payment-methods

    Body Parameters

    Parameter Default Description Example
    method null Payment method enum. stripe
    listings null Array of listings ids in string format, that this payment method would be used for.
    receiptExtraContent null Text that will be added to each receipt
    sendReceiptsByEmail null Whether receipt should be sent out to customer.
    stripe Object For payments method of type stripe.

    stripe object

    @See Stripe api docs for description

    Parameter Default Description Example
    source --- Required card token returned from Stripe.js

    Response

    Payment method object.

    Retrieve a payment method

    HTTP Request

    GET /billing/payment-methods/:id

    Query Parameters

    Parameter Default Description Example
    fields null Selection of fields, separated by space "listings"

    Response

    Payment method object.

    Update a payment method

    HTTP Request

    PUT /billing/payment-methods/:id

    Body

    Parameter Default Description Example
    isDefault null Whether this payment method is the default. true
    listings null Strings of listing ids 531968414930a7f09b075800
    receiptExtraContent null Text that will be added to each receipt Guesty, Inc.
    sendReceiptsByEmail null Whether receipt should be sent out to customer. true
    stripe null Update to a payment method of type stripe

    stripe object

    @See Stripe api docs for description

    Body is applied to stripe directly.

    Response

    The updated payment method object.

    Remove a payment method

    HTTP Request

    DELETE /billing/payment-methods/:id

    Response

    OK

    Websites

    The website object

    {
        "_id": "59a43af221ca870f00f2a58a",
        "url": "example",
        "title": "TILTER",
        "domainName": "",
        "pic": "https://cdn.filepicker.io/api/file/gutVyCgTdmcK3uGHCsRI",
        "logo": "https://cdn.filepicker.io/api/file/A8dUZqkGRyiMdGp2xeoK",
        "maxGuests": 16,
        "color": "#6AC1FF",
        "accountId": "563e0b6a08a2710e00057b82",
        "guestyDomain": "example.guestybookings.com",
        "__v": 0,
        "companyInfo": {
            "name": "example website",
            "address": "",
            "email": "example@guesty.com",
            "phones": [
                {
                    "number": "+972504048705",
                    "type": "Mobile"
                }
            ]
        },
        "excludedListings": [],
        "includedListings": [
            "57e2476e58621d0f003eaac5"
        ],
        "defaultSort": "title",
        "sections": [
            {
                "index": 0,
                "name": "About",
                "type": "INFO",
                "_id": "59a43af221ca870f00f2a58d",
                "payload": {
                    "description": "This is the about description",
                    "title": "This is the about title"
                },
                "active": true
            },
            {
                "index": 1,
                "name": "Services",
                "type": "SERVICES",
                "payload": {
                    "items": [
                        {
                            "title": "Bath is a must, otherwise you stink",
                            "description": "",
                            "icon": {
                                "name": "bath",
                                "src": "assets/images/amenities/bath.svg",
                                "cleanName": "Bath"
                            }
                        },
                        {
                            "title": "Don't BBQ after the bath!",
                            "description": "",
                            "icon": {
                                "name": "bbq",
                                "src": "assets/images/amenities/bbq.svg",
                                "cleanName": "Bbq"
                            }
                        },
                        {
                            "title": "You can always break a chair on us if you're pissed!",
                            "description": "",
                            "icon": {
                                "name": "chair",
                                "src": "assets/images/amenities/chair.svg",
                                "cleanName": "Chair"
                            }
                        }
                    ],
                    "description": "This is the service description",
                    "title": "This is the service title"
                },
                "_id": "59a43af221ca870f00f2a58c",
                "active": true
            }
        ],
        "bookingType": "INQUIRY",
        "social": [
            {
                "url": "http://facebook.com/guesty",
                "type": "FACEBOOK",
                "_id": "59afe283fa62f80f00fdd7dd"
            }
        ],
        "defaultStatusForNewReservations": "inquiry",
        "active": true
    }
    
    Attribute Type Description
    _id String Unique Id
    accountId String Unique Id
    active Boolean
    url String
    domainName String
    defaultStatusForNewReservation Enum inquiry, reserved
    maxGuests Number Min: 1, Max: 16
    title String
    pic String
    logo String
    color String
    social [social] (see below)
    sections [sections] (see below)
    defaultSort Enum title, accommodates, bedrooms
    GA String
    includedListings [Sting]-(ObjectId) Array of the included listing Ids
    excludedListings [Sting]-(ObjectId) Array of the excluded listing Ids
    companyInfo [companyInfo] (see below)

    The sections object

    Attribute Type Description
    active Boolean
    index String Required
    name String Required
    type Enum SERVICE, INFO, CONTACT
    payload Object

    The social object

    Attribute Type Description
    type Enum YOUTUBE, FACEBOOK, INSTAGRAM, TWITTER
    url String

    The companyInfo object

    Attribute Type Description
    name String
    address String
    phones [phones]
    email String

    List websites

    [
        {
            "_id": "59a43af221ca870f00f2a58a",
            "url": "example",
            "title": "TILTER",
            "domainName": "",
            "pic": "https://cdn.filepicker.io/api/file/gutVyCgTdmcK3uGHCsRI",
            "logo": "https://cdn.filepicker.io/api/file/A8dUZqkGRyiMdGp2xeoK",
            "maxGuests": 16,
            "color": "#6AC1FF",
            "accountId": "563e0b6a08a2710e00057b82",
            "guestyDomain": "example.guestybookings.com",
            "__v": 0,
            "companyInfo": {
                "name": "example website",
                "address": "",
                "email": "example@guesty.com",
                "phones": [
                    {
                        "number": "+972504048705",
                        "type": "Mobile"
                    }
                ]
            },
            "excludedListings": [],
            "includedListings": [
                "57e2476e58621d0f003eaac5"
            ],
            "defaultSort": "title",
            "sections": [],
            "bookingType": "INQUIRY",
            "social": [
                {
                    "url": "http://facebook.com/guesty",
                    "type": "FACEBOOK",
                    "_id": "59afe283fa62f80f00fdd7dd"
                }
            ],
            "defaultStatusForNewReservations": "inquiry",
            "active": true
        }
    ]
    

    HTTP Request

    GET /websites/dashboard

    Query Parameters

    Parameter Default Description Example
    fields null Selection of fields, separated by space title createdAt
    sort -createdAt Field to sort by. Prepend - for DESC. createdAt
    limit 25 Pagination, max: 100 25
    skip 0 Pagination 0

    Response

    List of websites.

    Retrieve a website

    {
        "_id": "59a43af221ca870f00f2a58a",
        "url": "example",
        "title": "TILTER",
        "domainName": "",
        "pic": "https://cdn.filepicker.io/api/file/gutVyCgTdmcK3uGHCsRI",
        "logo": "https://cdn.filepicker.io/api/file/A8dUZqkGRyiMdGp2xeoK",
        "maxGuests": 16,
        "color": "#6AC1FF",
        "accountId": "563e0b6a08a2710e00057b82",
        "guestyDomain": "example.guestybookings.com",
        "__v": 0,
        "companyInfo": {
            "name": "example website",
            "address": "",
            "email": "example@guesty.com",
            "phones": [
                {
                    "number": "+972504048705",
                    "type": "Mobile"
                }
            ]
        },
        "excludedListings": [],
        "includedListings": [
            "57e2476e58621d0f003eaac5"
        ],
        "defaultSort": "title",
        "sections": [],
        "bookingType": "INQUIRY",
        "social": [
            {
                "url": "http://facebook.com/guesty",
                "type": "FACEBOOK",
                "_id": "59afe283fa62f80f00fdd7dd"
            }
        ],
        "defaultStatusForNewReservations": "inquiry",
        "active": true
    }
    

    HTTP Request

    GET /websites/dashboard/:id

    Query Parameters

    Parameter Default Description Example
    limit 10 Pagination for invoice items 10
    skip 0 Pagination for invoice items 0

    Response

    The requested website object

    Update a website

    HTTP Request

    PUT /websites/dashboard/:id

    Response

    The updated object with only the fields that were sent in body.

    Delete a website

    "OK"
    

    HTTP Request

    DELETE /websites/dashboard/:id

    Response

    OK

    WebHooks

    The Webhooks object

    Attribute Type Description
    _id String (Unique)
    url String
    accountId String (Unique)
    events [Enum] (See Guesty events)

    Guesty events

    List all account WebHooks

    HTTP Request

    GET /webhooks

    Authorization

    Requires

    Response

    An Array of WebHooks

    [
        {
            "_id": "595a7fc636f2491000b6b81a",
            "accountId": "55b9f9b5393dfe0e004b6c5d",
            "url": "https://www.hookurl.com",
            "__v": 0,
            "events": [
                "guest.updated",
                "listing.new",
                "listing.removed",
                "payments.failed",
                "reservation.new",
                "reservation.updated",
                "reservation.reviewed",
                "task.created",
                "task.updated"
            ]
        }
    ]
    

    Create a WebHook

    HTTP Request

    POST /webhooks

    Body

    Parameter Default
    url Required
    accountId Required
    events Required

    Response

    Status code of 201 created. Created WebHook Object, see List all account WebHooks

    Retrieve a WebHook

    HTTP Request

    GET /webhooks/:id

    Response

    An WebHook Object, see List all account WebHooks

    Update a WebHook

    HTTP Request

    PUT /webhooks/:id

    Body

    see Create a WebHooks

    Response

    Status code 204 if success

    Delete a WebHook

    HTTP Request

    DELETE /webhooks/:id

    Response

    Status code 204 if success

    Webhook Structure

    guest.created

    {
        "guest" : {
            "__v" : 0,
            "fullName" : "Example Guest",
            "firstName" : "Example",
            "lastName" : "Guest",
            "email" : "example@email.com",
            "accountId" : "563e0b6a08a2710e00057b82",
            "_id" : "59ccd0620de3881000b0f2e1",
            "paymentMethodIds" : [],
            "communicationMethods" : [
                "email"
            ],
            "airbnb" : {
                "id" : 1506594914760
            },
            "phones" : [],
            "emails" : [
                "example@email.com"
            ],
            "pictures" : [],
            "verifications" : []
        },
        "by" : "Someone from my team",
        "event" : "guest.created"
    }
    

    Body

    Attribute Type Description
    guest Object guest object - see The guest object
    by String
    event String guest.created

    guest.deleted

    {
        "guest":{
            "_id" : "59ccd0620de3881000b0f2e1",
            "fullName":"Example Guest",
            "firstName":"Example",
            "lastName":"Guest",
            "email":"example@email.com",
            "accountId":"563e0b6a08a2710e00057b82",
            "__v":0,
            "paymentMethodIds":[],
            "communicationMethods":[
                "email"
            ],
            "airbnb":{
                "id":1506594914760
            },
            "phones":[],
            "emails":[
                "example@email.com"
            ],
            "pictures":[],
            "verifications":[]
        },
        "by":"Someone from my team",
        "event":"guest.deleted"
    }
    

    Body

    Attribute Type Description
    guest Object guest object - see The guest object
    by String
    event String guest.deleted

    guest.updated

    {
        "guest":{
            "_id":"59ccd3d50de3881000b134c7",
            "fullName":"Example guest",
            "firstName":"Example",
            "lastName":"guest",
            "email":"this@updated.com",
            "accountId":"563e0b6a08a2710e00057b82",
            "__v":1,
            "paymentMethodIds":[],
            "communicationMethods":[
                "email"
            ],
            "airbnb":{
                "id":1506595797670
            },
            "phones":[],
            "emails":[
                "example@email.com",
                "this@updated.com"
            ],
            "pictures":[],
            "verifications":[]
        },
        "guestBefore":{
            "_id":"59ccd3d50de3881000b134c7",
            "fullName":"example guest",
            "firstName":"example",
            "lastName":"guest",
            "email":"example@email.com",
            "accountId":"563e0b6a08a2710e00057b82",
            "__v":0,
            "paymentMethodIds":[
            ],
            "communicationMethods":[
                "email"
            ],
            "airbnb":{
                "id":1506595797670
            },
            "phones":[],
            "emails":[
            "example@email.com"
            ],
            "pictures":[],
            "verifications":[]
        },
        "by":"Someone from my team",
        "event":"guest.updated"
    }
    

    Body

    Attribute Type Description
    guest Object Updated guest object - see The guest object
    guestBefore Object guest object (before the change)
    by String
    event String guest.updated

    listing.updated

    {
      "listing": {
        "title": "ExampleListing",
        "_id": "59d0c79a24c414500081aa6c",
        "accommodates": 2,
        "bedrooms": 1,
        "beds": 1,
        "bathrooms": 1,
        "defaultCheckInTime": "15:00",
        "defaultCheckOutTime": "10:00",
        "propertyType": "Apartment",
        "roomType": "Entire home/apt",
        "timezone": "Asia/Jerusalem",
        "accountId": "563e0b6a08a2710e00057b82",
        "__v": 1,
        "occupancyStats": [
    
        ],
        "preBooking": [
    
        ],
        "importedAt": "2017-10-01T10:46:50.307Z",
        "offeredServices": [
    
        ],
        "calendarRules": {
          "rentalPeriods": [
    
          ],
          "seasonalMinNights": [
    
          ],
          "defaultAvailability": "AVAILABLE"
        },
        "customFields": [
    
        ],
        "active": true,
        "receptionistsService": {
          "screening": {
            "checklist": [
    
            ]
          },
          "receptionDesk": {
            "atPhones": [
    
            ],
            "ittt": [
    
            ]
          }
        },
        "sales": {
          "salesService": {
            "atPhones": [
    
            ]
          }
        },
        "pms": {
          "active": true,
          "autoPayments": {
            "policy": [
    
            ]
          },
          "tasks": {
            "defaultTasks": [
    
            ]
          },
          "automation": {
            "autoPricing": {
              "rules": [
    
              ]
            },
            "autoReviews": {
              "templates": [
    
              ]
            },
            "calendarSmartRules": {
              "blockListings": [
    
              ]
            },
            "hooks": {
              "ignoredHooks": [
    
              ]
            },
            "answeringMachine": {
              "unconfirmedSubsequentMessage": {
                "delayInMinutes": 45
              },
              "unconfirmedFirstMessage": {
                "delayInMinutes": 55
              },
              "confirmedAfterCheckOut": {
                "delayInMinutes": 45
              },
              "confirmedDuringStay": {
                "delayInMinutes": 45
              },
              "confirmedDayOfCheckOut": {
                "delayInMinutes": 45
              },
              "confirmedDayOfCheckIn": {
                "delayInMinutes": 45
              },
              "confirmedBeforeCheckIn": {
                "delayInMinutes": 45
              }
            }
          }
        },
        "taxes": [
    
        ],
        "prices": {
          "currency": "EUR"
        },
        "terms": {
          "minNights": 1,
          "maxNights": 45
        },
        "amenitiesNotIncluded": [],
        "amenities": [],
        "pictures": [],
        "picture": {
          "thumbnail": "/modules/listings/img/default.png",
          "regular": "/modules/listings/img/default.png",
          "large": "/modules/listings/img/default.png"
        },
        "address": {
          "full": "Ha-Rishonim St 12, Ramat Gan, Israel",
          "street": "Ha-Rishonim Street 12",
          "city": "Ramat Gan",
          "country": "Israel",
          "lat": 32.0815079,
          "lng": 34.8034897
        },
        "listingRooms": [],
        "owners": [],
        "tags": [],
        "pendingTasks": [],
        "integrations": [],
        "lastUpdatedAt": "2017-10-01T10:50:59.599Z",
        "createdAt": "2017-10-01T10:46:50.305Z",
        "id": "59d0c79a24c414500081aa6c"
      },
      "event": "listing.updated"
    }
    

    Body

    Attribute Type Description
    listing Object The updated listing object
    event String listing.updated

    reservation.messageReceived

    {
      "reservationId": "59d0ba61b57d3b04004255e2",
      "conversation": {
        "_id": "59d0ba63b57d3b04004255fe",
        "accountId": "563e0b6a08a2710e00057b82",
        "guestId": "5967610932d1ee1000574c9c",
        "conversationWith": "Guest",
        "lastUpdatedAt": "2017-10-01T15:48:22.035Z",
        "subject": "Message about your reservation",
        "lastSyncedAt": "2017-10-01T14:28:06.834Z",
        "readLog": [
          {
            "by": "59d0c0dc101978100075bbd4",
            "_id": "59d0c13ecee2571000637413",
            "at": "2017-10-01T10:19:42.627Z"
          }
        ],
        "isRead": true,
        "language": "en",
        "thread": [
          {
            "module": "sms",
            "type": "fromGuest",
            "body": "I know",
            "from": "972504042351",
            "to": "447520619995",
            "_id": "59d10e46af06e3100095e261",
            "createdAt": "2017-10-01T15:48:22.035Z",
            "id": "59d10e46af06e3100095e261"
          },
          {
            "body": "Love you for booking with us!",
            "status": "completed",
            "reservationId": "59d0ba61b57d3b04004255e2",
            "module": "sms",
            "to": "972504042351",
            "from": "447520619995",
            "type": "fromHost",
            "_id": "59d0c8e186f2fd04003805d8",
            "sentAt": "2017-10-01T10:54:18.803Z",
            "createdAt": "2017-10-01T10:52:17.630Z",
            "id": "59d0c8e186f2fd04003805d8"
          },
          {
            "body": "you're the man!",
            "status": "completed",
            "reservationId": "59d0ba61b57d3b04004255e2",
            "module": "sms",
            "to": "972504042351",
            "from": "447520619995",
            "type": "fromHost",
            "_id": "59d0c8e086f2fd04003805d6",
            "sentAt": "2017-10-01T10:52:35.470Z",
            "createdAt": "2017-10-01T10:52:16.954Z",
            "id": "59d0c8e086f2fd04003805d6"
          }
        ],
        "createdAt": "2017-10-01T09:50:27.082Z",
        "pendingTasks": [
    
        ],
        "integration": {
          "platform": "rentalsUnited",
          "_id": "596b6f5aa6bd32100050be2a"
        },
        "id": "59d0ba63b57d3b04004255fe"
      },
      "message": {
        "module": "sms",
        "type": "fromGuest",
        "body": "I know",
        "createdAt": "2017-10-01T15:48:22.035Z",
        "from": "972504042351",
        "to": "447520619995"
      },
      "event": "reservation.messageReceived"
    }
    

    Body

    Attribute Type Description
    reservationId String (Unique) (If exists)
    conversation Object see The conversation object
    message Object see The thread object - thread
    event String reservation.messsageReceived

    reservation.messageSent

    {
      "reservationId": "59d0ba61b57d3b04004255e2",
      "conversation": {
        "_id": "59d0ba63b57d3b04004255fe",
        "accountId": "563e0b6a08a2710e00057b82",
        "guestId": "5967610932d1ee1000574c9c",
        "conversationWith": "Guest",
        "lastUpdatedAt": "2017-10-01T10:52:17.630Z",
        "subject": "Message about your reservation",
        "lastSyncedAt": "2017-10-01T10:19:42.975Z",
        "readLog": [
          {
            "by": "59d0c0dc101978100075bbd4",
            "_id": "59d0c13ecee2571000637413",
            "at": "2017-10-01T10:19:42.627Z"
          }
        ],
        "isRead": true,
        "language": "en",
        "thread": [
          {
            "body": "Love you for booking with us!",
            "status": "pending",
            "postId": "59d0c8e186f2fd04003805d7",
            "reservationId": "59d0ba61b57d3b04004255e2",
            "module": "sms",
            "to": "972504042351",
            "from": "447520619995",
            "type": "fromHost",
            "_id": "59d0c8e186f2fd04003805d8",
            "createdAt": "2017-10-01T10:52:17.630Z",
            "id": "59d0c8e186f2fd04003805d8"
          },
          {
            "sentAt": "2017-10-01T10:52:35.470Z",
            "body": "you're the man!",
            "status": "completed",
            "reservationId": "59d0ba61b57d3b04004255e2",
            "module": "sms",
            "to": "972504042351",
            "from": "447520619995",
            "type": "fromHost",
            "createdAt": "2017-10-01T10:52:16.954Z",
            "id": "59d0c8e086f2fd04003805d6"
          }
        ],
        "createdAt": "2017-10-01T09:50:27.082Z",
        "pendingTasks": [
    
        ],
        "integration": {
          "platform": "rentalsUnited",
          "_id": "596b6f5aa6bd32100050be2a"
        },
        "id": "59d0ba63b57d3b04004255fe"
      },
      "message": {
        "sentAt": "2017-10-01T10:52:35.470Z",
        "body": "you're the man!",
        "status": "completed",
        "reservationId": "59d0ba61b57d3b04004255e2",
        "module": "sms",
        "to": "972504042351",
        "from": "447520619995",
        "type": "fromHost",
        "createdAt": "2017-10-01T10:52:16.954Z",
        "id": "59d0c8e086f2fd04003805d6"
      },
      "event": "reservation.messageSent"
    }
    

    Body

    Attribute Type Description
    reservationId String (Unique) (If exists)
    conversation Object see The conversation object
    message Object see The thread object - thread
    event String reservation.messsageSent

    reservation.new

    {
      "reservation": {
        "__v": 0,
        "lastUpdatedAt": "2017-10-01T16:13:25.711Z",
        "status": "inquiry",
        "checkIn": "2017-10-04T12:00:00.000Z",
        "checkOut": "2017-10-08T07:00:00.000Z",
        "nightsCount": 4,
        "guestsCount": 2,
        "checkInDateLocalized": "2017-10-04",
        "checkOutDateLocalized": "2017-10-08",
        "guestId": "586147bfb2acb2100022cfaf",
        "listingId": "59ac245d27cb310f0017afe3",
        "accountId": "563e0b6a08a2710e00057b82",
        "source": "Manual",
        "isReturningGuest": true,
        "_id": "59d11425af06e3100095e9fe",
        "customFields": [],
        "confirmedPreBookings": [],
        "log": [],
        "pendingTasks": [],
        "review": {
          "shouldReview": true
        },
        "money": {
          "ownerRevenue": 3123.9,
          "commissionIncTax": 347.1,
          "commissionTax": 0,
          "commissionTaxPercentage": 0,
          "commission": 347.1,
          "commissionFormula": "net_income*0.1",
          "netIncome": 3471,
          "netIncomeFormula": "host_payout",
          "isFullyPaid": false,
          "balanceDue": 3471,
          "paymentsDue": 0,
          "totalPaid": 0,
          "totalRefunded": 0,
          "currency": "EUR",
          "fareAccommodation": 3436,
          "fareCleaning": 35,
          "hostPayout": 3471,
          "subTotalPrice": 3471,
          "hostPayoutUsd": 4101.842934040806,
          "autoPaymentsPolicy": [],
          "payments": [],
          "invoiceItems": [
            {
              "title": "Accommodation fare",
              "amount": 3436,
              "currency": "EUR",
              "isLocked": true,
              "_id": "59d11425af06e3100095e9ff"
            },
            {
              "title": "Cleaning fee",
              "amount": 35,
              "currency": "EUR",
              "isLocked": true,
              "_id": "59d11425af06e3100095ea00"
            }
          ]
        },
        "integration": {
          "_id": "5784a3cc64ce9c0e00ecaf1e",
          "platform": "manual",
          "limitations": {
            "availableStatuses": [
    
            ]
          }
        },
        "createdAt": "2017-10-01T16:13:25.699Z",
        "id": "59d11425af06e3100095e9fe"
      },
      "event": "reservation.new"
    }
    

    Body

    Attribute Type Description
    reservation Object The reservation object
    event String reservation.new

    reservation.updated

    {
      "reservation": {
        "_id": "59d0ba61b57d3b04004255e2",
        "lastUpdatedAt": "2017-10-01T15:57:25.426Z",
        "daysInAdvance": 29,
        "accountId": "563e0b6a08a2710e00057b82",
        "listingId": "59ac245d27cb310f0017afe3",
        "guestId": "5967610932d1ee1000574c9c",
        "status": "confirmed",
        "confirmationCode": "RU-rAwXPp",
        "checkInDateLocalized": "2017-10-30",
        "checkOutDateLocalized": "2017-10-31",
        "guestsCount": 2,
        "source": "Manual",
        "checkIn": "2017-10-30T13:00:00.000Z",
        "checkOut": "2017-10-31T08:00:00.000Z",
        "nightsCount": 1,
        "confirmedAt": "2017-10-01T09:50:25.372Z",
        "__v": 1,
        "customFields": [],
        "confirmedPreBookings": [],
        "log": [
          {
            "event": "Booking was confirmed successfully",
            "_id": "59d0ba61b57d3b04004255e4",
            "changes": [
    
            ],
            "at": "2017-10-01T09:50:25.499Z"
          }
        ],
        "pendingTasks": [],
        "review": {
          "shouldReview": true
        },
        "money": {
          "currency": "EUR",
          "hostPayout": 35,
          "guestTotalPrice": 1,
          "alreadyPaid": 0,
          "fareAccommodation": -34,
          "fareCleaning": 35,
          "ownerRevenue": 31.5,
          "commissionIncTax": 3.5,
          "commissionTax": 0,
          "commissionTaxPercentage": 0,
          "commission": 3.5,
          "commissionFormula": "net_income*0.1",
          "netIncome": 35,
          "netIncomeFormula": "host_payout",
          "isFullyPaid": false,
          "balanceDue": 35,
          "paymentsDue": 35,
          "totalPaid": 0,
          "totalRefunded": 0,
          "subTotalPrice": 35,
          "hostPayoutUsd": 1.1817467398561814,
          "autoPaymentsPolicy": [
            {
              "chargeType": "REST_OF_PAYMENT",
              "amount": 0,
              "useGuestCard": true,
              "_id": "59aebb10edad8d0f00d6954c",
              "scheduleTo": {
                "reservationEvent": "CHECK_OUT",
                "timeRelation": {
                  "relation": "AT",
                  "unit": "HOURS",
                  "amount": 1
                }
              }
            }
          ],
          "payments": [
            {
              "policyItemId": "59aebaf3edad8d0f00d68f55",
              "shouldBePaidAt": "2017-10-30T13:00:00.000Z",
              "currency": "EUR",
              "amount": 10.5,
              "paymentMethodId": "589894a91d756b9c47ce1e87",
              "_id": "59d0ba61b57d3b04004255e6",
              "receiptTargets": [],
              "attempts": [],
              "createdAt": "2017-10-01T09:50:25.783Z",
              "refunds": [],
              "status": "PENDING"
            },
            {
              "policyItemId": "59aebb10edad8d0f00d6954c",
              "shouldBePaidAt": "2017-10-31T08:00:00.000Z",
              "currency": "EUR",
              "amount": 24.5,
              "paymentMethodId": "589894a91d756b9c47ce1e87",
              "_id": "59d0ba61b57d3b04004255e5",
              "receiptTargets": [],
              "attempts": [],
              "createdAt": "2017-10-01T09:50:25.782Z",
              "refunds": [],
              "status": "PENDING"
            }
          ],
          "invoiceItems": [
            {
              "title": "Cleaning fee",
              "amount": 35,
              "currency": "EUR",
              "isLocked": true,
              "_id": "59d0ba61b57d3b04004255e3"
            }
          ]
        },
        "integration": {
          "_id": "596b6f5aa6bd32100050be2a",
          "platform": "rentalsUnited",
          "rentalsUnited": {
            "id": 134019397,
            "listingId": 1491473,
            "channelReservationId": null
          },
          "limitations": {
            "availableStatuses": [
    
            ]
          }
        },
        "createdAt": "2017-10-01T09:50:25.380Z",
        "id": "59d0ba61b57d3b04004255e2"
      },
      "reservationBefore": {
        "_id": "59d0ba61b57d3b04004255e2",
        "lastUpdatedAt": "2017-10-01T14:50:28.254Z",
        "daysInAdvance": 29,
        "accountId": "563e0b6a08a2710e00057b82",
        "listingId": "59ac245d27cb310f0017afe3",
        "guestId": "5967610932d1ee1000574c9c",
        "status": "confirmed",
        "confirmationCode": "RU-rAwXPp",
        "checkInDateLocalized": "2017-10-30",
        "checkOutDateLocalized": "2017-10-31",
        "guestsCount": 2,
        "source": "Manual",
        "checkIn": "2017-10-30T13:00:00.000Z",
        "checkOut": "2017-10-31T08:00:00.000Z",
        "nightsCount": 1,
        "confirmedAt": "2017-10-01T09:50:25.372Z",
        "customFields": [],
        "confirmedPreBookings": [],
        "log": [
          {
            "event": "Booking was confirmed successfully",
            "_id": "59d0ba61b57d3b04004255e4",
            "changes": [
    
            ],
            "at": "2017-10-01T09:50:25.499Z"
          }
        ],
        "pendingTasks": [],
        "review": {
          "shouldReview": true
        },
        "money": {
          "currency": "EUR",
          "hostPayout": 35,
          "guestTotalPrice": 1,
          "alreadyPaid": 0,
          "fareAccommodation": -34,
          "fareCleaning": 35,
          "ownerRevenue": 31.5,
          "commissionIncTax": 3.5,
          "commissionTax": 0,
          "commissionTaxPercentage": 0,
          "commission": 3.5,
          "commissionFormula": "net_income*0.1",
          "netIncome": 35,
          "netIncomeFormula": "host_payout",
          "isFullyPaid": false,
          "balanceDue": 35,
          "paymentsDue": 35,
          "totalPaid": 0,
          "totalRefunded": 0,
          "subTotalPrice": 35,
          "hostPayoutUsd": 1.1817467398561814,
          "autoPaymentsPolicy": [
            {
              "chargeType": "REST_OF_PAYMENT",
              "amount": 0,
              "useGuestCard": true,
              "_id": "59aebb10edad8d0f00d6954c",
              "scheduleTo": {
                "reservationEvent": "CHECK_OUT",
                "timeRelation": {
                  "relation": "AT",
                  "unit": "HOURS",
                  "amount": 1
                }
              }
            }
          ],
          "payments": [
            {
              "policyItemId": "59aebaf3edad8d0f00d68f55",
              "shouldBePaidAt": "2017-10-30T13:00:00.000Z",
              "currency": "EUR",
              "amount": 10.5,
              "paymentMethodId": "589894a91d756b9c47ce1e87",
              "_id": "59d0ba61b57d3b04004255e6",
              "receiptTargets": [
    
              ],
              "attempts": [],
              "createdAt": "2017-10-01T09:50:25.783Z",
              "refunds": [],
              "status": "PENDING"
            },
            {
              "policyItemId": "59aebb10edad8d0f00d6954c",
              "shouldBePaidAt": "2017-10-31T08:00:00.000Z",
              "currency": "EUR",
              "amount": 24.5,
              "paymentMethodId": "589894a91d756b9c47ce1e87",
              "_id": "59d0ba61b57d3b04004255e5",
              "receiptTargets": [],
              "attempts": [],
              "createdAt": "2017-10-01T09:50:25.782Z",
              "refunds": [],
              "status": "PENDING"
            }
          ],
          "invoiceItems": [
            {
              "title": "Cleaning fee",
              "amount": 35,
              "currency": "EUR",
              "isLocked": true,
              "_id": "59d0ba61b57d3b04004255e3"
            }
          ]
        },
        "integration": {
          "_id": "596b6f5aa6bd32100050be2a",
          "platform": "rentalsUnited",
          "rentalsUnited": {
            "id": 134019397,
            "listingId": 1491473,
            "channelReservationId": null
          },
          "limitations": {
            "availableStatuses": [
    
            ]
          }
        },
        "createdAt": "2017-10-01T09:50:25.380Z",
        "id": "59d0ba61b57d3b04004255e2"
      },
      "event": "reservation.updated"
    }
    

    Body

    Attribute Type Description
    reservation Object The original reservation object
    reservationBefore Object The updated reservation object
    event String reservation.updated

    task.created

    {
        "task":{
            "__v":0,
            "plannedDuration":2,
            "title":"example task",
            "accountId":"563e0b6a08a2710e00057b82",
            "createdBy":"57d189e89528720f00e5c2fa",
            "_id":"59ccd5b70de3881000b15788",
            "log":[],
            "editedFields":[],
            "checklistFinished":[],
            "comments":[],
            "createdAt":"2017-09-28T10:57:59.776Z",
            "status":"pending",
            "tags":[],
            "afterEffects":[],
            "attachments":[],
            "checklist":[],
            "assigneeGroup":[]
        },
        "by":"elad_kremer via Roei Timor",
        "event":"task.created"
    }
    

    Body

    Attribute Type Description
    task Object task object - see The task object
    by String
    event String task.updated

    task.deleted

    
    {
        "task":{
            "_id":"59ccd5b70de3881000b15788",
            "plannedDuration":2,
            "title":"example task",
            "accountId":"563e0b6a08a2710e00057b82",
            "createdBy":"57d189e89528720f00e5c2fa",
            "__v":1,
            "endTime":"2017-09-28T12:00:00.000Z",
            "startTime":"2017-09-28T10:00:00.000Z",
            "log":[],
            "editedFields" : [
                "startTime"
            ],
            "checklistFinished":[],
            "comments":[],
            "createdAt" : "2017-09-28T10:57:59.776Z",
            "status" : "pending",
            "tags" : [],
            "afterEffects" : [],
            "attachments" : [],
            "checklist" : [],
            "assigneeGroup" : []
        },
        "by" : "Someone from my team",
        "event" : "task.deleted"
    }
    

    Body

    Attribute Type Description
    task Object task object - see The task object
    by String
    event String task.deleted

    task.updated

    
    {
        "task":{
            "endTime":"2017-09-28T12:00:00.000Z",
            "startTime":"2017-09-28T10:00:00.000Z",
            "_id":"59ccd5b70de3881000b15788",
            "plannedDuration":2,
            "title":"example task",
            "accountId":"563e0b6a08a2710e00057b82",
            "createdBy":"57d189e89528720f00e5c2fa",
            "__v":1,
            "log":[
                {
                    "event":"Task was created",
                    "by":"Someone from my team",
                    "_id":"59ccd5b70de3881000b15789",
                    "changes":[
                    ],
                    "at":"2017-09-28T10:57:59.816Z"
                }
            ],
            "editedFields":[
                "startTime"
            ],
            "checklistFinished":[],
            "comments":[],
            "createdAt":"2017-09-28T10:57:59.776Z",
            "status":"pending",
            "tags":[],
            "afterEffects":[],
            "attachments":[],
            "checklist":[],
            "assigneeGroup":[]
        },
        "taskBefore":{
            "_id":"59ccd5b70de3881000b15788",
            "plannedDuration":2,
            "title":"example task",
            "accountId":"563e0b6a08a2710e00057b82",
            "createdBy":"57d189e89528720f00e5c2fa",
            "__v":0,
            "log":[
                {
                "event":"Task was created",
                "by":"Someone from my team",
                "_id":"59ccd5b70de3881000b15789",
                "changes":[],
                "at":"2017-09-28T10:57:59.816Z"
                }
            ],
            "editedFields":[],
            "checklistFinished":[],
            "comments":[],
            "createdAt":"2017-09-28T10:57:59.776Z",
            "status":"pending",
            "tags":[],
            "afterEffects":[],
            "attachments":[],
            "checklist":[],
            "assigneeGroup":[]
        },
        "by":"Someone from my team",
        "event":"task.updated"
    }
    

    Body

    Attribute Type Description
    task Object Updated task object - see The task object
    taskBefore Object task object (before the change)
    by String
    event String task.updated

    Errors

    The Kittn API uses the following error codes:

    Error Code Meaning
    400 Bad Request -- Your request is invalid.
    401 Unauthorized -- Your API key is wrong.
    403 Forbidden -- The kitten requested is hidden for administrators only.
    404 Not Found -- The specified kitten could not be found.
    405 Method Not Allowed -- You tried to access a kitten with an invalid method.
    406 Not Acceptable -- You requested a format that isn't json.
    410 Gone -- The kitten requested has been removed from our servers.
    418 I'm a teapot.
    429 Too Many Requests -- You're requesting too many kittens! Slow down!
    500 Internal Server Error -- We had a problem with our server. Try again later.
    503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.