A reference guide for building AI agents: every method, how to authenticate, and the permissions each one needs.
The Egnyte API is how an app or AI agent works with an Egnyte domain: listing and downloading files, uploading new ones, creating folders, setting who can see a folder, creating shared links, and running audit reports. Access is granted through an OAuth token, and each area maps to its own scope, with every call limited to the files and folders the person the token acts as can already reach. Egnyte does not push changes; it records a stream of file-system events an app reads on a schedule.
How an app or AI agent connects to Egnyte determines what it can reach. There is a route for calling the API, an events feed for learning about file changes, and a hosted server that exposes Egnyte content to agents, and each is governed by the OAuth token behind it and the file permissions of the person it acts as.
The Public API runs against the customer's own Egnyte domain host, not a shared endpoint. Metadata and structure calls use the fs path, file bytes stream from a separate fs-content path, and each area is at the path version Egnyte publishes for it (v1 for files, permissions, links, audit, and events; v2 for users, groups, and search).
Egnyte does not push file changes. An app reads the events feed on a schedule, advancing a cursor so it sees only file and folder operations newer than the last id it processed. The feed retains the most recent 300,000 events, and Egnyte advises polling no more often than every 5 minutes.
Egnyte publishes an official Model Context Protocol server that lets an AI agent reach Egnyte content while respecting the organization's existing permissions. A fully managed remote server is hosted at mcp-server.egnyte.com, and an open-source self-hosted option lives at github.com/egnyte/egnyte-mcp-server, which uses an Egnyte domain and access token. The remote server connects to clients including Claude Desktop, ChatGPT, and VS Code.
An app sends the user to Egnyte to sign in and approve the requested scopes, then exchanges the returned code for an access token at the token endpoint on the customer's domain. The token acts as that user, so it reaches only what the user can.
A server-side integration exchanges an Egnyte username and password directly for an access token, without a browser redirect. The resulting token still acts as that user and is bound to the same scopes and file permissions.
The Egnyte API is split into areas an agent can act on, like files and folders, folder permissions, users, groups, shared links, search, and audit reporting. Each area maps to its own OAuth scope, and writes in some areas move files, change who can see a folder, or create or remove people.
List folder contents, read file or folder metadata, download a file, upload a file, create a folder, move, copy, and delete.
Read a folder's permissions, read a user's effective permission on a folder, and set the permission a user or group has on a folder.
List users, read a single user, create a user, update a user, and delete a user.
List groups, read a single group, create a group, replace a group's members, and delete a group.
List shared links, read a single link, create a file or folder link, and delete a link.
Search for files and folders by name, content, and metadata, scoped to what the calling user can see.
Generate audit reports on file activity, logins, and permission changes, then check the job and download the result.
Read the cursor that marks the newest and oldest available events, then read file-system events after a given id.
Filter by method, access, or permission, or search any path. Select a row for version detail, rate limits, the related webhook event, and the source.
| Method | Endpoint | What it does | Access | Permission | Version | |
|---|---|---|---|---|---|---|
Files & foldersList folder contents, read file or folder metadata, download a file, upload a file, create a folder, move, copy, and delete.8 | ||||||
| GET | /pubapi/v1/fs/{path} | List a folder's contents, or read the metadata of a file or folder at the given path. | read | Egnyte.filesystem | Current | |
Returns folder children or single-item metadata. The user only sees items their Egnyte permissions allow. Acts onfile or folder Permission (capability) Egnyte.filesystemVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /pubapi/v1/fs-content/{path} | Download the contents of a file at the given path. | read | Egnyte.filesystem | Current | |
File bytes stream from the fs-content path, separate from the metadata path. A specific version is fetched with entry_id. Acts onfile Permission (capability) Egnyte.filesystemVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /pubapi/v1/fs-content/{path} | Upload a file to the given path, creating it or adding a new version. | write | Egnyte.filesystem | Current | |
Single-shot upload for files up to 100 MB; larger files use the chunked endpoint. Acts onfile Permission (capability) Egnyte.filesystemVersionAvailable since the API’s base version Webhook event file_uploadRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /pubapi/v1/fs-content-chunked/{path} | Upload a large file in chunks, sending it in parts and committing the assembled file. | write | Egnyte.filesystem | Current | |
For files over 100 MB. Each chunk is numbered, and the final request commits the upload. Acts onfile Permission (capability) Egnyte.filesystemVersionAvailable since the API’s base version Webhook event file_uploadRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /pubapi/v1/fs/{path} | Create a folder at the given path, sending the action add_folder. | write | Egnyte.filesystem | Current | |
The fs path takes an action field; add_folder creates a folder at the path. Acts onfolder Permission (capability) Egnyte.filesystemVersionAvailable since the API’s base version Webhook event folder_createRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /pubapi/v1/fs/{path} | Move a file or folder to a new destination path, sending the action move. | write | Egnyte.filesystem | Current | |
The action move with a destination relocates the item. Acts onfile or folder Permission (capability) Egnyte.filesystemVersionAvailable since the API’s base version Webhook event file_moveRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /pubapi/v1/fs/{path} | Copy a file or folder to a destination path, sending the action copy. | write | Egnyte.filesystem | Current | |
The action copy with a destination duplicates the item. Acts onfile or folder Permission (capability) Egnyte.filesystemVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| DELETE | /pubapi/v1/fs/{path} | Delete a file or folder at the given path. | write | Egnyte.filesystem | Current | |
Removes the item; deleting a folder removes its contents. Acts onfile or folder Permission (capability) Egnyte.filesystemVersionAvailable since the API’s base version Webhook event file_deleteRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
Folder permissionsRead a folder's permissions, read a user's effective permission on a folder, and set the permission a user or group has on a folder.3 | ||||||
| GET | /pubapi/v1/perms/folder/{path} | Get the permissions set on a folder for users and groups. | read | Egnyte.permission | Current | |
Lists the explicit permissions on the folder, by user and group. Acts onfolder permission Permission (capability) Egnyte.permissionVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /pubapi/v1/perms/user/{username} | Get a user's effective permission on a folder, combining direct and group-inherited permissions. | read | Egnyte.permission | Current | |
Resolves inheritance to one of Owner, Full, Editor, or Viewer for the folder. Acts onfolder permission Permission (capability) Egnyte.permissionVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /pubapi/v1/perms/folder/{path} | Set the permission level users or groups have on a folder. | write | Egnyte.permission | Current | |
Assigns Owner, Full, Editor, Viewer, or None to the named users and groups on the folder. Acts onfolder permission Permission (capability) Egnyte.permissionVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
UsersList users, read a single user, create a user, update a user, and delete a user.5 | ||||||
| GET | /pubapi/v2/users | List users in the domain, filterable by email, username, or external id. | read | Egnyte.user | Current | |
User management is served under v2. Results page with a start index and count. Acts onuser Permission (capability) Egnyte.userVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /pubapi/v2/users/{id} | Get a single user by id. | read | Egnyte.user | Current | |
Returns the user's username, email, name, active status, and group membership. Acts onuser Permission (capability) Egnyte.userVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /pubapi/v2/users | Create a user, optionally provisioning them into Egnyte. | write | Egnyte.user | Current | |
Takes the username, email, name, and authentication type for the new account. Acts onuser Permission (capability) Egnyte.userVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| PATCH | /pubapi/v2/users/{id} | Update a user's fields, such as name, email, active status, or role. | write | Egnyte.user | Current | |
A partial update; deactivating a user by setting active to false frees their license. Acts onuser Permission (capability) Egnyte.userVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| DELETE | /pubapi/v2/users/{id} | Delete a user account. | write | Egnyte.user | Current | |
Removes the account. A user is often deactivated rather than deleted to preserve their data. Acts onuser Permission (capability) Egnyte.userVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
GroupsList groups, read a single group, create a group, replace a group's members, and delete a group.5 | ||||||
| GET | /pubapi/v2/groups | List groups in the domain. | read | Egnyte.user | Current | |
Group management is served under v2 and uses the Egnyte.user scope. Results page with a start index and count. Acts ongroup Permission (capability) Egnyte.userVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /pubapi/v2/groups/{id} | Get a single group and its members by id. | read | Egnyte.user | Current | |
Returns the group's display name and member list. Acts ongroup Permission (capability) Egnyte.userVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /pubapi/v2/groups | Create a group with a display name and an optional member list. | write | Egnyte.user | Current | |
Group membership affects folder access, since permissions can be assigned to a group. Acts ongroup Permission (capability) Egnyte.userVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| PATCH | /pubapi/v2/groups/{id} | Update a group, replacing its members or display name. | write | Egnyte.user | Current | |
A PATCH replaces the named fields, including the full member list when provided. Acts ongroup Permission (capability) Egnyte.userVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| DELETE | /pubapi/v2/groups/{id} | Delete a group. | write | Egnyte.user | Current | |
Removes the group; any folder permissions assigned to it no longer apply. Acts ongroup Permission (capability) Egnyte.userVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
Shared linksList shared links, read a single link, create a file or folder link, and delete a link.4 | ||||||
| GET | /pubapi/v1/links | List the shared links in the domain, filterable by path, creator, and date. | read | Egnyte.link | Current | |
Returns link ids; details for a single link are read by id. Acts onshared link Permission (capability) Egnyte.linkVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /pubapi/v1/links/{id} | Get the details of a single shared link by id. | read | Egnyte.link | Current | |
Shows the link's path, type, accessibility, expiry, and recipients. Acts onshared link Permission (capability) Egnyte.linkVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /pubapi/v1/links | Create a shared link to a file or folder, with an accessibility setting and optional expiry. | write | Egnyte.link | Current | |
Accessibility can be anyone, password, domain, or recipients; a link can expire by date or number of uses. Acts onshared link Permission (capability) Egnyte.linkVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| DELETE | /pubapi/v1/links/{id} | Delete a shared link by id, revoking access through it. | write | Egnyte.link | Current | |
Once deleted, the link no longer grants access to the file or folder. Acts onshared link Permission (capability) Egnyte.linkVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
SearchSearch for files and folders by name, content, and metadata, scoped to what the calling user can see.1 | ||||||
| POST | /pubapi/v2/search | Search for files and folders by name, content, and metadata. | read | Egnyte.filesystem | Current | |
The current search interface is served under v2 and uses the Egnyte.filesystem scope. Results are limited to what the calling user can see. Acts onsearch result Permission (capability) Egnyte.filesystemVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
Audit reportingGenerate audit reports on file activity, logins, and permission changes, then check the job and download the result.4 | ||||||
| POST | /pubapi/v1/audit/files | Generate an audit report of file activity over a date range. | read | Egnyte.audit | Current | |
Starts a report job; the response gives a job id to poll, then download. Acts onaudit report Permission (capability) Egnyte.auditVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /pubapi/v1/audit/logins | Generate an audit report of login activity over a date range. | read | Egnyte.audit | Current | |
Starts a report job covering login events and access points. Acts onaudit report Permission (capability) Egnyte.auditVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /pubapi/v1/audit/permissions | Generate an audit report of permission changes over a date range. | read | Egnyte.audit | Current | |
Starts a report job covering who changed which folder permissions. Acts onaudit report Permission (capability) Egnyte.auditVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /pubapi/v1/audit/jobs/{id} | Check the status of an audit report job and, once ready, download the result. | read | Egnyte.audit | Current | |
Reports run asynchronously; the job id is polled until the report is ready. Acts onaudit report Permission (capability) Egnyte.auditVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
EventsRead the cursor that marks the newest and oldest available events, then read file-system events after a given id.2 | ||||||
| GET | /pubapi/v1/events/cursor | Read the cursor, returning the newest and oldest event ids currently available. | read | Egnyte.filesystem | Current | |
Returns latest_event_id and oldest_event_id, used to start or resync a poll. Acts onevent Permission (capability) Egnyte.filesystemVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /pubapi/v1/events | Read file-system events after a given event id, filterable by folder and event type. | read | Egnyte.filesystem | Current | |
Reports file and folder operations and comments, not user or settings changes. Poll no more often than every 5 minutes. Acts onevent Permission (capability) Egnyte.filesystemVersionAvailable since the API’s base version Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
Egnyte does not push file changes to a receiver. Instead it records a stream of file-system events an app or AI agent reads on a schedule, advancing a cursor so it sees only what is new since the last check.
| Event | What it signals | Triggered by |
|---|---|---|
file_upload | Recorded when a file is uploaded or a new version is added. Read from the events feed, not pushed. | /pubapi/v1/fs-content/{path}/pubapi/v1/fs-content-chunked/{path} |
file_delete | Recorded when a file or folder is deleted. Read from the events feed, not pushed. | /pubapi/v1/fs/{path} |
file_move | Recorded when a file or folder is moved to a new path. Read from the events feed, not pushed. | /pubapi/v1/fs/{path} |
folder_create | Recorded when a folder is created. Read from the events feed, not pushed. | /pubapi/v1/fs/{path} |
Egnyte limits how fast and how much an app or AI agent can call, through a per-second rate and a daily quota counted against each access token, with the ceilings rising on higher plans.
Egnyte meters calls against each access token, not against the app's key, so each connected user carries an independent allowance. The default is 2 calls per second per token and 1,000 calls per day per token, with both ceilings raised on higher Egnyte plans. The OAuth token endpoint is limited separately to 100 token requests per hour. Going over the per-second limit or the daily quota returns HTTP 403 with an X-Mashery-Error-Code header naming which limit was hit (ERR_403_DEVELOPER_OVER_QPS for the per-second throttle, ERR_403_DEVELOPER_OVER_RATE for the daily quota) and a Retry-After header giving the seconds until that limit resets.
List endpoints page with an offset and a count, returning the total so an app knows when it has read everything. The events feed pages differently: it is cursor-based, where a request returns events after a given event id and the next request passes the last id seen, advancing through the stream.
Uploads under 100 MB use the single-shot content endpoint; larger files use the chunked upload endpoint, which sends the file in parts. The events feed retains only the most recent 300,000 events, and events older than that, or older than the retention window, fall off, at which point an app re-reads the cursor endpoint to resync.
The status codes an agent should handle, and what to do about each.
| Status | Code | Meaning | What to do |
|---|---|---|---|
| 401 | Unauthorized | The access token is missing, invalid, or expired. | Send a valid Bearer token in the Authorization header, refreshing it if it has expired. |
| 403 | Forbidden / ERR_403_DEVELOPER_OVER_QPS | Either a rate limit was hit, or the token lacks the scope or the user lacks the file permission for the request. The X-Mashery-Error-Code header names a throttle when it is a rate limit: ERR_403_DEVELOPER_OVER_QPS for the per-second limit, ERR_403_DEVELOPER_OVER_RATE for the daily quota. | On a throttle, wait the seconds in the Retry-After header. Otherwise, grant the missing scope or the user permission. |
| 404 | Not Found | The path or resource does not exist, or the user cannot see it. | Confirm the folder path is URL-encoded element by element, and that the user has permission to the item. |
| 409 | Conflict | The request conflicts with the current state, such as the OAuth token endpoint being over its hourly limit, or a name already existing at the target path. | For the token endpoint, slow down token requests. For a name clash, choose a new name or path. |
| 503 | Service Unavailable | Egnyte is temporarily unavailable or the request was shed under load. | Retry with exponential backoff after a short wait. |
Egnyte versions its API in the path. The file system, permissions, links, audit, and events areas are on v1, while user and group management and the newest search interface are on v2.
Egnyte released public APIs that let developers reach Copilot custom agents, rolled out to all customers by 20 November 2025. This added agent-facing methods on top of the existing path-versioned Public API, without changing how the file system, permissions, links, audit, or events areas are versioned or authenticated.
Egnyte released the Hybrid Search Public API for Copilot, blending vector similarity with keyword matching, rolled out to all customers by 2 October 2025. It extends content discovery beyond the standard search interface while keeping results bound to the calling user's own file permissions.
Egnyte versions its Public API in the URL path. The file system, folder permissions, shared links, audit reporting, and events areas are served under v1, while user management, group management, and the current search interface are served under v2. There is no version header; each area is called at its published path version. Authentication is OAuth 2.0 with per-area scopes (Egnyte.filesystem, Egnyte.permission, Egnyte.user, Egnyte.link, Egnyte.audit), and access is additionally bounded by the calling user's own file permissions.
An integration calls each area at the path version Egnyte publishes for it.
Egnyte API release notes ↗Bollard AI sits between a team's AI agents and Egnyte. Grant each agent exactly the access it needs, read or write, area by area, and every call is checked and logged.