Skip to content

GetSubscriptions API

Returns the list of documents and folders that the current authenticated user is subscribed to. Subscriptions are created via the AddUserToDocumentSubscribers and AddUserToFolderSubscribers APIs. The response uses the same full-detail folder and document element format as GetFoldersAndDocuments. Optional flags control whether additional detail (folder rules, property sets, security, owner, version history) is included for each item.

Endpoint

/srv.asmx/GetSubscriptions

Methods

  • GET /srv.asmx/GetSubscriptions?authenticationTicket=...&withrules=...&withpropertysets=...&withsecurity=...&withOwner=...&withVersions=...

  • POST /srv.asmx/GetSubscriptions (form data)

  • SOAP Action: http://tempuri.org/GetSubscriptions

Parameters

Parameter Type Required Description
authenticationTicket string Yes Authentication ticket obtained from AuthenticateUser. Subscriptions are always returned for the user associated with this ticket.
withrules bool Yes If true, include folder rules (<Rules> child element) for each subscribed folder. Has no effect on document items.
withpropertysets bool Yes If true, include applied custom property set data (<PropertySets> child element) for each item.
withsecurity bool Yes If true, include the access control list (<AccessList> child element) for each item.
withOwner bool Yes If true, include owner user information for each item.
withVersions bool Yes If true, include document version history (<Versions> child element) for each document. Has no effect on folder items.

Performance tip: Pass false for all boolean flags for the fastest, most compact response. Enable only the flags your application actually needs.


Response

Success Response

Returns a <root> element with success="true" containing <folder> and <document> child elements -" subscribed folders first, then subscribed documents, both sorted by name ascending. If the user has no subscriptions, an empty root element is returned (not an error).

<root success="true">

  <!-- Subscribed folder items -->

  <folder FolderID="42"

          ParentID="10"

          Name="Q1 Reports"

          Path="/Finance/Reports/Q1 Reports"

          Description="First quarter reports"

          CreationDate="2024-01-15"

          OwnerName="jsmith"

          DomainId="3"

          ClassificationLevel="NoMarkings"

          ClassificationLevelId="0"

          DeclassifyOn=""

          DowngradeOn=""

          RDDefId="0"

          RetentionDate=""

          DispositionDate=""

          CutoffDate="">

    <!-- Included only when withrules=true -->

    <Rules>

      <Rule Name="AllowableFileTypes"  Value="*" />

      <Rule Name="Checkins"            Value="allows" />

      <Rule Name="Checkouts"           Value="allows" />

      <Rule Name="DocumentDeletes"     Value="allows" />

      <Rule Name="FolderDeletes"       Value="allows" />

      <Rule Name="NewDocuments"        Value="allows" />

      <Rule Name="NewFolders"          Value="allows" />

      <Rule Name="ClassifiedDocuments" Value="disallows" />

    </Rules>

    <!-- Included only when withpropertysets=true -->

    <PropertySets> ... </PropertySets>

    <!-- Included only when withsecurity=true -->

    <AccessList DateApplied="2024-01-15" AppliedBy="admin" InheritedSecurity="false"> ... </AccessList>

    <!-- Included only when withOwner=true -->

    <User UserID="7" UserName="jsmith" FullName="John Smith" />

  </folder>

  <!-- Subscribed document items -->

  <document DocumentID="1234"

            ParentID="42"

            Name="Q1-2024-Report.pdf"

            Path="/Finance/Reports/Q1 Reports/Q1-2024-Report.pdf"

            MimeTypeDesc="PDF Document"

            DocumentSource="Upload"

            Author="jsmith"

            Language="en"

            OwnerName="jsmith"

            Importance="Normal"

            ImportanceId="1"

            ClassificationLevel="NoMarkings"

            ClassificationLevelId="0"

            DocumentType=""

            DocumentTypeId="0"

            CheckedOutBy=""

            CheckedOutById="0"

            CheckOutDate=""

            LastVersion="2000000"

            PublishedVersion="2000000"

            ReleasedVersion="2000000"

            LastUpdate="2024-06-15T10:30:00.000Z"

            LastUpdatedBy="jsmith"

            LastPublisher="jsmith"

            DocumentSize="524288"

            ApprovalStatus="Approved"

            ApprovalStatusId="2"

            FlowId="0"

            FlowName=""

            FlowStepNumber="0"

            FlowStepName=""

            ISOReviewDate=""

            ExpirationDate=""

            CutoffDate=""

            DomainId="3"

            ShortID="~D1234"

            RDDefId="0"

            RetentionDate=""

            DispositionDate=""

            IsPublished="true"

            IsDynamic="false"

            DeclassifyOn=""

            DowngradeOn=""

            UserViewStatus="2">

    <!-- Included only when withpropertysets=true -->

    <PropertySets> ... </PropertySets>

    <!-- Included only when withsecurity=true -->

    <AccessList DateApplied="2024-01-15" AppliedBy="admin" InheritedSecurity="false"> ... </AccessList>

    <!-- Included only when withOwner=true -->

    <User UserID="7" UserName="jsmith" FullName="John Smith" />

    <!-- Included only when withVersions=true -->

    <Versions> ... </Versions>

  </document>

</root>

Empty Result (No Subscriptions)

<root success="true" />

Documents come back as the full <document> element. Since 9.0 it also carries AIEnhanced and AIExtractConfidence. The first says which of the document's attributes infoRouter Connect produced, as a set of bits - 0 when none did; the second how sure it was about the weakest value it put in a property set, as a percentage. See AIEnhanced and AIExtractConfidence.

Error Response

<response success="false" error="[900] Authentication failed." />

Required Permissions

Any authenticated user can call this API. The response always contains subscriptions for the user associated with the provided authenticationTicket. It is not possible to retrieve subscriptions for another user via this API.


Example

GET Request

GET /srv.asmx/GetSubscriptions

  ?authenticationTicket=3f2504e0-4f89-11d3-9a0c-0305e82c3301

  &withrules=false

  &withpropertysets=false

  &withsecurity=false

  &withOwner=false

  &withVersions=false

HTTP/1.1

POST Request

POST /srv.asmx/GetSubscriptions HTTP/1.1

Content-Type: application/x-www-form-urlencoded

authenticationTicket=3f2504e0-4f89-11d3-9a0c-0305e82c3301

&withrules=false

&withpropertysets=false

&withsecurity=false

&withOwner=false

&withVersions=false

SOAP Request

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

               xmlns:tns="http://tempuri.org/">

  <soap:Body>

    <tns:GetSubscriptions>

      <tns:AuthenticationTicket>3f2504e0-4f89-11d3-9a0c-0305e82c3301</tns:AuthenticationTicket>

      <tns:withrules>false</tns:withrules>

      <tns:withpropertysets>false</tns:withpropertysets>

      <tns:withsecurity>false</tns:withsecurity>

      <tns:withOwner>false</tns:withOwner>

      <tns:withVersions>false</tns:withVersions>

    </tns:GetSubscriptions>

  </soap:Body>

</soap:Envelope>

JavaScript

Every call answers XML with HTTP 200, success or not, so success is the thing to branch on and errorCode is the number to report.

async function call(action, params) {
  const response = await fetch(`/srv.asmx/${action}?${new URLSearchParams(params)}`);
  const root = new DOMParser()
    .parseFromString(await response.text(), 'text/xml')
    .documentElement;

  if (root.getAttribute('success') !== 'true') {
    throw new Error(`${root.getAttribute('errorCode')}: ${root.getAttribute('error')}`);
  }
  return root;
}

The caller's own subscriptions. It takes no user name - the ticket decides whose list it is.

const root = await call('GetSubscriptions', {
  authenticationTicket: ticket,
  withrules: false,
  withpropertysets: false,
  withsecurity: false,
  withOwner: false,
  withVersions: false,
});

The five with... flags each add a block to every document returned, so leave them false unless the extra detail is wanted - they cost a query per document.

Notes

  • Current User Only: This API always returns subscriptions for the authenticated user. It is not possible to retrieve subscriptions for a different user.

  • Folders First: Subscribed folders appear before subscribed documents. Within each group, items are sorted by name in ascending order.

  • Empty Response: An empty <root success="true" /> is returned when the user has no subscriptions -" this is not an error.

  • Event Flags Not Returned: The response shows which documents and folders the user is subscribed to, but does not include the configured event notification flags (ON_READ, ON_UPDATE, etc.). Use GetSubscribers with the item's path to retrieve event flag details for a specific item.

  • Performance: All five boolean flags add significant data to the response. Pass false for flags your application does not use.

  • Document vs Folder Items: Items are distinguished by element name: <document> for document subscriptions, <folder> for folder subscriptions.

  • UserViewStatus: Each <document> element includes a UserViewStatus integer attribute: 0 = never viewed, 1 = viewed but the published version has since changed, 2 = viewed the current published version.



Error Codes

The errorCode values this operation returns, checked against a running server:

errorCode When
4010 the ticket is expired or unknown, or there is no ticket at all