Other Hostfully API help articles:

There are 2 versions of Hostfully APIs:

For clients & partners who already built the integration with Hostfully based on v1, we list below the difference between the 2 versions' endpoints and hopefully it can help with the migration to v2.

The main difference of all, is the permission service.

  • For v1, Property Managers (PMs) active once on agency level, and it will be applied for all of their properties.

  • For v2, PMs need to take an extra step, to explicitly activate the integration on the property level. Only the property toggle ON will be accessible to integration / channel partners.

    • If you are on v1, and need help migrating v2, (to prepare UI for property-level activation), please reach out to api@hostfully.com for further support.

If you have any question or suggestion on the Hostfully APIs, please reach out to our API Support team at api@hostfully.com.

Differences in endpoints:




  • /externalcalendars

It’s an endpoint that return property’s iCal configuration

  • /propertiesQL

GraphQL endpoint for fetching the properties data

  • /propertycalendar

Retrieve the property calendar for the provided property unique id.

  • /property-channel-links

Update channel links for a property. Supported channels: HomeToGo, Golightly, VacayMyWay, Homads

  • /propertyownership

Get owner uid from a property, assign / un-assign an owner with a property

  • /pricingrules

Retrieve pricing rules for a given property

  • /units

Returns information about master-sub units relation, and whether the master unit is bookable.





Work with Stripe API

Changes to contracts

  • /amenities/:uid

    • Amenities in the GET & POST response are changed to "has...". For example, "kitchen" is changed to "hasKitchen"

  • /bedtypes/

    • Added “couchCount” to GET response

    • Added POST PUT DELETE method

    • Endpoint is /bedtypes/ instead of /bedtypes/:uid

  • /customamenities/

    • GET response returns “uid” instead of “id”

    • POST response returns “propertyUid” instead of “id”

    • Added PUT method

    • DELETE Path Param requires “id” of custom amenity only. (used to require both “id” & “propertyUid”)

  • /customdata/

    • Added “customDatafield” to GET response. This contains :"agencyUid","uid","type","name", "variable"

  • /customdatafields/

    • GET Query Param only requires agencyUid

    • GET /customdatafields/:uid Get the custom data field associated to the provided unique id.

    • Added DELETE method

  • /customfees/

    • GET response removed “id” and added "airbnbType", "amount", "amountType", "bookingcomType", "hostfullyType", "type", "uid", "vrboType”

    • GET /customfees/:uid Get the specific custom fee by using the ID of the custom fee

    • POST Body Param added “hostfullyType”, “vrboType”, ”airbnbType”, ”bookingcomType”

    • PUT method added

    • DELETE Path Param requires “Uid” of the custom fee only. (used to require both custom fee “Id” and “propertyUid”)

  • /guests

    • Remove PUT POST DELETE method

  • /jobs/

    • “startTime” and “endTime” are changed to “startHour” and “endHour”.

    • Added “startMinute” and “endMinute”.

  • /leads

    • Added “riskScore”

    • Added “ownerUid” for OWNER BLOCK

    • GET Query Param removed “status”.

      • Removed below elements in response:

        • “agencyUid”, “ipaddress”, “quoteAmount”, “secondaryEmail”

        • “property”. (moved to /properties/:uid endpoint)

        • “stayDetail”: changed to “checkInDateTime” and “checkOutDateTime”.

    • POST and PUT

      • Body Param removed “agencyUid”, “referrer”, “extraNotes”, “cellphoneNumber”, “address1”, “address2”, “postalCode”, “securityDepositAmount”, “quoteAmount”

      • “arrivalTime” and “departureTime” are changed to “checkInDateTime” and “checkOutDateTime”

  • /localspots

    • “id” is changed to “uid”

    • Removed “note”

    • Added “propertyUid” in the response

  • /orders

    • GET Query Param now supports “leadUid”

    • Removed “transactions” (moved to /transactions/)

  • /owners

    • GET Path Param requires “agencyUid”

    • Add “css” and “uid” in the response

    • PUT Body Param no longer includes “email” and “password”

    • DELETE method removed

  • /pincodes/

    • GET Query Param removed “lockType”, and added “leadUid”

    • GET response:

      • Removed “id”, “propertyUid”, “userEmail”

      • Added “uid”

    • POST Body Param: removed “emailAddress”

  • GET /properties

    • The full resource isn’t returned, only the UID matching the query. If callee wishes to get additional data within the same query, they should consider using propertiesQL endpoint.

  • /properties/:uid

    • Moved:

      • “photos” moved to /photos

      • "externalCalendarUrls" moved to /externalcalendars

      • "descriptions" and "shortDescription" moved to /propertydescriptionsuid

      • “rules” & “rentalConditions” are removed

    • GET response” "createdDate" format changed from "2021-10-03 09:17:07.0" to epoch "1633252627000"

    • GET response added:

      • "bedCount"

      • "bedTypes": {}

      • "cancellationPolicy"

      • "guideBookUrl"

      • "homeAwayID"

      • "listingLinks": {}

      • "panoramicDataUrl"

      • "pricingRules"

      • "rentalCondition"

      • "rentalLicenseNumberExpirationDate"

    • POST /properties/:uid

      • Body Param now requires “address1”, “postalCode”, “countryCode”

      • Body Param now supports "percentUponReservation", "fullPaymentTiming"

  • /propertyrules

    • PUT & DELETE methods added

    • POST Body Param now requires "locale"

  • /quote

    • Path Param now requires "propertyUid"

    • Body Param now supports "checkAvailability"

  • /reviews

    • PUT & DELETE methods added

    • Added POST /reviewsbulk endpoint to support bulk submission

    • Response added: "agencyUid", "author", "leadUid", "source", "privateFeedback", "reviewResposnse", "ratingCategories"

  • /transactions

    • POST method added

    • Removed: "agencyID", "ID", "paymentLink"

    • Changed:

      • "transactionID" into "referenceTransactionID" in response

      • “id” to “uid” in Path Param

    • Added: "errorMessage", "notes", "status", "transactionFees"

  • /webhooks

    • Added:

      • NEW_BLOCKED_DATES event type to POST request

      • GET & POST response: "agencyUid", "webhookType", "callbackURL"

    • Changed: "id" into “uid” for GET response and DELETE request

Did this answer your question?