Channel update
Developers (API)REST API v1
POST /hotels/{hotel_id}/ota-update asks Effective Tours to send availability to the booking channels of a hotel for a date range. Use it after you change prices, or to force a resync of dates.
Write calls are real. The call reaches the connected channels. There is no sandbox.
What it does
The call only enqueues per-channel jobs. Whether a channel accepts the push is decided later and asynchronously, and it is not known when the call returns. The response does not contain a per-channel delivery result.
Only companies of type distributor or hotelier can call it, and the company needs access to the hotel: it owns the hotel, or it has read-book or full access. Read-only access is not enough.
Request body
start_date: first date to update. It must be today or later, and defaults to today if you omit it.end_date: optional. It must be afterstart_date.channel_id: optional. One ofagoda,booking,expedia,airbnb. If you omit it, all channels are updated.
curl -s -X POST "https://api.effectivetours.com/v1/hotels/{hotel_id}/ota-update" \
-H "Authorization: Bearer $ET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"start_date": "2027-03-15", "end_date": "2027-03-31", "channel_id": "booking"}'Response
success is always true for a well-formed request. The real outcome of the call is in ota_push:
sent: whether the update was handed over.status: the status of the receiving side,successorERROR, when sent.message: a message from the receiving side when there is one, for example "no active channels".reason: why nothing was sent:not_configured,http_error,timeoutorinvalid_response.note: says that per-channel delivery results are not available in this response.
Example response:
{
"success": true,
"ota_push": {
"sent": true,
"status": "success",
"message": null,
"reason": null,
"note": "Per-channel OTA delivery results are not available in this response."
}
}The note text above is shortened. Check sent, status and reason, not only success.
Errors
| Status | Meaning |
|---|---|
403 | The company type is not allowed, or no access to the hotel. |
404 | Hotel not found or not accessible: {"detail":"Hotel not found"}. |
410 | The hotel was removed: {"detail":"Requested HotelID: <id> not found."}. |
422 | Invalid dates or channel code. |
See also Daily prices.