SUPPORT.TWILIO.COM END OF LIFE NOTICE: This site, support.twilio.com, is scheduled to go End of Life on February 27, 2024. All Twilio Support content has been migrated to help.twilio.com, where you can continue to find helpful Support articles, API docs, and Twilio blog content, and escalate your issues to our Support team. We encourage you to update your bookmarks and begin using the new site today for all your Twilio Support needs.

Audit Monthly Active Users (MAUs) in Twilio Conversations

Overview

Monthly Active User (MAU) is defined as a unique user identity that performs any of the following actions within a calendar month (UTC):

  • Authenticates and connects to Twilio infrastructure using a Conversations SDK (e.g., when your app creates a Conversations Client object and connects with a valid access token)
  • Creates a user or conversation
  • Edits or is assigned to a conversation
  • Reads a conversation
  • Sends messages in a chat view
  • Sends or receives SMS/WhatsApp messages via the Conversations product

Note: A user is counted as an MAU as soon as they connect to Twilio via a front-end SDK, even if they do not send messages or join conversations.

For more details, see Twilio’s MAU documentation.

 

What You Need To Know

Workarounds and Best Practices

  1. Aggregating Participants via the Conversations API

You can use the List Participants endpoint to retrieve all participants for each conversation. By aggregating unique identities across all conversations for the month, you can approximate your MAU list.

Limitations:

  • If users frequently join and leave conversations, this method may not be precise.
  • This method does not capture users who only log in via SDK but do not participate in conversations.
  1. Tracking MAUs Using Webhooks

For more accurate tracking, enable Conversations webhooks such as onParticipantAdded or onMessageAdded. When these events fire, record the user identity and timestamp in your own database. At the end of the month (UTC), you can export the unique identities that performed qualifying actions.

  1. Tracking MAUs Who Log In via Front-End SDKs

A user is considered "active" (and billed as an MAU) as soon as they authenticate and connect to Twilio infrastructure using a Conversations SDK (for example, when your app creates a Conversations Client object and connects with a valid access token). This applies even if the user does not send messages, join, or leave a conversation.

How to Track SDK Logins for MAU Counting

To accurately track users who are counted as MAUs due to SDK logins, you should:

  • Monitor Access Token Generation:
    Each time your backend generates an access token for a user to connect to the Conversations SDK, log the user identity and timestamp. This is the moment the user is able to connect and will be counted as an MAU if they do.
  • Track Client Connections (Optional):
    If you want to be certain the user actually connected (not just received a token), you can add client-side logging in your app when the Conversations Client successfully connects (e.g., using the connectionStateChanged event in the SDK).
  • Aggregate Unique Identities:
    Store each unique identity that connects during the calendar month (UTC). At the end of the month, export the list of unique identities for your own auditing.

Important:

  • Each time your backend generates an access token for a user to connect to the Conversations SDK, log the user identity and timestamp. This is the moment the user is able to connect and will be counted as an MAU if they do.
  • Only create the Conversations Client object when the user truly needs to connect, to avoid inflating your MAU count.
  • Billing is per unique identity per month (UTC): Multiple logins by the same user in the same month only count as one MAU.

 

Understanding the Timezone

  • MAUs are tracked per calendar month in UTC (e.g., January 1, 2026 00:00:00 UTC to January 31, 2026 23:59:59 UTC).

 

Frequently Asked Questions

Can I Retrieve a List of MAU Identities via the API?

Currently, Twilio does not provide a direct API endpoint to export a full list of user identities that qualify as MAUs for a given month. The pchat-users endpoint in the Usage API provides the count and pricing for MAUs, but not the actual list of identities.

Why Isn’t This Available?

  • The MAU count is calculated internally for billing and scalability reasons.
  • Returning large lists of identities (sometimes hundreds of thousands) is not currently supported via API.
  • Feature requests for this capability have been submitted, but there is no ETA for availability.

What actions qualify a user as “active” for MAU calculation?

Logging in via SDK (connecting to Twilio), creating a user/conversation, editing, being assigned to a conversation, reading, sending messages, or sending/receiving SMS/WhatsApp via Conversations.

Does leaving a conversation or updating user info count?

Leaving a conversation does not count as activity. Updating user info (like friendly name) does not qualify as MAU activity.

How can I trust the MAU count for billing if I can’t export the list?

Twilio’s MAU calculation is carefully managed and documented. For most customers, the count is sufficient for billing. If you need to minimize MAUs, see best practices.

 

Conclusion

Summary Table: What Makes a User an MAU?

Action Counts as MAU?
Logs in via SDK (connects to Twilio) Yes
Sends a message Yes
Joins or leaves a conversation Yes
Only receives an access token (never connects) No
Updates user info (via REST API) Yes

 

Below you will find references to useful documents:

Have more questions? Submit a request
Powered by Zendesk