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

FieldTypeRequiredDescription
formatstringYesReport format: csv or json
date_startstringYesStart date in YYYY-MM-DD or ISO 8601 format
date_endstringYesEnd date in YYYY-MM-DD or ISO 8601 format (must be after date_start)
eventsarrayYesEvents to include. One or more of: logins, logouts, account_lockouts, password_resets, failed_attempts
access_pointsarrayNoAccess points to include: Web, FTP, Mobile. If omitted, includes all access points
usersarrayNoEgnyte usernames to report on. If omitted, includes all users
suppress_emailsbooleanNoIf 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

FieldTypeDescription
idstringJob ID for tracking report generation status

Response Headers

HeaderDescription
LocationURL 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

FieldTypeRequiredDescription
formatstringYesReport format: csv or json
date_startstringYesStart date in YYYY-MM-DD or ISO 8601 format. Time portion is ignored
date_endstringYesEnd date in YYYY-MM-DD or ISO 8601 format (must be after date_start)
foldersarrayYes*Absolute folder paths to report on. Required unless file is specified
filestringNoSpecific file to report on. Supports * wildcard (cannot start with *)
usersarrayNoEgnyte usernames to report on. If omitted, includes all users
transaction_typearrayNoTransactions 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_emailsbooleanNoIf 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

FieldTypeDescription
idstringJob ID for tracking report generation status

Response Headers

HeaderDescription
LocationURL 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

FieldTypeRequiredDescription
formatstringYesReport format: csv or json
date_startstringYesStart date in YYYY-MM-DD or ISO 8601 format. Time portion is ignored
date_endstringYesEnd date in YYYY-MM-DD or ISO 8601 format (must be after date_start)
foldersarrayNoAbsolute folder paths to report on. If omitted, includes all folders
assignersarrayNoUsernames of users who assigned permissions. If omitted, includes all users
assignee_usersarrayNoUsernames of users who received permissions. If omitted, only groups are included
assignee_groupsarrayNoGroup names that received permissions. If omitted, only users are included
suppress_emailsbooleanNoIf 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

FieldTypeDescription
idstringJob ID for tracking report generation status

Response Headers

HeaderDescription
LocationURL 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

FieldTypeRequiredDescription
formatstringYesReport format: csv or json
date_startstringYesStart date in YYYY-MM-DD or ISO 8601 format. Time portion is ignored
date_endstringYesEnd date in YYYY-MM-DD or ISO 8601 format (must be after date_start)
action_typearrayNoActions to include: CREATE, UPDATE, DISABLE, ENABLE, DELETE, PASSWORD_RESET, PASSWORD_CHANGE. If omitted, includes all actions
performed_byarrayNoUsernames of users who performed changes. If omitted, includes all users
include_system_actionsbooleanNoIf true, includes system-initiated actions. Default: false
subjectarrayNoUsernames 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

FieldTypeDescription
idstringJob ID for tracking report generation status

Response Headers

HeaderDescription
LocationURL 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

FieldTypeRequiredDescription
formatstringYesReport format: csv or json
date_startstringYesStart date in YYYY-MM-DD or ISO 8601 format. Time portion is ignored
date_endstringYesEnd date in YYYY-MM-DD or ISO 8601 format (must be after date_start)
action_typearrayNoActions to include: CREATE, ADD_USERS, REMOVE_USERS, RENAME, DELETE. If omitted, includes all actions
usersarrayNoUsernames of users who performed changes. If omitted, includes all users
include_system_actionsbooleanNoIf true, includes system-initiated actions. Default: false
groupsarrayNoGroup 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

FieldTypeDescription
idstringJob ID for tracking report generation status

Response Headers

HeaderDescription
LocationURL 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

FieldTypeRequiredDescription
formatstringYesReport format: csv or json
date_startstringYesStart date in YYYY-MM-DD or ISO 8601 format. Time portion is ignored
date_endstringYesEnd date in YYYY-MM-DD or ISO 8601 format (must be after date_start)
usersarrayNoUsernames 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

FieldTypeDescription
idstringJob ID for tracking report generation status

Response Headers

HeaderDescription
LocationURL 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

FieldTypeRequiredDescription
formatstringYesReport format: csv or json
date_startstringYesStart date in YYYY-MM-DD or ISO 8601 format
date_endstringYesEnd date in YYYY-MM-DD or ISO 8601 format (must be after date_start)
usersarrayNoEgnyte usernames to report on. If omitted, includes all users
filestringNoSearch pattern to filter workflows by name. Supports * wildcard (cannot start with *)
workflow_actionsarrayNoActions 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_typesarrayNoWorkflow types to include: REVIEW_APPROVE, TODO, APPROVAL, REVIEW, MULTISTEP, TEMPLATE. If omitted, includes all types
suppress_emailsbooleanNoIf 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

FieldTypeDescription
idstringJob ID for tracking report generation status

Response Headers

HeaderDescription
LocationURL 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

FieldTypeRequiredDescription
formatstringYesReport format: csv or json
date_startstringYesStart date in YYYY-MM-DD or ISO 8601 format
date_endstringYesEnd date in YYYY-MM-DD or ISO 8601 format (must be after date_start)
usersarrayNoEgnyte usernames to report on. If omitted, includes all users
workflow_template_actionsarrayNoActions to include: TEMPLATE_CREATED, TEMPLATE_STATUS_CHANGED, TEMPLATE_EDITED, STEP_ADDED, STEP_REMOVED, ITEM_ADDED, ITEM_REMOVED. If omitted, includes all actions
suppress_emailsbooleanNoIf 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

FieldTypeDescription
idstringJob ID for tracking report generation status

Response Headers

HeaderDescription
LocationURL 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

FieldTypeRequiredDescription
formatstringYesReport format: csv or json
date_startstringYesStart date in YYYY-MM-DD or ISO 8601 format
date_endstringYesEnd date in YYYY-MM-DD or ISO 8601 format (must be after date_start)
usersarrayNoEgnyte usernames to report on. If omitted, includes all users
quality_document_idstringNoSpecific Quality Docs document ID to report on
quality_docs_categoriesarrayNoCategories to filter by. Each element is an object with id (string) and optional subcategoryIds (array of strings)
quality_docs_actionsarrayNoActions 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_statusesarrayNoDocument statuses to include: DRAFT, EFFECTIVE, FUTURE_EFFECTIVE, OBSOLETE. If omitted, includes all statuses
suppress_emailsbooleanNoIf 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

FieldTypeDescription
idstringJob ID for tracking report generation status

Response Headers

HeaderDescription
LocationURL 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

FieldTypeRequiredDescription
formatstringYesReport format: csv or json
date_startstringYesStart date in YYYY-MM-DD or ISO 8601 format
date_endstringYesEnd date in YYYY-MM-DD or ISO 8601 format (must be after date_start)
usersarrayNoEgnyte usernames to report on. If omitted, includes all users
quality_docs_categoriesarrayNoCategories to filter by. Each element is an object with id (string) and optional subcategoryIds (array of strings)
quality_docs_categories_actionsarrayNoActions to include: CATEGORY_ADDED, CATEGORY_MODIFIED, SUBCATEGORY_ADDED, SUBCATEGORY_MODIFIED. If omitted, includes all actions
suppress_emailsbooleanNoIf 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

FieldTypeDescription
idstringJob ID for tracking report generation status

Response Headers

HeaderDescription
LocationURL 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

FieldTypeRequiredDescription
formatstringYesReport format: csv or json
date_startstringYesStart date in YYYY-MM-DD or ISO 8601 format
date_endstringYesEnd date in YYYY-MM-DD or ISO 8601 format (must be after date_start)
usersarrayNoEgnyte usernames to report on. If omitted, includes all users
quality_docs_courses_idsarrayNoCourse IDs to filter by. If omitted, includes all courses
quality_docs_courses_actionsarrayNoActions to include: COURSE_CREATED, COURSE_MODIFIED, COURSE_STATUS_CHANGED, COURSE_DOCUMENT_STATUS_CHANGED. If omitted, includes all actions
quality_docs_courses_parametersarrayNoCourse 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_emailsbooleanNoIf 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

FieldTypeDescription
idstringJob ID for tracking report generation status

Response Headers

HeaderDescription
LocationURL 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

FieldTypeRequiredDescription
formatstringYesReport format: csv or json
date_startstringYesStart date in YYYY-MM-DD or ISO 8601 format
date_endstringYesEnd date in YYYY-MM-DD or ISO 8601 format (must be after date_start)
usersarrayNoEgnyte usernames to report on. If omitted, includes all users
etmf_actionsarrayNoActions 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_idsarrayNoStudy IDs to filter by. If omitted, includes all studies
etmf_artifact_numberstringNoArtifact number to filter by
suppress_emailsbooleanNoIf 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

FieldTypeDescription
idstringJob ID for tracking report generation status

Response Headers

HeaderDescription
LocationURL 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

FieldTypeRequiredDescription
formatstringYesReport format: csv or json
date_startstringYesStart date in YYYY-MM-DD or ISO 8601 format
date_endstringYesEnd date in YYYY-MM-DD or ISO 8601 format (must be after date_start)
usersarrayNoEgnyte usernames to report on. If omitted, includes all users
include_system_actionsbooleanNoIf true, includes system-initiated actions. Default: true
suppress_emailsbooleanNoIf 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

FieldTypeDescription
idstringJob ID for tracking report generation status

Response Headers

HeaderDescription
LocationURL 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

FieldTypeRequiredDescription
formatstringYesReport format: csv or json
date_startstringYesStart date in YYYY-MM-DD or ISO 8601 format
date_endstringYesEnd date in YYYY-MM-DD or ISO 8601 format (must be after date_start)
usersarrayNoEgnyte usernames to report on. If omitted, includes all users
upload_requests_actionsarrayNoActions 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_emailsbooleanNoIf 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

FieldTypeDescription
idstringJob ID for tracking report generation status

Response Headers

HeaderDescription
LocationURL 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

ParameterTypeRequiredDescription
idstringYesJob 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)

FieldTypeDescription
statusstringCurrent status: running

Example Response

{
  "status": "running"
}

303 See Other (report ready)

FieldTypeDescription
statusstringCurrent status: completed

Response Headers

HeaderDescription
LocationURL 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

ParameterTypeRequiredDescription
typestringYesReport 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
idstringYesReport ID returned when creating the report

Query Parameters

The following parameters apply only to JSON-formatted reports:

ParameterTypeRequiredDefaultDescription
offsetintegerNo0Starting event index (0-based)
countintegerNoAll eventsNumber 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

HeaderDescription
Content-Typetext/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

ParameterTypeRequiredDescription
typestringYesReport 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
idstringYesReport 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

StatusErrorDescriptionResolution
400Bad RequestRequest body is malformed or contains invalid parametersVerify all required fields are present and values match allowed types
401UnauthorizedInvalid or expired OAuth tokenRefresh your OAuth token and retry the request
403ForbiddenUser lacks permission to run audit reports or audit reporting is not enabled on the domainEnsure the user is an admin or power user with "can run reports" role, and that audit reporting is enabled on your plan
404Not FoundReport or job ID does not existVerify the report/job ID is correct and the report has not been deleted
429Rate LimitedToo many requestsImplement exponential backoff; check Retry-After header

Example Error Response

{
  "Errors": [
    {
      "description": "Audit report does not exist.",
      "code": "404"
    }
  ]
}

Reference →Browse all endpoints