Bottom line is: Moralis API and features are among the best in this space, but Rate Limits are obscure and overcomplicated. Lets be blunt ----- > rethink, redo.
Hi all
we will update our rate limit pricing and information
its too confusing
thanks for feedback
We changed now so everything is per second
You only have to care about 1 variable which is rate limit per second
Hope it helps!!
Thanks @ivan. This is a great step in the right direction!
But, are we still subject to the ârequest weightâ system for the per-second limit? If so, can we get a complete list of ârequest weightsâ that count toward this limit? @cryptokid mentioned an endpoint above, but then said itâs missing some weights. Like for high-offset.
now that high offset limit will be capped at 25 so you can make one request in a second
@cryptokid I assume you mean
- Yes, we are still subject to the ârequest weightâ system
- The weights are in the endpoint
/info/endpointWeights
- That endpoint now shows all request weights, including the weights of âhigh offsetâ requests and any other corner cases you guys charge extra for
- High offset requests now cost 25 units
Is this what you mean?
Iâll have to check how it is with high offset, in that case the rate was variable based in the offset value.
Right. We need a reference with all the request weights. Not just some.
there is this page:
https://docs.moralis.io/misc/rate-limit
that also contains a link to a forum post that says how the weight for high offset is computed
(If you are using NFT endpoints with offset - please read this as they have temporarily different special weights).
First, that page says âthese are temporary restrictions we had to put in place as we scale our systems and will be removed in the coming week approximatelyâ and the post was dated Dec 2021, 3+ months ago. Did you remove these restrictions? If not, when will they be removed?
Second, is this formula limited to NFT endpoints? I think you have something similar for all endpoints with high-offsets. Like transactions, erc transfers, etc.
Third, this should all be part of a single list of request weights. Making us gather pieces of data from different blog posts is not a great experience.
Following up on these. We are still getting rate-limited with getTokenTransfers
with a high-offset. Not an NFT endpoint.
Can we avoid the high-offset penalty by using to_block
instead of offset
?
can you give more details?
like an example of offset and address where you get that rate limit?
and also the error message for that rate-limit?
I provided the endpoint and error msg above. To others reading, the answer is yes, using to_block worked.
@cryptokid please respond to these.
First, that page says âthese are temporary restrictions we had to put in place as we scale our systems and will be removed in the coming week approximatelyâ and the post was dated Dec 2021, 3+ months ago. Did you remove these restrictions? If not, when will they be removed?
Second, is this formula limited to NFT endpoints? I think you have something similar for all endpoints with high-offsets. Like transactions, erc transfers, etc.
Third, this should all be part of a single list of request weights. Making us gather pieces of data from different blog posts is not a great experience.
the restrictions are not removed yet
if you look on the http headers for every request, you could see if there is an impact from offset or not, in particular for some endpoint, if they have a lot of data (for example if you try with a Binance hot wallet address like 0x8894E0a0c962CB723c1976a4421c95949bE2D4E3) , you could get a timeout error
I donât know now of high offset impact for non NFT endpoints.
Can you find out please? And also when the âtemp restrictionsâ from 3 months ago will be lifted?
I found out now that all endpoints that use offset as a parameter have the increasing weight.
We donât have an ETA now for when the restrictions will be lifted.
This is a bit like saying âall endpoints that penalize offsets penalize offsets.â
Can we at least have a list of them? Itâs not just the one mentioned in the blog post you linked to. Whatâs the penalty formula for each?
we have this request for example:
https://deep-index.moralis.io/api/v2/0x965F527D9159dCe6288a2219DB51fc6Eef120dD1?chain=bsc&offset=5000
in headers it returns:
x-rate-limit-limit: 25
x-rate-limit-used: 10
x-request-weight: 1
x-rate-limit-remaining-ip-ttl: 1
x-rate-limit-remaining-ttl: 1
x-rate-limit-ip-used: 10
that means that one request without offset has a weight of 1 (x-request-weight: 1
), and because I used offset 5000 in this case, it was counted for rate limit as a weight of 10 (x-rate-limit-ip-used: 10
).
that 10 is computed as 5000/500 * 1
for another endpoint:
https://deep-index.moralis.io/api/v2/0x965F527D9159dCe6288a2219DB51fc6Eef120dD1/erc20/transfers?chain=bsc&offset=5000
we have:
x-rate-limit-limit: 25
x-rate-limit-used: 20
x-request-weight: 2
x-rate-limit-remaining-ip-ttl: 1
x-rate-limit-remaining-ttl: 1
x-rate-limit-ip-used: 20
here the formula is 5000/500 * 2
meaning that the formula is offset / 500 * request-weight