Skip to main content

You are viewing Agora Docs forBeta products and features. Switch to Docs

Pricing

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

Information
The beta version of Signaling 2.x is offered free of charge for testing its features and performance for the duration of its public beta.

Pricing concepts

Signaling is priced based on the total number of messages, peak connections, and storage usage of your account in a calendar month.

Number of messages

The measurement rules for the number of messages sent and received are as follows:

  • Any 1 message published in the Message Channel counts as 1 message
  • Any 1 message received in the Message Channel counts as 1 message.

For example, if a client sends 1 message to a Message Channel, and the channel is subscribed by 10 people, it is counted as 1 sent message and 10 received messages, for a total of 11 messages.

  • Any 1 message published in a Topic in the Stream Channel counts as 1 message.
  • Any 1 message received in a Topic in the Stream Channel counts as 1 message.

For example, if a client sends a message to a Topic in the Stream Channel, and this Topic is subscribed by 10 people, it is counted as 1 sent message and 10 received messages, for a total of 11 messages.

Even if message filtering is enabled on the client, it does not have any impact on message metering. The client-side message filtering function is only for the convenience of developers, and the messages are actually delivered. The asynchronous callback generated by publishing a message in the Message Channel or Stream Channel is not counted in the number of messages. Messages sent using the RESTful API are also counted as messages. If a client does not subscribe to a channel or topic, it does not receive any messages.

Presence

Each Presence event notification published is counted as one message, such as the client’s entry into the channel, leaving the channel, timeout notification, and status change notification. Each Presence event notification received in the channel counts as one message. For example, if a client enters a channel, and 10 other clients subscribe to the channel and listen to the Presence event notifications in the channel, then this counts as 1 sent Presence event notification, and the remaining 10 clients receive a total of 10 presence event notifications. That is a total of 11 messages.

The client message filtering function has no impact on the presence event notification count. If a client does not want to send the Presence event when joining the Stream Channel or subscribing to the Message Channel, setting withPresence to false does not affect the calculation of the number of messages. If a client does not join a Stream Channel or subscribe to a Message Channel, it does not receive the Presence event notification of the channel.

Storage

Setting, querying, updating, and deleting any piece of Channel Metadata in the Message Channel or Stream Channel is counted as 1 message. Any 1 Channel Metadata change event notification received in a Message Channel or Stream Channel is counted as 1 message. For example, if a client sets 1 Channel Metadata on a channel, the channel is subscribed by 10 people, and these users listen to the Channel Metadata change notification, it is deemed that 1 message has been published and 10 messages have been received, for a total of 11 messages.

Setting, querying, updating, and deleting any piece of User Metadata is counted as 1 message. Receiving 1 change notification of User Metadata is counted as 1 message. For example, if the client sets 1 User Metadata for a user, and the User Metadata is subscribed by 10 people, it is deemed that 1 message has been published and 10 messages have been received, for a total of 11 messages.

Client message filtering has no impact on Channel Metadata or User Metadata change notification counts. The client message filtering settings are as follows:

  • Set withMetadata to false if the client does not want to receive Channel Metadata or User Metadata change notifications when joining a Stream Channel or subscribing to a Message Channel.
  • If a client does not join the Stream Channel or subscribe to a Message Channel, it does not receive the Channel Metadata change notification of the channel.
  • If the client does not subscribe to other users’ User Metadata, it will not receive other users’ User Metadata change notifications.

Locks

Any operations such as lock setting, query, release, deprivation, and deletion are counted as 1 message. Any 1 lock change event notification received in a Message Channel or Stream Channel is counted as one message. For example, if the client sets a lock on a channel, and the channel is subscribed by 10 people, and these users listen to the lock change notification, it is regarded as publishing 1 message and receiving 10 messages, for a total of 11 messages.

In Signaling, a message is calculated in 1 KB. Therefore, if you send a message package with a size of 10 KB to a channel or Topic subscribed by 100 people, it will be counted as 10 inbound messages and 1,000 outbound messages to give a total of 1,010 messages.

Storage occupancy

Storage in Signaling generates cloud storage occupancy. Signaling measures the total storage occupancy, and bills the amount for the month by sampling the customer's actual cloud storage occupancy at 1-hour intervals in a natural month and then accumulating them. The calculation formula is as follows:

Storage fees = number of days in the month * 24 hours * storage usage per hour * sampling rate

For example, if you have 100 GB of storage and you are using a sampling rate of 10%, then your storage fees for a 30-day month would be:

Storage fees = 30 days * 24 hours * 100 GB/hour * 10% = 72,000 GB

This would be equivalent to 72 TB, which is a common unit of measurement for storage capacity. It is important to note that this formula is just a general guideline. The actual storage fees you are charged may vary depending on your provider and your specific contract.

Peak connections

The number of peak connections is the maximum number of real-time clients simultaneously connected to Signaling at any point in a calendar month. For example, if you have 10,000 customers, and a maximum of 500 clients connect to Signaling simultaneously in a given month, the PCU value is 500. This means you only pay for 500 peak connections. The total number of clients or devices connected to Signaling in a month does not affect billing.

Signaling 2.x pricing plans

Signaling 2.x is an enhanced version with wide range of new features compared to 1.x and follows a new pricing structure. You can choose from the following packages:

Signaling 2.x PackageDescriptionPackage Price Per Month in USD
Free PackageUp to 100 Peak Concurrent Users, 100K Daily Message Volume, 3M Monthly Message volume, 1 GB StorageFree
Starter PackageUp to 500 Peak Concurrent Users, 1M Daily Message Volume, 30M Monthly Message volume, 2 GB Storage$59.00
Pro PackageUp to 5K Peak Concurrent Users, 10M Daily Message Volume, 300M Monthly Message volume, 5 GB Storage$399.00
Business PackageUp to 10K Peak Concurrent Users, 20M Daily Message Volume, 600M Monthly Message volume, 10 GB Storage$820.00
Enterprise PackageFor Every 1000 Peak Concurrent Users - $15
For Every 1 Million Message Count - $1.5
For Every GB of Storage -$7.5
Pay –as-you-go (with defined unit prices in the description )

Costing examples

Example 1 - Fixed package: Suppose you are using Signaling 2.x and the number of peak concurrent users (PCU) is less than 5,000, the total message count per month is less than 10 million and storage usage is less than 5 GB. The monthly billing will be $399 considering the Pro Package.

Example 2 - Pay-as-you-go: Suppose you are using Signaling 2.x and the number of peak concurrent users is 20,000, the total message count per month is 7051 Million and the storage is 10 GB. The monthly billing will be as follows:

  • PCU: 20,000
    • PCU Cost = 20000/1000 x $15 = $300 ($15 for Every 1000 Peak Concurrent Users)
  • Message count: 7051 Million
    • Messages Cost = 7051 x $1.50 = $10,576 ($1.50 for every 1 million message count)
  • Storage: 10GB
    • Storage cost = 10 x $7.50= $75 ($7.50 for Every GB of Storage -$7.5)
  • Total cost: $300 + $10,576 + $75 = $10,951 USD (PCU + Messages + Storage)

See also

Billing policies and free-of-charge policy

Signaling