• Register

Events API

The Events API lets your application learn about activity in Egnyte. This means you can find out what has happened since a given moment in time, letting your application respond or react to activity. Currently, this API is limited to file system and notes activity. We will progressively add more event types. If you have a need for a specific event type, please email api-support@egnyte.com to tell us about your use case.

Note: the event stream exposed by this Events API stores the latest 500,000 events, up to a maximum of 30 days. Older events are not accessible via this API.

Polling

Our Events API supports polling for changes based on a cursor which indicates a position in the sequence of events that have occurred on your domain. The cursor is a monotonically increasing number that is associated with each event recorded in our global event store. To watch for events, you should get a cursor and periodically poll for new events which have occurred after that event's cursor.

Getting a Cursor

To initially get a cursor, you should query the cursor endpoint.

GET/pubapi/v1/events/cursor
Request Examples
GET /pubapi/v1/events/cursor HTTP/1.1
Host: apidemo.egnyte.com
Authorization: Bearer 68zc95e3xv954u6k3hbnma3q
curl -v -H "Authorization: Bearer 68zc95e3xv954u6k3hbnma3q" \
https://apidemo.egnyte.com/pubapi/v1/events/cursor
Sample Response Body
{
  "latest_event_id":16342,
  "oldest_event_id":16321,
  "timestamp": "2025-05-28T11:41:12.000Z" 
}
Response Parameters
Element Description
timestamp The ISO-8601 formatted timestamp associated with the latest event.
latest_event_id The latest event ID available. Most likely, you will want to update your cursor to this value for future calls.
oldest_event_id The oldest event ID available.

Listing Subsequent Events (version 1)

You should query this endpoint to find what events have occurred after a given cursor.

  • When periodically polling this endpoint, please use an interval of 5 minutes or more.
  • If your cursor is less than the oldest cursor value, you will only receive the events since the oldest cursor value we have.
  • If you receive a 204 response, there were no events to return after the cursor provided for this user access token.
GET/pubapi/v1/events?id={cursor_id}
Request Examples
GET /pubapi/v1/events?id=16341 HTTP/1.1
Host: apidemo.egnyte.com
Authorization: Bearer 68zc95e3xv954u6k3hbnma3q
curl -v -H "Authorization: Bearer 68zc95e3xv954u6k3hbnma3q" \
https://apidemo.egnyte.com/pubapi/v1/events?id=16341
Sample Response Body
{
"latest_id": 16342,
"oldest_id": 16342,
"count": 1,
"events":
[
{
"id": 16342,
"timestamp": "2025-05-28T11:41:12.000Z",
"action_source": "WebUI",
"actor": 1,
"type": "file_system",
"action": "copy",
"object_detail": "https://apidemo.egnyte.com/pubapi/v1/fs/Shared/Documents/My%20Contract.docx",
"data":
{
"target_path": "/Shared/Documents/My Contract.docx",
"target_id": "89b1e9d9-8a04-4277-807c-d68107796c76",
"target_group_id": "48f2dade-cd0a-472e-ab81-ab4b78135328",
"source_path": "/Shared/Contracts/My Contract.docx",
"source_id": "85756cb4-7d82-439c-9ea4-be80eaebaecf",
"source_group_id": "19f157de-267a-45e9-903a-a34fdf3a3e4e",
"is_folder": false
}
}
]
}
Request Parameters
Parameter Description Required
id Generally, this should be the cursor related to the latest event you have seen during previous calls to the Events API. You will receive events that occurred after the event associated with this cursor. Yes
folder You can optionally scope requests to a given folder. When this parameter is specified, we will return events that have occurred at this path (including events inside subfolders). Please note, events are not guaranteed to move with a folder, meaning you will not receive events on a folder that occurred before it was moved. No
suppress This parameter is used to filter out events generated by the current application or current user. Allowed values are: app, user, or none (default). No
type Limit the result set to only items of a certain type. Currently, this endpoint supports the "file_system" and "note" types by default and "permission_change" type if it is explicitly requested. To get multiple event types, you can use a pipe ("|") character to delimit them. For example "file_system|note" would return both file_system and note event types but no others. No
count The maximum number of events to return per page (min 1, default 50, max 100) No
reverse This parameter allows traversing of events in reverse for easier computation.  This is active when reverse = "1" and ignored when reverse = "0".  Response should contain events with ids: (id - count + 1).   No
Response Parameters
Element Description
latest_id The latest event ID returned in this event set. Most likely, you will want to update your cursor to this value for future calls.
oldest_id The oldest event ID returned in this event set. 
count The number of results returned.
events A JSON array of event objects.
id The ID of an individual event.
timestamp The ISO-8601 formatted timestamp for when this event was recorded.
action_source The source of the event. Examples include "WebUI," "SyncEngine," "Mobile," "PublicAPI", "WebEdit", "System", "VPC", "Other".  "Other" encompasses the following actions: FTP, AD_KIT, EGD, OUTLOOK, GDRIVE_INTEG, SALESFORCE, MALWARE_DETECTION, TRASH_CLEANUP, BULK_IMPORT, UNKNOWN. 
actor The numeric ID of the user who performed that action.
type The type of event being reported. Currently, we support the following event types: file_system, note.
action The action associated with this event. Currently, this can be: create, delete, restore, move, copy and rename (represented as "move").
data This field contains additional data specific to the event type and action.
target_path The path where the file has been copied.
target_id The unique identifier of the specific version of the file copied to the target path.
target_group_id The unique identifier identifying the file located at the target path.
source_path The path from where the file has been copied.
source_id The unique identifier of the specific version of the file being copied from the source path.
source_group_id The unique identifier identifying the file located at the source path.
is_folder Identifies if the object being copied is a file or a folder.

Listing Subsequent Events (version 2)

Note this endpoint is exactly the same as v1 except that it added the "permission_change" type.  Therefore, by default all v2/events calls will return this type; whereas, calls to v1 endpoint should only expect events of type "file_system" and "note". 

You should query this endpoint to find what events have occurred after a given cursor.

  • When periodically polling this endpoint, please use an interval of 5 minutes or more.
  • If your cursor is less than the oldest cursor value, you will only receive the events since the oldest cursor value we have.
  • If you receive a 204 response, there were no events to return after the cursor provided for this user access token.
GET/pubapi/v2/events?id={cursor_id}
Request Examples
GET /pubapi/v2/events?id=16320 HTTP/1.1
Host: apidemo.egnyte.com
Authorization: Bearer 68zc95e3xv954u6k3hbnma3q
curl -v -H "Authorization: Bearer 68zc95e3xv954u6k3hbnma3q" \
https://apidemo.egnyte.com/pubapi/v2/events?id=16320
Sample Response Body
{
"latest_id": 16321,
"oldest_id": 16321,
"count": 1,
"events":
[
{
"id": 16321, "timestamp": "2024-10-21T05:10:53.000Z", "action_source": "WebUI", "actor": 1, "type": "permission_change", "action": "permission_change", "data":
{ "target_path": "/Shared/Permission Test/Viewer", "is_folder": false }, "eventTypeSpecificAttributes":
{ "changeGroupEvents": [], "changePermissionEvent": { "changedPermissions": [ { "action": "ADD", "entry": { "subject": "/user/6", "priv": "READ" } }, { "action": "DELETE", "entry": { "subject": "/user/6", "priv": "NONE" } } ] }, "changeContext": null, "targetFolderId": "dd3b7523-6851-4977-97a5-265e45004882", "groupChange": false } }
}
]
}
Request Parameters
ParameterDescriptionRequired
id Generally, this should be the cursor related to the latest event you have seen during previous calls to the Events API. You will receive events that occurred after the event associated with this cursor. Yes
folder You can optionally scope requests to a given folder. When this parameter is specified, we will return events that have occurred at this path (including events inside subfolders). Please note, events are not guaranteed to move with a folder, meaning you will not receive events on a folder that occurred before it was moved. No
suppress This parameter is used to filter out events generated by the current application or current user. Allowed values are: app, user, or none (default). No
type Limit the result set to only items of a certain type. Currently, this new endpoint only supports the "file_system", "note", and "permission_change" types. To get multiple event types, you can use a pipe ("|") character to delimit them. For example "file_system|note" would return both file_system and note event types but no others. No
count The maximum number of events to return per page (min 1, default 50, max 100) No
reverse This parameter allows traversing of events in reverse for easier computation.  This is active when reverse = "1" and ignored when reverse = "0".  Response should contain events with ids: (id - count + 1).   No
Response Parameters
Element Description
latest_id The latest event ID returned in this event set. Most likely, you will want to update your cursor to this value for future calls.
oldest_id The oldest event ID returned in this event set. 
count The number of results returned.
events A JSON array of event objects.
id The ID of an individual event.
timestamp The ISO-8601 formatted timestamp for when this event was recorded.
action_source The source of the event. Examples include "WebUI," "SyncEngine," "Mobile," "PublicAPI", "WebEdit", "System", "VPC", "Other".  "Other" encompasses the following actions: FTP, AD_KIT, EGD, OUTLOOK, GDRIVE_INTEG, SALESFORCE, MALWARE_DETECTION, TRASH_CLEANUP, BULK_IMPORT, UNKNOWN. 
actor The numeric ID of the user who performed that action.
type The type of event being reported. Currently, we support the following event types: file_system, note.
action The action associated with this event. Currently, this can be: create, delete, restore, move, copy and rename (represented as "move").
data This field contains additional data specific to the event type and action.
target_path The folder path for which the permission has been changed.
is_folder Identifies if the object being copied is a file or a folder.
eventTypeSpecificAttributes
This field contains additional data specific to the permission change event and actions.
changeGroupEvents This specify the changes that occurred to user groups.
changedPermissions  This field contains the data related to particular permissions that were changed.
action Identified the permission change type - ADD/DELETE.
entry This field contains the details about the permission change applied.
subject  Identifies the user/user group for which the permission was added/deleted.
priv Identifies the permission level that was added/deleted.
changeContext Specifies the context in which the change was done. Contains snapshot-restore id when the change was made via snapshot restore job.
targetFolderId The unique identifier of the folder for which the permission was added/deleted.
groupChange It is set to true when changeGroupEvents array has at least one element.