Skip to content

GetDocumentAbstract API

OBSOLETE -" This API is retained for backward compatibility only. Use GetDocumentAbstract1 for new integrations. GetDocumentAbstract1 returns a consistent XML structure for both success and error cases; this API does not.

Returns the full-text abstract (indexed text content) of a specified version of a document.

Endpoint

/srv.asmx/GetDocumentAbstract

Methods

  • GET /srv.asmx/GetDocumentAbstract?AuthenticationTicket=...&Path=...&VersionNumber=...

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

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

Parameters

Parameter Type Required Description
AuthenticationTicket string Yes Authentication ticket obtained from AuthenticateUser.
Path string Yes Full infoRouter path to the document (e.g. /Finance/Reports/Q1-Report.pdf), or a short document ID path (~D{id} or ~D{id}.ext).
VersionNumber int Yes Version number to retrieve the abstract for. Pass 0 for the published version, or for the latest version when the document has never been published. Must be 0 or a version number in the modern format (--- 1,000,000). Values between 1 and 999,999 are rejected with an error.

Version Number Format

infoRouter uses a large-integer version numbering scheme where version numbers pack a major, a minor and a revision into one integer as major * 1000000 + minor * 1000 + revision, so the first version is 1000000 and the second is 1000001 - not 2000000, which would be major version 2. Pass 0 to get the published version's abstract, or the latest version's when the document has never been published.


Response

Warning: The success and error responses use different XML structures -" this inconsistency is the primary reason this API is considered obsolete. See GetDocumentAbstract1 for a consistent response format.

Success Response

On success, the abstract text is returned inside an <abstract> child element:

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

  <abstract AppliedById="3" AppliedBy="SYSTEM" DateApplied="2024-03-15T14:32:07.000Z">This document covers the Q1 2024 financial results including

revenue figures, expense breakdowns, and year-over-year comparisons...</abstract>

</response>
Element / Attribute Description
success "true" on success.
error Empty string on success.
<abstract> Child element containing the full-text abstract (indexed content) of the requested document version. Carries the author as attributes - see below.

Who wrote the abstract

The element carries the author, in the same three attributes GetPropertySets uses on its <Log> node and GetDocumentSummary uses on its <Value>.

Attribute Meaning
AppliedById ID of the user recorded against the abstract. Use this to identify them - a username is a label, not a key.
AppliedBy Their display name.
DateApplied When the abstract was written, in universal format.

An abstract is always produced by the server - from the email parser or the content index, never typed - so in practice this is the system account. It is read from the stored row rather than assumed, which is why all three are absent on an abstract written before the author was recorded, and on a - where there is none.

Error Response

On any error, a flat <response> element is returned without the <abstract> child:

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

This structural difference between success (has <abstract> child) and error (flat element with only attributes) is what the obsolete warning refers to.


Required Permissions

The calling user must have at least read access to the document. The abstract is extracted from the full-text search index; if the document has not been indexed, the returned abstract may be empty.


Example

GET Request

GET /srv.asmx/GetDocumentAbstract

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

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

  &VersionNumber=0

HTTP/1.1

POST Request

POST /srv.asmx/GetDocumentAbstract HTTP/1.1

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

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

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

&VersionNumber=0

SOAP Request

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

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

  <soap:Body>

    <tns:GetDocumentAbstract>

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

      <tns:Path>/Finance/Reports/Q1-2024-Report.pdf</tns:Path>

      <tns:VersionNumber>0</tns:VersionNumber>

    </tns:GetDocumentAbstract>

  </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;
}

Reads the indexed text of one document version, in an <abstract> element.

const root = await call('GetDocumentAbstract', {
  authenticationTicket: ticket,
  Path: '/Finance/Reports/Q1.pdf',
  VersionNumber: 0            // 0 means the published version
});

const element = root.querySelector('abstract');
console.log(element.textContent,
            element.getAttribute('AppliedBy'),
            element.getAttribute('DateApplied'));

The only difference between the two is the element name. GetDocumentAbstract writes the text into <abstract>, which is what it has always done; GetDocumentAbstract1 writes the identical text, with the identical attributes, into <Value> - the element the rest of the API uses for a single returned value. Same parameters, same content, same author attributes. Prefer the numbered one in new code and keep reading <abstract> in anything already written against it.

Notes

  • This API is obsolete. Use GetDocumentAbstract1 for all new integrations.

  • The abstract text is sourced from the full-text search index. If the document has not been indexed, the abstract may be empty.

  • VersionNumber=0 retrieves the abstract for the published version of the document, or for its latest version when it has never been published.

  • Version numbers between 1 and 999,999 are rejected. Use 0 for the published version, or a number a document actually carries - the first version is 1000000 and the second 1000001.

  • Both full infoRouter paths and short document ID paths (~D{id} or ~D{id}.ext) are accepted for the Path parameter.



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
4041 no document at that path - including a folder path, and one the caller may not see
HTTP 400 a required string parameter was empty; refused by model binding, so there is no error document

A call with no ticket signs in as the anonymous user, so a document in a library flagged as anonymous can be read without authenticating.

Error Description
[900] Authentication failed Invalid or missing authentication ticket.
[901] Session expired or Invalid ticket The ticket has expired or does not exist.
Document not found The specified path does not resolve to an existing document.
Invalid version number VersionNumber is between 1 and 999,999 (must be 0 or --- 1,000,000).
SystemError:... An unexpected server-side error occurred.