Latest Activity...
Breaking Change: Uncategorized webhooks are no longer sent to categorized subscriptions
Some changes do not fall under any specific Webhook category. Historically, we sent such changes to all webhook subscribers of the related entity_type, even if the subscription was explicitly for only some categories. With the release on July 9, 2025, this is no longer the case.
We will now include the category "other" on any webhook which does not have an explicit category. In addition, subscribers who specify a category in their subscription will not receive webhooks with uncategorized changes. To receive webhooks for uncategorized changes you must now create an subscription with no category filter which will receive all webhooks for an entity_type.
Example Payload:
{
"id": 12345,
"user_id": 56789,
"action": "entity_update",
"entity_type": "property",
"entity_id": 12345,
"categories": ["other"]
}
Patch 250416
GET v2/property/{id}
Patch 250521
GET v2/messages?thread_id={threadId}&since_utc={since_utc}&sinceUtc={sinceUtc}
Patch 250528
GET v2/bookings/{id}
New Property: Travel Insurance information on Bookings
[Change effective April 2, 2025]
The GET v2/bookings/{id}
endpoint and GET v2/bookings
endpoint now include a travel_insurance
property containing information about the availability of Travel Insurance for a specific booking.
Example:
"travel_insurance": { "can_purchase": true, "is_purchased": true, "purchase_url": "sample string 1" }
Hi Deb, thank you for writing in. Unfortunately, I don't believe you will be able to edit content within the widget iframe using JavaScript due to cross-origin restrictions. If you'd like to make a feature request for a separate property search URL from the public URL, you can do so by adding a post to our feature request forum.
Regarding the script here, I did not run into that error, but did have issues with a couple of other items. The first was that to use the url parameter in querySelector, backticks must be used instead of single quotes.const iframe = document.querySelector(`iframe[src^="${url}"]`);
The other issue is that to access the button in the iframe, it needs to be fetched from the iframe document. This would look something like the following:
const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
if (iframeDoc) {
const link = iframeDoc.querySelector('.btn.btn-default');
<your code>
Hi folks! I'm trying to update the href of the details button on the availability widget. I want to send it to a specific page when results come back and not to the page that is configured under the property URL. This is what I have so far
Hi, is there a way using javascript to update the link on the details button located in the availability widget? I have this so far:
const url = 'https://';
const iframe = document.querySelector('iframe[src^="${url}"]');
iframe.addEventListener('load', function() {
const link = document.getElementsByClassName('btn btn-default');
var txtQS = window.location.search;
var newURL='https://glencairnknoll.com/book-glencairn-knoll/' + txtQS;
link.setAttribute('href', newURL);
});
I'm getting this error in chrome: Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'.
Breaking Change: v1.1 Quotes Arrival and Departure dates should not include time values
[Change effective February 12, 2025]
This is a validation change to the legacy v1.1 API. Prior to this change, if a user submitted a Quote value to v1/quotes
containing Arrival and Departure dates that also included timestamps, we would not error but would attempt to store those time values. This caused problems downstream because Arrival and Departure are only intended to be timeless dates.
We have modified the PUT
, POST
, and TEST
verbs on v1/quotes
to validate that Arrival and Departure parameters do not include a timestamp. If a timestamp is included, a 400 error will be returned.
Patch 250212
GET v2/properties?include_fields=true
Hello developer community! Welcome to the API Bug Fix Log. This topic is dedicated to documenting bug fixes for the OwnerRez APIs. You may watch this topic if you are interested in being alerted about fixes that may impact your applications.
Happy coding!
Breaking Change: Required Field "currency" on SpotRates
[This change was announced on January 6, 2025 and goes into effect on March 1, 2025]
The PATCH v2/spotrates
endpoint now requires currency to be explicitly specified for each rate. With this update, every rate entry must include a 3-character currency specification.
Example:
{ "property_id": 123, "date": "yyyy-mm-dd", "amount": 123.00, "currency": "USD" }
This change ensures the currency provided matches the property's configured currency. The purpose of this change is to avoid mis-pricing issues caused by differences in configuration between the rate supplier and OwnerRez.
You may begin sending requests containing currency immediately, but validation will only be enforced starting on March 1.
From March 1, any patch requests to SpotRates that do not include a currency value will result in an error. Additionally, any patch requests that contain a currency value different from the property's configured currency in OwnerRez will result in an error.
Hello developer community! Welcome to the API Change Log. This topic is dedicated to important updates about the OwnerRez APIs. We recommend you watch this topic to be alerted about changes that may impact your applications.
Happy coding!
I am also very interested in this. I have mulitiple HA connected properties and mutiple OR properties. I am happy to help test. I am not a coder but have done Product Management and have done a lot of work in the intersection of Short-Term Rental and Home Automation.
Can each of you that replied give a brief update of the current status? Does it make sense to coordinate a zoom call to discuss?
Hi Brittany & Andrew- It looks like there is a script loading on your site that causes a delay before the widgets and some other elements start loading. You can try removing scripts/plugins on your site one at a time to see if you can narrow down the culprit. If you need additional assistance with this, feel free to reach out to our Helpdesk.
If you have any suggestions for the widget design, consider sharing those on our feature requests forum. We always appreciate constructive feedback that helps us improve the app.
Any way to get the Embedded Widget to load faster? My widgets are taking 3-5 seconds to load on the page. Unfortunately, with the way the widgets are built, it doesnt look like I have access to the full code for the widget.
Im considering going the API route and building my own form for the website (the widget UI is a bit dated), but curious if anyone has found any other solutions before I do that.
Using WordPress with Elementor if it helps!
Taxes are not currently available, but you can get a single Surcharge from the legacy API: https://app.ownerrez.com/help/api/get-api-surcharges-id-get We've not yet ported this endpoint to v2.
I see that in the v2.BookingChargeModel there are a surcharge_id and tax_id exposed, is there anywhere to get the complete list of surcharges and taxes defined for a user?
Use case is- continuing to plod along on a chunk of middleware that ties ownerrez into xero. Currently have ownerrez pushing guests (and updates) into xero, now eyeing up the invoice generation side of things and eyeing up how to map the ownerrez (individual taxes listed as line items applicable to the entire invoice) to xero (tax category per line item).
Thanks for the clarification- the way that article was worded led me to believe that site was specific to channel integrations but it's exactly what I'm looking for!
- Brendan
To test your integration, register for an OwnerRez account on our stage environment.
This document outlines the info:
https://www.ownerrez.com/support/articles/api-channel-integration-setup-configuration#sandbox
I'm currently writing a wrapper for the API in ruby (with the ultimate goal of building a service to sync guest info and invoices into Xero-- maybe payments too if those become accessible. Just curious if there is a sandbox API I can use to test against or if I have to do it against my personal account.
Duh. I just found the "since_utc" parameter in the API, which is exactly what I needed. Never mind....
Here's the problem: I pull booking data for a date range, let's say daily or weekly or monthly and put it into SQL
Then, someone gives a refund to a guest a few days after checkout. My data is now obsolete.
The only way to avoid this that I can see is to continually pull old data in case it's changed.
Ideally, each record would have a "last modified" timestamp (I suspect this might already be the case, but only internally). The API would allow me to specify a "modified since" parameter, and only return data modified since that date. Then, I can update my data.
This would reduce the load on both servers, and provide a better "API experience"
Tim
Yes, since by definition if you manually entered a booking, we don't really know where it came from. There has been discussion over the years about adding "manual" as its own listing site entry, but that's never seemed quite satisfactory either.
I also found a booking with NULL listing_site. When I looked in OR it was a manual quote and manual booking that I had made. Is this also expected?
Tim
Yes, this is normal. Bookings booked through your own website don't have a platform reservation number, because they weren't booked on a booking platform (Airbnb, Vrbo, etc.) - they were booked directly on your website. The relevant number for them is the ORB number that all bookings of every type have, which is in the id column.
When using the API to retrieve bookings, AirBNB and VRBO come in with a correct platform_reservation_number.
But bookings made through my personal website have no reservation number
Here is a screenshot of the data dumped into Excel
Hey Tim,
I've done a bit of work on this, but it got put on the shelf during the holidays. Would love to collaborate with you and anyone else looking for this type of integration!
Best, Paul
Hi Tim,
Thank you for the suggestions. I've passed those along to our product management team for consideration. Let us know if you think of any other response fields that you would like to see for any of the API endpoints and we can look into those as well.
I'm requesting that you add the following fields to the Bookings API:
total_rent
total_surcharges
total_taxes
total_channel_fees
Currently, the API only provides these:
total_amount
total_host_fees
total_paid
The problem with what you provide (from an investor/business standpoint) is that total_rent includes things like cleaning & taxes, which makes it useless for looking at profitability. This is made worse by the fact that some channels charge guests for taxes separately (AirBNB) and for some (VRBO) hosts collect and then remit them later, so it's impossible to predict how much of "total_amount" is actually income.
I realize that the API includes an array called "charges" which includes each line item charge, however this is very difficult to enumerate in code and tie to the parent record. It would be much easier to just include it in the base array along with the other totals.
Thank you for your consideration
I am also working on this! Are you currently collaborating with anyone else?
Tim
Same here - would love to help out!
I too am a big HomeAssitant user. I would love to collaborate on this.