Pricing
This page explains how Agora calculates your monthly bill for Signaling.
If you have already signed a contract with Agora, the billing terms and conditions within that contract take precedence.
Signaling 1.x pricing plans, features, and limitations
Signaling provides the following pricing plans:
The available features and monthly fees depend on the plan you select. You can check and export the usage status as well as upgrade or downgrade your pricing plan at any time in Agora Console. Plan upgrade takes effect immediately, while plan downgrade takes effect the following month.
Free pricing
The Free pricing plan allows you to experience the core Signaling features with the following limitations:
Plan | Limitations | Monthly fee |
---|---|---|
Free |
| Free |
If your usage exceeds the above limitations, you receive an error code and an email reminder. You cannot continue using Signaling until the end of the corresponding month.
Self-service pricing
The Self-service pricing plan includes two tiers with the following limitations:
Plan | Limitations | Monthly fee |
---|---|---|
Self-service startup |
| 399 RMB |
Self-service business |
| 5499 RMB |
If your usage exceeds the above limitations, you receive an error code and an email reminder. You can continue using Signaling, and your usage above the limitations is billed according to the Enterprise pricing.
Enterprise pricing
The Enterprise pricing plan does not set any additional limitations, besides the API usage restrictions, and includes per-usage billing.
The monthly fee is calculated using the following basic formula:
Monthly fee = PCU fee + message number fee + storage capacity fee
The unit prices are as follows:
Item | Pricing |
---|---|
PCU | 100 RMB/1,000 peak connections |
Price per message | 10 RMB/1,000,000 messages |
Storage unit price | 50 RMB/1 GB |
See How Agora measures your usage to understand how PCU, number of messages, and storage consumption are calculated.
Pricing plan feature comparison
The following Signaling features and support are available based on the pricing plan you select:
Feature | Free | Self-service | Enterprise |
---|---|---|---|
Publish/subscribe to messages | ✔ | ✔ | ✔ |
Stream channel | ✔ | ✔ | ✔ |
Presence | ✔ | ✔ | ✔ |
Storage | ✔ | ✔ | ✔ |
Historical messages | ✔ | ✔ | ✔ |
Lock | ✔ | ✔ | ✔ |
Authentication | ✔ | ✔ | ✔ |
Console | ✔ | ✔ | ✔ |
Webhook | ✔ | ✔ | ✔ |
Analytics | ✔ | ✔ | ✔ |
Uptime SLA | ✘ | ✔ | ✔ |
Geofencing | ✘ | ✘ | ✔ |
GDPR & HIPAA compliance guarantee | ✘ | ✘ | ✔ |
Customized requirements | ✘ | ✘ | ✔ |
Private deployment | ✘ | ✘ | ✔ |
Service hours | 12 x 7 | 24 x 7 | 24 x 7 |
Support reply speed | As soon as possible | 24 hours | 1 hour |
Email support | ✔ | ✔ | ✔ |
Enterprise WeChat support | ✔ | ✔ | ✔ |
Phone support | ✔ | ✔ | ✔ |
Slack support | ✘ | ✔ | ✔ |
Technical expert support | ✘ | ✘ | ✔ |
Dedicated SA support | ✘ | ✘ | ✔ |
Usage discount | ✘ | ✘ | ✔ |
How Agora measures your usage
Agora measures your PCU, number of messages, and storage consumption in the following way:
PCU
Your PCU is the maximum number of real-time users simultaneously connected to the Signaling server at any point in a calendar month. For example, if you have 10,000 users and a maximum of 500 users simultaneously connect in a given month, your PCU value for that month is 500, which means you only pay for 500 peak connections. The total number of users or devices that connected the Signaling server in that month does not affect the fee.
Total number of messages
The size of a single message in Signaling is calculated as 1 KB. If you send a 10 KB message to a channel or topic subscribed to by 100 people, it counts as 10 inbound messages and 1,000 outbound messages, totalling in 1,010 messages. The following additional rules apply for calculating the number of messages:
Sending and receiving messages
Every published or received message in a message channel counts as 1 message. For example, if a user sends 1 message to a message channel, and the channel is subscribed to by 10 other users, it counts as 1 sent message and 10 received messages, totaling in 11 messages.
Every published or received message in a topic in a stream channel counts as 1 message. For example, if a users sends 1 message to a topic in a stream channel, and the topic is subscribed to by 10 other users, it counts as 1 sent message and 10 received messages, totaling in 11 messages.
Note that even if the user enables message filtering, it does not change how the number of messages is calculated. The client-side message filtering is only for the convenience of developers, since a filtered message is still delivered. The asynchronous callback generated by publishing a message in a message channel or a stream channel does not count as a message.
Messages sent using the RESTful API also count as messages. If a user does not subscribe to the channel or topic, they do not receive any messages.
Presence
Every published or received event notification about a user's presence, for example, about a user entering or leaving a channel, counts as one message. For example, if a user enters a channel subscribed to by 10 other users that have enabled the withPresence
parameter to receive presence notifications, then 1 presence notification is sent and 10 notifications are received, totalling in 11 messages.
User message filtering has no effect on the presence event notification count.
If the user does not want to send or receive presence notification events when joining or subscribing to a channel, they can set the beQuite
parameter to true
and withPresence
to false
. In this case, they won't receive any presence notifications. This affects the total count of presence event notifications.
Storage
Setting, querying, updating, and deleting any item of the channel metadata in a message channel or stream channel counts as one message. Receiving an event notification about a change in a message or stream channel metadata counts as 1 message. For example, if a user sets a metadata item in a channel subscribed to by 10 other users who have enabled the withMetadata
parameter to receive metadata change notifications, then 1 notification is sent and 10 notifications are received, totalling in 11 messages.
Setting, querying, updating, and deleting any item of the user metadata counts as one message. Receiving an event notification about a change in a user metadata counts as 1 message. For example, if a user sets an item in a user metadata subscribed to by 10 other users, then 1 notification is sent and 10 notifications are received, totalling in 11 messages.
User message filtering has no effect on metadata change notification counts.
If a user does not want to receive metadata change notifications when joining or subscribing to a channel, they can set withMetaData
to false
. If a user does not join a stream channel or subscribe to a message channel, they don't receive channel metadata change notifications. If a user does not subscribe to other users' metadata, they do not receive other user's metadata change notifications.
Lock
Setting, querying, releasing, depriving, and deleting a lock counts as one message. Receiving an event notification about a lock change in a message or stream channel counts as 1 message. For example, if a user sets a lock on a channel subscribed to by 10 other users who have enabled the withLock
parameter to receive lock change notifications, then 1 notification is sent and 10 notifications are received, totalling in 11 messages.
Storage capacity
Storage in Signaling generates cloud storage occupancy. Agora samples and accumulates your actual cloud storage occupancy at 1-hour intervals to calculate the monthly fee.