Contact Us 1-800-596-4880

Object Store v2 Rate Limiting and Billing

Monitor your Object Store v2 billing by understanding how API requests and effective API requests impact rate limiting and billing. Track usage metrics through Anypoint Usage Reports or the Anypoint Usage API to optimize application performance and avoid exceeding your subscription limits.

Object Store v2 uses two metrics to determine rate-limiting and billing: API requests and effective API requests. To access usage data, use Anypoint Usage Reports or the Anypoint Usage API.

If you enable Use Object Store v2, any connector, module, or policy that relies on Object Store uses Object Store v2, even if your application doesn’t explicitly interact with Object Store. This usage counts toward rate limiting and billing.

These are some examples of connectors, modules, and policies use Object Store internally:

  • API Gateway policies, such as Rate Limiting, SLA-based Rate Limiting, Spike Control, and HTTP Caching

  • B2B Solution Runtime Engine components, such as endpoint services, document processing, and API replication

  • Salesforce connectors

  • Google connectors (primarily for OAuth flows)

  • Microsoft connectors

  • SAP S/4HANA Cloud

  • SAP SuccessFactors

  • AS2

  • RosettaNet

  • Redis

  • Power BI

  • MCP

  • A2A

  • OAuth provider templates and OAuth introspection services

API Requests

API requests are HTTP transactions, such as GET, PUT, and POST.

Object Store uses successful API requests (2xx) to calculate transactions per second (TPS) for rate limiting.

Effective API Requests

Effective API requests are the units that Object Store uses to calculate billing.

One successful API request could generate many effective API requests.

The Object Store UI shows effective API request data for two months: the current and previous month.

Rate Limiting

Every successful API request (via the connector or API) to Object Store v2 counts toward the TPS limit, based on your subscription type:

Subscription Type TPS Limit

Base subscription

10 TPS per store

Premium add-on subscription

100 TPS per store

Rate limiting is applied per application. Each application has a single Object Store allocation, so multiple uses of Object Store within the same application share the same TPS limit.

For example, if your app includes both case-obj-store and ticket-obj-store, Object Store v2 calculates the 100 TPS limit across all stores used within the application combined.

If an app retrieves 1500 keys from an object store with a page size of 25:

  • With the base subscription, the response is throttled over 6 seconds.

  • With the premium subscription, the response isn’t throttled.

If the store exceeds the number of TPS allotted based on the subscription type, Object Store v2 returns a 429 HTTP Error response, indicating that it reached the rate limit.

If the store reaches the TPS limit, you can either upgrade to a premium subscription or redesign the app to send API requests more slowly.

Requests that return a 429 response (due to rate limiting) don’t count toward your monthly billing usage and quota.

How Billing is Calculated

All effective API requests that return a 2xx (success) response count toward your monthly billing usage and quota.

An effective API request counts as one or more units against the quota, depending on the size of the payload and the number of keys returned.

  • Each API request up to 100 KB of object-payload data (if applicable) counts as one unit against the quota.

    For example, if an app retrieves one key from an object store with a total payload size of 500KB, the request counts as five units against the quota.

  • Each 100 KB of payload data above 100 KB counts as an additional unit.

    For example, if an app inserts, updates, or retrieves an item with a total payload size of 101KB from an object store, the operation counts as two units against the quota.

  • For the Retrieve All and Retrieve All Keys operations, the size of all key-value pairs in the object store partition counts toward billable units.

    For example, if an app runs the Retrieve All Keys operation to retrieve only the keys in the object store, the billable unit is based on the size of the key-value pairs, not just the keys.

  • For each Store operation, the size of the item being inserted or updated counts toward billable units.

    For example, if an app inserts or updates one key in an object store with a total payload size of 300KB, the request counts as three units against the quota.

  • Each DELETE API call counts as a single billable unit. Additional units apply to deleted partitions.

    API Call

    Description

    Billable Units

    Delete store

    Deletes the store, all partitions in the store, and all key-value pairs in each partition

    • One billable unit for the DELETE API call

    • One billable unit for each deleted partition in the store

    Delete partitions in store

    Deletes all partitions in the store, including the key-value pairs in each partition

    • One billable unit for the DELETE API call

    • One billable unit for each deleted partition in the store

    Delete partition

    Deletes all key-value pairs and then deletes the partition

    One billable unit

    Delete all keys and values in the partition

    Deletes every key and its associated value from the specified partition

    One billable unit

    Delete key

    Deletes a single key and its associated value

    One billable unit

    For example, a call to delete a store with two partitions counts as three billable units against the quota:

    • DELETE API call: one billable unit

    • Two partitions: two billable units

Maximum Number of API Requests Per Month

This table lists the maximum number of API requests per month, based on your subscription type:

Subscription Type

Maximum API Requests Per Month

Base subscription

26 million

Premium add-on subscription

100 million per add-on subscription

If your usage exceeds your license limit, Object Store v2 continues to work. MuleSoft notifies your account administrator and team of any billing-related information.

Access Effective API Request Usage Reports

To view Object Store usage reports in Usage:

  1. In Anypoint Platform, go to Usage.

  2. Select Object Store in the Product section:

    Object Store on the Usage Reports page
  3. Select a month from the Monthly Usage Report tab or day from the Daily Usage Report tab.

    The report shows:

    • Total effective API requests for the selected period

    • Effective API requests by store

  4. Click Export as CSV to download the usage date for the selected period.

For more information, see Usage Reports.

Retrieve Usage Metrics with the Anypoint Usage API

To retrieve Object Store v2 usage metrics programmatically, use the Anypoint Usage API.

The Anypoint Usage API uses AMQL (Anypoint Metric Query Language), a SQL-like query language, to query usage meters.

Before You Begin

  • Get a bearer token for an Anypoint Platform user with the Usage Viewer permission at the root organization level.

Discover Available Meters

To view all available Object Store meters and their column names:

curl -X GET 'https://anypoint.mulesoft.com/metering/usage/api/v1/meters:describe' \
  -H 'Authorization: Bearer <BEARER_TOKEN>'

Query Object Store Usage

To retrieve effective API request counts, submit a POST request using AMQL:

curl -X POST 'https://anypoint.mulesoft.com/metering/usage/api/v1/meters:search' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <BEARER_TOKEN>' \
  -d '{
    "query": "SELECT effective_api_requests FROM object_store_effective_api_requests_count WHERE timestamp between <START_EPOCH_MS> and <END_EPOCH_MS> TIMESERIES P1D"
  }'

Replace START_EPOCH_MS and END_EPOCH_MS with epoch milliseconds for your date range.

The Usage API uses epoch milliseconds, not ISO 8601 strings. For example, 2024-01-01T00:00:00.000Z = 1704067200000.

AMQL Query Reference

SELECT <columns>
FROM <meter>
WHERE timestamp between <start_epoch_ms> and <end_epoch_ms>
  [AND org_id = '<ORG_ID>']
  [AND env_id = '<ENV_ID>']
TIMESERIES <P1M|P1D>
Parameter Description Values

TIMESERIES

Granularity of results

P1D (daily) or P1M (monthly)

Daily range (P1D)

Maximum query interval

30 days

Monthly range (P1M)

Maximum query interval

60 days

Data recency

Delay for data consolidation

3-day delay

SELECT * is not supported. Always specify column names explicitly. Use the :describe endpoint to get the current column names for each meter.