07 March 2022

Rate Limiting & Rate Throttling

Making some simple tweaks to your application can result in significant cost savings.

In this blog post I’ll cover both server-side and client-side strategies you can adopt to reduce your monthly geocoding bill.

Rate Limiting

Rate limiting is the server-side strategy we use to protect our customers from excessive billing, while additionally shielding users from degraded quality-of-service.

All of our geocoding plans are assigned a per-second rate-limit, this value represents the maximum number of HTTP requests our service will accept per second, per account.

If an account exceeds their per-second rate-limit, then all subsequent requests received within that one-second window will return the HTTP status code 429.

You’ll find a lower rate-limit value preferable when you don’t have many users all typing at the exact same second & you’d like to benefit from protection against malicious users triggering excess charges.

A higher rate-limit value is preferable when you’re expecting to have many simultaneous users (such as a trending mobile app) & you’re happy keeping an eye on your API Usage, adjusting accordingly.

Assigned rate-limits scale with the plan size, so we proportionally increase your limits as your business grows. You can reach out to us at any time to discuss your account limits.

Rate Throttling

Rate throttling is a client-side strategy you can use in your application to reduce the number of requests you’re sending to our service.

A fast typer can strike as many as 6 keys a second! Each of these key presses triggers a new HTTP request, which is in turn counted against your monthly quota.

Throttling allows you to specify the minimum duration between requests. We recommend sending no more than one request every 300 milliseconds, per user.

Our experimentation showed that throttling like this has a negligible effect on UX, while providing protection against hitting rate-limits and incurring excessive billing.

If you’re using our Autocomplete Element, then you’ll benefit from a default throttle of 300ms out-of-the-box, with an option to tune it to your preference.

All the Fortune 500 geocoding providers we investigated didn’t provide any default throttling in their libraries, resulting in excess charges to their customers 🤔

👋 Don’t hesitate to reach out if you need some help reducing your geocoding costs.

Image credit: Speed Limit 25 by Daniel Chodusov.