Getting Started

Introduction

The REST (REpresentational STructure) Web API (Application Programming Interface) is provided for interfacing with aCloud Document and can be used with any system, as it is agnostic of the client platform. All that is required of the system using it, is the ability to read and write text via HTTP/S. The purpose of this interface is to perform the same functions as a user would do in aCloud Document, such as:

The Web API also allows you to perform administration functions, for example:

... but using your own interface.

If you are a .Net developer, then a useful tool we recommend is RestSharp, by John Sheehan. This library provides a suite of tools to make it easier to send GET, POST, HEAD etc. requests to the server, serialise objects and encapsulates the response in a single object. It can be downloaded from http://restsharp.org/

Another tool, for exploring the Web API, is Postman, which enables you to quickly and easily try out Web API calls without having to write any code. This can be downloaded from Google Chrome site.

Versioning of aCloud Document REST API

Version 1.0 of the REST API may have future updates and additions, but these changes will not break the existing API calls that are used by older versions of aCloud Document. If future versions of aCloud Document require any updates to existing API calls that cannot be made backwards compatible with older versions of aCloud Document, then a separate release of REST API will be made as a different version (for example version 2.0) and different URL, so the older versions of aCloud Document can carry on working. An example of a new version needing deployment could be the renaming of a field in a list of search results.

Tickets

All requests to the aCloud Document API (apart from some security API calls) require a valid ticket. A ticket represents a valid login for a specific user and will only provide the same access that the related user has, such as whether they have System Control / Administrator access and which folders they have access to in the Document Structure.

To obtain a ticket, the details of the user who wishes to gain access need to be posted to a specific URL (shown below). On successful authorisation, the ticket is returned. This ticket can then be used to gain access to all the functionality of aCloud Document that the user has access to and needs to be supplied as part of the URL for all requests.

Tickets have a fixed expiry time, however, all calls to the aCloud Document API will return a new ticket in the header of each response, allowing you to slide the expiration time by supplying the new ticket in successive API requests.

After a successful ticket request is made, the response is made up of an array of Instances, containing only one element, to allow flexibility for future expansion. The Instance comprises of:

Sample Request

POST: https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/Security/AuthenticateCredentials

BODY:
{
    "Username": "ADMTEST",
    "Password": "P"
}

Sample Response

{
      "Instances": [
        {
          "Id": "2491c9858f66401b8a88fb25d4d2c3c2",
          "Url": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)",
          "Name": "(Your Instance)",
          "Ticket": "d76a18f3c449b... rest of ticket removed"
        }
    ]
}


Doing a search for documents in general

To retrieve a list of documents from the system:

  1. Retrieve authentication ticket
  2. Get Document Type results
  3. Choose a Document Type
  4. Retrieve page of documents based on the ID of one of the above types
Note that it's not possible to mix results of different document types together; only the document results for one document type may be retrieved at a time.

Retrieving Document Type results (simple search)

The request below is a Simple Search example that doesn't use a meta data tree or attribute tree, and returns results 0 to 100.

The list of Document Type Results returned represents all the unique Document Types of all the Documents returned from the search. The Count provided with each Document Type Result denotes how many Documents of this Document Type there are, therefore, all the Document Type counts added together will give you the total number of Documents that this search yields. Also provided within a Document Type Result is the URL to return that individual Document Type; note that you will still need to provide a valid Ticket at the end of the Query String to gain access by appending "?Ticket=(Your Ticket)"

Sample Request

https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Documents/DocumentTypeResults?FolderId=4&SimpleSearch=true&ContentSearchPhrase=a&Ticket=853c82b2... rest of ticket removed

Sample Response

[
  {
    "DocTypeId": 57,
    "DocTypeName": "Absence Record",
    "DocTypeUrl": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/DocumentTypes/57",
    "Count": 11
  },
  {
    "DocTypeId": 8,
    "DocTypeName": "General Document",
    "DocTypeUrl": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/DocumentTypes/8",
    "Count": 1
  },
  {
    "DocTypeId": 83,
    "DocTypeName": "SM Call Record",
    "DocTypeUrl": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/DocumentTypes/83",
    "Count": 1
  }
]

Retrieving Document results

Once a Document Type from the previous example has been selected for gathering results (in this case Absence Record, ID 57), the same Simple Search request (which includes information such as folder ID, a flag to search sub-folders or not, setting SimpleSearch=true and ContentSearchPhrase="a") is made but additional information for pagination and result ordering is included. Note that the results are ordered across all pages and not just the page of data returned.

Sample Request

https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Documents?Ticket=1c4b4450362d28c1d61cfaa60aee80bdbf8f1e3a219f667091baecde90c9ac2ff404956333122e336920b7a9c5ab9e93acfe708774243c8e34ab3989144f3d66b54f09e1efb9e22e8bf99861977ea2b9d2d50b29dfd54b0ebf7a614af89e1936dc9f52715196467e9ee7197ac80ce3df0a686bc369e9ee17b6b79702fa63d2e61cdc69650a0e0e1742d0774b7b6dcdfa71627d559330375a9e26ed103d1adc09f7c3e21de8d62cac101321c61f3c278823641fb764cd43cbebdca646f56c99c2be3ece305607e73d86f609fa43eb96e192930e0b5408dc6eda97806aa5b0ed4fa33c2dc318b38b6ab41b1f12c0d830d18d1a71259452ef1e0952b51ba1e4d090b51fb2a4d246b22973b15c03aaccbf18f037826efb46333abbd6fae263058d8eb0dd5884ffccca7872604d7d3b2c384d&FolderId=4&DocTypeId=57&IncludeSubFolders=true&SortAttribute.SortField=DocTitle&SortAttribute.Direction=Ascending&Skip=0&Take=100&SimpleSearch=true&ContentSearchPhrase=a

Sample Response Header

Access-Control-Allow-Headers →Content-Type
Access-Control-Allow-Methods →GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin →*
Cache-Control →no-cache
Content-Length →16132
Content-Type →application/json; charset=utf-8
Date →Thu, 04 Dec 2014 17:06:38 GMT
Expires →-1
Pragma →no-cache
Server →Microsoft-IIS/8.5
TicketRefresh →1c4b4450362d28c1d61cfaa60aee80bdbf8f1e3a219f667091baecde90c9ac2ff404956333122e336920b7a9c5ab9e93acfe708774243c8e34ab3989144f3d66b54f09e1efb9e22e8bf99861977ea2b9d2d50b29dfd54b0ebf7a614af89e1936dc9f52715196467e9ee7197ac80ce3df0a686bc369e9ee17b6b79702fa63d2e61cdc69650a0e0e1742d0774b7b6dcdfa71627d559330375a9e26ed103d1adc09f7c3e21de8d62cac101321c61f3c278823641fb764cd43cbebdca646f56c99c2be3ece305607e73d86f609fa43eb96e192930e0b5408dc6eda97806aa5b0ed4fa33c2dc318b38b6ab41b1f12c0d830d18d1a71259452ef1e0952b51ba1e4d090b51fb2a4d246b22973b15c03aaccbf18f037826efb46333abbd6fae263058d8eb0dd5884ffccca7872604d7d3b2c384d
X-AspNet-Version →4.0.30319
X-Powered-By →ASP.NET

Sample Response

[
  {
    "Id": 1952,
    "DocumentProperties": {
      "FolderPath": "\\ADM\\Software Development Icons",
      "ParentFolderId": 10,
      "Title": "ADM SQL Updates",
      "AddedByUserId": 1,
      "AddedByCloudGUID": "",
      "AddedOn": "2014-10-15T17:17:00",
      "FileExt": ".sql",
      "CheckedOut": false
    },
    "IndexingInfo": {
      "DocTypeId": 57,
      "TagValues": [
        {
          "TagId": 17,
          "TagValue": ""
        },
        {
          "TagId": 1,
          "TagValue": ""
        },
        {
          "TagId": 138,
          "TagValue": ""
        }
      ]
    },
    "ContextPermissions": [
      {
        "Type": "ChangePermissions",
        "Value": "Allow"
      },
      {
        "Type": "Delete",
        "Value": "Allow"
      },
      {
        "Type": "Email",
        "Value": "Allow"
      },
      {
        "Type": "VersionControl",
        "Value": "Allow"
      },
      {
        "Type": "View",
        "Value": "Allow"
      }
    ],
    "Versions": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Documents/1952/Versions",
    "Notes": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Documents/1952/Notes",
    "AuditEvents": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Documents/1952/AuditEvents",
  },
  {
    "Id": 238,
    "DocumentProperties": {
      "FolderPath": "\\ADM",
      "ParentFolderId": 4,
      "Title": "arrow_down_blue",
      "AddedByUserId": 1,
      "AddedByCloudGUID": "",
      "AddedOn": "2014-09-18T17:19:00",
      "FileExt": ".png",
      "CheckedOut": false
    },
    "IndexingInfo": {
      "DocTypeId": 57,
      "TagValues": [
        {
          "TagId": 17,
          "TagValue": "Pineapple"
        },
        {
          "TagId": 1,
          "TagValue": "aaa"
        },
        {
          "TagId": 138,
          "TagValue": "bbb"
        }
      ]
    },
    "ContextPermissions": [
      {
        "Type": "ChangePermissions",
        "Value": "Allow"
      },
      {
        "Type": "Delete",
        "Value": "Allow"
      },
      {
        "Type": "Email",
        "Value": "Allow"
      },
      {
        "Type": "VersionControl",
        "Value": "Allow"
      },
      {
        "Type": "View",
        "Value": "Allow"
      }
    ],
    "Versions": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Documents/238/Versions",
    "Notes": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Documents/238/Notes",
    "AuditEvents": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Documents/238/AuditEvents",
  }
]

Notice the fresh ticket that's returned in the header on this request (and others) - called TicketRefresh. This ticket can be used on the next request and has a fresh expiry period which begins at the time of the response.


Creating a new document in the Inbox

Any operations involving documents being sent to the Inbox or filed require a document to be uploaded separately. The key generated from the newly uploaded document is used with CreateDocument requests (POST to /Document).

1 - Get the ID of the user Inbox

All documents are initially uploaded to the users' Inbox. To do this, you must specify the ID of the Inbox. This, and all the other folders in the Document structure can be retrieved as follows:

Sample Request

https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Folders?Ticket=48ca8f93368e7f6d8916af0def9cefb37cd51a33a620ad716846a37e3349db51ec0d9fd615f6a42e3e4228952b0a6d3495a441416fa64e31f2be3bcfb7f2218bd13fc19b35e3c070c319834b95dd942bf5f201650343080392a3751f14203b259bdf3b2916a7130988515da6b002142042d52a3e9e459eece52689090a3d3752af554d531caa89c7eac5e5463c1943599f1ed3e3ff54f32c3cfe7acb2d80254ea259cef764630f659d48d85c267cf645d9b2e5854677d05404595ac900c40f27b3a1c4808e5120f754ea4b7be9eaa4bd4cf92017bbcdaee43a27a63945aa028836632a3958a0324ed75ffc1832989eae8726c64273dc2086db385ff654ef09ab1427bcbc82903cc3d11ed240a2e0d5576dd09f689365e307890de43f82f358bdd9a8626c548dafdb51e709f5881b919c

Sample Response

[
  {
    "Id": 2,
    "Url": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Folders/2",
    "Name": "Inbox",
    "Level": 0,
    "ParentId": 2,
    "NodeType": "UserInbox",
    "ContextPermissions": [
      {
        "Type": "ChangePermissions",
        "Value": "Allow"
      },
      {
        "Type": "Delete",
        "Value": "Allow"
      },
      {
        "Type": "Email",
        "Value": "Allow"
      },
      {
        "Type": "VersionControl",
        "Value": "Allow"
      },
      {
        "Type": "View",
        "Value": "Allow"
      },
      {
        "Type": "Add",
        "Value": "Allow"
      }
    ]
  },
  {
    "Id": 4,
    "Url": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Folders/4",
    "Name": "ADM",
    "Level": 0,
    "ParentId": 4,
    "NodeType": "FilingRoot",
    "ContextPermissions": [
      {
        "Type": "ChangePermissions",
        "Value": "Allow"
      },
      {
        "Type": "Delete",
        "Value": "Allow"
      },
      {
        "Type": "Email",
        "Value": "Allow"
      },
      {
        "Type": "VersionControl",
        "Value": "Allow"
      },
      {
        "Type": "View",
        "Value": "Allow"
      },
      {
        "Type": "Add",
        "Value": "Allow"
      }
    ],
    "PermissionEntries": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Folders/4/PermissionEntries"
  },
  {
    "Id": 5,
    "Url": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Folders/5",
    "Name": "Group Inboxes",
    "Level": 0,
    "ParentId": 5,
    "NodeType": "GroupInboxCollationFolder",
    "ContextPermissions": [
      {
        "Type": "ChangePermissions",
        "Value": "Allow"
      },
      {
        "Type": "Delete",
        "Value": "Allow"
      },
      {
        "Type": "Email",
        "Value": "Allow"
      },
      {
        "Type": "VersionControl",
        "Value": "Allow"
      },
      {
        "Type": "View",
        "Value": "Allow"
      },
      {
        "Type": "Add",
        "Value": "Allow"
      }
    ]
  },
  {
    "Id": 3,
    "Url": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Folders/3",
    "Name": "Search Folders",
    "Level": 0,
    "ParentId": 3,
    "NodeType": "SearchFolderCollationFolder"
  },
  {
    "Id": 8,
    "Url": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Folders/8",
    "Name": "FLAGS",
    "Level": 1,
    "ParentId": 4,
    "NodeType": "FilingSubFolder",
    "ContextPermissions": [
      {
        "Type": "ChangePermissions",
        "Value": "Allow"
      },
      {
        "Type": "Delete",
        "Value": "Allow"
      },
      {
        "Type": "Email",
        "Value": "Allow"
      },
      {
        "Type": "VersionControl",
        "Value": "Allow"
      },
      {
        "Type": "View",
        "Value": "Allow"
      },
      {
        "Type": "Add",
        "Value": "Allow"
      }
    ],
    "PermissionEntries": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Folders/8/PermissionEntries"
  },
  {
    "Id": 9,
    "Url": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)Folders/9",
    "Name": "Galahad Sales Ledger Transaction Docs",
    "Level": 1,
    "ParentId": 4,
    "NodeType": "FilingSubFolder",
    "ContextPermissions": [
      {
        "Type": "ChangePermissions",
        "Value": "Allow"
      },
      {
        "Type": "Delete",
        "Value": "Allow"
      },
      {
        "Type": "Email",
        "Value": "Allow"
      },
      {
        "Type": "VersionControl",
        "Value": "Allow"
      },
      {
        "Type": "View",
        "Value": "Allow"
      },
      {
        "Type": "Add",
        "Value": "Allow"
      }
    ],
    "PermissionEntries": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Folders/9/PermissionEntries"
  },
  {
    "Id": 10,
    "Url": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Folders/10",
    "Name": "Software Development Icons",
    "Level": 1,
    "ParentId": 4,
    "NodeType": "FilingSubFolder",
    "ContextPermissions": [
      {
        "Type": "ChangePermissions",
        "Value": "Allow"
      },
      {
        "Type": "Delete",
        "Value": "Allow"
      },
      {
        "Type": "Email",
        "Value": "Allow"
      },
      {
        "Type": "VersionControl",
        "Value": "Allow"
      },
      {
        "Type": "View",
        "Value": "Allow"
      },
      {
        "Type": "Add",
        "Value": "Allow"
      }
    ],
    "PermissionEntries": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Folders/10/PermissionEntries"
  }
]

Each folder returned from this list has an "Id" and a "Node Type". Only one of the folders returned in the collection will have a Node Type of "UserInbox", which will be the Inbox that belongs to the user making the request (or the user identified by the Ticket). The Id of the Inbox is different for each user as it is a separate area.

2 - Upload a document

The FileUpload functionality can be used by any of the Web API parts which require an uploaded file; currently creating documents via the Documents Controller (as below) and checking in a new version of a document using the Version controller (POST 1.0/{InstanceId}/Documents/{DocumentId}/Versions).

Request header / body

When uploading files, set the "Content-Type" in the header to "multipart/form-data". Below shows a sample header, that was recorded by an API request made by Postman (described at the top):

POST https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/FileUpload?Ticket=d0652e1d87138f05bfb9440a0e63c9fb1a0405c3cccaebf42bd90953490d40e5d2d56ff00e2ffe67c64151c42f8473490934d4891391e20452531d18c3a68f8dc5a1f2be2b4494da09a3be2a56723a8793b3de94201b854b587e2a62f2de90a97e05e0955f59b2b1d50aad794b3087002d123268667629dbb7831b16c3da5e77e05b8b76d36b412275fd02787d555bf95d114dee11e84dfb9620db71f0b2377df8750ed62176fb3c705294e5d24c33f6f8af0e67be61b5d87c915a03881b4d75cb0fae2462a098718e0cd9eb62c552df84c946396a24db7049d0f09b9331c8e31c14499c2aba5207556d9813e1d6a0579bff013fb98a0fd46deadbd274f4267a6ebfac929b55b599cefc7703afe0d86ba2a0ca832f7443f597e3355c316e58ce864700058731124ce5eb5c24c54d8fae HTTP/1.1
Host: access-1wd1kz1
Connection: keep-alive
Content-Length: 6493
Cache-Control: no-cache
Origin: chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary9EtHUPbI1AzJQa1k
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
Postman-Token: 0a361b29-ac62-86b4-2644-8153101e916d
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6

------WebKitFormBoundary9EtHUPbI1AzJQa1k
(BINARY FILECONTENTS)
------WebKitFormBoundary9EtHUPbI1AzJQa1k--

Sample Request

POST the file to a URL structured as below. No parameters are required, the system will pick up the client key of the file that you've specified in the upload:

https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/FileUpload?Ticket=1c4b4450362d28c1d61cfaa60aee80bdbf8f1e3a219f667091baecde90c9ac2ff404956333122e336920b7a9c5ab9e93acfe708774243c8e34ab3989144f3d66b54f09e1efb9e22e8bf99861977ea2b9d2d50b29dfd54b0ebf7a614af89e1936dc9f52715196467e9ee7197ac80ce3df0a686bc369e9ee17b6b79702fa63d2e61cdc69650a0e0e1742d0774b7b6dcdfa71627d559330375a9e26ed103d1adc09f7c3e21de8d62cac101321c61f3c278823641fb764cd43cbebdca646f56c99c2be3ece305607e73d86f609fa43eb96e192930e0b5408dc6eda97806aa5b0ed4fa33c2dc318b38b6ab41b1f12c0d830d18d1a71259452ef1e0952b51ba1e4d090b51fb2a4d246b22973b15c03aaccbf18f037826efb46333abbd6fae263058d8eb0dd5884ffccca7872604d7d3b2c384d

Sample Response

{
  "Identifiers": [
    {
      "ClientFileKey": "25038.pdf",
      "ServerFileKey": "f4dbf47619424e6a83710994f6e57665"
    }
  ]
}

3 - Create the document


We can now create the Document in the users' Inbox, using the Id we determined in Part 1.

Sample Request

Note that in the previous stage, a "ServerFileKey" was returned. This key is now used to create a document in the users' inbox. In this case, only 2 Document Attributes have been supplied and no indexing information (Meta Data Properties) which is only required for filing a document into the system under a specific Document Type.

POST: https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Documents?Ticket=1c4b4450362d28c1d61cfaa60aee80bdbf8f1e3a219f667091baecde90c9ac2ff404956333122e336920b7a9c5ab9e93acfe708774243c8e34ab3989144f3d66b54f09e1efb9e22e8bf99861977ea2b9d2d50b29dfd54b0ebf7a614af89e1936dc9f52715196467e9ee7197ac80ce3df0a686bc369e9ee17b6b79702fa63d2e61cdc69650a0e0e1742d0774b7b6dcdfa71627d559330375a9e26ed103d1adc09f7c3e21de8d62cac101321c61f3c278823641fb764cd43cbebdca646f56c99c2be3ece305607e73d86f609fa43eb96e192930e0b5408dc6eda97806aa5b0ed4fa33c2dc318b38b6ab41b1f12c0d830d18d1a71259452ef1e0952b51ba1e4d090b51fb2a4d246b22973b15c03aaccbf18f037826efb46333abbd6fae263058d8eb0dd5884ffccca7872604d7d3b2c384d

BODY: {
  "ServerFileKey": "f4dbf47619424e6a83710994f6e57665",
  "Attributes": {
    "Title": "My new document title",
    "DestinationFolderId": 2
  }
}

Sample Response

A standard “HTTP 201 Created" response is generated, returning the new document ID. This ID can be used for further processing of the document.

{
  "Id": 2186,
  "Uri": "https://documentws.accessacloud.com/v3.10.00/ADMWebService/api/1.0/(Your Instance)/Documents/2186"
}


Security

Used for authenticating credentials or authenticating a ticket which represents credentials

List of APIs with their methods, paths, and descriptions
APIDescription
POST 1.0/Security/AuthenticateCredentials

Authenticates the passed in credentials, returning a list of related Instance objects if successful

GET 1.0/Security/AuthenticateAccessToken

Authenticates the given access token, returning a list of related instance objects if successful

GET 1.0/Security/AuthenticateClientCredentialsToken?aCloudOrganisationId={aCloudOrganisationId}

Authenticates the given client credentials token for an organisation, returning a list of related Instance objects if successful

GET 1.0/Security/AuthenticateTicket?Ticket={Ticket}

Authenticates the ticket passed in and returns a new one (with a new issue date) if authentication succeeds

FileUpload

Used as an intermediary stage for posting a new file for processing

List of APIs with their methods, paths, and descriptions
APIDescription
POST 1.0/{InstanceId}/FileUpload

Used as an intermediary stage for posting a new file for processing

Folders

Used for performing operations on a folder level within the ADM document structure, such as Creating and Editing folders or listing documents and document types.

List of APIs with their methods, paths, and descriptions
APIDescription
GET 1.0/{InstanceId}/Folders?IncludeDocumentCounts={IncludeDocumentCounts}

Gets a list of folders within the Filing Structure, starting at the Filing Root

GET 1.0/{InstanceId}/Folders/{FolderId}?IncludeDocumentCounts={IncludeDocumentCounts}

Returns a list of Folder objects for the FolderId passed in

GET 1.0/{InstanceId}/Folders/{FolderId}/PermissionEntries

Gets permission entries for a specific folder

PUT 1.0/{InstanceId}/Folders/{FolderId}/PermissionEntries

Updates permission entries for a specific folder

PUT 1.0/{InstanceId}/Folders/{FolderId}

Updates a specific Folder and its corresponding permission entries

POST 1.0/{InstanceId}/Folders

Creates a new Folder and its corresponding permission entries

DELETE 1.0/{InstanceId}/Folders/{FolderId}

Deletes a folder for a given folder id

GET 1.0/{InstanceId}/Folders/{FolderId}/DocumentTypeResults?IncludeSubFolders={IncludeSubFolders}

Returns a list of Document Type Results for a specific folder Retrieves a list of Document Types and corresponding document count for each type, specific to a folder

GET 1.0/{InstanceId}/Folders/{FolderId}/Documents?Skip={Skip}&Take={Take}&IncludeSubFolders={IncludeSubFolders}

Returns a list of Document objects for a specific folder

Documents

Used for performing searches, returning document types and related document type counts, file contents related to a document, creating a new document and modifying document attributes and meta data

List of APIs with their methods, paths, and descriptions
APIDescription
GET 1.0/{InstanceId}/Documents/DocumentTypeResults?SimpleSearch={SimpleSearch}

Retrieves a list of Document Types and corresponding document count for each type representing the search results

GET 1.0/{InstanceId}/Documents?query.FolderId={query.FolderId}&query.IncludeSubFolders={query.IncludeSubFolders}&query.ContentSearchPhrase={query.ContentSearchPhrase}&pagingOptions.Skip={pagingOptions.Skip}&pagingOptions.Take={pagingOptions.Take}&SimpleSearch={SimpleSearch}

Retrieves a list of Document objects representing the search results.

GET 1.0/{InstanceId}/Documents/{DocumentId}

Returns a single document

GET 1.0/{InstanceId}/Documents/{DocumentId}/Followers

List followers of a document

GET 1.0/{InstanceId}/Documents/{DocumentId}/Followers/{FollowerId}

Gets an individual follower of a document

POST 1.0/{InstanceId}/Documents

Creates a document within the desired folder in the Folder Structure

POST 1.0/{InstanceId}/Documents/{DocumentId}/Followers

Adds the current user as a follower of a document

PUT 1.0/{InstanceId}/Documents/{DocumentId}

Updates properties of the specified document

GET 1.0/{InstanceId}/Documents/{DocumentId}/Preview

No documentation available.

HEAD 1.0/{InstanceId}/Documents/{DocumentId}/Download

Downloads only the file details of a document. Only the header portion containing the file details is returned.

GET 1.0/{InstanceId}/Documents/{DocumentId}/Download

Downloads the file content of a document. Can be used for partial downloads by setting values in the header.

DELETE 1.0/{InstanceId}/Documents/{DocumentId}

Deletes a document from ADM (into the recycle bin)

DELETE 1.0/{InstanceId}/Documents/{DocumentId}/Followers/{FollowerId}

Removes the link between the current user and a document being followed AKA "UnFollow". And remove operations will be cross checked against the current user, the document and the follower ID.

DocumentTypes

Used for retrieving, creating and updating Document Types

List of APIs with their methods, paths, and descriptions
APIDescription
GET 1.0/{InstanceId}/DocumentTypes

Retrieves an unordered list of all document types

GET 1.0/{InstanceId}/DocumentTypes/{DocTypeId}

Retrieves an individual document type

POST 1.0/{InstanceId}/DocumentTypes

Creates a new Document Type

PUT 1.0/{InstanceId}/DocumentTypes/{DocumentTypeId}

Updates a specific Document Type

Tags

Used to retrieve document tags

List of APIs with their methods, paths, and descriptions
APIDescription
GET 1.0/{InstanceId}/Tags

Retrieves a list of all Tags on the system

GET 1.0/{InstanceId}/Tags/{TagId}

Retrieves an individual Tag

POST 1.0/{InstanceId}/Tags

Creates a new tag

PUT 1.0/{InstanceId}/Tags/{TagId}

Updates a specific Tag

TagAssociation

Used to retrieve lists of items associated to a particular document type and tag combination.

List of APIs with their methods, paths, and descriptions
APIDescription
GET 1.0/{InstanceId}/DocumentTypes/{DocTypeId}/TagAssociations

Retrieves a list of Tags associated with the Document Type passed in

GET 1.0/{InstanceId}/DocumentTypes/{DocTypeId}/TagAssociations/{AssociationId}/ListItems

Retrieves a list of Tag values associated with the Document Type passed in

PUT 1.0/{InstanceId}/DocumentTypes/{DocTypeId}/TagAssociations

Updates a list of Tags associated with the Document Type passed in

Users

Used for retrieving Users

List of APIs with their methods, paths, and descriptions
APIDescription
GET 1.0/{InstanceId}/Users

Retrieves an unordered list of all users

GET 1.0/{InstanceId}/Users/{UserId}

Retrieves an individual user record

Groups

Used for performing operations on a groups within the ADM document structure, such as listing group details.

List of APIs with their methods, paths, and descriptions
APIDescription
GET 1.0/{InstanceId}/Groups

Gets a list of groups within ADM

GET 1.0/{InstanceId}/Groups/{GroupId}

Returns a particular group for the given group id passed in

GET 1.0/{InstanceId}/Groups/{GroupId}/Members

Returns a list of members for a given group

POST 1.0/{InstanceId}/Groups

Creates a new group

PUT 1.0/{InstanceId}/Groups/{GroupId}

Updates a specific group

PUT 1.0/{InstanceId}/Groups/{GroupId}/Members

Updates the members assigned to a specific group

DELETE 1.0/{InstanceId}/Groups/{GroupId}

Deletes a group for the particular group id paassed in

AuditEvents

Used to retrieve audit events related to documents

List of APIs with their methods, paths, and descriptions
APIDescription
GET 1.0/{InstanceId}/Documents/{DocumentId}/AuditEvents?Skip={Skip}&Take={Take}

Retrieves a list of Audit Events for the specified document ID

GET 1.0/{InstanceId}/Documents/{DocumentId}/AuditEvents/{EventId}

Retrieves an individual Audit Event for the specified Document ID and Audit Event ID

Versions

Used for retrieving historical versions of documents, downloading file contents of those document versions and performing version related functions based around a specific document such as Check In, Check Out and Undo Check Out

List of APIs with their methods, paths, and descriptions
APIDescription
GET 1.0/{InstanceId}/Documents/{DocumentId}/Versions

Retrieves all versions of a specific document

GET 1.0/{InstanceId}/Documents/{DocumentId}/Versions/{VersionId}

Retrieves a specific version of a specific document

GET 1.0/{InstanceId}/Documents/{DocumentId}/Versions/{VersionId}/Download

Gets the file contents of a particular document version

PUT 1.0/{InstanceId}/Documents/{DocumentId}/Versions/CheckOut

Checks out a document for editing, for creating a new version

PUT 1.0/{InstanceId}/Documents/{DocumentId}/Versions/UndoCheckOut

Cancels a previous document check out operation

POST 1.0/{InstanceId}/Documents/{DocumentId}/Versions

Checks in an edited document, creating a new document version

SharedSecrets

Used to get or re generate shared secret for instance

List of APIs with their methods, paths, and descriptions
APIDescription
GET 1.0/{InstanceId}/SharedSecrets

Retrieves the shared secret for a given instanceId

PUT 1.0/{InstanceId}/SharedSecrets/Regenerate

Re generates the shared secret

Notes

Used to add / edit and update document notes relating to a specific document

List of APIs with their methods, paths, and descriptions
APIDescription
GET 1.0/{InstanceId}/Documents/{DocumentId}/Notes

Retrieves all notes for a specific Document

GET 1.0/{InstanceId}/Documents/{DocumentId}/Notes/{NoteId}

Retrieves an individual document note

POST 1.0/{InstanceId}/Documents/{DocumentId}/Notes

Creates a new document note

PUT 1.0/{InstanceId}/Documents/{DocumentId}/Notes/{NoteId}

Updates a specific Document Note. The information for creating the new note is sent via the body of the request

DELETE 1.0/{InstanceId}/Documents/{DocumentId}/Notes/{NoteId}

Deletes a specific note

Used to perform an integration link search or for retrieving integration links

List of APIs with their methods, paths, and descriptions
APIDescription
GET 1.0/{InstanceId}/IntegrationLinks

Retrieves a list of all Integration Links

GET 1.0/{InstanceId}/IntegrationLinks/{IntegrationLinkId}

Retrieves the given Integration Link

GET 1.0/{InstanceId}/IntegrationLinks/{IntegrationLinkId}/DetailLinks

Retrieves a list of IntegrationDetailLinks for the given Integration Link

GET 1.0/{InstanceId}/IntegrationLinks/{IntegrationLinkId}/DetailLinks/{DetailLinkId}

Retrieves an DetailLink for the given Integration Link and DetailLinkId

GET 1.0/{InstanceId}/IntegrationLinks/{IntegrationLinkId}/DetailLinks/{DetailLinkId}/Documents?query.SearchValue={query.SearchValue}&query.FolderId={query.FolderId}&query.IncludeSubFolders={query.IncludeSubFolders}&query.ContentSearchPhrase={query.ContentSearchPhrase}&pagingOptions.Skip={pagingOptions.Skip}&pagingOptions.Take={pagingOptions.Take}

Retrieves a list of Document objects representing the integration link search results.

GET 1.0/{InstanceId}/IntegrationLinks/FilingDetails?dbName={dbName}&linkType={linkType}&linkProduct={linkProduct}

No documentation available.

POST 1.0/{InstanceId}/IntegrationLinks

Imports an Integration Link from an XML file - creates databases, products, document types, document tags, integration links and integration detail links as required

PUT 1.0/{InstanceId}/IntegrationLinks/{IntegrationLinkId}

Updates the given Integration Link

PUT 1.0/{InstanceId}/IntegrationLinks/{IntegrationLinkId}/DetailLinks/{DetailLinkId}

Updates an DetailLink for the given Integration Link and DetailLinkId

DELETE 1.0/{InstanceId}/IntegrationLinks/{IntegrationLinkId}

Deletes an integration link and all detail links for the particular integration link id paassed in

GET 1.0/{InstanceId}/IntegrationLinks/{IntegrationLinkId}/DetailLinks/{DetailLinkId}/DocumentTypeResults?SearchValue={SearchValue}&FolderId={FolderId}&IncludeSubFolders={IncludeSubFolders}&ContentSearchPhrase={ContentSearchPhrase}

Retrieves a list of Document Types and corresponding document count for each type representing the integration link search results.

IntegrationProducts

Used to retrieve integration link products

List of APIs with their methods, paths, and descriptions
APIDescription
GET 1.0/{InstanceId}/IntegrationLinkProducts

Retrieves a list of all Integration Link Products

GET 1.0/{InstanceId}/IntegrationLinkProducts/{IntegrationLinkProductId}

Retrieves a specific Integration Link Products

Used to retrieve data links related to clients' database

List of APIs with their methods, paths, and descriptions
APIDescription
GET 1.0/{InstanceId}/DataLinks

Retrieves a list of all Data Links

GET 1.0/{InstanceId}/DataLinks/{DataLinkId}

Retrieves an individual Data Link

DocumentCount

List of APIs with their methods, paths, and descriptions
APIDescription
POST 1.0/{InstanceId}/DocumentCount?dbName={dbName}&linkType={linkType}&linkProduct={linkProduct}&primaryKey={primaryKey}

No documentation available.

DocumentMetadata

List of APIs with their methods, paths, and descriptions
APIDescription
GET 1.0/{InstanceId}/DocumentMetadata?dbName={dbName}&linkType={linkType}&linkProduct={linkProduct}

No documentation available.