Skip to main content

You are viewing Agora Docs forBetaproducts and features. Switch to Docs

Android
iOS
macOS
Web
Linux C++
Unity

Pricing

This page explains how Agora calculates your monthly bill for Signaling.

How Signaling usage is measured

Signaling is priced based on the following metrics:

  • Number of messages: The total number of messages sent and received by all users in a calendar month.
  • Storage occupancy: The weighted sum of all cloud space occupied by business data storage in a calendar month.
  • Peak connections: The maximum number of concurrent online users or devices during a calender month.

Number of messages

In Signaling, message count is the total number of instructions and data interactions between users and Signaling servers through the SDKs, RESTful APIs, webhooks, or serverless services. It is important to note that one message in Signaling is measured in units of 1 KB. This means that if you send a 2.5 KB message or instruction, it counts as three messages. Use of Signaling features contributes to the message count as follows:

Each of the following constitutes one message:

  • A login request
  • A logout request
  • Updating an expiring token
  • Receiving a connection status change notification
  • Receiving a token expiry notification

Storage occupancy

Storage in Signaling generates cloud storage occupancy. Agora measures the total storage occupancy and bills the amount for the month by sampling the customer's actual storage use at 1-hour intervals during a calendar month. At the end of the month, the average storage occupancy is calculated by dividing the sum of all sample values by the number of samples. The average occupancy is then multiplied by the monthly unit price to calculate the monthly charge. The following formula mathematically represents this calculation process:

Signaling storage calculation formula

Peak connections

Peak connection usage (PCU) is the maximum number of clients simultaneously connected to Signaling at any point during a calendar month. For example, if you have 10,000 customers, and a maximum of 500 clients connected to Signaling simultaneously during the month, the PCU value is 500. This means you only pay for 500 peak connections. The total number of clients or devices that connect to Signaling during a month does not affect billing.

Signaling 2.x pricing plans

Signaling 2.x is an enhanced version of 1.x with a wide range of new features and a new pricing structure. Choose from the following packages:

Signaling 2.x packageDescriptionPackage price
per month (USD)
Free PackageUp to 100 peak concurrent users
3M Monthly message volume
1GB Storage
Free
Starter PackageUp to 500 peak concurrent users
30M Monthly message volume
2GB Storage
$59
Pro PackageUp to 5K peak concurrent users
300M Monthly message volume
5GB Storage
$399
Business PackageUp to 10K peak concurrent users
600M Monthly message volume
10GB Storage
$820
Enterprise PackagePay–as-you-goContact sales

Additional usage cost over and above the fixed package limits:

  • $15 per 1000 PCU
  • $1.5 per 1 million messages
  • $7.5 per 1 GB storage per month

Costing examples

Example 1 - Fixed package: Suppose your number of peak concurrent users is less than 5K, monthly message volume is less than 10M, and storage use is less than 5GB. Based on the Pro package, the monthly billing will be $399.

Example 2 - Pay-as-you-go: Suppose your number of peak concurrent users is 20K, monthly message volume is 800M, and storage use is 10GB. The monthly billing will be as follows:

  • PCU: 20K
    PCU cost = 20000/1000 x $15 = $300 ($15 for every thousand peak concurrent users)
  • Message count: 800M
    Message cost = 800 x $1.5 = $1,200 ($1.5 for every million messages)
  • Storage: 10GB
    Storage cost = 10 x $7.5 = $75 ($7.5 for every GB of storage)
  • Total cost: $300 + $1,200 + $75 = $1,575 (PCU + Messages + Storage)

Reference

This section contains content that completes the information on this page, or points you to documentation that explains other aspects to this product.

Clean up storage

Depending on the features you enable for your project and your actual usage, Signaling stores the relevant data and you incur the corresponding storage charges. To avoid unintended charges, delete stored data that is no longer needed as follows:

FunctionStorage APIStored DataHow to delete
PresencesetStateTemporary user status
  • Call removeState
  • StoragesetChannelMetadata
    setUserMetadata
    Channel Metadata and User Metadata
    • Call removeChannelMetadata or removeUserMetadata
    • Disable Storage from the project configuration page of Agora Console.
    • Contact Agora support
    LocksetLockLock settings and status
    • Call removeLock
    • Disable Locks functionality from the project configuration page of Agora Console.

    See also

    Signaling