OwnerRez offers a powerful API for Channel Integration that allows you to become a first-class integrated "channel" (like Vrbo, Booking.com, Airbnb, etc) and promotes you equally with those guys inside of OwnerRez. Here are the steps you need to follow to build a channel integration for OwnerRez.
- Register and Enable the Sandbox
- Setup Requirements
- Postman
- Bash
- The Endpoints
- Recommended Polling Schedules and Webhooks
- Redirect URL Formats
- Reviews
- Enumerations
Register and Enable the Sandbox
To test your integration, register for an OwnerRez account on our stage environment and turn on the "HAXML Sandbox integration"
- To register, go to: https://appstage.ownerrez.com/join. Use a fake credit card that passes verification (e.g., 4111111111111111) to register. Our stage environment will not process real credit card numbers.
- To enable the Sandbox channel go to: https://appstage.ownerrez.com/settings/channels/edit?listingSiteType=HaXmlSandbox
Setup Requirements
For testing, you should the following:
root url
: https://faststage.ownerrez.comusername
: HaXmlSandboxkey
: please contact us for the password
In production, you should use https://fast.ownerrez.com as the root domain. We will issue you a unique username and key for your application to use in production.
Before we enable your integration in production, we will need the following:
- A logo you would like to use within OwnerRez to identify your business.
- Proof of PCI compliance.
- Written instructions to provide to property managers who wish to publish through your integration (This will appear on the instructions tab after the PM has enabled your channel)
Grab your advertiserExternalId
, listingExternalId
, and unitExternalId
for configuration and testing.
Here is a screenshot of where you can find the advertiserExternalId
:
Here is a screenshot showing the listingExternalId
and unitExternalId
:
Requests
You also must send a User-Agent header identifying yourself which should contain your app name, for example: User-Agent: My Awesome App/1.0
.
For example, given a token of at_foobarbaz
, you'd make a call like:
User-Agent: My Awesome App/1.0 Content-Type: application/xml GET https://fast.ownerrez.com/haapi/haxml/advertiserindex?type=HaXmlSandbox&key=contactus
Or in curl, you can set the Authorization header like this:
curl -A "My Awesome App/1.0" -i -X GET https://fast.ownerrez.com/haapi/haxml/advertiserindex?type=HaXmlSandbox&key=contactus -H "Content-Type: application/xml"
Postman
Environment Variables
The following documentation and configuration reference Postman. Here is an example OwnerRez.postman_environment.json
file for the staging environment -- copy this content, insert the key provided by the OwnerRez partner team, and save the file. You'll then be able to import it into Postman.
{ "id": "811baec5-d0cf-45ac-9179-26f941698622", "name": "OwnerRez", "values": [ { "key": "fastapi", "value": "https://faststage.ownerrez.com", "type": "default", "enabled": true }, { "key": "username", "value": "HaXmlSandbox", "type": "default", "enabled": true }, { "key": "key", "value": "your key", "type": "secret", "enabled": true } ], "_postman_variable_scope": "environment", "_postman_exported_at": "2022-08-09T15:58:48.113Z", "_postman_exported_using": "Postman/9.27.2" }
Import Postman Configuration
Using Postman Variables
Bash
Setup variables
ownerrez_api="<api>"
ownerrez_user="<username>"
ownerrez_key="<key>"
ownerrez_account_id="<account id>"
cURL Command for Fast Availability
curl --user ${ownerrez_user}:${ownerrez_key} --location --request POST "${ownerrez_api}/haapi/haolbjson/fastavailability" \
--header 'Content-Type: application/json' \
--data-raw '{
"requestVersion": "1.0",
"systemExternalId": "SystemUniqueId",
"advertiserExternalId": "ora7ccdcde3fx",
"listingExternalId": "orp5b2abax",
"dateRange": {
"arrivalDate": "2023-03-16",
"departureDate": "2023-03-22"
},
"adults": 2,
"units": [
{
"unitExternalId": "orp5b2abax"
}
]
}'
Add --silent | jq
to skip download progress messages and format the result in JSON.
The Endpoints
Example Postman
Example Bash cURL
curl --user ${ownerrez_user}:${ownerrez_key} --location --request GET "${ownerrez_api}/haapi/haxml/advertiserindex?type=${ownerrez_user}&key=${ownerrez_key}"
Add --silent | xmllint --format -
to the end to format in XML.
The advertisersContentIndex => /haapi/haxml/advertiserindex?type=your username
&key=your key
Postman with `advertiserAssignedId` Variable
Bash cURL with `advertiserAssignedId` Variable
Set advertiserAssignedId="<account id>"
curl --user ${ownerrez_user}:${ownerrez_key} --location --request GET "${ownerrez_api}/haapi/haxml/${advertiserAssignedId}/listingindex" --silent | xmllint --format -
- advertiserListingContentIndexUrl => /haapi/haxml/
advertiserAssignedId
/listingindex - advertiserListingContentIndexUrl => listingUrl => /haapi/haxml/
advertiserAssignedId
/listing/listingExternalId
- advertiserLodgingConfigurationContentIndexUrl => /haapi/haxml/
advertiserAssignedId
/lodgingconfigindex - advertiserLodgingRateContentIndexUrl => /haapi/haxml/
advertiserAssignedId
/lodgingrateindex - advertiserUnitAvailabilityContentIndexUrl => /haapi/haxml/
advertiserAssignedId
/availabilityindex
OLB (Real-Time Quotes & Bookings)
- Checking Live Availability => /haapi/haolbjson/fastavailability
- Creating Quotes => /haapi/haolb/quote?type=
your username
&key=your key
- Creating Bookings => /haapi/haolb/createbooking?type=
your username
&key=your key
- Booking Update Service => /haapi/haolb/
advertiserAssignedId
/bookingindex
Here are some examples of requests and response using cURL. Read below for how to use each of these three features.
Checking Live Availability
POST to /haapi/haolbjson/fastavailability with Basic Auth:
With body:
- Set
advertiserExternalId
to the 'ora' ID - The
unitExternalId
in units is the one used -- property 'orp' ID.listingExternalId
is not used.
{
"requestVersion": "1.0",
"systemExternalId": "SystemUniqueId",
"advertiserExternalId": "ora7ccdce70dx",
"listingExternalId": "orp5b914x",
"dateRange": {
"arrivalDate": "2019-03-16",
"departureDate": "2019-03-22"
},
"adults": 2,
"children": 2,
"pets": 5,
"units": [
{
"unitExternalId": "orp5b914x"
}
]
}
Response: success
{
"units": [
{
"unitExternalId": "orp5bae71d29x",
"available": true
}
]
}
Response: not available or other error with the detailed reason in errorCode
{
"units": [
{
"unitExternalId": "orp5bae71d29x",
"available": false,
"errorCode": "PETS_NOT_ALLOWED"
}
]
}
Creating Quotes
POST to /haapi/haolb/quote?type=your username
&key=your key
with Basic Auth:
With body:
- Set
advertiserExternalId
to the 'ora' ID - Set
unitExternalId
andlistingExternalId
to the property 'orp' ID trackingUuid
is your unique id and will be used later for debugging questions
Optional URL parameters:
- Set
createRedirectUrl
to 'true' and a live bookable quote will be created and return the redirect URL (quoteResponse/quoteResponseDetails/reservationRedirectUrl) for the guest to continue the reservation
<?xml version="1.0" encoding="UTF-8"?>
<quoteRequest>
<documentVersion>1.3</documentVersion>
<quoteRequestDetails>
<advertiserAssignedId>ora7c4bx</advertiserAssignedId>
<listingExternalId>orp5bae71d29x</listingExternalId>
<unitExternalId>orp5bae71d29x</unitExternalId>
<propertyUrl>stage.homeaway.com/vacation-rental/p3173184</propertyUrl>
<clientIPAddress>192.168.0.1</clientIPAddress>
<reservation>
<numberOfAdults>1</numberOfAdults>
<numberOfChildren>0</numberOfChildren>
<numberOfPets>0</numberOfPets>
<reservationDates>
<beginDate>2021-03-16</beginDate>
<endDate>2021-03-21</endDate>
</reservationDates>
<reservationOriginationDate>2020-08-21T09:30:47Z</reservationOriginationDate>
</reservation>
<trackingUuid>1f921919-716f-4f17-8a96-87649cabdc37</trackingUuid>
</quoteRequestDetails>
</quoteRequest>
Response: success
Notes:
- external ID's returned for order items must be passed through on the eventual booking request so the charges can match up correctly.
- You may see a
redirectAfterBookingUrl
element in the response if you passed the createRedirectUrl parameter. If provided, it will contain a live URL where the guest can be redirected to complete their booking.
<quoteResponse>
<documentVersion>1.4</documentVersion>
<quoteResponseDetails>
<locale>en_US</locale>
<orderList>
<order>
<currency>GBP</currency>
<orderItemList>
<orderItem>
<feeType>RENTAL</feeType>
<name>5 nights</name>
<preTaxAmount currency="GBP">1605.00</preTaxAmount>
<status>PENDING</status>
<taxRate>0.000000</taxRate>
<totalAmount currency="GBP">1605.00</totalAmount>
</orderItem>
<orderItem>
<externalId>ORSUR102511617</externalId>
<feeType>MISC</feeType>
<name>Cleaning fee based on £150.00 per stay</name>
<preTaxAmount currency="GBP">150.00</preTaxAmount>
<status>PENDING</status>
<taxRate>0.000000</taxRate>
<totalAmount currency="GBP">150.00</totalAmount>
</orderItem>
</orderItemList>
<paymentSchedule>
<acceptedPaymentForms />
<paymentScheduleItemList>
<paymentScheduleItem>
<amount currency="GBP">877.50</amount>
<description>Booking payment: 50%</description>
<dueDate>2020-08-21</dueDate>
<refundable>false</refundable>
</paymentScheduleItem>
<paymentScheduleItem>
<amount currency="GBP">877.50</amount>
<description>Second payment: 21 days before arrival</description>
<dueDate>2021-02-23</dueDate>
<refundable>false</refundable>
</paymentScheduleItem>
</paymentScheduleItemList>
</paymentSchedule>
<reservationCancellationPolicy>
<description>Relaxed</description>
</reservationCancellationPolicy>
</order>
</orderList>
<rentalAgreement>
<agreementText>RENTER AGREEMENT for {PNAME} and other lipsum</agreementText>
<externalId>ORAGG654095851</externalId>
</rentalAgreement>
</quoteResponseDetails>
</quoteResponse>
Response: error
<quoteResponse>
<documentVersion>1.4</documentVersion>
<errorList>
<error>
<errorType>PETS_NOT_ALLOWED</errorType>
<message>This property does not allow pets.</message>
</error>
</errorList>
</quoteResponse>
Send Booking Fees
To send information about booking fees, you can use the olbMeta/serviceFee element for guest service fee and/or commission/ownerFee element for owner commission.
Guest service fee example:
<olbMeta>
<serviceFee currency="USD">125.50</serviceFee>
</olbMeta>
Owner commission fee example:
<commission>
<ownerFee currency="USD">75.00</ownerFee>
</commission>
Creating Bookings
POST to /haapi/haolb/createbooking?type=your username
&key=your key
with Basic Auth:
With body:
- Set
advertiserExternalId
to the 'ora' ID - Set
unitExternalId
andlistingExternalId
to the property 'orp' ID trackingUuid
is your unique id and will be used later for debugging questionstravelerSource
is a attribution reference that will show to the IPM on the channel tab, or can be left blank- For US addresses, addressLine4 should be the two character state code
- To send information about booking fees, you can use the olbMeta/serviceFee element for guest service fee and/or commission/ownerFee element for owner commission, for example:
<commission>
These fees will be added to the booking in OwnerRez as guest service fees or host fees respectively, and each user can choose to create expenses for the host fees if they choose.
<ownerFee currency="USD">75.00</ownerFee>
</commission>
<olbMeta>
<serviceFee currency="USD">125.50</serviceFee>
</olbMeta> -
When sending orderItem elements that are not RENTAL type, make sure to include the
externalId
of the lodging rate element that sourced them so they can be mapped back to the correct item. This should start with ORSUR (for fees and discounts) or ORTAX:
Full body example:
<?xml version="1.0" encoding="UTF-8"?>
<bookingRequest>
<documentVersion>1.3</documentVersion>
<bookingRequestDetails>
<advertiserAssignedId>ora7c4bx</advertiserAssignedId>
<listingExternalId>orp5bae71d29x</listingExternalId>
<unitExternalId>orp5bae71d29x</unitExternalId>
<clientIPAddress>127.0.0.1</clientIPAddress>
<message>Please provide a crib.</message>
<inquirer locale="en_US">
<title>Ms.</title>
<firstName>Amy</firstName>
<lastName>Smith</lastName>
<emailAddress>amy@gmail.com</emailAddress>
<phoneNumber> 5125551212</phoneNumber>
<address rel="BILLING">
<addressLine1>10 Main Street</addressLine1>
<addressLine3>Austin</addressLine3>
<addressLine4>TX</addressLine4>
<country>US</country>
<postalCode>12345</postalCode>
</address>
</inquirer>
<commission>
<ownerFee currency="USD">75.00</ownerFee>
</commission>
<olbMeta>
<serviceFee currency="USD">125.50</serviceFee>
</olbMeta>
<reservation>
<numberOfAdults>2</numberOfAdults>
<numberOfChildren>0</numberOfChildren>
<numberOfPets>5</numberOfPets>
<reservationDates>
<beginDate>2021-03-16</beginDate>
<endDate>2021-03-21</endDate>
</reservationDates>
<reservationOriginationDate>2020-08-21T09:30:47Z</reservationOriginationDate>
</reservation>
<orderItemList>
<orderItem>
<feeType>RENTAL</feeType>
<name>5 nights</name>
<preTaxAmount currency="GBP">1605.00</preTaxAmount>
<status>PENDING</status>
<taxRate>0.000000</taxRate>
<totalAmount currency="GBP">1605.00</totalAmount>
</orderItem>
<orderItem>
<externalId>ORSUR102511617</externalId>
<feeType>MISC</feeType>
<name>Cleaning fee based on £150.00 per stay</name>
<preTaxAmount currency="GBP">150.00</preTaxAmount>
<status>PENDING</status>
<taxRate>0.000000</taxRate>
<totalAmount currency="GBP">150.00</totalAmount>
</orderItem>
</orderItemList>
<paymentScheduleItemList>
<paymentScheduleItem>
<amount currency="GBP">877.50</amount>
<dueDate>2020-08-21</dueDate>
</paymentScheduleItem>
<paymentScheduleItem>
<amount currency="GBP">877.50</amount>
<dueDate>2021-02-17</dueDate>
</paymentScheduleItem>
</paymentScheduleItemList>
<paymentForm>
<paymentCard>
<paymentFormType>CARD</paymentFormType>
<billingAddress rel="BILLING">
<addressLine1>10 Main Street</addressLine1>
<addressLine3>Austin</addressLine3>
<addressLine4>TX</addressLine4>
<country>US</country>
<postalCode>12345</postalCode>
</billingAddress>
<cvv>123</cvv>
<expiration>02/2020</expiration>
<nameOnCard>Amy Smith</nameOnCard>
<number>4111111111111111</number>
<paymentCardDescriptor>
<paymentFormType>CARD</paymentFormType>
<cardCode>VISA</cardCode>
<cardType>CREDIT</cardType>
</paymentCardDescriptor>
</paymentCard>
</paymentForm>
<trackingUuid>20c98eb5-b596-4e1a-b74d-a391e3fd2a93</trackingUuid>
<travelerSource>source sub site</travelerSource>
</bookingRequestDetails>
</bookingRequest>
Response: success
<bookingResponse>
<documentVersion>1.4</documentVersion>
<bookingResponseDetails>
<advertiserAssignedId>ora7c4bx</advertiserAssignedId>
<listingExternalId>orp5bae71d29x</listingExternalId>
<unitExternalId>orp5bae71d29x</unitExternalId>
<externalId>ORB272210</externalId>
<guestProfileExternalId>ORG33746</guestProfileExternalId>
<locale>en_US</locale>
<orderList>
<order>
<currency>GBP</currency>
<orderItemList>
<orderItem>
<feeType>RENTAL</feeType>
<name>Rent</name>
<preTaxAmount currency="GBP">1605.00</preTaxAmount>
<status>ACCEPTED</status>
<taxRate>0.000000</taxRate>
<totalAmount currency="GBP">1605.00</totalAmount>
</orderItem>
<orderItem>
<externalId>ORSUR102511617</externalId>
<feeType>MISC</feeType>
<name>Cleaning fee</name>
<preTaxAmount currency="GBP">150.00</preTaxAmount>
<status>ACCEPTED</status>
<taxRate>0.000000</taxRate>
<totalAmount currency="GBP">150.00</totalAmount>
</orderItem>
</orderItemList>
<paymentSchedule>
<acceptedPaymentForms />
<paymentScheduleItemList>
<paymentScheduleItem>
<amount currency="GBP">877.50</amount>
<dueDate>2020-08-21</dueDate>
<refundable>false</refundable>
</paymentScheduleItem>
<paymentScheduleItem>
<amount currency="GBP">877.50</amount>
<dueDate>2021-02-17</dueDate>
<refundable>false</refundable>
</paymentScheduleItem>
</paymentScheduleItemList>
</paymentSchedule>
<reservationCancellationPolicy>
<description>Relaxed</description>
</reservationCancellationPolicy>
</order>
</orderList>
<rentalAgreement>
<url>http://dev.orez.io/v1/l/7f8cae9ad6c54be6828cf832bb001ea0</url>
</rentalAgreement>
<reservationPaymentStatus>UNPAID</reservationPaymentStatus>
<reservation>
<numberOfAdults>2</numberOfAdults>
<numberOfChildren>0</numberOfChildren>
<numberOfPets>0</numberOfPets>
<reservationDates>
<beginDate>2021-03-16</beginDate>
<endDate>2021-03-21</endDate>
</reservationDates>
<checkinTime>15</checkinTime>
<checkoutTime>11</checkoutTime>
<reservationOriginationDate>2020-08-21T09:30:47Z</reservationOriginationDate>
</reservation>
<reservationStatus>CONFIRMED</reservationStatus>
</bookingResponseDetails>
</bookingResponse>
Response: error
<bookingResponse>
<documentVersion>1.4</documentVersion>
<errorList>
<error>
<errorType>PETS_NOT_ALLOWED</errorType>
<message>This property does not allow pets.</message>
</error>
</errorList>
</bookingResponse>
Booking Update Service
The Booking Update Service returns a list of bookings changed during a date range.
POST to /haapi/haolb/advertiserAssignedId
/bookingindex with Basic Auth:
With body:
- Set
assignedId
to the advertiser ID - Set
startDate
to the minimum change date to retrieve (UTC). endDate
is optional -- the maximum change date to retrieve (UTC).
NOTE: This is not a stay date filter but a change date filter -- it will return a list of bookings changed since the date you specify.
<?xml version="1.0" encoding="UTF-8"?>
<bookingContentIndexRequest>
<documentVersion>1.4</documentVersion>
<advertiser>
<assignedId>ora7c4bx</assignedId>
</advertiser>
<startDate>2020-01-01</startDate>
</bookingContentIndexRequest>
This will return a list of booking detail URLs. For each of those URLs, you can request a GET with Basic Auth, and that will return the detail. The booking status will be on the booking detail URL, which includes other information similar to the OLB booking response. The possible booking statuses are:
- UNCONFIRMED
- CONFIRMED
- CANCELLED_BY_OWNER
- CANCELLED_BY_TRAVELER
Recommended Polling Schedules and Webhooks
This API is generally designed around a polling process to collect updates. We recommend checking for updates a couple of times per day, but no more than that -- constant polling can be a large stress on both your systems and ours.
As you process, use the last changed dates at the index level to decide to go further. Keep track of the last changed dates each time you pull. If you pull an index and the last changed date has not changed, then skip processing for the detailed item because it hasn't changed.
Webhooks
We also optionally provide webhook updates for rates and availability. If you'd like us to send live updates for rates and availability, set up endpoints as described below and contact us to walk through the testing and enablement process.
To enable webhooks you need two things:
authorizationToken
This should be a secret value (password) generated by you and provided securely to your OwnerRez partnership contact. We will include it in every payload for your verification. We can, if you choose, include it in the auth header as a Bearer token. Please inform us if this is necessary.- Two endpoints: Rates, and Availability. When updates occur, we'll post an update with the shape described below. You should respond either with a success response or an error response which should contain one or more error messages which will be surfaced to users so they know why the failure occurred.
For your response, the following values are allowed:
action
- CREATED, UPDATED, NOOP, RECEIVEDstatus
- SUCCESS, ERRORerrorCode
- EXCEPTION, AUTHENTICATION, VALIDATION, EXTERNAL_API_EXCEPTION, INVALID_VERSION_EXCEPTION, CONFIGURATION_EXCEPTION, INTERNAL_SERVER_EXCEPTION
Rates Webhook
For rates, the body will be:
assignedSystemId
will always be "OWNER_REZ"authorizationToken
the same secret value provided by you for the Bearer token authadvertiserExternalId
will be the 'ora' IDunitExternalId
andlistingExternalId
will be the property 'orp' IDlodgingRate
will contain the same data you receive in the lodging rates feed
<lodgingRateUpdate>
<assignedSystemId>ACME-Channel</assignedSystemId>
<advertiserAssignedId>ora7c4bx</advertiserAssigned>
<authorizationToken>f6edb007-a941-4000-b138-f7a8adf9f9cf</authorizationToken>
<listingExternalId>orp5bae71d29x</listingExternalId>
<unitExternalId>orp5bae71d29x</unitExternalId>
<lodgingRate>...</lodgingRate>
</lodgingRateUpdate>
Response: success
<lodgingRateUpdateResponse>
<action>UPDATED</action>
<advertiserAssignedId>ora7c4bx</advertiserAssigned>
<listingExternalId>orp5bae71d29x</listingExternalId>
<status>SUCCESS</status>
<unitExternalId>orp5bae71d29x</unitExternalId>
</lodgingRateUpdateResponse>
Response: error
<lodgingRateUpdateResponse>
<action>RECEIVED</action>
<advertiserAssignedId>ora7c4bx</advertiserAssigned>
<errors>
<error>
<errorCode>EXCEPTION</errorCode>
<message>Failed to process...</message>
</error>
</error>
<listingExternalId>orp5bae71d29x</listingExternalId>
<status>ERROR</status>
<unitExternalId>orp5bae71d29x</unitExternalId>
</lodgingRateUpdateResponse>
Availability Webhook
For availability, the body will be:
assignedSystemId
will always be "OWNER_REZ"authorizationToken
the same secret value provided by you for the Bearer token authadvertiserExternalId
will be the 'ora' IDunitExternalId
andlistingExternalId
will be the property 'orp' IDunitAvailability
will contain the same data you receive in the unit availability feed
<unitAvailabilityUpdate>
<assignedSystemId>ACME-Channel</assignedSystemId>
<advertiserAssignedId>ora7c4bx</advertiserAssigned>
<authorizationToken>f6edb007-a941-4000-b138-f7a8adf9f9cf</authorizationToken>
<listingExternalId>orp5bae71d29x</listingExternalId>
<unitExternalId>orp5bae71d29x</unitExternalId>
<unitAvailability>...</unitAvailability>
</unitAvailabilityUpdate>
Response: success
<unitAvailabilityUpdateResponse>
<action>UPDATED</action>
<advertiserAssignedId>ora7c4bx</advertiserAssigned>
<listingExternalId>orp5bae71d29x</listingExternalId>
<status>SUCCESS</status>
<unitExternalId>orp5bae71d29x</unitExternalId>
</unitAvailabilityUpdateResponse>
Response: error
<unitAvailabilityUpdateResponse>
<action>RECEIVED</action>
<advertiserAssignedId>ora7c4bx</advertiserAssigned>
<errors>
<error>
<errorCode>EXCEPTION</errorCode>
<message>Failed to process...</message>
</error>
</error>
<listingExternalId>orp5bae71d29x</listingExternalId>
<status>ERROR</status>
<unitExternalId>orp5bae71d29x</unitExternalId>
</unitAvailabilityUpdateResponse>
Redirect URL formats
The redirect URL formats are used in our interface to allow users and our support staff to go directly to the listing page on your side, given the listing ID. That streamlines the support process and helps make sure there's not a wrong mapping. Here's an example from a different channel so you can see what I mean:
Clicking either of those links will take the user or support over to the listing page on the channel.
The items we need from your team are the following:
- How can a user directly link to a public listing page using the channel Listing Identifier? (e.g. https://www.mychannel.com/listing/1234567)
- How can a user directly link to a public listing page using the OwnerRez Listing Identifier? (e.g. https://www.mychannel.com/ownerrez/orp7a20440x)
Reviews
There's a review feed that's similar to the other feeds and it provides access to all guest entered reviews.
NOTE: Only reviews entered in the review form directly by a guest will be accessible in the review feed. Any reviews synced from other channels or imported/entered by the user will not show in the review feed.
To set up for testing reviews:
- Create or log into a stage/sandbox account that's integrated with the sandbox channel
- Create or access some test bookings in the account
- Go to the Reviews tab of each booking and use the Request from Guest button to access the guest form and enter a review as a guest.
Once you've added some test reviews, the advertiser and reviews will show in the following feeds:
- Advertiser Review Index (all that have opted in to reviews)
- Review Index (for a single advertiser)
- Detailed data for a single review
Enumerations
There are many enumerations (ie. reference values) that are used throughout these API support articles, particularly within the amenities, locations, and content areas. To understand these enumerations, read our list of types and enumerations support article.