Newer Version Available
Change Data Capture Allocations
Concurrent Client Allocation
| Description | Performance and Unlimited Editions | Enterprise Edition | Developer Edition |
|---|---|---|---|
| Maximum number of concurrent CometD clients (subscribers) across all channels and for all event types | 2,000 | 1,000 | 20 |
Default Allocations
If your org has no add-on licenses, default allocations apply and can't be exceeded. Each Salesforce edition provides a default allocation for the number of events delivered to CometD and Pub/Sub API clients, empApi Lightning components, and event relays. This allocation doesn’t apply to non-API subscribers, such as Apex triggers, flows, and processes. The default allocation is enforced daily to ensure fair sharing of resources in the multitenant environment and to protect the service. Default allocations aren’t part of the usage-based entitlement.
The number of delivered events to clients is counted for each subscribed client, including event relays. If you have multiple client subscribers, your usage is added across all subscribers. For example, you have an Unlimited Edition org with a default allocation of 50,000 events in a 24-hour period. Within a few hours, 20,000 event messages are delivered to two subscribed clients. So you consumed 40,000 events and are still entitled to 10,000 events within the 24-hour period.
If you exceed the default event delivery allocation in a CometD client, you receive this error: 403::Organization total events daily limit exceeded. The error is returned in the Bayeux /meta/connect channel when a CometD subscriber first connects or in an existing subscriber connection. For more information, see Streaming API Error Codes in the Streaming API Developer Guide. If you exceed the default event delivery allocation in a Pub/Sub API client, you receive this error code: sfdc.platform.eventbus.grpc.subscription.limit.exceeded and this error message: You have exceeded the event delivery limit for your org. Event messages that are generated after exceeding the allocation are stored in the event bus. You can retrieve stored event messages as long as they are within the retention window of 72 hours.
| Description | Performance and Unlimited Editions | Enterprise Edition | Developer Edition |
|---|---|---|---|
| Maximum number of entities, including standard and custom objects, that you can
select for Change Data Capture on the default standard channel or a custom
channel. If the same entity is selected in multiple channels, it’s counted once toward the allocation. |
5 | 5 | 5 |
| Maximum number of custom channels | 100 | 100 | 100 |
| Event Delivery: maximum number of delivered event notifications in the last 24 hours, shared by all clients. (Applies to CometD and Pub/Sub API clients, empApi Lightning components, and event relays only.) | 50,000 | 25,000 | 10,000 |
Get the Number of Selected Entities
To verify the current usage of selected entities, perform this Tooling API query through REST or in the Developer Console Query Editor.
1SELECT COUNT_DISTINCT(SelectedEntity) FROM PlatformEventChannelMemberThe query gets the number of unique entities selected across all channels. For more information about the Tooling API query REST resource, see REST Resources in the Tooling API Developer Guide.
The SelectedEntity field of PlatformEventChannelMember in Metadata API and Tooling API represents the entities selected through the user interface or the API. For more information, see Select Objects for Change Notifications with Metadata API and Tooling API.
Selected Entities Allocation and AppExchange Released Managed Packages
The maximum number of entity selections of 5 applies to selections that you make, or selections made by an unmanaged or managed package, except for AppExchange packages. If you install an AppExchange released managed package, the selections made by the AppExchange package don’t count against your org’s allocation. You can install the AppExchange package even if the org reaches the maximum number of selected entities default allocation. Also, installing the AppExchange package doesn’t alter the current usage for the number of selected entities. This statement holds true for first- and second-generation packages. For package developers, the entity selection allocation is still enforced in the package development org.
Change Data Capture Add-On License and Usage-Based Entitlement
To remove the limit on the number of entities that you can select for change notifications, contact Salesforce to purchase the Change Data Capture add-on license.
If your org has the add-on license, your allocation for delivered events to CometD and Pub/Sub API clients, empApi Lightning components, and event relays moves to a monthly entitlement model. The add-on increases the 24-hour allocation of delivered event notifications by 100,000 per day (3 million a month) as a usage-based entitlement. The entitlement gives you flexibility in how you use your allocations. The entitlement isn’t as strictly enforced as the default allocation. With the entitlement, you can exceed your 24-hour event delivery allocation by a certain amount. The entitlement is reset every month after your contract start date. Entitlement usage is computed only for production orgs. It isn't available in sandbox or trial orgs. For more information, see Usage-based Entitlement Fields.
Salesforce monitors event overages based on a calendar month, starting with your contract start date. If you exceed the monthly entitlement, Salesforce contacts you to discuss your event usage needs. The entitlement used for monitoring monthly event overages is the daily allocation multiplied by 30.
| Description | Performance and Unlimited Editions | Enterprise Edition |
|---|---|---|
| Maximum number of entities, including standard and custom objects, that you can select for Change Data Capture. | No limit | No limit |
| Event Delivery: entitlement for delivered
event notifications, shared by all clients. (Applies to CometD and
Pub/Sub API clients, empApi
Lightning components, and event relays only.) You can exceed this entitlement by a certain amount before receiving an error. Salesforce uses the monthly entitlement for event overage monitoring. The monthly entitlement is returned in the limits REST API resource. |
Last 24 hours: 150,000
(50 K included with org license + 100 K from add-on
license) Monthly entitlement: 4.5 million (1.5 million included with org license + 3 million from add-on license) |
Last 24 hours: 125,000
(25 K included with org license + 100 K from add-on
license) Monthly entitlement: 3.75 million (0.75 million included with org license + 3 million from add-on license) |
To increase the entitlement for event delivery, contact Salesforce to purchase the High-Volume Platform Events add-on.
The maximum event message size that Salesforce can publish is 1 MB. If your entity has hundreds of custom fields or many long text area fields, you can reach this limit. If so, the change event message isn’t delivered and is replaced by a gap event message. For more information, see Gap Events.
Monitor Your Event Usage Against Your Allocations
Check your change event delivery usage in the user interface, which is shared with platform events. From Setup, in the Quick Find box, enter Platform Events, and then select Platform Events. The usage is shown in the Event Allocations section. The publishing usage doesn’t apply to change events.

Learn about other ways to check event usage with REST API, Apex, and in the Company Information page.
For more information about the limit usage values that the limits REST resource returns, see Limits and List Org Limits in the REST API Developer Guide. For more information about the Apex OrgLimit class, see OrgLimit Class in the Apex Reference Guide.
Monitor 24-Hour and Daily Event Usage with PlatformEventUsageMetric
To get usage data for event publishing for any publishing method and API client delivery for CometD, Pub/Sub API, the empApi Lightning component, and event relays, query the PlatformEventUsageMetric object. PlatformEventUsageMetric contains actual event usage data broken down by type of event for high-volume platform events and change data capture events. The usage metrics stored in PlatformEventUsageMetric are separate from the REST API limits values. The REST API limits resource returns the maximum and remaining allocations for platform events and change data capture events.
PlatformEventUsageMetric usage data is available for the last 24 hours, ending at the last hour, and for historical daily usage for the last 45 days. Use PlatformEventUsageMetric to get visibility into your usage trends.
For more information, see Monitor Change Event Publishing and Delivery Usage.
Monitor Hourly Event Delivery Usage with REST API
To monitor your org's high-volume platform event and change event delivery hourly usage, make a REST API call to the limits resource every hour. The difference between the results obtained in the last 2 hours shows how many events were delivered in the last hour.
For example, you make a call at 12:00 PM and see that you have 40,000 events remaining. Then you run the same call at 1:00 PM and see that you have 38,500 events remaining. The returned responses indicate that 1,500 events were delivered to your API subscribers between 12:00 PM and 1:00 PM.
These results are examples of the responses that a GET request to the /services/data/v57.0/limits URI returns.
1First call result:
2{
3...
4 "DailyDeliveredPlatformEvents" : {
5 "Max" : 50000,
6 "Remaining" : 40000
7 },
8
9...
10}
11
12Second call result:
13{
14...
15 "DailyDeliveredPlatformEvents" : {
16 "Max" : 50000,
17 "Remaining" : 38500
18 },
19
20...
21}