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 and hopefully it can help with the migration to v2.

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, Yonder, 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?