A CIO playbook for understanding Salesforce storage and API limits, monitoring consumption, optimising costs, and negotiating better entitlements before surprise overage bills arrive.
This guide is part of our Salesforce Licensing Knowledge Hub. See also: Salesforce Optimisation Playbook | Salesforce Contract Terms | Sales Cloud Licensing Guide.
Salesforce's cloud platform comes with inherent limits on data storage and API calls that, if not managed proactively, can result in unexpected six-figure overage bills or halted integrations. Data storage overages cost roughly $250/GB/month, over 10,000x the price of commodity cloud storage. API limits are org-wide and edition-dependent, with exceeded limits blocking all integrations simultaneously.
Salesforce categorises storage into two types: Data Storage for database records (Accounts, Contacts, Cases, custom objects) and File Storage for attachments, documents, Salesforce Files, Content, and Chatter files. Each has separate allocations and overage costs.
| Storage Type | Base Allocation | Per-User Addition | Overage Cost |
|---|---|---|---|
| Data (Enterprise/Professional) | 10 GB per org | +20 MB per user | $125/month per 500 MB (approximately $250/GB) |
| Data (Performance/Unlimited) | 10 GB per org | +120 MB per user | $125/month per 500 MB (approximately $250/GB) |
| File Storage (Enterprise+) | 10 GB per org | +2 GB per user | Approximately $5/month per 1 GB |
| Data (Essentials) | Approximately 1 GB per org | Varies | $125/month per 500 MB |
At $250/GB/month for data storage versus AWS S3 at $0.023/GB/month, Salesforce charges over 10,000x commodity rates. The platform provides just enough for CRM needs, expecting customers to archive or offload excess. Reaching storage caps prevents new data creation or file uploads, disrupting business operations. An Enterprise org with 100 users gets 12 GB data storage. At approximately 2 KB per record, that holds roughly 5 million records. One SaaS company adding approximately 1 TB of files/year would face approximately $250,000/month in file storage overages.
| Edition | Base Allocation | Per-User Addition | Example: 200 Users |
|---|---|---|---|
| Enterprise / Professional | 15,000-25,000 per 24h | +1,000 calls/user/day | Approximately 200,000 calls/day |
| Unlimited / Performance | Approximately 100,000 per 24h | +5,000 calls/user/day | Approximately 1,000,000 calls/day |
| Developer / Sandbox | 15,000 per 24h (flat) | N/A | 15,000 calls/day |
Exceeding the daily cap causes Salesforce to block all further API requests until usage drops. All integrations, customer mobile apps, middleware, and data sync jobs halt simultaneously. APIs return HTTP 503 errors. Critical business processes can be disrupted for hours. API limits reset on a rolling 24-hour basis. Maximum 25 concurrent long-running requests (lasting 20+ seconds) in production. The Bulk API has a separate limit of 15,000 batches per 24 hours.
| Tool | What It Does | Best Practice |
|---|---|---|
| Storage Usage Page (Setup) | Breaks down data and file consumption by object and file type. Identifies large contributors: custom objects with millions of records, massive email attachments, managed package data | Review monthly. Set internal alert thresholds at 80% of storage capacity. Assign admin responsibility for monthly monitoring |
| System Overview / Company Information | Shows "API Requests, Last 24 Hours" as a quick health check. Also shows 7-day and monthly trends | Check daily/weekly. When integrations seem slow, check here first |
| Event Monitoring (Shield) | Paid add-on providing granular logs of every API call: user, URI, timestamp. Export to Splunk or SIEM tools | For large orgs needing integration attribution. Use separate integration user accounts per system to isolate usage |
| REST Limits Endpoint | /services/data/v{version}/limits returns current usage programmatically. Poll with external scripts for automated alerts | Set automated alerts at 80-90% thresholds. Essential for proactive management |
| Strategy | How It Works | Best For |
|---|---|---|
| Big Objects | Salesforce's native feature for storing billions of records outside standard limits. Do not count against entitlements. Requires async SOQL or custom code (not standard reports) | Historical data rarely queried in real-time. Log data needing occasional access |
| External archives | Extract aged data to AWS S3, Azure, or on-premises databases. Third-party tools (DataArchiva, OwnBackup Archiver) automate transfers preserving referential integrity. Costs cents/GB vs $250/GB | Fast growth organisations. Post-merger data imports. History exceeding 3-5 years |
| Salesforce Connect (External Objects) | Links to external database tables. Data appears as read-only objects in Salesforce without consuming storage. Slightly slower access | Large datasets users only occasionally reference |
| External file repositories | Integrate with SharePoint, Google Drive, Box, or AWS S3 using Files Connect. Files remain accessible within CRM interface without Salesforce storage charges | High file usage. Document-heavy processes. Email-to-case environments |
| Regular data cleanup | Quarterly/yearly governance: remove debug logs, archived platform events, duplicates, unused fields. Watch for managed packages storing data that lingers after uninstallation | Before purchasing extra storage. Monitor high-growth elements: integrations creating hundreds of thousands of logging records |
Delete what you do not need. Archive what is old. Offload to cheaper storage. Keep Salesforce lean for CRM-active data only. The investment in archiving solutions pays for itself immediately versus $250/GB/month overage fees and also improves Salesforce performance.
| Strategy | How It Works | Impact |
|---|---|---|
| Bulk API | Up to 10,000 records per batch in a single request. Inserting 100,000 records via REST = approximately 1,000 calls. Bulk API does it in approximately 10 batches | Use for migrations, periodic syncs, any high-volume scenario. 90%+ reduction in API calls for batch operations |
| Composite API | Combine multiple sub-requests in one call. Mobile app needing account + contacts = one round-trip instead of separate calls | Eliminates chatty integrations. Essential for mobile apps and multi-object operations |
| Platform Events / Change Data Capture | Push-based integration. Salesforce pushes notifications on changes, eliminating constant polling entirely | Near-real-time sync without API call overhead. Replaces polling patterns that consume thousands of calls daily |
| Caching and push-based sync | Cache commonly queried data externally. Retrieve from cache rather than querying Salesforce repeatedly | Dramatic reduction in read API calls. Essential for high-traffic consumer-facing applications |
| Middleware (iPaaS) | Enterprise iPaaS (MuleSoft, Boomi, Informatica) acts as a buffer. Aggregates data, caches, provides retry logic. If multiple systems need the same data, middleware makes one Salesforce call and distributes results | Reduces redundant traffic by 50-80%. Centralises monitoring. Provides automatic throttling |
| Governance and throttling | Implement client-side throttling. If approaching 90% of daily limit, slow non-critical transactions or queue them. Distribute heavy jobs across off-peak hours. Limit concurrent threads to 25 max | Prevents limit exceedance. Prioritises mission-critical integrations (customer-facing) over batch exports |
A crucial and often overlooked aspect: the opportunity to negotiate higher limits upfront during licensing discussions or renewals. Salesforce monetises additional usage aggressively. It is always cheaper to negotiate capacity before you need it.
| Negotiation Tactic | Detail |
|---|---|
| Assess and project needs before negotiations | Analyse data growth trends and integration roadmap. If you will double your data in 2-3 years or launch new API-heavy systems, quantify that. Approach Salesforce with projections rather than paying list prices under duress. Salesforce's flexibility drops once you are already over limits |
| Negotiate extra storage at a discount | Rather than buying 500 MB blocks at $125/month reactively, ask Salesforce to bundle additional storage (e.g. 50 GB) at a flat or discounted rate. Even 50% off or a one-time fee versus recurring saves significantly. At minimum, lock in a lower per-GB rate for future overages |
| Address API limits upfront | Salesforce offers API Call Add-On packs. Get pricing and compare against adding platform licences to boost the pool. If considering a higher edition for API needs, use it as a bargaining chip: "Can Salesforce offer an API increase on Enterprise Edition for a fee?" |
| Bundle and document strategically | When negotiating multiple products, leverage interplay. Address premium support, sandboxes, and other upsells simultaneously. If a Salesforce AE verbally assures "we will sort it out if you hit limits," get it in writing. Only the contract governs |
Storage and API capacity negotiated upfront during a renewal or purchase costs far less than reactive purchases after you have exceeded limits. Use your buying power when Salesforce wants your signature. Once you are over limits and in crisis, your leverage evaporates. See our Salesforce Contract Negotiation Service for expert assistance.
| Tool / Strategy | Purpose | When to Use |
|---|---|---|
| Storage Usage Page | View data/file consumption by object. Included | Monthly monitoring. Before data-heavy projects |
| System Overview (API) | Quick check of API calls used vs limit (24h) | Daily/weekly. When integrations seem slow |
| Event Monitoring (Shield) | Granular API call logs by user, time, operation | Large orgs needing integration attribution |
| Data Archiving (External) | Offload old data to cheap external storage | Fast growth. Post-merger imports. History exceeding 3-5 years |
| Big Objects | Billions of records within Salesforce, outside limits | Historical/log data needing occasional async access |
| External File Storage | Offload files to SharePoint, Box, S3 via Files Connect | High file usage. Document-heavy processes |
| Bulk API | High-volume data operations in batches. Far more efficient | Migrations, nightly syncs, 10K+ records at a time |
| Composite API | Multiple sub-requests in one call | Chatty integrations and mobile apps |
| Platform Events / CDC | Push-based integration. Eliminates polling | Near-real-time sync without constant polling |
| Middleware (iPaaS) | Buffer, cache, aggregate, centralised integration | Many integrations or complex ERP/e-commerce workflows |
| Throttling / Queueing | Rate-limit API clients to prevent exceeding caps | Any integration build. Partner-facing APIs |
| Data Cleanup | Delete duplicates, logs, unused fields, orphaned records | Quarterly/yearly. Before purchasing extra storage |
| Negotiated Add-Ons | Pre-arranged extra storage/API at negotiated rates | During contract renewal or initial purchase |
| # | Recommendation | Detail |
|---|---|---|
| 1 | Establish ongoing monitoring and governance | Treat storage and API as key operational metrics. Alert at 80% capacity. Assign clear ownership within your admin team or Centre of Excellence |
| 2 | Implement a data lifecycle policy | Define retention periods by data type (cases older than 5 years archived, inactive leads older than 3 years deleted). Enforce with scheduled jobs. Communicate that Salesforce is not infinite storage |
| 3 | Invest in archiving solutions | Evaluate Big Objects, external databases, or third-party tools. The investment pays for itself versus $250/GB/month overage fees. Also improves Salesforce performance |
| 4 | Optimise integrations: work smarter | Mandate Bulk API for high-volume operations, Composite API for chatty integrations, event-driven patterns for real-time sync. Audit legacy integrations for refactoring |
| 5 | Deploy middleware and caching | Centralise data flows with iPaaS to reduce redundant API calls and provide automatic throttling and retry logic |
| 6 | Engage Salesforce proactively | If you foresee limit exceedance (data migrations, marketing campaigns), talk to your account team in advance for temporary increases |
| 7 | Negotiate storage and API at renewal | Project growth, bundle additional storage at discounted rates, address API limits upfront. Lock in pricing for future overages |
| 8 | Plan edition upgrades strategically | Evaluate whether upgrading to Unlimited (5x more API calls) is more cost-effective than complex workarounds or add-on packs |
| 9 | Clean data regularly | Quarterly cleanup governance. Remove duplicates, debug logs, orphaned records. Always clean before purchasing extra storage |
| 10 | Engage independent licensing expertise | Independent advisors benchmark pricing, identify optimisation, and negotiate contracts that prevent surprise bills |
Additional data storage costs approximately $125/month per 500 MB block, roughly $250/GB/month, over 10,000x commodity cloud storage. File storage overages are approximately $5/GB/month. These are recurring monthly charges. Archiving and external storage solutions provide immediate ROI.
Salesforce blocks all further API requests (HTTP 503 errors) until usage drops below the rolling 24-hour limit. All integrations halt simultaneously. For the concurrent limit (25 long-running calls), additional requests are rejected. Design integrations with backoff/retry logic and throttling.
Yes, and you should. During renewals or purchases, negotiate additional storage at discounted rates, lower per-GB overage pricing, API call add-on packs, and flexibility provisions. Salesforce reps have more flexibility than you would expect. The key is raising needs proactively. Leverage drops dramatically once you are already over limits.
A combination: Big Objects for historical data needing to remain "in Salesforce" (free of standard costs), external archives (AWS S3, Azure) for bulk offloading at cents/GB, and Salesforce Connect / External Objects for data users occasionally reference. Third-party tools like DataArchiva and OwnBackup Archiver automate the process while preserving referential integrity.
Use Bulk API for high-volume operations (10,000 records/batch), Composite API to bundle sub-requests, Platform Events / Change Data Capture to eliminate polling, and client-side caching for reference data. An enterprise iPaaS can make single Salesforce calls and distribute results to multiple systems. These patterns typically reduce API consumption by 50-90%.
Depends on the maths. Unlimited provides 5,000 API calls/user/day versus 1,000 for Enterprise, a 5x boost. Compare the per-user cost increase against API add-on packs, engineering costs of workarounds, and business cost of disruptions. Sometimes buying cheap Platform licences to boost the API pool is more cost-effective. Our Salesforce advisory team can model these scenarios for your situation.
Our independent Salesforce advisors help enterprises monitor usage, implement optimisation strategies, negotiate better entitlements, and avoid surprise overage bills. 100% vendor-independent. Fixed-fee engagement.
Salesforce Advisory ServicesIndependent Salesforce advisory. Storage optimisation. API governance. Contract negotiation. 100% vendor-independent, fixed-fee engagement.