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.

REQUEST_LIMIT_EXCEEDEDRolling 24-hour periodEvent Log FilesAPI Usage NotificationsCheck usageFind top consumer

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

1

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.

2

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.

3

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.

4

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

1

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.

Example
GET /services/data/v60.0/limits
// Response includes DailyApiRequests: { Max: 15000, Remaining: 12340 }
2

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.

3

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.

Example
-- Download via EventLogFile SOQL
SELECT Id, EventType, LogDate, LogFile 
FROM EventLogFile 
WHERE EventType = 'ApiTotalUsage' 
ORDER BY LogDate DESC
4

Enable 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.

5

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.

6

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.

Example
POST /services/data/v60.0/jobs/ingest
{
  "object": "Contact",
  "operation": "upsert",
  "externalIdFieldName": "Email"
}
7

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 account

Prefer a walkthrough? Book a demo

How Wrenk prevents this in the first place

Continuous platform health checks

Wrenk surfaces this exact failure pattern automatically — no manual triage required.

AI-powered remediation guidance

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.

Stop 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.