Rate limit capability for nodes

I would like a generic rate limit setting at a credential level, so that the nodes that use that credential can be slowed down when needed.

I am using the Webflow node to do a getAll on 3 collections in a row but restrictive rate limits on the Webflow side cause my tests to always fail. I can not get a simple look up of 3 collections working.

(Webflow rate limits are between 60 or 120 requests per minute depending on the plan)

Full example:
Each of my Webflow collections has only 1 page of results (i.e. less than 100 records) so I would expect there to be only 3 API requests. I have no other apps or tools calling the API. I have placed a delay between the getAll calls of 4 seconds and added a ‘Retry on fail’ with a wait of 4 seconds. However the 3rd getAll node never completes successfully.

Side note:
From what I can tell the UI might be using up API also to render the drop down menus. So I’ve tried not opening any of the UI components before executing, but the same issue arrises. It is unclear if these api calls are also happening when I execute the workflow.

Is it possible that you have a node that is retuning multiple items before the Webflow node? Because that would explain why you are hitting the rate limit. Let’s say that the input of the Webflow node is ten items. n8n will execute the Webflow node once per item. You can override this behavior by turning on the Execute Once parameter on the node’s setting.

Another way you can control the rate limit is by using the Splitbatches node in combination with the Wait node or the HTTP node since it allows to control Batch Size and Batch Interval

Hey @RicardoE105 thanks for the help, yes you are right I chained them without the Execute Once toggle. :man_facepalming:

But I wonder if I will probably end up facing similar issues in the future, when using the same api from other workflows. Certainly would be a complex problem to solve rate limiting at a credential level I would imagine.

Hi @RicardoE105 and @benneic,

I think this PR may help: feat(redis): Add a Redis based rate limiter by tinti · Pull Request #3692 · n8n-io/n8n · GitHub