Rate limiting

Rate limiting facilitates a stable and maintainable service while ensuring the sustainable and cost-efficient use of Expedia Group systems.

What is rate limiting?

The Shopping API depends on a central inventory management system. As this system has finite capacity, it needs to be protected from over-utilization for the benefit of all partners and Expedia Group brands.

Traffic optimization is achieved by limiting the volume of traffic a partner can request to reasonable levels. These rate limits ensure the continued delivery of a stable and maintainable service to partners while also guaranteeing the efficient use of Expedia Group systems.

For Shop traffic, the significant factors for determining load are the number of hotels, the number of rooms, and the length of stays being searched in each request, i.e. Load = number of properties x number of rooms x number of nights (on a Shop resource call).

Headers

We include a number of headers on most of our responses in order to help you see what load your calls are creating. We include the full set of headers on as many responses as we can, but we cannot guarantee they will be provided for every response, so please plan accordingly.

Parameter (header)DescriptionValue
Rate-Limit-Day-RemainingOptional header for the remaining capacity, as a percentage, for the daily time window.Number
Rate-Limit-Day-ResetOptional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets.Number
Rate-Limit-Minute-RemainingOptional header for the remaining capacity, as a percentage, for the per minute time window.Number
Rate-Limit-Minute-ResetOptional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets.Number
Rate-Limit-Reduction-StatusOptional header that indications the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used.String

FAQs

|

What if we go over our daily rate limit?

When you have exhausted your daily load quota, rate limiting will reduce your per minute rate limit by 80%. If your daily rate limit has been exceeded, you will see the HTTP 429 error code.

Example:

{
 "type": "too_many_requests",
 "message": "You have reached your capacity for this type of request."
}

How do we find out if rate limiting will impact bookings?

This depends on when in the day you exceed your daily limit. If it’s later in the day and your traffic is already winding down, then impact may be minimal.

How can we reduce our load without impacting bookings?

Partners exceeding their limits can take the following actions to optimize their traffic and avoid rate limiting by staying within their allocated limits.

Reduce traffic load by:

  • Using more accurate geography
  • Pre-filtering out properties that are less likely to convert
  • Remove inactive properties using our Inactive Properties API

Increase bookings and revenue by:

  • Highlighting rate amenities, surfacing better content, and up-selling alternative rates
  • Reducing booking errors and cancellations

How are our rate limits decided?

For existing partners, Expedia Group calculates daily rate limits monthly, taking into account a partner’s traffic vs. revenue over a period of time (typically 3 months) to account for seasonality.

New partners are granted a very generous allowance for the first 3 months to allow for a smooth ramp-up. After the first 3 months, standard rate limit calculations apply.

Can we request a rate limit increase?

Partners may require a temporary rate limit increase for an upcoming campaign or while they work on optimizing their usage to avoid rate limiting. These increases are granted for a short period of time only. If you think you’ll need a temporary increase, contact your Partner Connect representative for more information.

Did you find this page helpful?
How can we improve this content?
Thank you for helping us improve Developer Hub!