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.

How to Use the Monitor Event Resource for Event Tracking

Overview

Twilio's Monitor Events feature provides a comprehensive log of actions and changes across all your Twilio resources. For example, events are recorded when you provision a phone number, update account security settings, delete a recording, and so on. Virtually every action taken in your Twilio account (whether via API, through the Twilio Console by a user, or even by Twilio support) generates an Event log entry. 

 

Environment

Twilio Console

 

What You Need To Know

The Monitor Events API allows you to retrieve these log entries. Each Event record includes details such as the type of event, the resource it relates to, the actor who caused it, the originating source (with IP address), and any relevant data about what changed. This makes Events a powerful tool for auditing and tracking changes in your Twilio applications, giving you full visibility into activities in your account.

Prerequisites

  • Twilio Account Credentials – You will need your Account SID and Auth Token from the Twilio Console to authenticate API requests.
  • Twilio Helper Library or REST Client – Install Twilio’s Helper Library for your programming language (e.g., Node.js) to easily interact with the Monitor API, or be prepared to make direct REST API calls. In the examples below, we use the Twilio Node.js library.

Instructions

  1. Fetch a Specific Event by SID – Every event log entry has a unique Event SID (starting with "AE") that can be used to retrieve that event via the API. To fetch a specific Event, make a GET request to the Event’s endpoint (e.g. GET https://monitor.twilio.com/v1/Events/{EventSid}), or use the helper library method. For example, using Node.js:
const twilio = require('twilio');
const client = twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);

// Replace with a real Event SID you want to retrieve:
const event = await client.monitor.v1.events('AEXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch();
console.log(event.eventType);

This call retrieves the Event resource identified by the given SID. The response includes all details of that event, such as its eventType (e.g. "account.updated"), the resourceSid and resourceType it pertains to, the actorSid and actorType (who or what triggered the event), the source (e.g. "api" or "web"), timestamps, and more. Use these details to understand what change occurred and who initiated it.

  1. List and Filter Multiple Events – You can retrieve a list of recent events for your account by listing the Events resource. By default, a GET request to the Events endpoint (GET https://monitor.twilio.com/v1/Events) will return all events in your account, sorted by event date (most recent first). This allows you to audit activity over a period of time. You can narrow down the results by specifying query parameters to filter the events. Note: You may only filter by one field at a time (in addition to an optional date range); using multiple different filters in one request will result in a 400 Bad Request error. Common filter options include:
  • ActorSid – Only include events initiated by a specific actor (a User ID or Account SID). Use this to audit actions by a certain user or credential.
  • EventType – Only include events of a specific type (for example, "account.updated" for account changes).
  • ResourceSid – Only include events that involve a specific Twilio resource (identified by its SID). This is useful for getting the history of a particular resource, such as a certain phone number or message SID.
  • SourceIpAddress – Only include events that originated from a given IP address. This can help track suspicious or specific API usage originating from a known IP.
  • StartDate / EndDate – Only include events that occurred on or after (StartDate) or on or before (EndDate) specific dates. These parameters let you define a time range for events. Dates should be provided in GMT and ISO 8601 format (e.g. YYYY-MM-DDThh:mm:ssZ).

For example, to list events for a specific date range and actor using the Node.js library, you could do

 const events = await client.monitor.v1.events.list({ 
    startDate: new Date('2026-01-01T00:00:00Z'), 
    endDate:   new Date('2026-01-31T23:59:59Z'), 
    actorSid:  'USXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' 
});
events.forEach(e => console.log(e.eventType + " — " + e.resourceSid));

This will fetch events in January 2026 that were initiated by the specified User (actor SID). Each event in the list can then be inspected for its details. By adjusting the parameters (as shown above), you can query for various auditing needs – for instance, all events of type "call.created" in the last 24 hours, or all actions taken by a certain subaccount.

 

Frequently Asked Questions

Do Monitor Events include actions performed by Twilio or only those by my account? 

The event log includes all actions on your account, even those performed by Twilio internally or support engineers . Each event record has an actorType to indicate who/what caused it – for example, "user" for a logged-in user in your Twilio Console, "account" for an API request made with your account credentials, or "twilio-admin" for a change made by a Twilio administrator. The source field further indicates where the action originated (e.g. web for Console UI, api for API calls, or twilio for Twilio’s automated systems).

Can I filter Events by multiple criteria at the same time? 

Not in a single request. The Events API allows filtering by only one field at a time (besides the date range). For instance, you can filter by resourceSid or by eventType in one call, but if you try to combine filters (like setting both an ActorSid and an EventType in the same query), the API will return a 400 Bad Request. If you need to filter by multiple aspects, you should fetch the broader set of events and then apply additional filtering in your own code, or make separate requests for each filter criterion.

Where can I find the list of all possible Event types and resource types? 

Twilio provides a full list of supported ResourceType and EventType values in the Monitor Events documentation. This list enumerates every resource (e.g. account, call, message, phone_number, etc.) and the event actions (such as created, updated, deleted) that can appear in the event logs. For example, "account.updated" seen in an Event means an Account resource was updated, and similarly there are event types for messages, calls, recordings, and so on. Refer to the “Full List of All Supported Resource-Types and Event-Types” section in the Twilio docs for the complete reference here.

 

Conclusion

Twilio Monitor Events API Reference: Official documentation for the Events resource in Twilio’s Monitor API, including parameters and example responses. (See: Monitor Event Resource) Twilio Docs.

 

 

 

 

 

 
 
 
 
 
 
Have more questions? Submit a request
Powered by Zendesk