Rate Limiting

To ensure our API service remains efficient and available to all users, we have implemented a rate limiting mechanism. Please read the following guidelines to understand the specific rules and best practices.

What is Rate Limiting?

Rate Limiting is a mechanism to control the number of requests a client can make to the server within a certain time frame. This helps prevent abuse and ensures fair access to server resources for all users.

You will start off with a set limit that is shared during the onboarding process. We increase this based on number of bookings made and we will reach out directly if they qualify to increase this rate limit.

Specific Limits

Currently, our API has the following rate limits:

  • Per Minute
Information

Note

Rate limits are applied per XAP API key.

For instance, if your XAP API key has a limit to 500 requests per minute, any additional requests within the same minute will be rejected once the limit is reached.

Response Headers

The response headers will include the Rate Limiting information:

  • EG-Rate-Limit-Minute: The maximum number of requests allowed.
  • EG-Rate-Limit-Remaining-Minute: The number of requests remaining in the current time window.
  • EG-Rate-Limit-Reset-Minute: The timestamp (UNIX time) when the current rate limit window resets.

Handling Rate Limits

Avoiding Rate Limits

  • Cache Responses: Whenever possible, cache response data to avoid unnecessary API requests.
  • Spread Request: Avoid spike and batch request.
  • Avoid retry for 429 error to make it even worsen.

Reacting to Rate Limits

If you exceed the limit and receive a 429 Too Many Requests error, consider the following steps:

  • Check the EG-Rate-Limit-Reset-Minute header to determine when you can send new requests.

Increasing Your Limits

If you need higher API call quotas, please contact our support team to learn more about the requirements for upgraded quotas.

Monitor traffic and rate limiting alerts

Expedia enforces rate limits on the API to maintain system stability and ensure fair access for all users, while still allowing integrations to operate smoothly within normal traffic levels.

However, there may be times when your integration needs to send more requests than usual.

These increases in request volume can happen for various reasons, including:

  • One-time spikes in traffic, such as when building or updating a large cache of static content.
  • Regular increases due to natural growth in the usage of your application.
  • Sustained traffic growth over time as your system scales.

It is essential to actively monitor your API traffic usage actively and identify any rate-limiting errors (e.g., HTTP 429 - Too many requests) to understand when you're nearing or exceeding the allowed limits.

Information

If you anticipate a significant increase in request volume, such as scaling by a factor of 2 or more:

  • Contact us as early as possible.
  • Provide details about your expected traffic increase, and discuss potential solutions or adjustments to your rate limits to avoid disruptions.

By staying proactive and monitoring your traffic usage, you can ensure that your integration continues to function smoothly without hitting rate limits unexpectedly.

Frequently Asked Questions

Q: How will I know if I have hit my request limit?

A: You will receive an HTTP status code 429 Too Many Requests when you exceed the limit.

Q: Does the rate limit apply to all API endpoints?

A: Yes, the rate limiting policy applies to all publicly accessible API endpoints.

Contact Us

If you have any questions or need assistance, please do not hesitate to reach out to our support team.

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