Skip to main content

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:

PlanLimitationsMonthly fee
Free
  • 3,000,000 messages/month
  • 100 PCU (peak concurrent users)/month
  • 1 GB storage capacity/month
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:

PlanLimitationsMonthly fee
Self-service startup
  • 30,000,000 messages/month
  • 500 PCU/month
  • 2 GB free storage capacity/month
399 RMB
Self-service business
  • 600,000,000 messages/month
  • 10,000 PCU/month
  • 10 GB storage capacity/month
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:

ItemPricing
PCU100 RMB/1,000 peak connections
Price per message10 RMB/1,000,000 messages
Storage unit price50 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:

FeatureFreeSelf-serviceEnterprise
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 hours12 x 724 x 724 x 7
Support reply speedAs soon as possible24 hours1 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.

See also

Billing policies and free-of-charge policy

Signaling