Skip to content

Hostaway

Hostaway is a property management system (PMS) designed for vacation rental managers and hosts. It provides tools for managing listings, reservations, channels, and guest communications across multiple booking platforms.

To set up a Hostaway connection, you need to have an API access token generated through OAuth 2.0 client credentials authentication.

Set up a connection

Hostaway connections are defined using the following properties:

  • name: The name to identify this connection
  • api_key: Your Hostaway API access token (required)
yaml
connections:
  hostaway:
    - name: "my_hostaway"
      api_key: "your_access_token_here"

You can also use environment variables in your connections.yml by using the {{ env_var("ENV_VAR_NAME") }} syntax.

For example:

yaml
connections:
  hostaway:
    - name: "my_hostaway"
      api_key: "{{ env_var('HOSTAWAY_API_KEY') }}"

Getting Your API Access Token

Hostaway uses OAuth 2.0 client credentials for authentication. Follow these steps to obtain an API access token:

1. Get Your Credentials

First, you need your Hostaway account credentials:

  • client_id: Your Hostaway account ID
  • client_secret: Your API client secret (available in Hostaway settings)

2. Generate an Access Token

Use the following curl command to generate an access token:

bash
curl -X POST https://api.hostaway.com/v1/accessTokens \
  -H 'Cache-control: no-cache' \
  -H 'Content-type: application/x-www-form-urlencoded' \
  -d 'grant_type=client_credentials&client_id=YOUR_ACCOUNT_ID&client_secret=YOUR_CLIENT_SECRET&scope=general'

The response will contain an access token (JWT) that you'll use as your api_key in the connection configuration.

3. Revoking Access Tokens

To revoke an access token when it's no longer needed:

bash
curl -X DELETE 'https://api.hostaway.com/v1/accessTokens?token=YOUR_ACCESS_TOKEN' \
  -H 'Content-type: application/x-www-form-urlencoded'

Supported Data Assets

Hostaway assets will be ingested to your data warehouse as defined in the destination table.

AssetTable NameIncremental KeyDescription
ListingslistingslatestActivityOnProperty listings managed in Hostaway
Listing Fee Settingslisting_fee_settingsupdatedOnFee settings configured for each listing
Listing Pricing Settingslisting_pricing_settingsreplacePricing rules and settings for listings
Listing Agreementslisting_agreementsreplaceRental agreements associated with listings
Listing Calendarslisting_calendarsreplaceCalendar availability data for each listing
Cancellation Policiescancellation_policiesreplaceGeneral cancellation policies
Cancellation Policies Airbnbcancellation_policies_airbnbreplaceAirbnb-specific cancellation policies
Cancellation Policies Marriottcancellation_policies_marriottreplaceMarriott-specific cancellation policies
Cancellation Policies VRBOcancellation_policies_vrboreplaceVRBO-specific cancellation policies
ReservationsreservationsreplaceBooking reservations across all channels
Finance Fieldsfinance_fieldsreplaceFinancial data for each reservation
Reservation Payment Methodsreservation_payment_methodsreplaceAvailable payment methods for reservations
Reservation Rental Agreementsreservation_rental_agreementsreplaceRental agreements for specific reservations
ConversationsconversationsreplaceGuest communication threads
Message Templatesmessage_templatesreplacePre-configured message templates
Bed Typesbed_typesreplaceAvailable bed type configurations
Property Typesproperty_typesreplaceProperty type classifications
CountriescountriesreplaceSupported countries and their codes
Account Tax Settingsaccount_tax_settingsreplaceTax configuration for the account
User Groupsuser_groupsreplaceUser groups and permissions
Guest Payment Chargesguest_payment_chargesreplaceGuest payment transaction records
CouponscouponsreplaceDiscount coupons and promotional codes
Webhook Reservationswebhook_reservationsreplaceWebhook configurations for reservation events
TaskstasksreplaceTasks and to-dos within the system

Notes

  • Authentication: Hostaway uses OAuth 2.0 client credentials authentication. Access tokens are JWTs with configurable expiration times - manage them securely and rotate them as needed.
  • Incremental Loading: Only listings and listing_fee_settings support incremental loading. Use --interval-start and --interval-end parameters for these tables.
  • API Documentation: More details on the Hostaway API can be found in the official API documentation.
  • Rate Limits: Be aware of Hostaway API rate limits when ingesting large amounts of data.

Example pipeline

Here's an example of an asset ingesting data from Hostaway to a Snowflake table:

sql
/* @bruin

name: hostaway.listings
type: ingestr

@ingestr
source_connection: hostaway
source_table: listings

destination: snowflake

@end
*/

select * from {{ source() }}

The ingestr operator will automatically pull data from the listings endpoint of your Hostaway API and load it into your target data warehouse.