MuleSoft Anypoint Platform Capabilities — Pricing, Flows/Messages, CloudHub 2.0
Type: ERP Integration
System: MuleSoft Anypoint Platform (CloudHub 2.0, Mule Runtime 4.x)
Confidence: 0.88
Sources: 8
Verified: 2026-03-02
Freshness: evolving
TL;DR
- Bottom line: MuleSoft Anypoint Platform uses usage-based pricing measured by Mule Flows (max concurrent per hour), Mule Messages (total monthly), and data throughput (GB/month). Two tiers: Integration Starter (50 flows, 5M messages) and Integration Advanced (200 flows, 20M messages). CloudHub 2.0 provides managed replicas from 0.1 to 4 vCores.
- Key limit: Flow count is multiplied by replicas — 1 flow deployed on 3 replicas counts as 3 flows against your allotment.
- Watch out for: The pricing model shift from vCore-based to usage-based (Flows/Messages) in late 2023/2024. Legacy contracts may still use vCore allocations.
- Best for: Enterprise API-led integration requiring 1,500+ pre-built connectors, full API lifecycle management, and multi-cloud deployment with DataWeave transformation.
- Authentication: Connected Apps with OAuth 2.0 (client credentials for M2M, authorization code for user-context).
System Profile
MuleSoft Anypoint Platform is Salesforce's enterprise iPaaS providing a unified environment for designing, building, deploying, and managing APIs and integrations. It follows "API-led connectivity" with three layers: system APIs (connect to backends), process APIs (orchestrate business logic), and experience APIs (serve consumers). This card covers platform-level capabilities, pricing, and infrastructure limits — not specific connector APIs or MuleSoft Automation (RPA, IDP).
| Property | Value |
| Vendor | Salesforce (MuleSoft) |
| System | Anypoint Platform (Mule Runtime 4.x, CloudHub 2.0) |
| API Surface | REST APIs (Platform APIs), RAML/OAS design, DataWeave 2.x, 1,500+ connectors |
| Current Version | CloudHub 2.0, Mule 4.x (2025-2026 releases) |
| Editions Covered | Integration Starter, Integration Advanced, API Management Solution |
| Deployment | Cloud (CloudHub 2.0), Self-managed (Runtime Fabric on K8s), Hybrid |
| API Docs | MuleSoft Documentation |
| Status | GA |
API Surfaces & Capabilities
MuleSoft is an integration platform (not an ERP) — its "API surfaces" are the platform management APIs and integration runtime capabilities.
| Capability | Protocol | Best For | Limits | Real-time? | Bulk? |
| Anypoint Platform APIs | HTTPS/JSON REST | Managing deployments, APIs, users | 15 req/s per IP | Yes | No |
| HTTP/HTTPS Connector | HTTP/1.1, HTTP/2 | Consuming/exposing REST/SOAP APIs | 1 GB max request, 300s timeout | Yes | No |
| Anypoint MQ | HTTPS/JSON | Async messaging, event-driven | 100K msg/s (enterprise) | Yes | Yes |
| Batch Module | Internal | ETL, scheduled data loads | Configurable batch size | No | Yes |
| DataWeave 2.x | Transformation | Data mapping (JSON, XML, CSV, flat file) | Memory-bound by replica | N/A | N/A |
| Object Store v2 | HTTPS/JSON REST | State persistence, idempotency | 10 TPS base / 100 TPS premium | Yes | No |
| Anypoint Connectors | Various | Pre-built connectivity to 1,500+ systems | Per-connector limits vary | Both | Both |
| Flex Gateway | HTTP/HTTPS | Lightweight API gateway | Per API policy limits | Yes | No |
Rate Limits & Quotas
Usage-Based Pricing Metrics (Per Year)
| Metric | Integration Starter | Integration Advanced | Overage Increment | Counting Method |
| Mule Flows | 50 | 200 | Contact sales | Max Concurrent — highest # of flows in any single hour of the month |
| Mule Messages | 5,000,000 | 20,000,000 | 1M increments | Total — sum of all messages from event sources per month |
| Data Throughput | 10,000 GB | 40,000 GB | 100 GB increments | Total — all data in/out of Mule infrastructure per month |
CloudHub 2.0 Infrastructure Limits
| Limit Type | Value | Notes |
| Max HTTP request size | 1 GB | Per request |
| Max HTTP request timeout | 300 seconds | Read-request timeout |
| Max HTTP header length | 32 KB | All headers combined |
| Max ingress URI size | 4 KB | URL path + query string |
| API rate limit | 15 req/s per remote IP | Management API |
| Max application size | 350 MB | Deployment artifact |
| Max application properties | 300 | Key/value pairs |
| Max property key/value | 1,024 chars each | Per entry |
| Environments per business group | 200 | Organizational limit |
| Private spaces per org | 100 | Network isolation |
| VPNs per private space | 10 | Site-to-site |
| Firewall rules (in/out) | 300 each | Per private space |
CloudHub 2.0 Replica Sizes
| Replica Size | vCores | Total Memory | Heap Memory | Storage | CPU Bursting |
| 0.1 vCore | 0.1 | 1.2 GB | 480 MB | 8 GB | Yes |
| 1 vCore | 1 | 4 GB | 2 GB | 12 GB | No |
| 2 vCores | 2 | 8 GB | 4 GB | 20 GB | No |
| 4 vCores | 4 | 15 GB | 7.5 GB | 20 GB | No |
Metaspace limit: 256 MB (fixed, all sizes). Initial metaspace: 128 MB. Replicas under 1 vCore support CPU bursting for faster startup. [src4]
Object Store v2 Limits
| Limit Type | Base | Premium Add-on | Notes |
| TPS per store | 10 | 100 | 429 on exceed |
| Monthly API requests | 26M | 100M per add-on | Per org, all environments |
| Max value size | 10 MB (Base64) | 10 MB (Base64) | Per entry |
| Max key size | 1,024 bytes | 1,024 bytes | UTF-8 |
| Max TTL | 30 days | 30 days | 2,592,000 seconds |
| Billing unit | 1 per 100 KB | 1 per 100 KB | Payload-based billing |
Authentication
Platform-Level Authentication (Anypoint Platform APIs)
| Flow | Use When | Token Lifetime | Refresh? | Notes |
| Connected App — Client Credentials | M2M automation, CI/CD | ~30 min (configurable) | New token per expiry | Recommended. Org-scoped. |
| Connected App — Authorization Code | User-context operations | Configurable | Yes (refresh token) | Requires redirect URI |
| Connected App — JWT Bearer | Server-to-server with user impersonation | Configurable | New JWT per request | App on behalf of user |
| Username/Password | Legacy, testing only | Session-based | No | Deprecated — no MFA |
Authentication Gotchas
- Connected Apps using Client Credentials are scoped to the org where created — cannot access other organizations. [src6]
- Client secret has no expiration by default, but admins can set one — monitor rotation. [src6]
- Rate limiting on Platform Access Management API calls can cause auth failures during high-volume CI/CD — implement token caching. [src3]
Constraints
- Flow counting is per-replica: 5 flows on 3 replicas = 15 flows against allotment. #1 surprise in capacity planning.
- Integration Starter caps at 50 flows/year: Beyond a few simple integrations, you need Advanced (200 flows) or overages.
- CloudHub 2.0 max request timeout: 300 seconds: Long-running operations must be designed asynchronously.
- Object Store v2 TTL max: 30 days: Cannot be used for permanent state — use external database.
- No published list prices: Budget $100K-$250K/year minimum for Integration Starter based on industry reports.
- Replicas share global vCore pool: New deployments fail if pool exhausted.
- Premium connectors (SAP, Oracle EBS) are add-ons: Not included in base tiers.
Integration Pattern Decision Tree
START — User needs MuleSoft Anypoint Platform
├── What's the primary use case?
│ ├── API-led connectivity (expose + orchestrate + consume APIs)
│ │ ├── < 50 integrations? → Integration Starter
│ │ ├── 50-200 integrations? → Integration Advanced
│ │ └── > 200 integrations? → Integration Advanced + overage packs
│ ├── API management only → API Management Solution
│ ├── Automation (RPA, IDP) → MuleSoft Automation suite (separate pricing)
│ └── Event-driven messaging → Anypoint MQ add-on + Integration tier
├── Where to deploy?
│ ├── Fully managed cloud → CloudHub 2.0
│ │ ├── Dev/test → 0.1 vCore replicas (CPU bursting, cheapest)
│ │ ├── Production → 1-4 vCore replicas
│ │ └── HA required? → minimum 2 replicas (auto multi-AZ)
│ ├── Self-managed K8s → Runtime Fabric
│ └── Hybrid → On-premise + Anypoint Platform management
├── Capacity planning?
│ ├── Count flows: max concurrent/hour × replicas
│ ├── Count messages: event source triggers per month
│ └── Count throughput: GB in/out including monitoring overhead
└── Need state persistence?
├── Temporary (< 30 days) → Object Store v2
├── Permanent → External database
└── Message queuing → Anypoint MQ
Quick Reference
Pricing Tier Comparison
| Feature | Integration Starter | Integration Advanced | API Management |
| Mule Flows | 50/year | 200/year | N/A |
| Mule Messages | 5M/year | 20M/year | N/A |
| Data Throughput | 10,000 GB/year | 40,000 GB/year | N/A |
| CloudHub 2.0 | Included | Included | Not included |
| API Manager | Limited | Full | Full |
| API Governance | Not included | Not included | Included |
| Flex Gateway | Not included | Not included | Included |
| HA Clustering | Not included | Included | N/A |
| Multi-cloud | Not included | Included | N/A |
| Premium Connectors | Add-on | Add-on | N/A |
| Est. Annual Cost | $100K-$150K | $200K-$400K+ | Contact sales |
Key Platform Components
| Component | Purpose | Included In |
| Anypoint Studio | Desktop IDE (Eclipse-based) | All tiers |
| Anypoint Code Builder | Cloud IDE (VS Code-based) with AI | All tiers |
| API Designer | RAML/OAS API spec authoring | All tiers |
| API Manager | Proxy management, policies, SLA tiers | Starter (limited), Advanced, API Mgmt |
| Runtime Manager | Deploy/manage Mule apps | All integration tiers |
| Anypoint Exchange | Asset marketplace | All tiers |
| Anypoint Monitoring | Performance dashboards | Basic (Starter), Advanced (Advanced) |
| Anypoint MQ | Cloud messaging (pub/sub, queues) | Add-on |
| DataWeave 2.x | Data transformation language | All tiers |
| Flex Gateway | Lightweight API gateway | API Management tier |
Step-by-Step Integration Guide
1. Authenticate to Anypoint Platform API
Create a Connected App (client credentials) and obtain an access token. [src6]
curl -X POST "https://anypoint.mulesoft.com/accounts/api/v2/oauth2/token" \
-H "Content-Type: application/json" \
-d '{"grant_type":"client_credentials","client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
Verify: Response includes "access_token" field and "token_type": "bearer".
2. List Environments
Retrieve environment IDs needed for deployment operations. [src1]
curl -X GET "https://anypoint.mulesoft.com/accounts/api/organizations/{orgId}/environments" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Verify: Response includes array of environments with id, name, and type.
3. Deploy to CloudHub 2.0
Use the Runtime Manager API to deploy a Mule application. [src4]
curl -X POST "https://anypoint.mulesoft.com/amc/application-manager/api/v2/organizations/{orgId}/environments/{envId}/deployments" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"my-app","target":{"provider":"MC","targetId":"{targetId}","replicas":2,"replicaSize":"1"},"application":{"ref":{"groupId":"{groupId}","artifactId":"my-app","version":"1.0.0","packaging":"jar"}}}'
Verify: GET deployment endpoint returns "status": "RUNNING".
4. Check Usage Metrics
Monitor flow and message consumption against allotments. [src2]
curl -X GET "https://anypoint.mulesoft.com/accounts/api/cs/organizations/{orgId}/usage-reports" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Verify: Response includes current period flow count, message count, and throughput against allotment.
Code Examples
Python: Authenticate and List Deployments
# Input: Connected App client_id and client_secret
# Output: List of deployed applications
import requests # requests==2.31+
CLIENT_ID = "your_client_id"
CLIENT_SECRET = "your_client_secret"
ORG_ID, ENV_ID = "your_org_id", "your_env_id"
BASE = "https://anypoint.mulesoft.com"
token = requests.post(f"{BASE}/accounts/api/v2/oauth2/token",
json={"grant_type":"client_credentials","client_id":CLIENT_ID,"client_secret":CLIENT_SECRET}
).json()["access_token"]
apps = requests.get(
f"{BASE}/amc/application-manager/api/v2/organizations/{ORG_ID}/environments/{ENV_ID}/deployments",
headers={"Authorization": f"Bearer {token}"}
).json()
for app in apps.get("items", []):
print(f"{app['name']}: {app['status']}")
JavaScript/Node.js: Deploy and Monitor
// Input: Connected App credentials
// Output: Deployment ID and status
const axios = require("axios"); // [email protected]+
const BASE = "https://anypoint.mulesoft.com";
async function getToken(clientId, clientSecret) {
const { data } = await axios.post(`${BASE}/accounts/api/v2/oauth2/token`, {
grant_type: "client_credentials", client_id: clientId, client_secret: clientSecret
});
return data.access_token;
}
async function listApps(orgId, envId, token) {
const { data } = await axios.get(
`${BASE}/amc/application-manager/api/v2/organizations/${orgId}/environments/${envId}/deployments`,
{ headers: { Authorization: `Bearer ${token}` } }
);
return data.items;
}
cURL: Quick Platform Health Check
# Authenticate and check org info
TOKEN=$(curl -s -X POST "https://anypoint.mulesoft.com/accounts/api/v2/oauth2/token" \
-H "Content-Type: application/json" \
-d '{"grant_type":"client_credentials","client_id":"'$CLIENT_ID'","client_secret":"'$CLIENT_SECRET'"}' \
| jq -r '.access_token')
curl -s "https://anypoint.mulesoft.com/accounts/api/me" \
-H "Authorization: Bearer $TOKEN" | jq '.user.organization.name'
Data Mapping
Mule Message Structure
| Component | Description | Access Pattern | Gotcha |
| payload | Main data body | payload | Consumed on first read for streaming |
| attributes | Metadata (headers, query params) | attributes.headers | Read-only after creation |
| vars | Flow variables | vars.myVar | May not propagate to flow-ref targets |
| error | Error object on exception | error.description | Only in error handlers |
DataWeave Common Transforms
| Source | Target | Transform | Gotcha |
| JSON object | XML | output application/xml --- payload | Arrays need wrapper element |
| CSV | JSON array | output application/json --- payload | Header spaces cause issues |
| Flat file | JSON | Schema-based (FFD file) | Must define schema |
| XML + namespaces | JSON | Use ns declaration | Namespaces stripped in JSON |
Data Type Gotchas
- DataWeave auto-coerces types —
"123" string becomes 123 number. Always use explicit coercion: payload.amount as Number. [src2]
- Streaming payloads consumed on first read. Enable
repeatableFileStoreStream to allow re-reading. [src4]
- Date/time: DataWeave uses ISO 8601 by default. For epoch timestamps, use
payload.date as Number {unit: "milliseconds"}. [src2]
Error Handling & Failure Points
Common Error Codes
| Code | Meaning | Cause | Resolution |
| 429 | Rate limit exceeded | >15 req/s per IP (CloudHub API) or >10 TPS (Object Store) | Exponential backoff, max 5 retries |
| 503 | Service unavailable | Replica restarting or scaling | Retry after 30s; check Runtime Manager |
| 408 | Request timeout | Exceeded 300s CloudHub limit | Redesign as async pattern |
| 413 | Payload too large | Request body > 1 GB | Chunk payload; use streaming |
| MULE:CONNECTIVITY | Connection refused/timeout | Target system down or network | Check firewall rules, VPN status |
| MULE:RETRY_EXHAUSTED | All retries failed | Persistent downstream failure | Dead letter queue; alert ops |
| MULE:EXPRESSION | DataWeave error | Null payload, wrong type | Null-safe: payload.field default "" |
| MULE:STREAM_MAXIMUM_SIZE_EXCEEDED | Buffer overflow | Streaming payload exceeds buffer | Increase maxInMemorySize |
Failure Points in Production
- Flow count surprise at renewal: More replicas for HA triples flow count beyond contract. Fix:
Audit flow counts monthly via Usage Reports API; right-size replica counts. [src2]
- Object Store TTL expiry during batch: State expires mid-job (30-day max). Fix:
Use external DB for batch state; Object Store only for short-lived idempotency keys. [src5]
- vCore pool exhaustion: New deployments fail silently. Fix:
Monitor via Platform APIs; alert at >80% allocated; stop unused sandbox apps. [src4]
- Streaming payload consumed twice: Payload null after logger reads it. Fix:
Enable repeatableFileStoreStream in HTTP Listener config. [src4]
- Connected App secret expiration: CI/CD pipeline breaks. Fix:
Monitor secret expiration; rotate on schedule; use rolling connected apps. [src6]
- Firewall rule limit (300): Complex topology exhausts limit. Fix:
Use CIDR aggregation; consolidate by subnet; consider network peering. [src3]
Anti-Patterns
Wrong: Counting flows without considering replicas
// BAD — assumes 10 flows = 10 against allotment
// Reality: 10 flows x 3 replicas = 30 flows
App has 10 flows deployed on 3 replicas for HA
Expected: 10 flows | Actual: 30 flows (10 x 3)
Correct: Factor replicas into capacity planning
// GOOD — plan with replica multiplier
Total = sum(app_flows x app_replicas) for all apps
App A (5 flows x 2 replicas) + App B (3 flows x 1 replica) = 13 flows
Rule: Use 1 replica for non-production environments
Wrong: Synchronous processing for large payloads
// BAD — blocks for 5+ minutes, hits 300s timeout
HTTP Listener → Transform 500MB file → POST to target
Result: 408 timeout after 300 seconds
Correct: Async pattern with Anypoint MQ
// GOOD — async with status tracking
HTTP Listener → Validate → Publish to MQ → Return 202 Accepted
Subscriber flow: MQ → Chunk → Process → Update status
Client polls status endpoint for completion
Wrong: Using Object Store as a database
// BAD — data disappears after 30 days
Store customer preferences in Object Store v2
Result: All data silently deleted after TTL expiry
Correct: Object Store for transient state only
// GOOD — transient vs permanent separation
Object Store: dedup keys (TTL: 24h), batch watermarks (TTL: 7d)
External DB: customer data, config, audit logs
Common Pitfalls
- "Sandbox is free" assumption: Sandbox consumes from same vCore pool as production. Fix:
Use 0.1 vCore single-replica in sandbox; stop apps when not testing. [src4]
- Ignoring data throughput metric: Monitoring overhead counts toward allotment. Fix:
Monitor via Usage Reports; reduce logging verbosity in production. [src2]
- Not pinning connector versions: Upgrades introduce breaking changes. Fix:
Pin versions in pom.xml; test upgrades in sandbox first. [src1]
- Underestimating message volume: Frequent polling accumulates millions. Fix:
Calculate: triggers/min x 60 x 24 x 30. Use watermark-based polling. [src2]
- Single-replica production: No failover — restart means downtime. Fix:
Minimum 2 replicas for production (auto multi-AZ, 60+ miles apart). [src4]
- Premium connector surprise: SAP, Oracle EBS not in base tiers. Fix:
Identify all connectors during evaluation; get add-on pricing before signing. [src8]
Diagnostic Commands
# Authenticate
TOKEN=$(curl -s -X POST "https://anypoint.mulesoft.com/accounts/api/v2/oauth2/token" \
-H "Content-Type: application/json" \
-d '{"grant_type":"client_credentials","client_id":"'$CLIENT_ID'","client_secret":"'$CLIENT_SECRET'"}' \
| jq -r '.access_token')
# Check org info
curl -s "https://anypoint.mulesoft.com/accounts/api/me" \
-H "Authorization: Bearer $TOKEN" | jq '.user.organization'
# List environments
curl -s "https://anypoint.mulesoft.com/accounts/api/organizations/$ORG_ID/environments" \
-H "Authorization: Bearer $TOKEN" | jq '.data[] | {id, name, type}'
# List deployments
curl -s "https://anypoint.mulesoft.com/amc/application-manager/api/v2/organizations/$ORG_ID/environments/$ENV_ID/deployments" \
-H "Authorization: Bearer $TOKEN" | jq '.items[] | {name, status}'
# Check usage metrics
curl -s "https://anypoint.mulesoft.com/accounts/api/cs/organizations/$ORG_ID/usage-reports" \
-H "Authorization: Bearer $TOKEN" | jq '.'
Version History & Compatibility
| Version/Milestone | Release | Status | Key Changes | Notes |
| CloudHub 2.0 GA | 2023 | Current | K8s-based, replicas replace workers | Successor to CloudHub 1.0 |
| Usage-based pricing | 2023/2024 | Current | Flows/Messages replaces vCore pricing | New contracts only |
| Mule Runtime 4.6.x | 2025 | Current | Java 17, performance improvements | Mule 3.x EOL |
| Flex Gateway GA | 2023 | Current | Lightweight API gateway | Separate from CloudHub |
| Anypoint Code Builder | 2024 | Current | Cloud VS Code IDE with AI | Replaces Design Center |
| MuleSoft MCP Server | 2025 | Current | AI agent integration | Part of Agentforce |
CloudHub 1.0 is in maintenance mode. Mule 3.x has reached end of extended support. MuleSoft follows Salesforce's release cadence with three major releases per year.
When to Use / When Not to Use
| Use When | Don't Use When | Use Instead |
| Enterprise needs 1,500+ connectors for complex multi-system integration | Simple point-to-point between 2-3 SaaS apps | Workato, Zapier, or native integrations |
| API-led connectivity with system/process/experience layers | Budget under $100K/year | Open-source (Apache Camel) or lower-cost iPaaS |
| Salesforce-centric org wanting tight CRM integration | Need only API gateway | Kong, Apigee, AWS API Gateway |
| Regulated industry requiring full API governance | Lightweight event streaming only | Apache Kafka, AWS EventBridge |
| Hybrid deployment (on-premise + cloud) | Serverless/function-based integration only | AWS Step Functions, Azure Logic Apps |
Important Caveats
- MuleSoft does not publish list prices. All estimates ($100K-$400K+/year) are from industry reports and vary by negotiation, Salesforce relationship, and volume. Always get a formal quote.
- Usage-based pricing (Flows/Messages) applies to new contracts. Legacy vCore-based contracts have different limits. Confirm your contract model before planning.
- CloudHub 2.0 limits (15 req/s, 300s timeout) are current as of early 2026 but subject to change. Verify against latest release notes.
- Sandbox environments consume from the same resource pool as production. There is no "free tier."
- Object Store v2 billing is payload-based: a 500 KB GET counts as 5 units (1 per 100 KB).
- Premium connectors (SAP, Oracle, Workday) require separate licensing and can increase TCO by 20-40%.
Related Units