<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>403 ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
Request blocked.
We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.
<BR clear="all">
If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.
<BR clear="all">
<HR noshade size="1px">
<PRE>
Generated by cloudfront (CloudFront)
Request ID: eiYbAG6TxMJci824L-s8HsiyI0Vv_qS0FbbFidIlP8Ua4g11pV7fxA==
</PRE>
<ADDRESS>
</ADDRESS>
</BODY></HTML>
A simple (Number of requests sent from my IP [182.177.51.15] vs Allowed number of requests) would suffice for a resolution.
Hey @duahxn, thanks for digging into this further and for the detailed testing.
To clarify: there isn’t a separate undocumented hourly rule. The limit is 1500 requests per 5-minute rolling window for /quote. If you burn through the 1500 requests very quickly (say, within 1 minute), you’ll get blocked, but you only need to wait about 1 minute, not the full 5 - because once that minute passes, the rolling window looking back 5 minutes effectively sees 0 requests again (the burst has aged out of the window).
Separately, there are other layers that try to detect bot-like or spam-like request patterns before the numeric limit is even hit, which may also be a factor given the request pace you described.
So the short answer: this is rate limiting due to request volume/pace, not a hidden hourly cap.
In the meantime, spacing out request bursts should keep you clear of both layers.
In that case, I am probably hitting the other layer, i.e. bot-like / spam-like request patterns.
However I feel the layer is being overly strict. Here is what my requests look like:
13 tokens total
2 requests (buy_quote and sell_quote) per minute for every token.
13 x 2 = 26 requests in 1 minute.
26 x 5 = 130 requests in 5 minutes.
I am not even getting close to the numeric limit layer.
I guess the security sorting is: extra-secure layer (bot-like detection) -> numeric limit layer ?
Shouldn’t it be numerical limits -> other layers ?
Hey @duahxn, without a bit more detail we can’t say for sure what triggered the block - feel free to DM, preferably on Discord, if you’d like to share more and we can take a look.
That said, these endpoints exist to protect our ability to serve users actually executing trades, so the limits on quoting and similar endpoints are intentionally strict, and that’s not something we’re looking to change at this moment.
Hey @moo_keeper thanks for the support. I reduced my calls by 5x, it has been working good, dont need 1min granularity at the moment so it’s all good for now.