When working with Power Platform components like Power Pages, Power Apps, Power Automate, or Dataverse, keeping track of API calls and quota usage is crucial for governance, performance, and cost management. Microsoft enforces service protection limits (also referred to as throttling limits) to prevent overuse or abuse of shared resources.
This guide walks through how to monitor, analyze, and manage API consumption across environments and users.
Why Monitoring API Calls Matters
- Avoid throttling: Exceeding API limits can cause your apps or portals to stop working until the next time window.
- Understand consumption patterns: Know which apps or users are consuming the most resources.
- Cost management: API capacity beyond the free tier may incur additional licensing or cost.
- Ensure compliance: Organizations may want to control how external systems or custom connectors interact with Dataverse.
Types of API Limits in Power Platform
Limit Type | Description |
---|---|
Entitlement limits | Based on the user’s or application’s license (e.g., 20,000 calls/day) |
Service protection limits | Platform-enforced thresholds to avoid overuse (burst control) |
Per-user & Per-App limits | Different quotas apply to users and application/service principals |
Tools to Monitor API Usage
1. Power Platform Admin Center
The most accessible way to monitor API usage.
Steps:
- Go to admin.powerplatform.microsoft.com
- Navigate to Analytics > Dataverse
- Select the API Calls tab
- Filter by Environment, User, or Application
- View:
- Total API calls over time
- Peak usage by user or app
- Warnings or failures due to throttling
2. Microsoft Power Platform CoE Starter Kit
The Center of Excellence Starter Kit includes flows and dashboards that track:
- API consumption per environment
- API usage by connectors
- Warnings when approaching thresholds
- Trend analysis over time
This kit installs Dataverse tables and Power BI reports to help visualize usage patterns across the organization.
3. Azure Monitor (for Dataverse or Portals with Application Insights)
If Application Insights is enabled on Power Pages:
- You can query telemetry for slow API responses
- Correlate requests to specific users, IPs, or actions
- Use Kusto Query Language (KQL) to filter and create custom metrics
4. Dataverse API (Programmatic Monitoring)
You can query API usage via Dataverse Web API using service principals or admins.
Example endpoint:
GET [organization URI]/api/data/v9.1/organizationstatistics
Or use the internal entity apirequest
or apirequestallocation
(if exposed) to analyze historical usage.
5. PowerShell with Microsoft.PowerApps.Administration.PowerShell
You can retrieve capacity reports via PowerShell:
Install-Module Microsoft.PowerApps.Administration.PowerShell
Add-PowerAppsAccount
Get-AdminPowerAppApis
This can give an overview of APIs used by various apps and who is calling them.
Best Practices for Managing API Usage
A. Use Application Users for Automation
- Instead of personal user accounts, use App registrations with Application Users for flows or apps
- Monitor these users separately
B. Throttle or Batch API Calls
- Use batch operations in Dataverse Web API
- Delay or retry operations during heavy usage periods
C. Leverage Premium Licenses
- Upgrade to Power Apps per app/per user plans for more generous API limits
- Assign capacity add-ons if needed
D. Use Environment Variables and Feature Flags
- Reduce unnecessary requests by toggling features or turning off modules when not needed
Alerts and Automation
You can automate monitoring with Power Automate or Azure Logic Apps:
- Set up recurring flows that call usage endpoints
- Compare against thresholds (e.g., 80% usage)
- Send alerts to Teams or email
- Log data into Dataverse or SharePoint for historical tracking
What to Watch For
- Sudden spikes in usage (could indicate automation loops or misuse)
- Frequent throttling errors (status code 429)
- Unlicensed users making calls
- Inefficient queries or connectors causing high volume usage
Troubleshooting API Overages
Symptom | Cause | Resolution |
---|---|---|
429 errors | Throttling | Reduce frequency or volume of calls |
Flow timeouts | High latency APIs | Review connector usage |
Portal page slowness | Overuse of table permissions or custom calls | Optimize portal data access |