Power Automate "Apply to each" is slow — how to speed it up
A slow "Apply to each" in Power Automate usually comes from processing items one by one with no parallelism, plus per-item API calls that add up fast. Immediate fix: open the loop’s Settings, turn on Concurrency Control, and raise the Degree of Parallelism (up to 50) — but only when each iteration is independent of the others. Durable fix: filter at the source (OData filter / Filter Query) or add a Filter array action before the loop so fewer items enter it, and replace per-iteration calls with a batch/bulk action or expression-based transforms where the connector supports it — this also avoids 429 throttling.
Enable concurrency
- 1On the Apply to each, open Settings and turn on Concurrency Control.
- 2Raise the Degree of Parallelism (up to 50) so items process in parallel instead of one by one.
- 3Note: only enable it when items are independent — not when each iteration depends on the previous.
Process fewer items
- 1Filter at the source (OData filter / Filter Query) so the loop only receives the rows you need.
- 2Use a "Filter array" action before the loop instead of an If inside it.
Avoid per-item API calls
Calling an action on every iteration is the biggest cost and risks throttling (429). Where the connector supports it, use a batch/bulk action, or select/transform data with expressions instead of looping.