GetSecurityChangeLog API

Returns the security change log for a library, folder, or document. This API merges the functionality of the library-wide security audit log and the object-specific security history into a single endpoint.

Endpoint

/srv.asmx/GetSecurityChangeLog

Methods

Parameters

Parameter Type Required Description
authenticationTicket string Yes Authentication ticket obtained from AuthenticateUser
path string Yes Path to a library (e.g. /corporate/), folder (e.g. /corporate/accounting/), or document (e.g. /corporate/accounting/report.docx)
userName string No Filter by the user who applied the security change (empty for all users)
startDate DateTime No Start date for the log query range
endDate DateTime No End date for the log query range

Path Parameter Behavior

The path parameter determines the scope of the security change log:

Response Structure

Success Response

<response success="true">
  <securitychanges>
    <change objectType="DOCUMENT" objectId="123" objectName="report.docx" objectPath="\corporate\accounting"
            appliedById="5" appliedByName="John Smith" dateApplied="2026-02-01 14:30:00"
            isInherited="false" allowAnonymous="false">
      <everyone access="2" accessDescription="Read" />
      <usergroups>
        <usergroup groupId="10" groupName="Managers" access="5" accessDescription="Change" />
      </usergroups>
      <users>
        <user userId="20" fullName="Jane Smith" userName="jsmith" access="6" accessDescription="Full Control" />
      </users>
    </change>
    <change objectType="FOLDER" objectId="456" objectName="accounting" objectPath="\corporate\accounting"
            appliedById="5" appliedByName="John Smith" dateApplied="2026-01-15 09:00:00"
            isInherited="false" allowAnonymous="false">
      <everyone access="2" accessDescription="Read" />
      <usergroups>
        <usergroup groupId="10" groupName="Managers" access="6" accessDescription="Full Control" />
      </usergroups>
      <users />
    </change>
  </securitychanges>
</response>

Empty Result

<response success="true">
  <securitychanges />
</response>

Error Response

<response success="false" error="[ErrorCode] Error message" />

Change Entry Attributes

Each <change> element contains:

Attribute Type Description
objectType string Object type: DOCUMENT or FOLDER
objectId integer Object identifier
objectName string Name of the document or folder
objectPath string Parent path of the object
appliedById integer User ID of who applied the security change
appliedByName string Full name of who applied the security change
dateApplied DateTime Date and time the security change was applied
isInherited boolean Whether security is inherited from parent
allowAnonymous boolean Whether anonymous access is allowed

Child Elements

<everyone> (optional, present when everyone access is set):

Attribute Description
access Numeric access level
accessDescription Human-readable access description (e.g. "Read", "Change", "Full Control")

<usergroups> / <usergroup>:

Attribute Description
groupId User group identifier
groupName User group name
access Numeric access level
accessDescription Human-readable access description

<users> / <user>:

Attribute Description
userId User identifier
fullName User's full name
userName User's login name
access Numeric access level
accessDescription Human-readable access description

Access Level Values

Document Access Levels

Value Description
0 No Access
2 Read
5 Change
6 Full Control

Folder Access Levels

Value Description
0 No Access
1 List
2 Read
3 Add
4 Add + Read
5 Change
6 Full Control

Required Permissions

Example Requests

Request (GET) - Library scope

GET /srv.asmx/GetSecurityChangeLog?authenticationTicket=abc123-def456&path=/corporate/&startDate=2026-01-01&endDate=2026-02-01 HTTP/1.1
Host: server.example.com

Request (GET) - Document scope with user filter

GET /srv.asmx/GetSecurityChangeLog?authenticationTicket=abc123-def456&path=/corporate/accounting/report.docx&userName=jsmith HTTP/1.1
Host: server.example.com

Request (POST)

POST /srv.asmx/GetSecurityChangeLog HTTP/1.1
Content-Type: application/x-www-form-urlencoded

authenticationTicket=abc123-def456&path=/corporate/accounting/&startDate=2026-01-01&endDate=2026-02-01&userName=jsmith

Request (SOAP 1.1)

POST /srv.asmx HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://tempuri.org/GetSecurityChangeLog"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetSecurityChangeLog xmlns="http://tempuri.org/">
      <authenticationTicket>abc123-def456</authenticationTicket>
      <path>/corporate/</path>
      <userName></userName>
      <startDate>2026-01-01</startDate>
      <endDate>2026-02-01</endDate>
    </GetSecurityChangeLog>
  </soap:Body>
</soap:Envelope>

Notes

Error Codes

Common error responses:

Error Description
[901]Session expired or Invalid ticket Invalid or expired authentication ticket
Insufficient permissions Caller does not have required permissions
Path not found The specified path does not resolve to a valid library, folder, or document
Maximum log count exceeded Too many records; narrow the date range or path

Version History