Power Automate enforces limits on the number of API calls a flow can make within a specific timeframe. If a flow exceeds these limits, it will fail with an API call limit error.
This guide explains why this error occurs, how to identify the issue, and step-by-step methods to optimize API usage to prevent the error.
Step 1: Understanding API Call Limits in Power Automate
1.1. API Call Limits Based on License Type
Each Power Automate plan includes a limit on API requests per 24 hours:
Plan Type | API Calls per 24 Hours |
---|---|
Free Plan | 6,000 |
Microsoft 365 Plan (Standard) | 40,000 |
Per-User Plan | 100,000 |
Per-Flow Plan | Unlimited (with fair usage limits) |
Power Automate Process Plan | Higher limits, best for enterprise |
- API calls include actions, triggers, and connector requests made by Power Automate.
- Once the limit is reached, flows using that service stop working until the 24-hour period resets.
1.2. Common Causes of Exceeding API Limits
- Frequent triggers – Too many flow executions in a short period.
- Inefficient loops – Using Apply to Each on large datasets.
- High-volume data retrieval – Fetching large amounts of records from SharePoint, SQL, or Dataverse.
- Multiple users triggering the same flow – Each user contributes to API consumption.
- Recursive flows – Flows that keep calling themselves.
Step 2: Identifying the Issue
2.1. Check Flow Run History for API Errors
- Open Power Automate (https://make.powerautomate.com).
- Click on My Flows → Select the affected flow.
- Go to Run History → Open a failed run.
- Look for errors like:
API calls exceeded. Try again after 24 hours.
2.2. Analyze API Usage in Power Platform Admin Center
- Go to Power Platform Admin Center (https://admin.powerplatform.microsoft.com).
- Click on Analytics → Common Data Service (Dataverse).
- Review API Request Usage for high-consumption flows.
Step 3: Resolving the API Call Limit Issue
3.1. Reduce the Number of Flow Executions
- Modify Trigger Conditions – Ensure the flow only triggers when needed.
- Use Delay Actions – Add a cool-down period to reduce trigger frequency.
- Change Recurrence Settings – If using a Scheduled Flow, set it to run less frequently.
Example: Apply a Trigger Condition
Modify a trigger so it only runs when a specific value changes:
- Open the trigger action (e.g., SharePoint trigger).
- Click Settings → Trigger Conditions.
- Add a condition like:
@equals(triggerBody()?['Status'], 'Approved')
- This prevents unnecessary runs when no change is required.
3.2. Optimize Loops and Reduce API Calls in Apply to Each
- Use Filtering Before Loops – Retrieve only relevant records before looping.
- Enable Parallelism – Speed up loop execution while minimizing API calls.
- Use Aggregated Queries – Reduce the number of queries sent to the API.
Enable Parallelism in Apply to Each
- Open the Apply to Each loop.
- Click Settings → Enable Concurrency Control.
- Increase the degree of parallelism (e.g., 20).
3.3. Limit Data Retrieval Using Pagination
If fetching thousands of records from SharePoint, Dataverse, or SQL:
- Open the Get Items/Get Records action.
- Enable Pagination and set a Page Limit (e.g., 5000).
- Process data in smaller batches.
3.4. Avoid Unnecessary API Calls
If making multiple API requests, try these optimizations:
- Use “Select” and “Filter Query” in Get Items/Get Records to retrieve only necessary data.
- Store frequently used data in a variable instead of re-fetching it.
- Use Power Automate Expressions instead of external API calls when possible.
Example: Retrieve Only Specific Fields
Instead of retrieving all fields, fetch only the required fields using:
Get Items → Filter Query → "Status eq 'Active'"
3.5. Upgrade to a Higher Power Automate Plan
If your automation requires more API calls, consider upgrading to a Per-User or Per-Flow Plan for higher limits.
- Open Microsoft 365 Admin Center (https://admin.microsoft.com).
- Navigate to Billing → Purchase Services.
- Choose Power Automate Per-User Plan or Per-Flow Plan.
- Assign the new plan to the user or flow.
Step 4: Advanced Troubleshooting
4.1. Split a Single Flow into Multiple Flows
If a flow exceeds API limits due to high volume, split it into smaller sub-flows.
4.2. Use Power Automate RPA (Robotic Process Automation)
For UI-based automation, consider Power Automate RPA, which does not rely on API calls.
4.3. Use Azure Logic Apps for Higher API Limits
If your automation needs even higher API usage, consider Azure Logic Apps, which provide:
Higher API call limits
Better performance and scaling