Audit Reporting API v1
The Audit Reporting API lets you programmatically create and access reports covering login activity, file operations, permission modifications, user and group provisioning, configuration changes, and other domain events. These reports give you full visibility into what's happening across your Egnyte domain.
Note: Audit reports are generated asynchronously. After submitting a POST request to create a report, you receive a job ID. Poll the job status endpoint (no more frequently than once every 2 minutes) until the report is ready. The job returns HTTP 200 with "status": "running" while generating, and HTTP 303 with a Location header pointing to the completed report once ready.
Base URL
https://{domain}.egnyte.com/pubapi/v1/audit
Authentication
All requests require an OAuth 2.0 Bearer token in the Authorization header:
Authorization: Bearer {access_token}
See Authentication for details on obtaining a token.
Permissions
- Only admin users or power users with the "can run reports" role can generate audit reports.
- Audit reporting must be enabled on your Egnyte domain's plan.
Report Formats
Audit report data can be returned in CSV or JSON format. Specify the desired format in the format parameter when creating a report. CSV output matches the format downloaded via the Egnyte audit report UI.
Date and Time Format
All dates and times use ISO 8601 format:
- Date:
YYYY-MM-DD(e.g.,2019-05-27) - Timestamp:
YYYY-MM-DDTHH:MM:SSZ(e.g.,2019-05-27T22:27:01Z)
Create Login Audit Report
Generates a report on login activity, logouts, account lockouts, password resets, and failed login attempts.
Request
POST /pubapi/v1/audit/logins
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Report format: csv or json |
date_start | string | Yes | Start date in YYYY-MM-DD or ISO 8601 format |
date_end | string | Yes | End date in YYYY-MM-DD or ISO 8601 format (must be after date_start) |
events | array | Yes | Events to include. One or more of: logins, logouts, account_lockouts, password_resets, failed_attempts |
access_points | array | No | Access points to include: Web, FTP, Mobile. If omitted, includes all access points |
users | array | No | Egnyte usernames to report on. If omitted, includes all users |
suppress_emails | boolean | No | If true, suppresses email notifications on report completion. Default: false |
Example Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/audit/logins" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "format": "json", "date_start": "2019-05-01", "date_end": "2019-05-20", "access_points": [ "web", "ftp" ], "users": [ "jsmith", "kjohnson" ], "events": [ "logins", "failed_attempts" ] }'
Response
202 Accepted
| Field | Type | Description |
|---|---|---|
id | string | Job ID for tracking report generation status |
Response Headers
| Header | Description |
|---|---|
Location | URL to poll for job status: https://{domain}.egnyte.com/pubapi/v1/audit/jobs/{id} |
Example Response
{
"id": "12345678"
}
Create File Audit Report
Generates a report on file and folder actions including uploads, downloads, previews, deletions, moves, copies, and link activity.
Request
POST /pubapi/v1/audit/files
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Report format: csv or json |
date_start | string | Yes | Start date in YYYY-MM-DD or ISO 8601 format. Time portion is ignored |
date_end | string | Yes | End date in YYYY-MM-DD or ISO 8601 format (must be after date_start) |
folders | array | Yes* | Absolute folder paths to report on. Required unless file is specified |
file | string | No | Specific file to report on. Supports * wildcard (cannot start with *) |
users | array | No | Egnyte usernames to report on. If omitted, includes all users |
transaction_type | array | No | Transactions to include: upload, download, preview, delete, copy, move, create_folder, restore_trash, delete_trash, create_link, delete_link, download_link. If omitted, includes all transactions |
suppress_emails | boolean | No | If true, suppresses email notifications on report completion. Default: false |
*Either folders or file must be specified.
Example Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/audit/files" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "format": "json", "date_start": "2019-05-01", "date_end": "2019-05-20", "transaction_type": [ "download", "preview" ], "users": [ "jsmith", "kjohnson" ], "folders": [ "/Shared/Marketing", "/Shared/Engineering" ] }'
Response
202 Accepted
| Field | Type | Description |
|---|---|---|
id | string | Job ID for tracking report generation status |
Response Headers
| Header | Description |
|---|---|
Location | URL to poll for job status: https://{domain}.egnyte.com/pubapi/v1/audit/jobs/{id} |
Example Response
{
"id": "12345678"
}
Create Permissions Audit Report
Generates a report on permission changes for folders, including who assigned permissions and who received them.
Request
POST /pubapi/v1/audit/permissions
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Report format: csv or json |
date_start | string | Yes | Start date in YYYY-MM-DD or ISO 8601 format. Time portion is ignored |
date_end | string | Yes | End date in YYYY-MM-DD or ISO 8601 format (must be after date_start) |
folders | array | No | Absolute folder paths to report on. If omitted, includes all folders |
assigners | array | No | Usernames of users who assigned permissions. If omitted, includes all users |
assignee_users | array | No | Usernames of users who received permissions. If omitted, only groups are included |
assignee_groups | array | No | Group names that received permissions. If omitted, only users are included |
suppress_emails | boolean | No | If true, suppresses email notifications on report completion. Default: false |
Example Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/audit/permissions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "format": "json", "date_start": "2019-05-01", "date_end": "2019-05-20", "assigners": [ "jsmith", "kjohnson" ], "assignee_users": [ "rbrown", "mjones" ], "folders": [ "/Shared/Marketing", "/Shared/Engineering" ] }'
Response
202 Accepted
| Field | Type | Description |
|---|---|---|
id | string | Job ID for tracking report generation status |
Response Headers
| Header | Description |
|---|---|
Location | URL to poll for job status: https://{domain}.egnyte.com/pubapi/v1/audit/jobs/{id} |
Example Response
{
"id": "12345678"
}
Create User Provisioning Audit Report
Generates a report on user account changes including creation, updates, deletions, and password changes.
Request
POST /pubapi/v1/audit/users
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Report format: csv or json |
date_start | string | Yes | Start date in YYYY-MM-DD or ISO 8601 format. Time portion is ignored |
date_end | string | Yes | End date in YYYY-MM-DD or ISO 8601 format (must be after date_start) |
action_type | array | No | Actions to include: CREATE, UPDATE, DISABLE, ENABLE, DELETE, PASSWORD_RESET, PASSWORD_CHANGE. If omitted, includes all actions |
performed_by | array | No | Usernames of users who performed changes. If omitted, includes all users |
include_system_actions | boolean | No | If true, includes system-initiated actions. Default: false |
subject | array | No | Usernames of users who were modified. If omitted, includes all users |
Example Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/audit/users" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "format": "json", "date_start": "2019-08-01", "date_end": "2019-08-15", "action_type": [ "CREATE", "PASSWORD_RESET", "PASSWORD_CHANGE" ], "subject": [ "standarduser1@mydomain", "standarduser2@mydomain" ] }'
Response
202 Accepted
| Field | Type | Description |
|---|---|---|
id | string | Job ID for tracking report generation status |
Response Headers
| Header | Description |
|---|---|
Location | URL to poll for job status: https://{domain}.egnyte.com/pubapi/v1/audit/jobs/{id} |
Example Response
{
"id": "12345678"
}
Create Group Provisioning Audit Report
Generates a report on group changes including creation, member additions/removals, renames, and deletions.
Request
POST /pubapi/v1/audit/groups
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Report format: csv or json |
date_start | string | Yes | Start date in YYYY-MM-DD or ISO 8601 format. Time portion is ignored |
date_end | string | Yes | End date in YYYY-MM-DD or ISO 8601 format (must be after date_start) |
action_type | array | No | Actions to include: CREATE, ADD_USERS, REMOVE_USERS, RENAME, DELETE. If omitted, includes all actions |
users | array | No | Usernames of users who performed changes. If omitted, includes all users |
include_system_actions | boolean | No | If true, includes system-initiated actions. Default: false |
groups | array | No | Group names to report on (case-insensitive). If omitted, includes all groups |
Example Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/audit/groups" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "format": "csv", "date_start": "2019-08-01", "date_end": "2019-08-15", "action_type": [ "CREATE", "ADD_USERS" ], "users": [ "standarduser1@mydomain", "standarduser2@mydomain" ], "groups": [ "ProjectManagers", "Electricians" ], "include_system_actions": true }'
Response
202 Accepted
| Field | Type | Description |
|---|---|---|
id | string | Job ID for tracking report generation status |
Response Headers
| Header | Description |
|---|---|
Location | URL to poll for job status: https://{domain}.egnyte.com/pubapi/v1/audit/jobs/{id} |
Example Response
{
"id": "12345678"
}
Create Configuration Settings Audit Report
Generates a report on changes to domain configuration settings.
Request
POST /pubapi/v1/audit/workgroup-settings
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Report format: csv or json |
date_start | string | Yes | Start date in YYYY-MM-DD or ISO 8601 format. Time portion is ignored |
date_end | string | Yes | End date in YYYY-MM-DD or ISO 8601 format (must be after date_start) |
users | array | No | Usernames of users who changed settings. If omitted, includes all users |
Example Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/audit/workgroup-settings" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "format": "csv", "date_start": "2019-08-01", "date_end": "2019-08-15", "users": [ "user1", "user2" ] }'
Response
202 Accepted
| Field | Type | Description |
|---|---|---|
id | string | Job ID for tracking report generation status |
Response Headers
| Header | Description |
|---|---|
Location | URL to poll for job status: https://{domain}.egnyte.com/pubapi/v1/audit/jobs/{id} |
Example Response
{
"id": "12345678"
}
Create Workflow Audit Report
Generates a report on workflow activity including creation, completion, cancellation, step transitions, and task actions.
Request
POST /pubapi/v1/audit/workflows
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Report format: csv or json |
date_start | string | Yes | Start date in YYYY-MM-DD or ISO 8601 format |
date_end | string | Yes | End date in YYYY-MM-DD or ISO 8601 format (must be after date_start) |
users | array | No | Egnyte usernames to report on. If omitted, includes all users |
file | string | No | Search pattern to filter workflows by name. Supports * wildcard (cannot start with *) |
workflow_actions | array | No | Actions to include: WORKFLOW_CREATED, WORKFLOW_CANCELLED, WORKFLOW_COMPLETED, STEP_ACTIVATED, STEP_COMPLETED, STEP_CANCELLED, STEP_REJECTED, STEP_FAILED, WEBHOOK_CALLED, WEBHOOK_COMPLETION_SIGNAL_RECEIVED, WEBHOOK_RETRIED, FILE_MOVED, FILE_MOVE_RETRIED, FILE_CONVERTED, FILE_CONVERT_RETRIED, TODO_TASK_COMPLETED, REVIEW_TASK_COMPLETED, REVIEW_TASK_CANCELLED, APPROVAL_TASK_APPROVED, APPROVAL_TASK_REJECTED, APPROVAL_TASK_CANCELLED, E_SIGNATURE_CAPTURED, COMMENT_ADDED, WORKFLOW_EDITED. If omitted, includes all actions |
workflow_types | array | No | Workflow types to include: REVIEW_APPROVE, TODO, APPROVAL, REVIEW, MULTISTEP, TEMPLATE. If omitted, includes all types |
suppress_emails | boolean | No | If true, suppresses email notifications on report completion. Default: false |
Example Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/audit/workflows" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "format": "json", "date_start": "2019-08-01", "date_end": "2019-08-15", "users": [ "jsmith" ], "workflow_actions": [ "WORKFLOW_CREATED", "WORKFLOW_COMPLETED" ], "workflow_types": [ "APPROVAL", "REVIEW" ] }'
Response
202 Accepted
| Field | Type | Description |
|---|---|---|
id | string | Job ID for tracking report generation status |
Response Headers
| Header | Description |
|---|---|
Location | URL to poll for job status: https://{domain}.egnyte.com/pubapi/v1/audit/jobs/{id} |
Example Response
{
"id": "12345678"
}
Create Workflow Templates Audit Report
Generates a report on workflow template changes including creation, editing, and status changes.
Request
POST /pubapi/v1/audit/workflow-templates
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Report format: csv or json |
date_start | string | Yes | Start date in YYYY-MM-DD or ISO 8601 format |
date_end | string | Yes | End date in YYYY-MM-DD or ISO 8601 format (must be after date_start) |
users | array | No | Egnyte usernames to report on. If omitted, includes all users |
workflow_template_actions | array | No | Actions to include: TEMPLATE_CREATED, TEMPLATE_STATUS_CHANGED, TEMPLATE_EDITED, STEP_ADDED, STEP_REMOVED, ITEM_ADDED, ITEM_REMOVED. If omitted, includes all actions |
suppress_emails | boolean | No | If true, suppresses email notifications on report completion. Default: false |
Example Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/audit/workflow-templates" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "format": "json", "date_start": "2019-08-01", "date_end": "2019-08-15", "workflow_template_actions": [ "TEMPLATE_CREATED", "TEMPLATE_EDITED" ] }'
Response
202 Accepted
| Field | Type | Description |
|---|---|---|
id | string | Job ID for tracking report generation status |
Response Headers
| Header | Description |
|---|---|
Location | URL to poll for job status: https://{domain}.egnyte.com/pubapi/v1/audit/jobs/{id} |
Example Response
{
"id": "12345678"
}
Create Quality Docs Audit Report
Generates a report on Quality Docs activity including document actions, training assignments, and status changes.
Request
POST /pubapi/v1/audit/quality-docs
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Report format: csv or json |
date_start | string | Yes | Start date in YYYY-MM-DD or ISO 8601 format |
date_end | string | Yes | End date in YYYY-MM-DD or ISO 8601 format (must be after date_start) |
users | array | No | Egnyte usernames to report on. If omitted, includes all users |
quality_document_id | string | No | Specific Quality Docs document ID to report on |
quality_docs_categories | array | No | Categories to filter by. Each element is an object with id (string) and optional subcategoryIds (array of strings) |
quality_docs_actions | array | No | Actions to include: DOCUMENT_ADDED, DOCUMENT_MODIFIED, DOCUMENT_IMPORTED, DOWNLOAD_RENDITION, PREVIEW, DOWNLOAD_ORIGINAL, TRAINING_ASSIGNED, TRAINING_MODIFIED, TRAINING_CANCELED, TRAINING_OVERDUE, TRAINING_COMPLETED, TRAINING_IMPORTED, DRAFT_ADDED, DRAFT_EDITED, DRAFT_DELETED. If omitted, includes all actions |
quality_docs_statuses | array | No | Document statuses to include: DRAFT, EFFECTIVE, FUTURE_EFFECTIVE, OBSOLETE. If omitted, includes all statuses |
suppress_emails | boolean | No | If true, suppresses email notifications on report completion. Default: false |
Example Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/audit/quality-docs" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "format": "json", "date_start": "2019-08-01", "date_end": "2019-08-15", "quality_docs_actions": [ "DOCUMENT_ADDED", "DOCUMENT_MODIFIED" ], "quality_docs_statuses": [ "EFFECTIVE" ] }'
Response
202 Accepted
| Field | Type | Description |
|---|---|---|
id | string | Job ID for tracking report generation status |
Response Headers
| Header | Description |
|---|---|
Location | URL to poll for job status: https://{domain}.egnyte.com/pubapi/v1/audit/jobs/{id} |
Example Response
{
"id": "12345678"
}
Create Quality Docs Categories Audit Report
Generates a report on Quality Docs category and subcategory changes.
Request
POST /pubapi/v1/audit/quality-docs-categories
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Report format: csv or json |
date_start | string | Yes | Start date in YYYY-MM-DD or ISO 8601 format |
date_end | string | Yes | End date in YYYY-MM-DD or ISO 8601 format (must be after date_start) |
users | array | No | Egnyte usernames to report on. If omitted, includes all users |
quality_docs_categories | array | No | Categories to filter by. Each element is an object with id (string) and optional subcategoryIds (array of strings) |
quality_docs_categories_actions | array | No | Actions to include: CATEGORY_ADDED, CATEGORY_MODIFIED, SUBCATEGORY_ADDED, SUBCATEGORY_MODIFIED. If omitted, includes all actions |
suppress_emails | boolean | No | If true, suppresses email notifications on report completion. Default: false |
Example Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/audit/quality-docs-categories" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "format": "json", "date_start": "2019-08-01", "date_end": "2019-08-15", "quality_docs_categories_actions": [ "CATEGORY_ADDED", "CATEGORY_MODIFIED" ] }'
Response
202 Accepted
| Field | Type | Description |
|---|---|---|
id | string | Job ID for tracking report generation status |
Response Headers
| Header | Description |
|---|---|
Location | URL to poll for job status: https://{domain}.egnyte.com/pubapi/v1/audit/jobs/{id} |
Example Response
{
"id": "12345678"
}
Create Quality Docs Courses Audit Report
Generates a report on Quality Docs training course activity including course creation, modifications, and status changes.
Request
POST /pubapi/v1/audit/quality-docs-courses
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Report format: csv or json |
date_start | string | Yes | Start date in YYYY-MM-DD or ISO 8601 format |
date_end | string | Yes | End date in YYYY-MM-DD or ISO 8601 format (must be after date_start) |
users | array | No | Egnyte usernames to report on. If omitted, includes all users |
quality_docs_courses_ids | array | No | Course IDs to filter by. If omitted, includes all courses |
quality_docs_courses_actions | array | No | Actions to include: COURSE_CREATED, COURSE_MODIFIED, COURSE_STATUS_CHANGED, COURSE_DOCUMENT_STATUS_CHANGED. If omitted, includes all actions |
quality_docs_courses_parameters | array | No | Course parameters to filter by: NAME, DESCRIPTION, DAYS_TO_COMPLETE, MIN_DAYS_BEFORE_OBSOLETE, RECURRENCE_PERIOD, START_DATE, ASSIGNEES, DOCUMENTS, COURSE_STATUS, DOCUMENT_STATUS. If omitted, includes all parameters |
suppress_emails | boolean | No | If true, suppresses email notifications on report completion. Default: false |
Example Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/audit/quality-docs-courses" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "format": "json", "date_start": "2019-08-01", "date_end": "2019-08-15", "quality_docs_courses_actions": [ "COURSE_CREATED", "COURSE_MODIFIED" ] }'
Response
202 Accepted
| Field | Type | Description |
|---|---|---|
id | string | Job ID for tracking report generation status |
Response Headers
| Header | Description |
|---|---|
Location | URL to poll for job status: https://{domain}.egnyte.com/pubapi/v1/audit/jobs/{id} |
Example Response
{
"id": "12345678"
}
Create eTMF Audit Report
Generates a report on electronic Trial Master File (eTMF) activity including study, trial, country, site, and document actions.
Request
POST /pubapi/v1/audit/etmf
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Report format: csv or json |
date_start | string | Yes | Start date in YYYY-MM-DD or ISO 8601 format |
date_end | string | Yes | End date in YYYY-MM-DD or ISO 8601 format (must be after date_start) |
users | array | No | Egnyte usernames to report on. If omitted, includes all users |
etmf_actions | array | No | Actions to include: STUDY_CREATED, STUDY_UPDATED, TRIAL_UPDATED, COUNTRY_CREATED, COUNTRY_UPDATED, SITE_CREATED, SITE_UPDATED, STUDY_ACTIVATED, STUDY_DEACTIVATED, TRIAL_ACTIVATED, TRIAL_DEACTIVATED, COUNTRY_ACTIVATED, COUNTRY_DEACTIVATED, SITE_ACTIVATED, SITE_DEACTIVATED, DOCUMENT_ADDED, DOCUMENT_DELETED, DOCUMENT_RECLASSIFIED, DOCUMENT_CLASSIFICATION_CHANGED, ARTIFACT_CREATED, ARTIFACT_STATUS_UPDATED, REQUIRED_ARTIFACT_ADDED, REQUIRED_ARTIFACT_REMOVED, STUDY_PERMISSIONS_UPDATED, TRIAL_PERMISSIONS_UPDATED, COUNTRY_PERMISSIONS_UPDATED, SITE_PERMISSIONS_UPDATED, MILESTONE_ADDED, MILESTONE_COMPLETED, MILESTONE_ACTIVATED, MILESTONE_UPDATED, IMPORT_CREATED, IMPORT_FAILED, IMPORT_SUCCEEDED, IMPORT_CONFIRMED, IMPORT_REJECTED, QC_INITIATED, QC_APPROVED, QC_REJECTED, COMMENT_CREATED, ARTIFACT_REQUIREMENT_SETTING_UPDATED, MILESTONE_REQUIREMENT_SETTING_UPDATED, MILESTONE_ACTIVATION_REQUIREMENT_SETTING_UPDATED, ARTIFACT_UNBLINDED, ARTIFACT_BLINDED. If omitted, includes all actions |
etmf_study_ids | array | No | Study IDs to filter by. If omitted, includes all studies |
etmf_artifact_number | string | No | Artifact number to filter by |
suppress_emails | boolean | No | If true, suppresses email notifications on report completion. Default: false |
Example Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/audit/etmf" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "format": "json", "date_start": "2019-08-01", "date_end": "2019-08-15", "etmf_actions": [ "STUDY_CREATED", "DOCUMENT_ADDED" ], "etmf_study_ids": [ "study-001" ] }'
Response
202 Accepted
| Field | Type | Description |
|---|---|---|
id | string | Job ID for tracking report generation status |
Response Headers
| Header | Description |
|---|---|
Location | URL to poll for job status: https://{domain}.egnyte.com/pubapi/v1/audit/jobs/{id} |
Example Response
{
"id": "12345678"
}
Create Snapshot Restore Audit Report
Generates a report on snapshot restore activity including mounting, unmounting, previewing, and restoring snapshots.
Request
POST /pubapi/v1/audit/snapshot-restore
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Report format: csv or json |
date_start | string | Yes | Start date in YYYY-MM-DD or ISO 8601 format |
date_end | string | Yes | End date in YYYY-MM-DD or ISO 8601 format (must be after date_start) |
users | array | No | Egnyte usernames to report on. If omitted, includes all users |
include_system_actions | boolean | No | If true, includes system-initiated actions. Default: true |
suppress_emails | boolean | No | If true, suppresses email notifications on report completion. Default: false |
Example Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/audit/snapshot-restore" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "format": "json", "date_start": "2019-08-01", "date_end": "2019-08-15" }'
Response
202 Accepted
| Field | Type | Description |
|---|---|---|
id | string | Job ID for tracking report generation status |
Response Headers
| Header | Description |
|---|---|
Location | URL to poll for job status: https://{domain}.egnyte.com/pubapi/v1/audit/jobs/{id} |
Example Response
{
"id": "12345678"
}
Create Upload Requests Audit Report
Generates a report on upload request activity including request creation, file uploads, document submissions, and approvals.
Request
POST /pubapi/v1/audit/upload-requests
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Report format: csv or json |
date_start | string | Yes | Start date in YYYY-MM-DD or ISO 8601 format |
date_end | string | Yes | End date in YYYY-MM-DD or ISO 8601 format (must be after date_start) |
users | array | No | Egnyte usernames to report on. If omitted, includes all users |
upload_requests_actions | array | No | Actions to include: REQUEST_CREATED, REQUEST_MODIFIED, REQUEST_STATUS_CHANGED, FILE_UPLOADED, FILE_REMOVED, DOCUMENT_SUBMITTED, DOCUMENT_SKIPPED, DOCUMENT_ACCEPTED, DOCUMENT_REJECTED, REQUEST_COMPLETED, REQUEST_CANCELED. If omitted, includes all actions |
suppress_emails | boolean | No | If true, suppresses email notifications on report completion. Default: false |
Example Request
curl -i -X POST "https://{domain}.egnyte.com/pubapi/v1/audit/upload-requests" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "format": "json", "date_start": "2019-08-01", "date_end": "2019-08-15" }'
Response
202 Accepted
| Field | Type | Description |
|---|---|---|
id | string | Job ID for tracking report generation status |
Response Headers
| Header | Description |
|---|---|
Location | URL to poll for job status: https://{domain}.egnyte.com/pubapi/v1/audit/jobs/{id} |
Example Response
{
"id": "12345678"
}
Check Audit Report Generation Status
Polls the status of a report generation job. Poll no more frequently than once every 2 minutes.
Request
GET /pubapi/v1/audit/jobs/{id}
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Job ID returned when creating the report |
Example Request
curl -i -X GET "https://{domain}.egnyte.com/pubapi/v1/audit/jobs/{id}" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Response
200 OK (report still generating)
| Field | Type | Description |
|---|---|---|
status | string | Current status: running |
Example Response
{
"status": "running"
}
303 See Other (report ready)
| Field | Type | Description |
|---|---|---|
status | string | Current status: completed |
Response Headers
| Header | Description |
|---|---|
Location | URL to retrieve the completed report: https://{domain}.egnyte.com/pubapi/v1/audit/{type}/{id} |
Example Response
{
"status": "completed"
}
Retrieve Audit Report
Retrieves a completed audit report. For JSON reports, supports pagination via query parameters.
Request
GET /pubapi/v1/audit/{type}/{id}
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Report type: logins, files, permissions, users, groups, workgroup-settings, workflows, workflow-templates, quality-docs, quality-docs-categories, quality-docs-courses, etmf, snapshot-restore, or upload-requests |
id | string | Yes | Report ID returned when creating the report |
Query Parameters
The following parameters apply only to JSON-formatted reports:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
offset | integer | No | 0 | Starting event index (0-based) |
count | integer | No | All events | Number of events to return |
Example Request (CSV)
curl -i -X GET "https://{domain}.egnyte.com/pubapi/v1/audit/logins/{id}" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Example Request (JSON with pagination)
curl -i -X GET "https://{domain}.egnyte.com/pubapi/v1/audit/files/{id}?offset=10&count=50" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Response
200 OK
Response Headers
| Header | Description |
|---|---|
Content-Type | text/csv for CSV reports, application/json for JSON reports |
Example Response (CSV)
Username,Event,IP Address,Access,Time
"John Smith (jsmith@company.com)",Login,198.51.100.0,Web,2019-05-26T18:35Z
"John Smith (jsmith@company.com)",Logout,198.51.100.0,Web,2019-05-26T20:06Z
Example Response (JSON - Login Audit Report)
{
"total_count": 100,
"offset": 10,
"count": 2,
"events": [
{
"username": "John Smith ( jsmith@company.com )",
"user_id": 121,
"event": "Failed Attempt",
"ip_address": "198.51.100.0",
"access": "Web",
"time": "2019-05-26T18:35Z"
},
{
"username": "John Smith ( jsmith@company.com )",
"user_id": 121,
"event": "Login",
"ip_address": "198.51.100.0",
"access": "Mobile",
"time": "2019-05-26T20:06Z"
}
]
}
Example Response (JSON - File Audit Report)
{
"total_count": 100,
"offset": 10,
"count": 2,
"events": [
{
"username": "John Smith ( jsmith@company.com )",
"user_id": 121,
"file": "/Shared/Documents/example.txt",
"target_path": "/Shared/Documents/subfolder",
"transaction": "Move File",
"actionInfo": "N/A",
"access": "Mobile",
"time": "2021-02-15T07:58:17Z",
"ipAddress": "192.168.0.0.1",
"file_checksum": "acc8b9f0d5d77c5c03cb9961986"
},
{
"username": "Anonymous access Admin (via link)",
"user_id": 123,
"folder": "/Shared/Documents/example",
"link": "https://acme.egnyte.com/h-s/20130526/5b10bafb3c2742b6",
"transaction": "Download via Link",
"actionInfo": "N/A",
"access": "Web",
"time": "2021-02-15T08:34:37Z",
"ipAddress": "192.168.0.0.1",
"file_checksum": "N/A"
}
]
}
Example Response (JSON - Permissions Audit Report)
{
"total_count": 100,
"offset": 10,
"count": 2,
"events": [
{
"folder": "/Shared/Marketing",
"assignee": "Sarah Doerr ( sdoerr@company.com )",
"assignee_id": 107,
"assigner": "John Doe ( jdoe@company.com )",
"assigner_id": 101,
"change": "+Editor",
"time": "2019-05-26T18:35Z"
},
{
"folder": "/Shared/Engineering",
"assignee": "Sarah Doerr ( sdoerr@company.com )",
"assignee_id": 107,
"assigner": "John Doe ( jdoe@company.com )",
"assigner_id": 101,
"change": "Editor>>Owner",
"time": "2019-05-26T20:06Z"
}
]
}
Example Response (JSON - User Provisioning Audit Report)
{
"total_count": 2,
"offset": 0,
"count": 2,
"events": [
{
"performed_by": "William Black ( wblack@corporate-email.com )",
"performed_by_id": 102,
"subject": "John White ( jwhite@corporate-email.com )",
"subject_id": 107,
"action": "Create",
"action_info": "",
"date_and_time": "2019-08-03T17:13:58Z",
"action_source": "Web UI"
},
{
"performed_by": "John White ( jwhite@corporate-email.com )",
"performed_by_id": 107,
"subject": "John White ( jwhite@corporate-email.com )",
"subject_id": 107,
"action": "Password Change",
"action_info": "",
"date_and_time": "2019-08-03T17:15:57Z",
"action_source": "Web UI"
}
]
}
Example Response (JSON - Group Provisioning Audit Report)
{
"total_count": 2,
"offset": 0,
"count": 2,
"events": [
{
"time": "2019-09-14T23:03:22Z",
"actor": "John White ( jwhite@corporate-email.com )",
"actor_id": 107,
"group": "ProjectManagers",
"action": "Create",
"action_info": "",
"source": "Web UI"
},
{
"time": "2019-09-14T23:03:38Z",
"actor": "John White ( jwhite@corporate-email.com )",
"actor_id": 107,
"group": "ProjectManagers",
"action": "Add Users",
"action_info": "William Black ( wblack@corporate-email.com ),Kate Smith ( ksmith@corporate-email.com )",
"source": "Web UI"
}
]
}
Example Response (JSON - Configuration Settings Audit Report)
{
"total_count": 2,
"offset": 0,
"count": 2,
"events": [
{
"time": "2021-01-05T23:00:00Z",
"actor": "John White ( jwhite@corporate-email.com )",
"ip_address": "192.168.0.1",
"setting_screen": "SECURITY",
"setting_name": "security.externalAuthSettings.samlEnabled",
"old_value": "false",
"new_value": "true"
},
{
"time": "2021-01-05T23:00:01Z",
"actor": "John White ( jwhite@corporate-email.com )",
"ip_address": "192.168.0.1",
"setting_screen": "SECURITY",
"setting_name": "security.externalAuthSettings.samlSettings.idpName",
"old_value": "onelogin",
"new_value": "Duo"
}
]
}
Delete Audit Report
Deletes an existing audit report.
Request
DELETE /pubapi/v1/audit/{type}/{id}
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Report type: logins, files, permissions, users, groups, workgroup-settings, workflows, workflow-templates, quality-docs, quality-docs-categories, quality-docs-courses, etmf, snapshot-restore, or upload-requests |
id | string | Yes | Report ID to delete |
Example Request
curl -i -X DELETE "https://{domain}.egnyte.com/pubapi/v1/audit/logins/{id}" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Response
204 No Content
No response body is returned on successful deletion.
Error Codes
| Status | Error | Description | Resolution |
|---|---|---|---|
| 400 | Bad Request | Request body is malformed or contains invalid parameters | Verify all required fields are present and values match allowed types |
| 401 | Unauthorized | Invalid or expired OAuth token | Refresh your OAuth token and retry the request |
| 403 | Forbidden | User lacks permission to run audit reports or audit reporting is not enabled on the domain | Ensure the user is an admin or power user with "can run reports" role, and that audit reporting is enabled on your plan |
| 404 | Not Found | Report or job ID does not exist | Verify the report/job ID is correct and the report has not been deleted |
| 429 | Rate Limited | Too many requests | Implement exponential backoff; check Retry-After header |
Example Error Response
{
"Errors": [
{
"description": "Audit report does not exist.",
"code": "404"
}
]
}
Related Resources
- Audit Reporting API v2 — For streaming audit events from the last 7 days using cursor-based pagination
- Authentication — How to obtain and refresh OAuth tokens
- User Management API — Manage users and permissions
