- Fix Guides
- Salesforce API Limits: How to Check Usage, Find What's Using It, and Fix REQUEST_LIMIT_EXCEEDED
Salesforce API Limits: How to Check Usage, Find What's Using It, and Fix REQUEST_LIMIT_EXCEEDED
Step-by-step fix guide with AI-powered diagnosis from Wrenk.
The Salesforce API request limit is the number of API calls your org can make in a rolling 24-hour period. REST, SOAP, and Bulk API 2.0 requests all count toward the same total limit. The allocation formula is edition baseline plus 1,000 calls per full user license — check Setup → Company Information → 'API Requests, Last 24 Hours' for your org's current usage versus limit. To find what's using it, review Event Log Files (the ApiTotalUsage event type) grouped by CONNECTED_APP_ID, or check Setup → API Usage Summary to see calls by connected app. To get alerted before you hit the limit, enable API Usage Notifications in Setup (Setup → API Usage Notifications). The fix for REQUEST_LIMIT_EXCEEDED is almost always throttling or batching: switch bulk operations to Bulk API 2.0, add backoff to polling integrations, and revoke orphaned ConnectedApps.
Free, no account needed to start. Connect the org afterwards to run the real scan.
API limit exhaustion almost never looks like a single broken integration — it looks like everything breaking at once. Mid-afternoon, your HubSpot sync stops moving leads. Your Marketo lookups return empty. Your scheduled Apex jobs queue up but never run. Reports refresh to 'data unavailable'. Then everything magically resolves 24 hours after the spike started. That pattern — multiple unrelated integrations failing in the same window and recovering on a clock — is the API-limit signature.
It tends to hit hardest during quarter-close and migration windows, because that's when one-shot bulk jobs run on top of the steady-state baseline. A team that runs comfortably at 60% utilization on a normal day can spike to 110% the day finance dumps a 200,000-record export to feed reporting.
The obvious fix — call Salesforce and ask for more — is usually unavailable for routine consumption. Salesforce will grant a temporary increase for a documented migration or end-of-period event, but the steady-state allocation is contractual. The real fix is consumption hygiene: switching bulk operations to Bulk API 2.0, putting backoff on polling integrations, and revoking ConnectedApps for users who left six months ago.
Symptoms
Integrations returning REQUEST_LIMIT_EXCEEDED or EXCEEDED_ID_LIMIT errors
Scheduled jobs failing and recovering 24 hours later without any code change
Reports and dashboards not refreshing with 'Data refresh failed' messages
Connected apps showing authentication errors that resolve after 24 hours
Bulk data exports timing out or returning partial results
Multiple unrelated integrations failing in the same time window
Root Causes
Polling integrations with no backoff
Integration tools configured to poll Salesforce every minute consume 1,440+ calls per day before doing any actual work. Connected apps like HubSpot, Marketo, and ServiceNow are common culprits when configured without rate limiting.
Bulk sync jobs using REST instead of Bulk API
Sync jobs that make individual REST API calls per record instead of using Bulk API 2.0 can exhaust limits in minutes. A 10,000-record sync with per-record queries uses 20,000+ calls; the same job via Bulk API uses a handful.
Report subscriptions and scheduled dashboards
Report subscriptions refresh via API. An org with 50 users each subscribed to 5 dashboards on an hourly schedule can generate thousands of API calls daily from report refreshes alone.
Orphaned integration users and connected apps
Previous integrations whose access was revoked but whose connected apps still attempt API calls consume limit without delivering value. Orphaned apps can silently drain limits.
How to Fix It — Step by Step
Check current API usage in Setup
Navigate to Setup → Company Information and look at the 'API Requests, Last 24 Hours' field. This shows current usage versus your org's limit. If it's above 80%, proceed immediately. You can also call the Limits REST API endpoint (/services/data/vXX.0/limits) to get the same data programmatically.
GET /services/data/v60.0/limits
// Response includes DailyApiRequests: { Max: 15000, Remaining: 12340 }Identify top consumers in API Usage Summary
In Setup, search for 'API Usage Summary' (Lightning) or 'API Usage' (Classic). This shows connected apps sorted by 'Calls Used'. The top 3 consumers almost always tell the story. Note: this view shows the last 7 days; for longer trends, use Event Log Files.
Analyze historical usage with Event Log Files
For detailed analysis of which connected app is using the most API calls over time, download Event Log Files and analyze the ApiTotalUsage event type. Group by CONNECTED_APP_ID to see which integrations are the heaviest consumers. Event Log Files retain 30 days of data.
-- Download via EventLogFile SOQL
SELECT Id, EventType, LogDate, LogFile
FROM EventLogFile
WHERE EventType = 'ApiTotalUsage'
ORDER BY LogDate DESCEnable API Usage Notifications
In Setup, search for 'API Usage Notifications'. Configure email alerts to notify admins when usage crosses 50%, 70%, or 90% of the limit. This gives you hours of warning before integrations start failing.
Throttle polling integrations
For each high-consuming integration, review its polling interval in the integration platform's settings. Change from minute-level polling to 15-30 minute intervals for non-time-sensitive syncs. For real-time needs, switch to platform events or outbound messages.
Switch bulk jobs to Bulk API 2.0
Replace REST API calls in bulk sync jobs with Salesforce Bulk API 2.0 endpoints. Both REST and Bulk API count toward the same daily limit, but a single Bulk API job can move 10,000 records in one request where REST would take 10,000 requests.
POST /services/data/v60.0/jobs/ingest
{
"object": "Contact",
"operation": "upsert",
"externalIdFieldName": "Email"
}Revoke unused connected apps
In Setup → Connected Apps OAuth Usage, identify apps with API calls but no active users or apps tied to deactivated user accounts. Revoke access for apps that are no longer needed to stop silent consumption.
Let Wrenk find and fix this in your org
Create a free account, connect the org, and run the check that finds this issue and the ones around it — with a fix plan for each, in minutes, not a sales call.
Create a free accountPrefer a walkthrough? Book a demo
How Wrenk prevents this in the first place
Wrenk surfaces this exact failure pattern automatically — no manual triage required.
Open this issue in the AI consultant for org-aware fix steps tailored to your data model.
Common Questions
More answers about this issue and how to resolve it.
Related fix guides
All fix guidesStop debugging manually. Let AI do it.
Wrenk runs automated checks across your Salesforce org and tells you exactly what's broken and how to fix it.