Power Apps, Power Automate, AI Builder, Power Virtual Agents and certain Dynamics components use API requests. As described in the Request limits & allocations, a user account can do a limited amount of API requests every 24 hours.
This blogposts gives basic insights about the situation in 2020, it might change in the future. Please always double check in Microsoft’s documentation.
For 2020, we are still in a transition period. That means that the enforcement is not as strict as it is written in the documentation.
After the full reporting is available in the Power Platform admin center (2020 release wave 2), the transition period will end and the limitations will be active.
What is an API request?
- Power Apps
- API requests to connectors
- Common Data Service
- Power Automate
- API requests to connectors
- HTTP action
- Built-in actions like “Initialize variable” or “Compose”
- Succeeded and failed actions
- Retries and additional pagination requests
- (Basically everything)
- Common Data Service
- Cread, read, update, delete (CRUD)
- Other special operations
Request limits
License | API requests |
Office licenses that include Power Apps/Power Automate | 2000 per 24 hour |
Power Apps per user plan | 5000 per 24 hour |
Power Automate per user plan | 5000 per 24 hour |
Power Apps per app plan | 1000 per user pass |
Flow assigned to the per flow plan | 15000 per 24 hours |
For the Dynamic plans, check the documentation |
If a user has multiple licenses, the total number of requests allowed would be the sum of requests allocated to each license type.
What accounts limits are used?
Instant flows will use the limits of the user that started the flow.
Scheduled flows will use the limits of the user that is owner of the flow.
Increasing the limits
Buying capacity add-ons allows customers to increase the limits for a user.
Because of the transition period, capacity add-ons cannot be assigned yet to a user. Assignment will be possible once the transition period ends, during 2020 Release Wave 2.
Read everything about capacity limits in the Power Platform licensing guide.
Additional limits
On top of the 24 hour API request limit, other limits are active for each product to not over load the Power Platform and to protect it for malicious usage.
- Limitations for CDS
- Limitations for Power Automate
- Limitations for Power Automate together with SharePoint actions
- Limitations for connectors in Power Automate & Power Apps
Monitoring API requests
Common Data Service API requests can be monitored in the Power Platform Admin center under the “Analyse” section.
Monitoring per flow
Power Automate flows can be monitored in the “Analytics” section that is accessible via a button on the flow properties page.
Monitoring per Power App
Power Apps can be monitored in the “Analytics” section that is accessible via a button after selection an app on make.powerapps.com.
New monitoring tools in the Power Platform Admin Center
During 2020 Release Wave 2, more “general” monitoring possibilities will be added to the Power Platform admin center. Administrators will also be notified via email about overages as part of 2020 release wave 2.
- Common Data Service Analytics
- Power Automate Analytics
- Power Apps Analytics
What happens if a user or integration exceeds the limitations?
Users won’t be blocked using a flow or Power App for reasonable and occasional overages. If a user or a flow consistently exceeds the limits for a longer time, that user may be disabled from using the flow or Power App or the flow might be turned off.
Conclusion
There are multiple ways to monitor the Power Platform. If you’re interested in more monitoring tools, check the Center of Excellence starter kit.
When building flows and Power Apps, you need to think about building them as efficient as possible. Sometimes, flows can do the same thing in multiple ways.
Try to think about the complexity of your flow and try to improve it as much as possible to lower the amount of API requests.
- Avoid flows that iterate (every night) over all data in a SharePoint list or CDS table
- If you have large lists or tables (more than 1000 items), the amount of API requests will be high and your flows can stop working. You could buy capacity add-ons in this case, but it will cost you a lot for an inefficient flow.
- Avoid too many for each or do-until loops, loops consume many API requests
- Use the correct data source for your solution so that you don’t have to create solutions with a bad architecture (wrong backend)
- CDS
- Project Oakdale, pay attention because Project Oakdale has a limitation of 1.000.000 records or 2GB. Click the link to read my blog post about that.
- SharePoint lists if you don’t have too many relations between the lists. SharePoint lists do not support many-to-many relationships or one-to-many relationships (lookups) to lists that contain more than 5000 items. If you have less than 5000 items in the list to which you do a lookup, you can do it.
Enforcement of limitations should be coming up soon.
There are some ways to make your flows much more efficient in api calls, which may be more elegant than spreading one’s workflows across several accounts and/or set-ups.
If anyone runs into call limits, throttling, or other performance issues when creating, updating, or deleting many items in SharePoint, Excel, or SQL, then you may find these 50-1000x more efficient batch templates useful…
Sharepoint
Update, Create, & Upsert- https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/Batch-Update-Create-and-Upsert-SharePoint-Lists/td-p/1365410
Create- https://www.tachytelic.net/2021/06/power-automate-flow-batch-create-sharepoint-list-items/?amp
Delete- https://www.tachytelic.net/2021/06/power-automate-delete-sharepoint-items/
Excel
Create & Update- https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/Excel-Batch-Create-Update-and-Upsert/td-p/1624706
Delete- https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/Excel-Batch-Delete/td-p/1634375
SQL
Use stored procedures:
https://www.linkedin.com/pulse/using-power-automate-inserting-data-sql-db-stored-procedure-wijaya
Or this batch template:
https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/SQL-Batch-Create-Read-Update-and-Delete/td-p/1715338
Also in many cases you can use two Filter arrays, one for true/yes, one for false/no instead of conditionals within an Apply to each.
Finally, make sure you are using trigger conditions for flows that only need to run in a sub-set of cases in which an action is performed
https://youtu.be/PVc-M9dFURs