Skip to content

GetClassificationLogs API

Returns the full classification history log for the specified document or folder path. Each log entry records a change to the security classification level, including the new level, who made the change, the reason, and any associated downgrade or declassify dates. Use this API to audit classification changes for compliance and governance reporting.

Endpoint

/srv.asmx/GetClassificationLogs

Methods

  • GET /srv.asmx/GetClassificationLogs?AuthenticationTicket=...&Path=...
  • POST /srv.asmx/GetClassificationLogs (form data)
  • SOAP Action: http://tempuri.org/GetClassificationLogs

Parameters

Parameter Type Required Description
AuthenticationTicket string Yes Authentication ticket obtained from AuthenticateUser.
Path string Yes Full infoRouter path to a document (e.g. \Finance\Reports\Q1-Report.pdf) or a folder (e.g. \Finance\Reports). Must resolve to an existing document or folder. The library is derived from the resolved object and determines the required permission scope — see Required Permissions.

Required Permissions

The Path parameter is always resolved to a specific document or folder. The permission check is performed against the library that contains that object. This means only library-level ViewAuditLogs permission is required — system-wide admin rights are not needed.

Scenario Required permission
Path resolves to a document ViewAuditLogs for the library containing that document
Path resolves to a folder ViewAuditLogs for the library containing that folder
Path does not resolve Error returned — no permission check is performed

Response

Success Response

Returns a <response> element with success="true" containing a <Value> element with zero or more <ClassificationLogEntry> child elements. Entries are ordered by ActionDate ascending (oldest first).

<response success="true" error="">
  <Value>
    <ClassificationLogEntry>
      <ObjectTypeId>1</ObjectTypeId>
      <ObjectType>DOCUMENT</ObjectType>
      <ObjectId>9871</ObjectId>
      <ObjectName>Q1-2024-Report.pdf</ObjectName>
      <DomainId>5</DomainId>
      <DomainName>Finance</DomainName>
      <Path>/Finance/Reports/Q1-2024-Report.pdf</Path>
      <BeforeClassificationLevelId>0</BeforeClassificationLevelId>
      <BeforeClassificationLevel>NoMarkings</BeforeClassificationLevel>
      <BeforeDowngradeOn>0001-01-01T00:00:00</BeforeDowngradeOn>
      <BeforeDeclassifyOn>0001-01-01T00:00:00</BeforeDeclassifyOn>
      <ClassificationLevelId>3</ClassificationLevelId>
      <ClassificationLevel>Secret</ClassificationLevel>
      <DowngradeOn>2026-01-01T00:00:00</DowngradeOn>
      <DeclassifyOn>2028-06-01T00:00:00</DeclassifyOn>
      <ReasonForAction>Classified for Q1 sensitivity review period.</ReasonForAction>
      <ActionDate>2024-06-15T14:30:00</ActionDate>
      <ActionbyId>12</ActionbyId>
      <ActionByName>jsmith</ActionByName>
      <FolderId>0</FolderId>
      <Agency>Finance Division</Agency>
    </ClassificationLogEntry>
  </Value>
</response>

ClassificationLogEntry Field Reference

Field Type Description
ObjectTypeId int Numeric object type: 1 = Document, 2 = Folder.
ObjectType string Object type label: DOCUMENT or FOLDER.
ObjectId int Internal ID of the document or folder.
ObjectName string Name of the document or folder.
DomainId int Internal ID of the library/domain.
DomainName string Name of the library/domain.
Path string Full infoRouter path of the item at the time of the classification change.
BeforeClassificationLevelId int Classification level ID before the change (0 if not recorded).
BeforeClassificationLevel string Classification level name before the change.
BeforeDowngradeOn DateTime Scheduled downgrade date before the change (0001-01-01 if not set).
BeforeDeclassifyOn DateTime Scheduled declassify date before the change (0001-01-01 if not set).
ClassificationLevelId int New classification level ID after the change.
ClassificationLevel string New classification level name after the change.
DowngradeOn DateTime New scheduled downgrade date (0001-01-01 if not set).
DeclassifyOn DateTime New scheduled declassify date (0001-01-01 if not set).
ReasonForAction string Reason entered by the user when making the classification change.
ActionDate DateTime Date and time the classification was changed.
ActionbyId int Internal user ID of the person who made the change.
ActionByName string Username of the person who made the change.
FolderId int Parent folder ID (0 for document-level entries).
Agency string Agency or organisational unit associated with the classification.

ClassificationLevel Values

ID Name Description
0 NoMarkings No classification markings applied.
1 Declassified Document has been formally declassified.
2 Confidential Confidential classification.
3 Secret Secret classification.
4 TopSecret Top Secret classification.

No Entries Response

<response success="true" error="">
  <Value />
</response>

Error Response

<response success="false" error="Insufficient rights." />

Example Requests

GET

GET /srv.asmx/GetClassificationLogs?AuthenticationTicket=3f2504e0-4f89-11d3-9a0c-0305e82c3301&Path=/Finance/Reports/Q1-2024-Report.pdf HTTP/1.1
Host: server.example.com

POST

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

AuthenticationTicket=3f2504e0-4f89-11d3-9a0c-0305e82c3301&Path=/Finance/Reports/Q1-2024-Report.pdf

SOAP 1.1

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

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetClassificationLogs xmlns="http://tempuri.org/">
      <AuthenticationTicket>3f2504e0-4f89-11d3-9a0c-0305e82c3301</AuthenticationTicket>
      <Path>/Finance/Reports/Q1-2024-Report.pdf</Path>
    </GetClassificationLogs>
  </soap:Body>
</soap:Envelope>

Notes

  • Library-level permission only: because Path always resolves to a specific object, the access check is always scoped to that object's library. System-wide admin rights are not required.
  • Documents and folders: the Path parameter accepts both document and folder paths.
  • Chronological order: entries are always returned in ascending ActionDate order (oldest first).
  • Before fields: Before* fields reflect the state before the change. In older log entries these may be 0 / NoMarkings / 0001-01-01 if the previous state was not recorded at the time.
  • Date format: ActionDate, DowngradeOn, DeclassifyOn, and their Before* counterparts are ISO 8601 date-time strings. A value of 0001-01-01T00:00:00 indicates that no date was set.
  • Path not found: if Path does not resolve to any existing document or folder, an error is returned.
  • No date or user filter: this API returns all classification events for the exact path specified. Use Path alone to scope the results.

Error Codes

Error Description
[900] Authentication failed Invalid or missing authentication ticket.
[901] Session expired or Invalid ticket The ticket has expired or does not exist.
Insufficient rights. The caller does not have ViewAuditLogs permission for the library containing the resolved object.
Path not found The specified Path does not resolve to an existing document or folder.
SystemError:... An unexpected server-side error occurred.