SlideShare une entreprise Scribd logo
1  sur  76
Télécharger pour lire hors ligne
Thru REST API 1.0 / Reference 1.7 www.thruinc.com | © 2014 Thru, Inc. All rights reserved 
Thru REST API Version 1.0 
Programming Reference Version 1.7 
PROGRAMMING REFERENCE
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 2 
Table of Contents 
Table of Contents .......................................................................................................................................................... 2 
1 General .................................................................................................................................................................. 5 
2 Overview ................................................................................................................................................................ 6 
2.1 Web Service REST Design ............................................................................................................................ 6 
2.2 Versioning ...................................................................................................................................................... 7 
3 Thru REST Services API Security ....................................................................................................................... 8 
3.1 Access Signature (HTTP Header) ................................................................................................................. 8 
4 Exception Handling .............................................................................................................................................. 9 
4.1 Error Response .............................................................................................................................................. 9 
4.1.1 Error Data Transfer Object ........................................................................................................................ 9 
4.2 Error Codes .................................................................................................................................................... 9 
5 Web Service Data Specifications ...................................................................................................................... 10 
5.1 API Data Types ............................................................................................................................................ 10 
5.2 API Complex Data Constructions ................................................................................................................ 10 
5.3 Session Resources ...................................................................................................................................... 10 
5.3.1 ThruSessionRequest Structure ............................................................................................................... 10 
5.3.2 ThruPublicSession Structure ................................................................................................................... 11 
5.4 File System Resources ................................................................................................................................ 12 
5.4.1 ThruPublicFolderInfo Structure ................................................................................................................ 12 
5.4.2 ThruPublicFileInfo Structure .................................................................................................................... 14 
5.4.3 ThruPublicContentResult Structure ......................................................................................................... 16 
5.5 Message Resources .................................................................................................................................... 17 
5.5.1 ThruPublicMessageInfo Structure ........................................................................................................... 17 
5.5.2 ThruPublicMessagesListResult Structure ............................................................................................... 20 
5.5.3 ThruPublicMessageRecipientInfo ............................................................................................................ 21 
5.6 Search Resources ....................................................................................................................................... 22 
5.6.1 ThruPublicSearchCriteria Structure ......................................................................................................... 22 
5.7 Server Resources ........................................................................................................................................ 24 
5.7.1 ThruPublicServerInfo Structure ............................................................................................................... 24 
5.7.2 ThruMessageSettings Structure .............................................................................................................. 24 
5.7.3 ThruPasswordSettings Structure ............................................................................................................. 26 
5.7.4 ThruUploadSettings Structure ................................................................................................................. 27 
5.7.5 ThruMobileSettings .................................................................................................................................. 29 
5.8 System Log Resources ................................................................................................................................ 29 
5.8.1 ThruPublicSystemLogOperation.............................................................................................................. 29 
5.9 Ticket Resource ........................................................................................................................................... 30 
5.9.1 ThruTicketInfo Structure .......................................................................................................................... 30 
5.10 User Resources ........................................................................................................................................... 31 
5.10.1 ThruPublicUserInfo Structure .............................................................................................................. 31 
5.10.2 ThruPasswordInfo Structure ............................................................................................................... 33
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 3 
5.11 Service Resources ....................................................................................................................................... 33 
5.11.1 ThruServiceVersion Structure ............................................................................................................. 33 
5.11.2 ThruServiceVersionsResult Structure ................................................................................................. 34 
5.12 Server Version Resources ........................................................................................................................... 35 
5.12.1 ThruServerVersion Structure .............................................................................................................. 35 
6 Web Services ...................................................................................................................................................... 37 
6.1 Authentication Service ................................................................................................................................. 37 
6.1.1 POST New Session Object ..................................................................................................................... 37 
6.1.2 DELETE Existing Session Object ............................................................................................................ 37 
6.1.3 CHECK Existing Session Object ............................................................................................................. 37 
6.2 File System Service ..................................................................................................................................... 38 
6.2.1 POST New Folder Information ................................................................................................................ 38 
6.2.2 GET Existing Folder Information ............................................................................................................. 38 
6.2.3 PUT Updated Folder Information ............................................................................................................. 39 
6.2.4 DELETE Existing Folder .......................................................................................................................... 39 
6.2.5 GET Home Folder Information ................................................................................................................ 40 
6.2.6 GET List of Files and Folders Inside a Home Folder .............................................................................. 40 
6.2.7 GET List of Files Inside a Home Folder .................................................................................................. 41 
6.2.8 GET List of Folders Inside a Home Folder ............................................................................................. 41 
6.2.9 GET Root Folder Information .................................................................................................................. 41 
6.2.10 GET List of Files and Folders Inside a Root Folder ............................................................................ 42 
6.2.11 GET List of Files Inside a Root Folder ................................................................................................ 42 
6.2.12 GET List of Folders Inside a Root Folder ............................................................................................ 42 
6.2.13 GET List of Files and Folders Inside a Folder ..................................................................................... 43 
6.2.14 GET List of Files Inside a Folder ......................................................................................................... 43 
6.2.15 GET List of Folders Inside a Folder .................................................................................................... 44 
6.2.16 GET Existing File Information ............................................................................................................. 44 
6.2.17 PUT Updated File Information ............................................................................................................. 44 
6.2.18 DELETE Existing File .......................................................................................................................... 45 
6.3 Message Service ......................................................................................................................................... 46 
6.3.1 POST New Thru Message ....................................................................................................................... 46 
6.3.2 GET Existing Thru Message .................................................................................................................... 47 
6.3.3 DELETE Existing Thru Message ............................................................................................................. 47 
6.3.4 PUT Updated Thru Message ................................................................................................................... 48 
6.3.5 PUT Discard Thru Message .................................................................................................................... 49 
6.3.6 PUT Complete Thru Message ................................................................................................................. 49 
6.3.7 GET SentThru List ................................................................................................................................... 49 
6.3.8 POST Project Message Storage ............................................................................................................. 50 
6.4 Search Service ............................................................................................................................................. 50 
6.4.1 POST Find All Thru Files and Folders by Search Criteria ....................................................................... 50 
6.4.2 POST Find All Thru Folders by Search Criteria ...................................................................................... 51 
6.4.3 POST Find All Thru Files by Search Criteria ........................................................................................... 51 
6.5 Server Service ............................................................................................................................................. 52 
6.5.1 GET Server Information ........................................................................................................................... 52 
6.5.2 GET Message Settings ............................................................................................................................ 52 
6.5.3 GET Password Settings .......................................................................................................................... 52 
6.5.4 GET Upload Settings ............................................................................................................................... 53 
6.5.5 GET Mobile settings ................................................................................................................................ 53 
6.6 Favorites Service ......................................................................................................................................... 53 
6.6.1 PUT Folder to Favorites .......................................................................................................................... 53 
6.6.2 DELETE Folder from Favorites ............................................................................................................... 54 
6.6.3 PUT File to Favorites ............................................................................................................................... 54 
6.6.4 DELETE File from Favorites .................................................................................................................... 54
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 4 
6.6.5 GET All Content in Favorites ................................................................................................................... 56 
6.6.6 GET Files in Favorites ............................................................................................................................. 56 
6.6.7 GET Folders in Favorites ......................................................................................................................... 56 
6.7 Service Versions Service ............................................................................................................................. 57 
6.7.1 GET Information about Service Versions ................................................................................................ 57 
6.8 System Log Service ..................................................................................................................................... 57 
6.8.1 POST System Log Operation .................................................................................................................. 57 
6.9 Ticket Service............................................................................................................................................... 58 
6.9.1 POST New Ticket .................................................................................................................................... 58 
6.10 User Service................................................................................................................................................. 58 
6.10.1 GET User Information ......................................................................................................................... 58 
6.10.2 PUT New Password for the User ........................................................................................................ 58 
6.11 Server Version Service ................................................................................................................................ 59 
6.11.1 GET Information About Server Version............................................................................................... 59 
7 Programmatic File and Folder Transfers. ........................................................................................................ 60 
7.1 Downloading. ............................................................................................................................................... 60 
7.2 Uploading Files and Folders via basic protocol (deprecated) ...................................................................... 61 
7.3 Uploading of files via Extended File Upload/Download Protocol ................................................................. 62 
8 File Transfer User Interface Tools .................................................................................................................... 63 
8.1 Upload Java/HTML5/HTML4 Tool and API ................................................................................................. 63 
8.1.1 Overview .................................................................................................................................................. 63 
8.1.2 Security Token ......................................................................................................................................... 63 
8.1.3 Upload Tool URL Parameters, option with no Security Token. ............................................................... 64 
8.1.4 Upload Tool URL Parameters, option with Security Token. .................................................................... 65 
8.1.5 Server Error Codes .................................................................................................................................. 65 
8.1.6 JavaScript Samples ................................................................................................................................. 66 
8.1.7 URL Samples ........................................................................................................................................... 67 
8.2 Java/HTML Download Tool and API ............................................................................................................ 68 
8.2.1 Overview .................................................................................................................................................. 68 
8.2.2 Security Token ......................................................................................................................................... 68 
8.2.3 Download Tool URL Parameters, option with no Security Token ........................................................... 69 
8.2.4 Download Tool URL Parameters, option with Security Token ................................................................ 69 
8.2.5 Server Error Codes .................................................................................................................................. 71 
8.2.6 JavaScript Samples ................................................................................................................................. 71 
8.2.7 URL Sample ............................................................................................................................................ 72 
Appendix A – Error Codes returned by RESTAPI .................................................................................................... 73 
About Trademarks and Abbreviations ...................................................................................................................... 76
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 5 
1 General 
THE PURPOSE OF THIS DOCUMENT IS TO DESCRIBE THRU WEB SERVICES API, ITS PUBLIC ENDPOINTS, DATA SPECIFICATIONS AND ARCHITECTURE. THE DOCUMENT ALSO REVIEWS THE SECURITY, AUTHENTICATION AND SIDE BY SIDE VERSIONING. WS API IMPLEMENTATION UTILIZES ASP.NET MVC REST SDK WHICH PROVIDES AUTOMATIC SERIALIZATION TO AND FROM THE SERVICE DATA OBJECTS. 
THIS REFERENCE GUIDE DESCRIBES AND SUMMARIZES THE THRU REST API. THIS DOCUMENT HAS BEEN PREPARED SOLELY FOR INFORMATIONAL PURPOSES AND IS BEING FURNISHED FOR USE BY CUSTOMERS. DISTRIBUTION OF THIS DOCUMENT IS LIMITED TO CUSTOMERS. 
THE REFERENCE GUIDE AND ALL INFORMATION CONTAINED HEREIN ARE OF A CONFIDENTIAL NATURE. EACH RECIPIENT WILL TREAT IT IN A CONFIDENTIAL MANNER. SUCH RECIPIENT WILL, NOT DIRECTLY OR INDIRECTLY, DISCLOSE OR PERMIT ITS AGENTS, REPRESENTATIVES, EMPLOYEES, OFFICERS, DIRECTORS OR AFFILIATES TO DISCLOSE ANY SUCH INFORMATION AND SUCH RECIPIENT WILL USE THE DOCUMENT AND ANY RELATED INFORMATION ONLY TO ACCESS THE THRU SERVICE. IF EITHER THE RECIPIENT OR THE COMPANY ELECTS NOT TO PURSUE OR CONTINUE WITH THE THRU SERVICE, THE RECIPIENT MUST RETURN THIS DOCUMENT AND ANY OTHER MATERIAL RELATING TO THE THRU. SERVICE AND THRU, LLC., WITHOUT RETAINING ANY COPIES THEREOF. 
THE INFORMATION CONTAINED HEREIN IS PROVIDED ON A CONFIDENTIAL BASIS AND MAY NOT BE REPRODUCED IN WHOLE OR IN PART. 
IF YOU REQUIRE ANY MORE INFORMATION REGARDING THE THRU SERVICE PLEASE CONTACT: 
THRU. HELP CENTER HELPCENTER@THRUINC.COM 800.871. 9316
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 6 
2 Overview 
2.1 Web Service REST Design 
The Thru REST Services API adheres to the following points of the REST paradigm: 
• Interaction between client and server is semi-stateless (no connection is established, but session is used to authorize user) 
• The API leverages existing features of the HTTP protocol (URL, headers, request body), not requiring any special messaging protocol/library (SOAP or RPC) 
• Platform-independence (client can be running on any operating system) 
• Language-independence (client can be developed in any language of preference) 
• Request body should be present in application/x-www-form-urlencoded format serialized as a standard query string: a=1&b=2&c=3&d=4&e=5 The standard HTTP header Accept is used to define a data format that will be provided for client in Response. The currently supported formats are: 
o Accept: application/xml 
o Accept: application/json 
• Response data are not bound to a specific format (e.g.: SOAP receives and returns data always in XML). Though the standard data exchange format used in REST architectures (as well as in the Thru API) is XML, the Thru API also supports JSON and, in fact, can be expanded to support other formats in the future. The exchanged data format is determined by the standard HTTP headers Content-Type. The currently supported formats: 
o Content-Type:application/xml 
o Content-Type:application/json 
• API endpoints are designed around resources (e.g.: files, messages) that are identified by uniform URIs. For instance, all API endpoints built for dealing with file system objects start with the same URI https://[ThruWebServer]/REST/[version]/FileSystem. The type of action to be performed on the resource is designated by passing standard HTTP verbs: 
o GET (Retrieve resource/resources) 
o POST (Create a new resource) 
o PUT (Update an existing resource) 
o DELETE (Delete an existing resource)
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 7 
2.2 Versioning 
To support changes in the API signature, without breaking existing clients, the Thru REST Services API supports side-by-side versioning. Different versions of the same endpoints can be made available using different URIs, based on the version number. 
For instance, if the Thru REST Service API has two versions (1.0 and 1.1), we have two sets of the File URIs: 
Version 1.0: http://[ThruWebServer]/REST/1.0/FileSystem/File 
Version 1.1: http://[thruWebServer]/REST/1.1/FileSystem/File
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 8 
3 Thru REST Services API Security 
3.1 Access Signature (HTTP Header) 
Access to the Thru REST API is secured through the usage of session identifier provided as part of the request header. This session identifier should be received from the Authenticator service (see below). All interactions with Thru REST Services API should take place over HTTPS. However some actions that do not require security mechanisms should be available over HTTP. 
Also session identifier allows the API to identify the caller and enforce the necessary access rules to the invoked endpoint. 
Note: Not all endpoints require authenticated access. If an endpoint does require authenticated access, the client needs to pass session ID in the Authorization request header: 
• Authorization: SessionID
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 9 
4 Exception Handling 
In case of error, besides returning the standard HTTP Server error code (500), the Thru REST Services API endpoints will return more detailed information about the error in a structured format as part of response body. 
4.1 Error Response 
4.1.1 Error Data Transfer Object Item Name Data Type Sample Value Comments 
Message 
String 
“Invalid File ID: 12345” 
Describes the type of error, indicating (when possible) which input value(s) could have caused the error 
ErrorCode 
Integer 
7001 
A numeric code that identifies the type of error Sample response(in XML) <ErrorInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Message>Session no longer exists.</Message> <ErrorCode>101</ErrorCode> </ErrorInfo> 
4.2 Error Codes 
Each type of error generated by the Thru REST Services API has its own numeric code, which is returned in the ErrorCode field of the ErrorInfo object. The codes can be used to determine client course of action. For the actual error codes, check Appendix A.
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 10 
5 Web Service Data Specifications 
5.1 API Data Types 
The following primitive data types are used by the Thru REST Services API: 
 String: Sequence of characters in UTF-8 encoding. Empty string is used to represent a non-initialized string value 
 Integer: 32-bit integer number. Empty value indicates NULL-value 
 Long: 64-bit integer number. Empty value indicates NULL-value 
 Boolean: Boolean value. Possible values: True, False. Empty value indicates NULL-value 
 DateTime: Represents an instant in time, expressed as a date and time of day. In Thru REST services API, Empty value indicates NULL-value. DateTime is represented as a JSON string in following format /Date(ticks)/, where ticks represents the number of milliseconds since January 1, 1970 in Universal Coordinated Time (UTC). Example: “/Date(1337174868623)/”. 
5.2 API Complex Data Constructions 
The following complex data constructions are used by the Thru REST Services API: 
 Collection<T>: A collection of objects of the same type. The following XML formatting is used to pass any collection between client and server: 
5.3 Session Resources 
5.3.1 ThruSessionRequest Structure 
ThruSessionRequest structure contains information required for the Thru user authentication. Item Name Data Type Sample Value Comments 
UserName 
String 
Test 
Username of the user in the system 
Password 
String 
Password 
Password of the user 
ApplicationId 
String 
12 
Application ID through which is sign-in 
ClientVersion 
String 
1 
Version of the client application Sample XML 
<FileNames> 
<String>Name #1</String> 
<String>Another Name</String> 
</FileNames> Corresponding Object 
Collection<string> FileNames;
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 11 
Sample Request 
UserName=Test&Password=Password&ClientVersion=1&ApplicationId=12 Sample Response Data Transfer Object 
public class ThruSessionRequest 
{ 
public string UserName 
public string Password 
public string ApplicationId 
public string ClientVersion 
} 
5.3.2 ThruPublicSession Structure 
ThruPublicSession structure contains authorization information about user. Item Name Data Type Sample Value Comments 
SessionID 
String 
TOjoy3c1LyReUsXqXX/7u3+0qv 
FYXGArgsZ1k0OEGhIfwB2cd365+SCM8Rs5 
JOLPMD/IJJSd2Jy7IXLl5t685kgRJo0Tr 
bup/VDN+25Lkenh387d4pXJzObepqO 
qusnnsA4de+5r4PHfdN0 
9niJtsoSOjWZ6XlEN 
Unique identification value required for user authorization 
UserID 
Integer 
315KQM487N2EV 
Unique identification number of the user associated with SessionID value Sample 
<?xml version="1.0" encoding="utf-8"?> 
<ThruPublicSession xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<SessionId>PKJEkiY2UHPRyWrY3s9pmpk34iTkNSdFoNBD04jUojajM9qJXUwQULllv1R4+Olqhe5fYRo8qHk+qDzaMOqkv4YAPX4jI6i5E4Il1+qbwl2QJ/OXfEr4MczMSXMFJIgQu5Ed5eani 
kXAvIo9mzipP3hPh/LJSwWs 
</SessionId> 
<UserId>1Q1OBQWVHTROE</UserId> 
</ThruPublicSession> 
Data Transfer Object
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 12 
public class ThruPublicSession 
{ 
public string SessionID; 
public int UserID; 
} 
5.4 File System Resources 
5.4.1 ThruPublicFolderInfo Structure 
ThruPublicFolderInfo structure contains information about folder in Thru file system. Item Name Data Type Sample Value Comments 
FolderID 
Integer 
0QN8H2VKTGIWE 
Unique identification number for the folder in Thru file system 
ParentFolderID 
Integer 
11ETULS0966VI 
Unique identification number of the parent folder for the file in Thru file system. 
Root folder contains NULL as a value of ParentFolderID field 
Name 
String 
Admin 
Name of the folder 
Path 
String 
FOLDERS/HOME/Admin 
Path to the folder in folder tree 
Description 
String 
Description of the folder 
Tags 
Collection<String> 
Collection of keywords associated with the current folder 
Size 
Long 
2450294218 
Size of the folder 
EffectivePermission 
Integer 
254 
Permissions that describe the rights of the current authenticated user over the folder. Each right is linked with the corresponding bit of the EffectivePermission field value in a binary code: 
None = 0x00 
Show = 0x01 
Read = 0x02 
Create = 0x04 
Download = 0x08 
Distribute = 0x010 
Manage = 0x020 
Modify = 0x040 
Delete = 0x080 
For example, full control over a folder is equal to the EffectivePermission value of 0x00FF
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 13 
DateCreated 
DateTime 
/Date(1337174868623)/ 
Date and time when file has been created in Thru file system (UTC) 
DateModified 
DateTime 
/Date(1337174868623)/ 
Date and time when file last has been updated (UTC) 
CreatedByUserID 
Integer 
1Q1OBQWVHTROE 
Unique identification number of the user that has added file to Thru file system 
ModifiedByUserID 
Integer 
1Q1OBQWVHTROE 
Unique identification number of the user that last accessed the file 
InFavorite 
Boolean 
false 
Indicates is folder marked as favorite 
FolderType 
Integer 
0 
0 – a regular folder 
1 – root folder 
2 – home folder 
3 – a user’s “My Documents” folder 
4 – a user’s drop box folder 
5 – root folder for common folders/files 
6 – root folder for home folders Sample XML 
<ThruPublicFolderInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<FolderId>0QN8H2VKTGIWE</FolderId> 
<ParentFolderId>11ETULS0966VI</ParentFolderId> 
<Name>Admin</Name> 
<Path>FOLDERS/HOME/Admin</Path> 
<Tags></Tags> 
<Size>2450294218</Size> 
<EffectivePermission>254</EffectivePermission> 
<DateCreated>/Date(1337174868623)/</DateCreated> 
<DateModified>/Date(1337174868623)/</DateModified> 
<CreatedByUserId>1Q1OBQWVHTROE</CreatedByUserId> 
<ModifiedByUserId>1Q1OBQWVHTROE</ModifiedByUserId> 
<InFavorite>false</InFavorite> 
<FolderType>0</FolderType> 
</ThruPublicFolderInfo> Data Transfer Object 
public class ThruPublicFolderInfo 
{ 
public string FolderId 
public string ParentFolderId
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 14 
public string Name 
public string Description 
public string Path 
public string[] Tags 
public long? Size 
public int? EffectivePermission 
public ThruServerDateTime DateCreated 
public ThruServerDateTime DateModified 
public string CreatedByUserId 
public string ModifiedByUserId 
public bool? InFavorite; 
public int? FolderType; 
} 
5.4.2 ThruPublicFileInfo Structure 
ThruPublicFileInfo structure contains information about file in Thru file system. Item Name Data Type Sample Value Comments 
FileID 
Integer 
2OMFYXLA6BP9D 
Unique identification number for the file in Thru file system 
ParentFolderID 
Integer 
1UTXM50KW0ISP 
Unique identification number of the parent folder for the file in Thru file system 
Name 
String 
2.html 
Name of the file 
Description 
String 
Description of the file 
Path 
FOLDERS/HOME/Admin/ 
My Documents/2.html 
Path to the file in folder tree 
Tags 
Collection<String> 
Collection of keywords associated with the current folder 
Size 
Long 
198 
Size of the file 
EffectivePermission 
Integer 
254 
Permissions that describe the rights of the current authenticated user over the file. Each right is linked with the corresponding bit of the EffectivePermission field value in a binary code: 
None = 0x00 
Show = 0x01 
Read = 0x02 
Create = 0x04 
Download = 0x08 
Distribute = 0x010
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 15 
Manage = 0x020 
Modify = 0x040 
Delete = 0x080 
DateCreated 
DateTime 
/Date(1346072694480)/ 
Date and time when file has been created in Thru file system (UTC) 
DateModified 
DateTime 
/Date(1346072694480)/ 
Date and time when file last has been updated (UTC) 
CreatedByUserID 
Integer 
1Q1OBQWVHTROE 
Unique identification number of the user that has added file to Thru file system 
ModifiedByUserID 
Integer 
1Q1OBQWVHTROE 
Unique identification number of the user that last accessed the file 
IsQuarantined 
Boolean 
false 
Indicates is file has been quarantined 
InFavorite 
Boolean 
false 
Indicates is file marked as favorite Sample XML 
<?xml version="1.0" encoding="utf-8" ?> 
<ThruPublicFileInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<FileId>2OMFYXLA6BP9D</FileId> 
<ParentFolderId>1UTXM50KW0ISP</ParentFolderId> 
<Name>2.html</Name> 
<Path>FOLDERS/HOME/Admin/My Documents/2.html</Path> 
<Tags></Tags> 
<Size>198</Size> 
<EffectivePermission>254</EffectivePermission> 
<DateCreated>/Date(1346072694480)/</DateCreated> 
<DateModified>/Date(1346072694480)/</DateModified> 
<CreatedByUserId>1Q1OBQWVHTROE</CreatedByUserId> 
<ModifiedByUserId>1Q1OBQWVHTROE</ModifiedByUserId> 
<IsQuarantined>false</IsQuarantined> 
<InFavorite>false</InFavorite> 
</ThruPublicFileInfo> Data Transfer Object 
public class ThruPublicFileInfo 
{ 
public string FileId; 
public string ParentFolderId; 
public string Name; 
public string Description; 
public string Path;
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 16 
public string[] Tags; 
public long? Size; 
public int? EffectivePermission; 
public ThruServerDateTime DateCreated; 
public ThruServerDateTime DateModified; 
public string CreatedByUserId; 
public string ModifiedByUserId; 
public bool? IsQuarantined; 
public bool? InFavorite; 
} 
5.4.3 ThruPublicContentResult Structure 
ThruPublicContentResult structure contains information about the content of the Thru folder. Item Name Data Type Sample Value Comments 
Files 
Collection< 
ThruPublicFileInfo > 
Collection of file information structures 
Folders 
Collection<ThruPublicFolderInfo > 
Collection of folder information structures Sample XML 
<?xml version="1.0" encoding="utf-8" ?> <ThruPublicContentResult xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Folders> <ThruPublicFolderInfo> <FolderId>16LTFSCFLMF01</FolderId> <ParentFolderId>1UTXM50KW0ISP</ParentFolderId> <Name>test</Name> <Path>FOLDERS/HOME/Admin/My Documents/test</Path> <Tags></Tags> <Size>470968940</Size> <ChildFoldersCount>1</ChildFoldersCount> <ChildFilesCount>4</ChildFilesCount> <EffectivePermission>254</EffectivePermission> <DateCreated>/Date(1348146557730)/</DateCreated> <DateModified>/Date(1348146557730)/</DateModified> <CreatedByUserId>1Q1OBQWVHTROE</CreatedByUserId> <ModifiedByUserId>1Q1OBQWVHTROE</ModifiedByUserId> <InFavorite>false</InFavorite> <FolderType>0</FolderType> </ThruPublicFolderInfo> </Folders>
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 17 
<Files> <ThruPublicFileInfo> <FileId>2OMFYXLA6BP9D</FileId> <ParentFolderId>1UTXM50KW0ISP</ParentFolderId> <Name>2.html</Name> <Path>FOLDERS/HOME/Admin/My Documents/2.html</Path> <Tags></Tags> <Size>198</Size> <EffectivePermission>254</EffectivePermission> <DateCreated>/Date(1346072694480)/</DateCreated> <DateModified>/Date(1346072694480)/</DateModified> <CreatedByUserId>1Q1OBQWVHTROE</CreatedByUserId> <ModifiedByUserId>1Q1OBQWVHTROE</ModifiedByUserId> <IsQuarantined>false</IsQuarantined> <InFavorite>false</InFavorite> </ThruPublicFileInfo> </Files> </ThruPublicContentResult> Data Transfer Object 
public class ThruPublicContentResult 
{ 
public ThruPublicFolderInfo[] Folders; 
public ThruPublicFileInfo[] Files; 
} 
5.5 Message Resources 
5.5.1 ThruPublicMessageInfo Structure 
ThruPublicMessageInfo structure contains information about Thru message. Item Name Data Type Sample Value Comments 
MessageID 
Integer 
1HPHF1D8FF8S0 
Unique identification number of the message 
UserID 
Integer 
1Q1OBQWVHTROE 
Unique identification number of the user that is creator of message 
Subject 
String 
test 
Subject of the message 
DateCreated 
DateTime 
/Date(1337611985780)/ 
Date and time when the message has been created (UTC) 
DateSent 
DateTime 
/Date(1337611985780)/ 
Date and time when the message has been sent
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 18 
(UTC) 
DateExpired 
DateTime 
/Date(1357070340000)/ 
Date and time after which message is concerned as expired (UTC) 
CollectedFlag 
Boolean 
True 
Indicates does message were read at least by one of recipients 
PublicMessage 
String 
Public text 
Text of the private part of the message 
PrivateMessage 
String 
Private text 
Text of the public part of the message 
TrackingNo 
String 
T478-026-95732-36971 
Number over the message is registered in Thru 
RequestLogin 
Boolean 
false 
Flag that indicate is the message request login for access by recipient 
SendByClient 
Boolean 
false 
Flag that indicate is the message was sent through the Thru Site or application. 
NotifyFlag 
Boolean 
false 
Flag that indicate is the notifications must be sent. 
Priority 
Integer 
3 
1 - High 
2 - Low 
3 - Normal 
IsExpired 
Boolean 
False 
Flag indicate is the message is expired 
ExpireNow 
Boolean 
False 
MsgHtmlTemplate 
String 
Html template over a message will be created 
MsgTextTemplate 
String 
Text template over a message will be created 
ToRecipients 
Collection 
<ThruPublicMessageRecipientInfo> 
List of recipient email addresses 
CcRecipients 
Collection 
<ThruPublicMessageRecipientInfo> 
List of Cc recipients 
BccRecipients 
Collection 
<ThruPublicMessageRecipientInfo> 
List of Bcc recipients 
FoldersAttached 
Collection<ThruPublicFolderInfo > 
Collection of Folder identifiers
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 19 
FilesAttached 
Collection<ThruPublicFolderInfo > 
Collection of File identifiers Sample XML <ThruPublicMessageInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <MessageId>0A2POFJY8EB8Q</MessageId> <UserId>1Q1OBQWVHTROE</UserId> <Subject>subject</Subject> <DateCreated>/Date(1352205302890)/</DateCreated> <DateSent></DateSent> <DateExpired>/Date(1353069302683)/</DateExpired> <CollectedFlag>false</CollectedFlag> <PublicMessage>body public</PublicMessage> <PrivateMessage>body private</PrivateMessage> <TrackingNo>T478-026-61916-68489</TrackingNo> <RequestLogin>false</RequestLogin> <SendByClient>true</SendByClient> <NotifyFlag>true</NotifyFlag> <Priority>3</Priority> <IsExpired>false</IsExpired> <ExpireNow>false</ExpireNow> <MsgHtmlTemplate>&lt;!DOCTYPE HTML PUBLIC &quot; -/W3C//DTD HTML 4.01 Transitional//EN&quot;&gt; &lt;html&gt; &lt;body&gt; &lt;span&gt;&lt;br/&gt; &lt;thru:bodyToken/&gt; &lt;/span&gt&lt;/body&gt; &lt;/html&gt;</MsgHtmlTemplate> <MsgTextTemplate> This email includes secure access to files. <thru:bodyToken/> </MsgTextTemplate> <ToRecipients> <ThruPublicMessageRecipientInfo> <MsgId>0A2POFJY8EB8Q</MsgId> <RecipientId>0MS5JFHL8E7N5</RecipientId> <RecipientEmail>gimpels@actimind.com</RecipientEmail> <Collected>false</Collected> </ThruPublicMessageRecipientInfo> </ToRecipients> <CcRecipients></CcRecipients> <BccRecipients></BccRecipients> <FoldersAttached></FoldersAttached> <FilesAttached></FilesAttached> </ThruPublicMessageInfo> Data Transfer Object
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 20 
public class ThruPublicMessageInfo 
{ 
public string MessageId 
public string UserId 
public string Subject 
public ThruServerDateTime DateCreated 
public ThruServerDateTime DateSent 
public ThruServerDateTime DateExpired 
public bool? CollectedFlag 
public string PublicMessage 
public string PrivateMessage 
public string TrackingNo 
public bool? RequestLogin 
public bool? SendByClient 
public bool? NotifyFlag 
public int? Priority 
public bool? IsExpired 
public bool? ExpireNow 
public string MsgHtmlTemplate 
public string MsgTextTemplate 
public ThruPublicMessageRecipientInfo[] ToRecipients 
public ThruPublicMessageRecipientInfo[] CcRecipients 
public ThruPublicMessageRecipientInfo[] BccRecipients 
public ThruPublicFolderInfo[] FoldersAttached 
public ThruPublicFileInfo[] FilesAttached 
} 
5.5.2 ThruPublicMessagesListResult Structure 
ThruPublicMessagesListResult structure contains collection of Thru messages. Item Name Data Type Sample Value Comments 
Messages 
Collection<ThruPublicMessageInfo > 
Collection of Messages Sample XML <ThruPublicMessagesListResult xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Messages> <ThruPublicMessageInfo> <MessageId>1R6NE5OZ8QHXA</MessageId> <UserId>1Q1OBQWVHTROE</UserId> <Subject>qsdasdfasd</Subject> <DateCreated>/Date(1337718371363)/</DateCreated> <DateSent>/Date(1337718371363)/</DateSent>
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 21 
<DateExpired>/Date(1337975940000)/</DateExpired> <CollectedFlag>true</CollectedFlag> <PublicMessage></PublicMessage> <PrivateMessage></PrivateMessage> <TrackingNo>T478-026-14576-91611</TrackingNo> <RequestLogin>false</RequestLogin> <SendByClient>false</SendByClient> <NotifyFlag>false</NotifyFlag> <Priority>3</Priority> <IsExpired>true</IsExpired> <ExpireNow>false</ExpireNow> <ToRecipients> <ThruPublicMessageRecipientInfo> <MsgId>1R6NE5OZ8QHXA</MsgId> <RecipientId>2MIMZFR1K0471</RecipientId> <RecipientEmail>dmitriy.babkin@actimind.com</RecipientEmail> <Collected>true</Collected> </ThruPublicMessageRecipientInfo> </ToRecipients> <CcRecipients></CcRecipients> <BccRecipients></BccRecipients> <FoldersAttached></FoldersAttached> <FilesAttached></FilesAttached> </ThruPublicMessageInfo> </Messages> </ThruPublicMessagesListResult> Data Transfer Object 
public class ThruPublicMessagesListResult 
{ 
public ThruPublicMessageInfo[] Messages 
} 
5.5.3 ThruPublicMessageRecipientInfo 
ThruPublicMessageRecipientInfo structure contains information about recipient of Thru message. Item Name Data Type Sample Value Comments 
MsgId 
String 
1R6NE5OZ8QHXA 
Unique identification number of the Thru message 
RecipientId 
String 
2MIMZFR1K0471 
Unique identification number of Recipient 
RecipientEmail 
String 
test.test@test.com 
Recipient e-mail
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 22 
Collected 
Boolean 
true 
Indicates does message were read by recipient 
MsgRecipientLevelPublicID 
String 
Unique identification number of recipient level Sample XML <ThruPublicMessageRecipientInfo> <MsgId>1R6NE5OZ8QHXA</MsgId> <RecipientId>2MIMZFR1K0471</RecipientId> <RecipientEmail>test.test@test.com</RecipientEmail> <Collected>true</Collected> <MsgRecipientLevelPublicID>true</MsgRecipientLevelPublicID> </ThruPublicMessageRecipientInfo> 
Data Transfer Object 
public class ThruPublicMessageRecipientInfo 
{ 
public string MsgId 
public string RecipientId 
public string RecipientEmail 
public bool? Collected 
public string MsgRecipientLevelPublicID 
} 
5.6 Search Resources 
5.6.1 ThruPublicSearchCriteria Structure 
ThruPublicSearchCriteria structure contains criteria for the search over Thru files and folders. Item Name Data Type Sample Value Comments 
FolderID 
Integer 
0QN8H2VKTGIWE 
Indicates the folder from which to start the search 
NameCriteria 
String 
* 
String representing the search criteria for the name of Thru file system object 
NameCriteriaMatchAll 
Boolean 
True 
Indicates whether all criteria passed in NameCriteria field should be matched 
DescriptionCriteria 
String 
* 
String representing the search criteria for the description of Thru file system object 
DescriptionCriteriaMatchAll 
Boolean 
True 
Indicates whether all criteria passed in DescriptionCriteria field should be matched
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 23 
KeywordCriteria 
String 
12* 
String representing the search criteria for the keywords of Thru file system object 
KeywordCriteriaMatchAll 
Boolean 
True 
Indicates whether all criteria passed in KeywordCriteria field should be matched 
LastModifiedByUsers 
Collection<String> 
Collection of user unique identifiers 
DateLastModifiedStart 
DateTime 
Date and time when Thru file system object has been modified. Start of Range (UTC) 
DateLastModifiedEnd 
DateTime 
Date and time when Thru file system object has been modified. End of Range (UTC) 
Recursive 
Boolean 
True 
Enable/disable recursive search over folder tree Sample 
folderId=0QN8H2VKTGIWE&NameCriteria=*& 
NameCriteriaMatchAll=true&DescriptionCriteria=*& 
DescriptionCriteriaMatchAll=true&KeywordCriteria=12*& 
KeywordCriteriaMatchAll=true&LastModifiedByUsers=& 
DateLastModifiedStart=&DateLastModifiedEnd=&Recursive=true Data Transfer Object 
public class ThruPublicSearchCriteria 
{ 
public string FolderId 
public string NameCriteria 
public bool NameCriteriaMatchAll 
public string DescriptionCriteria 
public bool DescriptionCriteriaMatchAll 
public string KeywordCriteria 
public bool KeywordCriteriaMatchAll 
public string[] LastModifiedByUsers 
public ThruServerDateTime DateLastModifiedStart 
public ThruServerDateTime DateLastModifiedEnd 
public bool Recursive 
}
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 24 
5.7 Server Resources 
5.7.1 ThruPublicServerInfo Structure 
ThruPublicServerInfo structure contains information about the configuration of server and its health status. Item Name Data Type Sample Value Comments 
SiteID 
Integer 
14RD6GNEUV4ZV 
Identifier of the current site 
Name 
String 
test.example.com 
Pretty name of the current site 
Title 
String 
Thru Site name 
Title of the site 
Welcome 
String 
Welcome 
‘Welcome’ text of the site 
Enabled 
Boolean 
True 
Indicate is the site enabled Sample 
<ThruPublicServerInfo xmlns:xsd=http://www.w3.org/2001/XMLSchema 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<SiteId>14RD6GNEUV4ZV</SiteId> 
<Name>test.example.com</Name> 
<Title>Thru Site name</Title> 
<Welcome>Thru is a secure and safe application you can use to store, 
organize and distribute your files. Your username determines your ability to view, 
download and upload files.</Welcome> 
<Enabled>true</Enabled> 
</ThruPublicServerInfo> Data Transfer Object 
public class ThruPublicServerInfo 
{ 
public string SiteId 
public string Name 
public string Title 
public string Welcome 
public bool Enabled 
} 
5.7.2 ThruMessageSettings Structure 
ThruMessageSettings structure contains information about the configuration of Thru messages. Item Name Data Type Sample Value Comments 
SeparateEmailsLimit 
Integer 
1000 
For tracking purposes, the system creates separate emails per recipient if the message requires a link to Thru server and request login
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 25 
is turned off. This parameter prevents massive email generation. 
SmtpServerRecipientLimit 
Integer 
0 
If your SMTP server has a limit, and the limit is entered here, Thru Server will block messages which exceed the limit. If the limit is NOT entered here, and a message exceeds recipient limit, SMTP server will send the message with a partial recipient list and the user will get an error message. 
MsgRequestLoginType 
Integer 
3 
1 - Never (No registration for external download) 2 - Always (external download always requires registration) 
3 – User Choice (request login is turned off by default but the user can turn it on when sending a message) 
MsgRequestloginUserChoiceDefault 
Boolean 
False 
If request recipient login is 'User Choice' - turn on request login as default value for a new message. 
ExpiredMsgNotificationEnabled 
Boolean 
True 
Enable expired message notification 
WebUseMsgPwdInsteadOfRequestLogin 
Boolean 
false 
On the web interface, use message password instead of recipient login. This option only allowed if Request recipient login' is 'Never'. 
DefaultExpirationIntervalDays 
Integer 
10 
Default expiration interval in Days 
AllowSetAfterDefaultExpirationInterval 
Boolean 
False 
Allow to specify the message expiration interval larger than default Sample XML <ThruMessageSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SeparateEmailsLimit>1000</SeparateEmailsLimit> <SmtpServerRecipientLimit>0</SmtpServerRecipientLimit> <MsgRequestLoginType>3</MsgRequestLoginType> <MsgRequestloginUserChoiceDefault>false</MsgRequestloginUserChoiceDefault> <ExpiredMsgNotificationEnabled>true</ExpiredMsgNotificationEnabled> <WebUseMsgPwdInsteadOfRequestLogin>false</WebUseMsgPwdInsteadOfRequestLogin> <PrivateMessageNotificationEnabled>false</PrivateMessageNotificationEnabled> <DefaultExpirationIntervalDays>10</DefaultExpirationIntervalDays> <AllowSetAfterDefaultExpirationInterval>false</AllowSetAfterDefaultExpirationInterval> </ThruMessageSettings> Data Transfer Object 
public class ThruMessageSettings 
{ 
public int SeparateEmailsLimit
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 26 
public int SmtpServerRecipientLimit 
public int MsgRequestLoginType 
public bool MsgRequestloginUserChoiceDefault 
public bool ExpiredMsgNotificationEnabled 
public bool WebUseMsgPwdInsteadOfRequestLogin 
public bool PrivateMessageNotificationEnabled 
public int DefaultExpirationIntervalDays 
public bool AllowSetAfterDefaultExpirationInterval 
} 
5.7.3 ThruPasswordSettings Structure 
ThruPasswordSettings structure contains information about configuration of the password strength, expiration and lockout policies. Item Name Data Type Sample Value Comments 
AutomaticExpiration 
Boolean 
True 
Enable/Disable automatic password expiration 
ExpirationDays 
Integer 
10 
Expiration days 
ExpirationWarningNotificationDays 
Integer 
0 
Send expiration warning notification – warning days 
AutomaticLoginLockout 
Boolean 
True 
Enable/Disable automatic login lockout 
MaxLoginAttempts 
Integer 
5 
Max login attempts 
LockoutDurationSeconds 
Integer 
20 
Lockout duration seconds 
BlockPreviousPasswords 
Boolean 
False 
Do not allow reuse of previous passwords 
PreviousPasswordCount 
Integer 
3 
Number of previous passwords to check 
MinimumPasswordLength 
Integer 
6 
Minimum password length 
RequireSpecialCharacter 
Boolean 
False 
At least one special character required 
RequireLetter 
Boolean 
False 
At least one letter required 
RequireDigit 
Boolean 
False 
At least one digit required 
RequireUppercaseLetter 
Boolean 
False 
At least one uppercase letter required 
RequireLowercaseLetter 
Boolean 
False 
At least one lowercase letter required Sample XML <ThruPasswordSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <AutomaticExpiration>true</AutomaticExpiration>
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 27 
<ExpirationDays>10</ExpirationDays> <ExpirationWarningNotificationDays>0</ExpirationWarningNotificationDays> <AutomaticLoginLockout>true</AutomaticLoginLockout> <MaxLoginAttempts>5</MaxLoginAttempts> <LockoutDurationSeconds>20</LockoutDurationSeconds> <BlockPreviousPasswords>false</BlockPreviousPasswords> <PreviousPasswordCount>3</PreviousPasswordCount> <MinimumPasswordLength>6</MinimumPasswordLength> <RequireSpecialCharacter>false</RequireSpecialCharacter> <RequireLetter>false</RequireLetter> <RequireDigit>false</RequireDigit> <RequireUppercaseLetter>false</RequireUppercaseLetter> <RequireLowercaseLetter>false</RequireLowercaseLetter> </ThruPasswordSettings> Data Transfer Object 
public class ThruPasswordSettings 
{ 
public bool? AutomaticExpiration 
public int? ExpirationDays 
public int? ExpirationWarningNotificationDays 
public bool? AutomaticLoginLockout 
public int? MaxLoginAttempts 
public int? LockoutDurationSeconds 
public bool? BlockPreviousPasswords 
public int? PreviousPasswordCount 
public int? MinimumPasswordLength 
public bool? RequireSpecialCharacter 
public bool? RequireLetter 
public bool? RequireDigit 
public bool? RequireUppercaseLetter 
public bool? RequireLowercaseLetter 
} 
5.7.4 ThruUploadSettings Structure 
ThruUploadSettings structure contains information of upload settings. Item Name Data Type Sample Value Comments 
UploadAppletBatchMaxCount 
Integer 
0 
The maximum number of files uploaded in batch by the applet to the server in a single HTTP request. To indicate that there is no limit, use the value 0. 
UploadAppletChunkCount 
Integer 
20 
The maximum number of chunks to divide a file to be uploaded by the applet, before we start
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 28 
increasing the chunk size from the minimum size. 
UploadAppletChunkMaxSizeMb 
Integer 
100 
The maximum size (in Megabytes) of a file chunk uploaded by the applet to the server. 
UploadAppletChunkMinSizeMb 
Integer 
60 
The minimum size (in Megabytes) of a file chunk uploaded by the applet to the server. 
UploadAppletDeleteOnCancelDefault 
Boolean 
False 
Indicates whether the default behavior for the applet on an upload cancellation is to delete partially uploaded files. 
UploadAppletDeleteOnCancelEnabled 
Boolean 
True 
Indicates whether the user can opt on the behavior for the applet on an upload cancellation. If true, user can opt; false, otherwise. 
UploadAppletZippingEnabled 
Boolean 
False 
UploadAppletZippingMinFileSizeKb 
Integer 
10 
Sample XML <ThruUploadSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <UploadAppletBatchMaxCount>0</UploadAppletBatchMaxCount> <UploadAppletChunkCount>20</UploadAppletChunkCount> <UploadAppletChunkMaxSizeMb>100</UploadAppletChunkMaxSizeMb> <UploadAppletChunkMinSizeMb>60</UploadAppletChunkMinSizeMb> <UploadAppletDeleteOnCancelDefault>false</UploadAppletDeleteOnCancelDefault> <UploadAppletDeleteOnCancelEnabled>true</UploadAppletDeleteOnCancelEnabled> <UploadAppletZippingEnabled>false</UploadAppletZippingEnabled> <UploadAppletZippingMinFileSizeKb>10</UploadAppletZippingMinFileSizeKb> </ThruUploadSettings> 
Data Transfer Object 
public class ThruUploadSettings 
{ 
public int UploadAppletBatchMaxCount 
public int UploadAppletChunkCount 
public int UploadAppletChunkMaxSizeMb 
public int UploadAppletChunkMinSizeMb 
public bool UploadAppletDeleteOnCancelDefault 
public bool UploadAppletDeleteOnCancelEnabled 
public bool UploadAppletZippingEnabled 
public int UploadAppletZippingMinFileSizeKb 
}
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 29 
5.7.5 ThruMobileSettings 
ThruMobileSettings structure contains information of mobile application settings. Item Name Data Type Sample Value Comments 
SessionRecheckIntervalSeconds 
Integer 
60 
EnableOpenInAnotherApplication 
Boolean 
True 
LocalSessionOfflineLifetimeSeconds 
Integer 
180 
MobilePolicyUpdateIntervalSeconds 
Integer 
300 
Sample XML <ThruMobileSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SessionRecheckIntervalSeconds>60</SessionRecheckIntervalSeconds> <EnableOpenInAnotherApplication>true</EnableOpenInAnotherApplication> <LocalSessionOfflineLifetimeSeconds>180</LocalSessionOfflineLifetimeSeconds> <MobilePolicyUpdateIntervalSeconds>300</MobilePolicyUpdateIntervalSeconds> </ThruMobileSettings> Data Transfer Object 
public class ThruMobileSettings 
{ 
public int SessionRecheckIntervalSeconds 
public bool EnableOpenInAnotherApplication 
public int LocalSessionOfflineLifetimeSeconds 
public int MobilePolicyUpdateIntervalSeconds 
} 
5.8 System Log Resources 
5.8.1 ThruPublicSystemLogOperation 
ThruPublicSystemLogOperation structure contains information operation that will be logged in Thru. Item Name Data Type Sample Value Comments 
LogOperationId 
String 
Operation Id that is assigned for request operation 
OperationType 
Integer 
MobileOpenFileInExternalApplication = 0x4000000 
FolderId 
String 
Identifier of the folder in Thru file system 
FileId 
String 
Identifier of the file in Thru file system 
MobileReceiverAppName 
String 
Mobile application name
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 30 
Sample 
Request: 
OperationType=67108864&FileId=30FZAAT6ULN30&MobileReceiverAppName=test 
Response: <ThruPublicSystemLogOperation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <LogOperationId>1UEVYEHGF7GVW</LogOperationId> <OperationType>67108864</OperationType> <FileId>30FZAAT6ULN30</FileId> <MobileReceiverAppName>test</MobileReceiverAppName> </ThruPublicSystemLogOperation> Data Transfer Object 
public class ThruPublicSystemLogOperation 
{ 
public string LogOperationId 
public int OperationType 
public string FolderId 
public string FileId 
public string MobileReceiverAppName 
} 
5.9 Ticket Resource 
5.9.1 ThruTicketInfo Structure 
ThruTicketInfo structure contains email fields Item Name Data Type Sample Value Comments 
Subject 
String 
Subject 
Subject text 
Body 
String 
Message 
Body text Sample 
Subject=test&Body=message Data Transfer Object 
public class ThruTicketInfo 
{ 
public string Subject 
public string Body 
}
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 31 
5.10 User Resources 
5.10.1 ThruPublicUserInfo Structure 
ThruPublicUserInfo structure contains information about user of Thru. Item Name Data Type Sample Value Comments 
UserId 
String 
1Q1OBQWVHTROE 
Identifier of user in Thru 
Name 
String 
admin 
User name that is used for sign-in in Thru 
DomainUsername 
String 
If user is in domain, this field represent it domain name 
FirstName 
String 
Ad 
User’s first name 
LastName 
String 
Test 
User’s last name 
FullName 
String 
Ad Test 
User’s full name 
Email 
String 
devnull@test.com 
User’s e-mail address 
Phone 
String 
User’s phone number 
CompanyName 
String 
Company name 
Role 
Integer 
5 
User’s role on Thru: 
None = 0, 
Guest = 1, 
Recipient = 2, 
Member = 3, 
Manager = 4, 
Administrator = 5, 
System = 6 
DateCreated 
DateTime 
/Date(1337174868567)/ 
User’s date create (UTC) 
DateModified 
DateTime 
/Date(1351871161613)/ 
User’s last date modify (UTC) 
CreatedByUserId 
String 
Identifier of the user that is create the specified user 
ModifiedByUserId 
String 
2T5LRH8F1R2QK 
Identifier of the user that is modify the specified user 
DateLastPasswordChanged 
DateTime 
/Date(1343838136630)/ 
The date of the last password modification 
PasswordNeverExpires 
Boolean 
True 
Flag indicate is the user password is never expires Sample XML
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 32 
<ThruPublicUserInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <UserId>1Q1OBQWVHTROE</UserId> <Name>admin</Name> <FirstName>Ad</FirstName> <LastName>3</LastName> <FullName>Ad 3</FullName> <Email>devnull@actimind.com</Email> <Phone></Phone> <CompanyName></CompanyName> <Role>5</Role> <DateCreated>/Date(1337174868567)/</DateCreated> <DateModified>/Date(1351871161613)/</DateModified> <ModifiedByUserId>2T5LRH8F1R2QK</ModifiedByUserId> <DateLastPasswordChanged>/Date(1343838136630)/</DateLastPasswordChanged> <PasswordNeverExpires>true</PasswordNeverExpires> </ThruPublicUserInfo> Data Transfer Object 
public class ThruPublicUserInfo 
{ 
public string UserId 
public string Name 
public string DomainUsername 
public string FirstName 
public string LastName 
public string FullName 
public string Email 
public string Phone 
public string CompanyName 
public int Role 
public ThruServerDateTime DateCreated 
public ThruServerDateTime DateModified 
public string CreatedByUserId 
public string ModifiedByUserId 
public ThruServerDateTime DateLastPasswordChanged 
public bool PasswordNeverExpires 
}
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 33 
5.10.2 ThruPasswordInfo Structure 
ThruPasswordInfo structure contains information that is required for password change. Item Name Data Type Sample Value Comments 
OldPassword 
String 
password 
Current user password 
NewPassword 
String 
_password1 
New password that is required to set 
ConfirmPassword 
String 
_password1 
Confirmation of the New password field Sample 
OldPassword=password&NewPassword=_password1&ConfirmPassword=_password1 Data Transfer Object 
public class ThruPasswordInfo 
{ 
public string OldPassword 
public string NewPassword 
public string ConfirmPassword 
} 
5.11 Service Resources 
5.11.1 ThruServiceVersion Structure 
ThruServiceVersion structure contains information about versions of specific REST service in the ThruServer. Item Name Data Type Sample Value Comments 
ServiceName 
String 
FileSystem 
Service name 
SupportedVersions 
String 
1.0 
Service version Sample <ThruServiceVersion> <ServiceName>FileSystem</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> Data Transfer Object 
public class ThruServiceVersion 
{ 
public string ServiceName
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 34 
public string[] SupportedVersions 
} 
5.11.2 ThruServiceVersionsResult Structure 
ThruServiceVersionsResult structure contains information about versions of REST services in the ThruServer. Item Name Data Type Sample Value Comments 
ServiceVersions 
Collection<ThruServiceVersion > 
REST Services Sample <ThruServiceVersionsResult xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ServiceVersions> <ThruServiceVersion> <ServiceName>Authentication</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> <ThruServiceVersion> <ServiceName>FileSystem</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> <ThruServiceVersion> <ServiceName>Message</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> <ThruServiceVersion> <ServiceName>Search</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> <ThruServiceVersion> <ServiceName>Favorites</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion>
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 35 
<ThruServiceVersion> <ServiceName>Server</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> <ThruServiceVersion> <ServiceName>Ticket</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> <ThruServiceVersion> <ServiceName>SystemLog</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> <ThruServiceVersion> <ServiceName>User</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> </ServiceVersions> </ThruServiceVersionsResult> Data Transfer Object 
public class ThruServiceVersionsResult 
{ 
public ThruServiceVersion[] ServiceVersions 
} 
5.12 Server Version Resources 
5.12.1 ThruServerVersion Structure 
ThruServerVersion structure contains information about version of ThruServer. Item Name Data Type Sample Value Comments 
Major 
Integer 
7 
Major version 
Minor 
Integer 
8 
Minor version 
Buildnumber 
Integer 
23 
Build number
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 36 
Suffix 
String 
1.1.2 
Suffix, addition version identificator. This field can be empty. 
Revision 
Integer 
11234 
Revision number Sample 
<ThruServerVersion> 
<Major>7</Major> 
<Minor>8</Minor> 
<Buildnumber>23</Buildnumber> 
<Suffix></Suffix> 
<Revision>12714</Revision> 
</ThruServerVersion> Data Transfer Object 
public class ThruServerVersion 
{ 
public int Major {get, set; } 
public int Minor { get, set; } 
public int Buildnumber { get, set; } 
public string Suffix { get; set; } 
public int Revision {get, set; } 
}
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 37 
6 Web Services 
6.1 Authentication Service 
6.1.1 POST New Session Object Url 
[ThruWebServer]/REST/[version]/Session Verb 
POST Required HTTP Headers 
Accept: (application/xml or application/json), Device_UUID (any unique identifier for the client device is required) Description 
Verify user credentials and authenticate Thru user in the system Request Body 
ThruSessionRequest object Return Data Object 
ThruPublicSession object Invocation Scenario(s) 
Verify customer credentials 
Authenticate customer Remarks 
Example request: UserName=admin&Password=adminadmin& 
ClientVersion=1&ApplicationId=12 
6.1.2 DELETE Existing Session Object Url 
[ThruWebServer]/REST/[version]/Session Verb 
DELETE Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Logs out Thru customer from the system. Request Body 
None Return Data Object 
None Invocation Scenario(s) 
Expire session object 
Logs out customer from the system Remarks 
6.1.3 CHECK Existing Session Object Url 
[ThruWebServer]/REST/[version]/Session Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json)
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 38 
Description 
Check if customer is authenticated. Request Body 
None Return Data Object 
None Invocation Scenario(s) 
Check session object Remarks 
6.2 File System Service 
6.2.1 POST New Folder Information Url 
[ThruWebServer]/REST/[version]/FileSystem/Folder Verb 
POST Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Creates a new folder in Thru file system Request Body 
ThruPublicFolderInfo object Return Data Object 
Updated ThruPublicFolderInfo object Invocation Scenario(s) 
Create a new folder Remarks 
Example request: Name=New+Folder&ParentFolderId=1UTXM50KW0ISP& 
Description=Description&Tags%5B%5D=567&Tags%5B%5D=897 
6.2.2 GET Existing Folder Information Url 
[ThruWebServer]/REST/[version]/FileSystem/Folder/[FolderId] Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a folder information based on the provided ID Request Body 
None Return Data Object 
ThruPublicFolderInfo object Invocation Scenario(s) 
Get a folder information in order to fulfill it Remarks 
All returned dates are in UTC.
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 39 
6.2.3 PUT Updated Folder Information Url 
[ThruWebServer]/REST/[version]/FileSystem/Folder/[FolderId] Verb 
PUT Required HTTP Headers 
Accept: (application/xml or application/json) 
Content-Type: (application/xml or application/json) Description 
Updates folder information based on the provided information. Information should be passed in the body as a serialized representation of the ThruPublicFolderInfo DTO. Request Body 
ThruPublicFolderInfo object Return Data Object 
Updated ThruPublicFolderInfo object Invocation Scenario(s) 
Renaming folder 
Move folder and its content to another folder Remarks 
Value of the FolderID field in the posted 
ThruPublicFileInfo DTO should reference to the existing and non-deleted folder. Otherwise, exception will be thrown . 
Not all properties of ThruPublicFolderInfo can be modified: 
Name 
ParentFolderID 
Description 
Keywords 
The following properties should not be provided; if provided, their values will be ignored: 
FolderID 
EffectivePermission 
DateCreated 
DateModified 
CreatedByUserID 
ModifiedByUserID 
Exception will be thrown in case current user doesn’t have a right to do such modifications 
ModifiedByUserID field of the folder will be updated if the statement succeeds 
After successful processing of the command updated ThruPublicFolderInfo object will be returned 
Example request: folderId=3V45C8UTHL0A3&Name=&ParentFolderId=& 
Description=New+Description&Tags%5B%5D= 
6.2.4 DELETE Existing Folder Url 
[ThruWebServer]/REST/[version]/FileSystem/Folder/[FolderId] Verb 
DELETE
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 40 
Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Deletes folder and its content based on the provided information. No additional data should be passed on the request body Request Body 
None Return Data Object 
None Invocation Scenario(s) 
Mark folder and all underlying files and folders as deleted Remarks 
The folder could be restored later by administrator based on the Thru server configuration 
6.2.5 GET Home Folder Information Url 
[ThruWebServer]/REST/[version]/FileSystem/Home Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a home folder information of the authenticated user Request Body 
None Return Data Object 
ThruPublicFolderInfo object Invocation Scenario(s) 
Get a home folder information of the authenticated user Remarks 
All returned dates are in UTC. 
6.2.6 GET List of Files and Folders Inside a Home Folder Url 
[ThruWebServer]/REST/[version]/FileSystem/Home/Content Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a collection of file and folder information structures based on the home folder information of the authenticated user. Request Body 
None Return Data Object 
ThruPublicContentResult object Invocation Scenario(s) 
Get a full content of the folder Remarks
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 41 
6.2.7 GET List of Files Inside a Home Folder Url 
[ThruWebServer]/REST/[version]/FileSystem/Home/Content/Files Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a collection of file information structures based on the home folder information of the authenticated user. Request Body 
None Return Data Object 
ThruPublicContentResult object Invocation Scenario(s) 
Get files in the folder Remarks 
6.2.8 GET List of Folders Inside a Home Folder Url 
[ThruWebServer]/REST/[version]/FileSystem/Home/Content/Folders Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a collection of folder information structures based on the home folder information of the authenticated user. Request Body 
None Return Data Object 
ThruPublicContentResult object Invocation Scenario(s) 
Get folders in the folder Remarks 
6.2.9 GET Root Folder Information Url 
[ThruWebServer]/REST/[version]/FileSystem/Root Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a root folder information of the authenticated user Request Body 
None
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 42 
Return Data Object 
ThruPublicFolderInfo object Invocation Scenario(s) 
Get information of the root folder Remarks 
All returned dates are in UTC. 
6.2.10 GET List of Files and Folders Inside a Root Folder Url 
[ThruWebServer]/REST/[version]/FileSystem/Root/Content Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a collection of file and folder information structures based on the root folder information of the authenticated user. Request Body 
None Return Data Object 
ThruPublicContentResult object Invocation Scenario(s) 
Get a full content of the folder Remarks 
6.2.11 GET List of Files Inside a Root Folder Url 
[ThruWebServer]/REST/[version]/FileSystem/Root/Content/Files Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a collection of file information structures based on the root folder information of the authenticated user. Request Body 
None Return Data Object 
ThruPublicContentResult object Invocation Scenario(s) 
Get files in the folder Remarks 
6.2.12 GET List of Folders Inside a Root Folder Url 
[ThruWebServer]/REST/[version]/FileSystem/Root/Content/Folders
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 43 
Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a collection of folder information structures based on the root folder information of the authenticated user. Request Body 
None Return Data Object 
ThruPublicContentResult object Invocation Scenario(s) 
Get folders in the folder Remarks 
6.2.13 GET List of Files and Folders Inside a Folder Url 
[ThruWebServer]/REST/[version]/FileSystem/Folder/[FolderId]/Content Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a collection of file and folder information structures based on the provided parent folder ID. Request Body 
None Return Data Object 
ThruPublicContentResult object Invocation Scenario(s) 
Get a full content of the folder Remarks 
6.2.14 GET List of Files Inside a Folder Url 
[ThruWebServer]/REST/[version]/FileSystem/Folder/[folderId]/Content/Files Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a collection of file information structures based on the provided parent folder ID. Request Body 
None Return Data Object 
ThruPublicContentResult object Invocation Scenario(s) 
Get files in the folder
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 44 
Remarks 
6.2.15 GET List of Folders Inside a Folder Url 
[ThruWebServer]/REST/[version]/FileSystem/ Folder/[folderId]/Content/Folders Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a collection of folder information structures based on the provided parent folder ID. Request Body 
None Return Data Object 
ThruPublicContentResult object Invocation Scenario(s) 
Get folders in the folder Remarks 
6.2.16 GET Existing File Information Url 
[ThruWebServer]/REST/[version]/FileSystem/File/[FileId] Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a file information based on the provided ID Request Body 
None Return Data Object 
ThruPublicFileInfo object Invocation Scenario(s) 
Get a file information in order to fulfill it Remarks 
All returned dates are in UTC. 
6.2.17 PUT Updated File Information Url 
[ThruWebServer]/REST/[version]/FileSystem/File/[FileId] Verb 
PUT Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Updates file information based on the provided information. Information should be passed in
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 45 
the body as a serialized representation of the 
ThruPublicFileInfo DTO Request Body 
ThruPublicFileInfo object Return Data Object 
Updated 
ThruPublicFileInfo object Invocation Scenario(s) 
Renaming file 
Move file to another folder Remarks 
Value of the FileID field in the posted 
ThruPublicFileInfo DTO should reference to the existing, non-deleted, non-quarantined file. Otherwise, exception will be thrown 
Not all properties of 
ThruPublicFileInfo can be modified: 
Name 
ParentFolderID 
Description 
Keywords 
ParentFolderID 
The following properties should not be provided; if provided, their values will be ignored: 
Size 
DateCreated 
DateModified 
CreatedByUserID 
ModifiedByUserID 
IsQuarantined 
ModifiedByUserID field of the file will be updated if the statement succeeded 
After successful processing of the command updated 
ThruPublicFileInfo object will be returned 
6.2.18 DELETE Existing File Url 
[ThruWebServer]/REST/[version]/FileSystem/File/[FileId] Verb 
DELETE Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Deletes file based on the provided information. No additional data should be passed on the request body. Request Body 
None
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 46 
Return Data Object 
None Invocation Scenario(s) 
Mark file whose ID is specified in URL as deleted Remarks 
Possibly later this file can be restored by administrator based on the Thru server configuration 
6.3 Message Service 
6.3.1 POST New Thru Message Url 
[ThruWebServer]/REST/[version]/Message Verb 
POST Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Creates Thru message according to ThruPublicMessageInfo structure passed in HTTP request Request Body 
ThruPublicMessageInfo object Return Data Object 
Updated ThruPublicMessageInfo object Invocation Scenario(s) 
Send one or more files and folders to recipients 
Send private message to recipients Remarks 
ToRecipients, CcRecipients, BccRecipients fields in ThruPublicMessageInfo should be present in request as a string array. These fields will bind to required structure on server side. DateExpired must be converted to UTC. 
Example POST parameters: BccRecipients[]=Bcctest@test.com 
BccRecipients[]=Bcctest2@test.com 
CcRecipients[]=CcTest@test.com 
CcRecipients[]=CcTest2@test.com 
DateExpired= 
FilesAttached[]= 
FoldersAttached[]= 
NotifyFlag= 
Priority=3 
PrivateMessage=body private 
PublicMessage=body public 
RequestLogin=false 
SendByClient=true 
Subject=subject 
ToRecipients[]=ToTest@test.com 
ToRecipients[]=ToTest2@test.com 
UserPassword= 
1 To-recipient should be provided at least.
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 47 
DateExpired must be converted to UTC. 
If SendByClient is true, after calling this method the client must: 
1. send email notification and call the REST method ‘completeMessage‘ which sets message’s DateSent. 
2. Or call the REST method ‘discardMessage’ to cancel the creation of ‘distribution’ object on the server. Created by this method message will be deleted on the server. 
The returned ThruPublicMessageInfo contains ‘MsgHtmlTemplate’ parameter which must be parsed by the client. The token <thru:bodyToken/> must be replaced with the public message. The token <thru:passwordToken/> (if exists) must be replaced with the field MsgRecipientLevelPublicID of the first To recipient. 
6.3.2 GET Existing Thru Message Url 
[ThruWebServer]/REST/[version]/Message/[MessageId] Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves message information based on the provided ID. Request Body 
None Return Data Object 
ThruPublicMessageInfo object Invocation Scenario(s) 
Get a message in the Thru server Remarks 
All returned dates are in UTC. 
6.3.3 DELETE Existing Thru Message Url 
[ThruWebServer]/REST/[version]/Message/[MessageId] Verb 
DELETE Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Deletes message based on the provided information. No additional data should be passed on the request body. Request Body 
None Return Data Object 
None Invocation Scenario(s) 
Mark message whose ID is specified in URL as deleted Remarks
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 48 
6.3.4 PUT Updated Thru Message Url 
[ThruWebServer]/REST/[version]/Message/[MessageId] Verb 
PUT Required HTTP Headers 
Accept: (application/xml or application/json) 
Content-Type: (application/xml or application/json) Description 
Updates message information based on the provided information. Information should be passed in the body as a serialized representation of the ThruPublicMessageInfo DTO Request Body 
ThruPublicMessageInfo object Return Data Object 
Updated ThruPublicMessageInfo object Invocation Scenario(s) 
Delete attached folders 
Delete attached files 
Delete recipients from the To, Cc, Bcc 
Change expired date 
Expire message now Remarks 
Value of the MessageID field in the posted ThruPublicMessageInfo DTO should reference to the existing, non-deleted message. Otherwise, exception will be thrown. 
Not all properties of ThruPublicMessageInfo can be modified: 
DateExpired 
ExpireNow 
ToRecipients, CcRecipients, BccRecipients 
FoldersAttached, FilesAttached 
DateExpired must be converted to UTC. 
Recipients to delete must be provided in ToRecipients field. They will be deleted from To, Cc and Bcc lists. 
If provided, the values of the following fields are ignored: 
Subject 
Priority 
PublicMessage 
PrivateMessage 
CollectedFlag 
RequestLogin 
SendByClient 
DateCreated 
DateSent 
After successful processing of the command updated 
ThruPublicFileInfo object will be returned.
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 49 
6.3.5 PUT Discard Thru Message Url 
[ThruWebServer]/REST/[version]/Message/Discard/[MessageId] Verb 
PUT Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Discard message based on the provided information. No additional data should be passed on the request body. Request Body 
None Return Data Object 
None Invocation Scenario(s) 
Mark message that’s ID is specified in URL as deleted Remarks 
This method can be called only after the method ‘New Thru message’ is called 
6.3.6 PUT Complete Thru Message Url 
[ThruWebServer]/REST/[version]/Message/Complete/[MessageId] Verb 
PUT Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Complete message based on the provided information. No additional data should be passed on the request body. Request Body 
None Return Data Object 
ThruPublicMessageInfo object Invocation Scenario(s) 
Mark message that’s ID is specified in URL as completed. Remarks 
This method can be called only after the method ‘New Thru message’ is called 
6.3.7 GET SentThru List Url 
[ThruWebServer]/REST/[version]/Message/Content/[skip]/[take] Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Get list of the sent messages. Attachments are not included in returned data object. Request Body 
None Return Data Object 
ThruPublicMessageInfo object Invocation Scenario(s) 
Search over all Thru messages available for the current authenticated user.
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 50 
Attachments are not included in result, use GET Existing Thru Message. 
Optional: 
1. Skip custom number of messages. 
2. Take custom number of messages. Remarks 
6.3.8 POST Project Message Storage Url 
[ThruWebServer]/REST/[version]/Message/Storage/[type] Verb 
POST Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a folder information of the message storage. Request Body 
“Subject”: <subject> in case of Type is set “Days”. Current version of this method supports only one type=‘Days.’ Return Data Object 
ThruPublicMessageInfo object Invocation Scenario(s) 
Find or if not exist create folder for message storage. 
Optional: type of the folder name. Remarks 
6.4 Search Service 
6.4.1 POST Find All Thru Files and Folders by Search Criteria Url 
[ThruWebServer]/REST/[version]/Search/[Skip]/[Take] Verb 
POST Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a collection of folder and file structures based on the provided search criteria structure. Request Body 
ThruPublicSearchCriteria object Return Data Object 
ThruPublicContentResult object Invocation Scenario(s) 
Search over all Thru files and folders available to the current authenticated user. Remarks 
NameCriteria, DescriptionCriteria, KeywordCriteria are automatically wrapped by the ‘*’ if not contains it as part of criteria. For ex: “text” -> “*text*”, but “tex*t” -> “tex*t”
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 51 
6.4.2 POST Find All Thru Folders by Search Criteria Url 
[ThruWebServer]/REST/[version]/Search/Folders/[Skip]/[Take] Verb 
POST Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a collection of folder structures based on provided search criteria structure. Request Body 
ThruPublicSearchCriteria object Return Data Object 
ThruPublicContentResult object Invocation Scenario(s) 
Search over all Thru folders available to the current authenticated user. Remarks 
ThruPublicContentResult always contain null for 
ThruPublicFileInfo 
NameCriteria, DescriptionCriteria, KeywordCriteria are automatically wrapped by the ‘*’ if not contains it as part of criteria. For ex: “text” -> “*text*”, but “tex*t” -> “tex*t” 
6.4.3 POST Find All Thru Files by Search Criteria Url 
[ThruWebServer]/REST/[version]/Search/Files/[Skip]/[Take] Verb 
POST Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a collection of files structures based on the provided search criteria structure. Request Body 
ThruPublicSearchCriteria object Return Data Object 
ThruPublicContentResult object Invocation Scenario(s) 
Search over all Thru files available to the current authenticated user. Remarks 
ThruPublicContentResult always contain null for ThruPublicFolderInfo 
NameCriteria, DescriptionCriteria, KeywordCriteria are automatically wrapped by the ‘*’ if not contains it as part of criteria. For ex: “text” -> “*text*”, but “tex*t” -> “tex*t”
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 52 
6.5 Server Service 
6.5.1 GET Server Information Url 
[ThruWebServer]/REST/[version]/Server/Info Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves information about current server. Request Body 
None Return Data Object 
ThruPublicServerInfo object Invocation Scenario(s) 
Get file information in order to fulfill it. Remarks 
6.5.2 GET Message Settings Url 
[ThruWebServer]/REST/[version]/Server/MessageSettings Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves information about message settings in the server. Request Body 
None Return Data Object 
ThruMessageSettings object Invocation Scenario(s) 
Get information about message settings in order to fulfill it. Remarks 
6.5.3 GET Password Settings Url 
[ThruWebServer]/REST/[version]/Server/PasswordSettings Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves information about password settings in the server Request Body 
None Return Data Object 
ThruPasswordSettings object
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 53 
Invocation Scenario(s) 
Get information about password settings in order to fulfill it. Remarks 
6.5.4 GET Upload Settings Url 
[ThruWebServer]/REST/[version]/Server/UploadSettings Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves information about upload settings in the server. Request Body 
None Return Data Object 
ThruUploadSettings object Invocation Scenario(s) 
Get information about upload settings in the server. Remarks 
6.5.5 GET Mobile settings Url 
[ThruWebServer]/REST/[version]/Server/MobileSettings Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves information about mobile settings in the server. Request Body 
None Return Data Object 
ThruMobileSettings object Invocation Scenario(s) 
Get information about mobile settings in the server. Remarks 
6.6 Favorites Service 
6.6.1 PUT Folder to Favorites Url 
[ThruWebServer]/REST/[version]/Favorites/Folder/[FolderId] Verb 
PUT Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Add folder with the specified id to favorites.
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 54 
Request Body 
None Return Data Object 
None Invocation Scenario(s) 
Mark folder whose ID is specified in URL as favorite Remarks 
6.6.2 DELETE Folder from Favorites Url 
[ThruWebServer]/REST/[version]/Favorites/Folder/[FolderId] Verb 
DELETE Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Remove folder with the specified ID from favorites. Request Body 
None Return Data Object 
None Invocation Scenario(s) 
Remove folder whose ID is specified in URL from favorites Remarks 
6.6.3 PUT File to Favorites Url 
[ThruWebServer]/REST/[version]/Favorites/File/[FileId] Verb 
PUT Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Add file with the specified ID to favorites. Request Body 
None Return Data Object 
None Invocation Scenario(s) 
Mark file whose ID is specified in URL as favorite. Remarks 
6.6.4 DELETE File from Favorites Url 
[ThruWebServer]/REST/[version]/Favorites/File/[FileId] Verb 
DELETE
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 55 
Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Remove file with the specified ID from favorites. Request Body 
None Return Data Object 
None Invocation Scenario(s) 
Remove file whose ID is specified in URL from favorites. Remarks
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 56 
6.6.5 GET All Content in Favorites Url 
[ThruWebServer]/REST/[version]/Favorites/Content Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a collection of file and folder information structures marked as favorites. Result can be filtered by options. Request Body 
Return Data Object 
ThruPublicContentResult object Invocation Scenario(s) 
Get a full content in favorites. 
Get files in favorites. 
Get folders in favorites. Remarks 
6.6.6 GET Files in Favorites Url 
[ThruWebServer]/REST/[version]/Favorites/Content/Files Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a collection of file information structures marked as favorites. Result can be filtered by options. Request Body 
Return Data Object 
ThruPublicContentResult object Invocation Scenario(s) 
Get files in favorites. Remarks 
6.6.7 GET Folders in Favorites Url 
[ThruWebServer]/REST/[version]/Favorites/Content/Folders Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Retrieves a collection of folder information structures marked as favorites. Result can be filtered by options.
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 57 
Request Body 
Return Data Object 
ThruPublicContentResult object Invocation Scenario(s) 
Get folders in favorites. Remarks 
6.7 Service Versions Service 
6.7.1 GET Information about Service Versions Url 
[ThruWebServer]/REST/[version]/ServiceVersions Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Gets information about versions of REST services in the ThruServer . Request Body 
None Return Data Object 
ThruServiceVersion object Invocation Scenario(s) 
Get list of services and their versions. Remarks 
6.8 System Log Service 
6.8.1 POST System Log Operation Url 
[ThruWebServer]/REST/[version]/SystemLog/[operationId] Verb 
POST Required HTTP Headers 
Accept: (application/xml or application/json) Security Header 
Required Description 
Add new log operation based on the provided ThruPublicSystemLogOperation structure. Request Body 
ThruPublicSystemLogOperation object Return Data Object 
ThruPublicSystemLogOperation object with system log operation id Invocation Scenario(s) 
Add new system log data. Remarks
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 58 
6.9 Ticket Service 
6.9.1 POST New Ticket Url 
[ThruWebServer]/REST/[version]/Ticket Verb 
POST Required HTTP Headers 
Accept: (application/xml or application/json) Security Header 
Required Description 
Send ticket based on the provided information. Request Body 
ThruTicketInfo object Return Data Object 
None Invocation Scenario(s) 
Send email to reseller. Remarks 
6.10 User Service 
6.10.1 GET User Information Url 
[ThruWebServer]/REST/[version]/User/Info Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Security Header 
Required Description 
Get information about currently logged user. Request Body 
None Return Data Object 
ThruPublicUserInfo object Invocation Scenario(s) 
Get information about user. Remarks 
6.10.2 PUT New Password for the User Url 
[ThruWebServer]/REST/[version]/User/Password Verb 
PUT
Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 59 
Required HTTP Headers 
Accept: (application/xml or application/json) Security Header 
Required Description 
Set new password for the user. Request Body 
ThruPasswordInfo object Return Data Object 
None Invocation Scenario(s) 
Set new password. Remarks 
6.11 Server Version Service 
6.11.1 GET Information About Server Version Url 
[ThruWebServer]/REST/ServerVersion Verb 
GET Required HTTP Headers 
Accept: (application/xml or application/json) Description 
Gets information about version of Thru Server . Request Body 
None Return Data Object 
ThruServerVersion Structure object Invocation Scenario(s) 
Get version. Remarks 
Example: 
Server version 7.8.13.0.3.12312 
Return: 
Major: 7 
Minor: 8 
Buildnumber: 13 
Suffix: 0.3 
Revision: 12312
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7
Thru rest api_1_0_ref_1_7

Contenu connexe

Tendances (6)

Serverguide
ServerguideServerguide
Serverguide
 
Cert wc7425 7428_7435_supplementary_guide
Cert wc7425 7428_7435_supplementary_guideCert wc7425 7428_7435_supplementary_guide
Cert wc7425 7428_7435_supplementary_guide
 
Ubuntu server guide.2008
Ubuntu server guide.2008Ubuntu server guide.2008
Ubuntu server guide.2008
 
IPv6 Deployment Guide
IPv6 Deployment GuideIPv6 Deployment Guide
IPv6 Deployment Guide
 
Red hat enterprise_linux-5-installation_guide-en-us
Red hat enterprise_linux-5-installation_guide-en-usRed hat enterprise_linux-5-installation_guide-en-us
Red hat enterprise_linux-5-installation_guide-en-us
 
Guía de administración de Asterisk
Guía de administración de AsteriskGuía de administración de Asterisk
Guía de administración de Asterisk
 

En vedette (6)

XML Bible
XML BibleXML Bible
XML Bible
 
B vb script11
B vb script11B vb script11
B vb script11
 
Bdc Screens
Bdc ScreensBdc Screens
Bdc Screens
 
CMIS and Interoperability - AIIM 2009
CMIS and Interoperability - AIIM 2009CMIS and Interoperability - AIIM 2009
CMIS and Interoperability - AIIM 2009
 
5060 A 01 Demonstration Steps
5060 A 01 Demonstration Steps5060 A 01 Demonstration Steps
5060 A 01 Demonstration Steps
 
Winlogilap.
Winlogilap.Winlogilap.
Winlogilap.
 

Similaire à Thru rest api_1_0_ref_1_7

Groove 2007 Users Guide
Groove 2007 Users GuideGroove 2007 Users Guide
Groove 2007 Users Guide
guestf45b3e
 
Oracle Web Conferencing - Release 2.0.4
Oracle Web Conferencing - Release 2.0.4Oracle Web Conferencing - Release 2.0.4
Oracle Web Conferencing - Release 2.0.4
Mehul Sanghavi
 
Informatica installation guide
Informatica installation guideInformatica installation guide
Informatica installation guide
cbosepandian
 
Introduction to system_administration
Introduction to system_administrationIntroduction to system_administration
Introduction to system_administration
meoconhs2612
 
Oracle forms and resports
Oracle forms and resportsOracle forms and resports
Oracle forms and resports
pawansharma1986
 

Similaire à Thru rest api_1_0_ref_1_7 (20)

02.12.2012 ubuntu 12.1 server guide
02.12.2012 ubuntu 12.1 server guide02.12.2012 ubuntu 12.1 server guide
02.12.2012 ubuntu 12.1 server guide
 
SharePoint Workflows Kit by Virto – installation and user guide
SharePoint Workflows Kit by Virto – installation and user guideSharePoint Workflows Kit by Virto – installation and user guide
SharePoint Workflows Kit by Virto – installation and user guide
 
Groove 2007 Users Guide
Groove 2007 Users GuideGroove 2007 Users Guide
Groove 2007 Users Guide
 
red_hat_enterprise_linux-7-system_administrators_guide-en-us.pdf
red_hat_enterprise_linux-7-system_administrators_guide-en-us.pdfred_hat_enterprise_linux-7-system_administrators_guide-en-us.pdf
red_hat_enterprise_linux-7-system_administrators_guide-en-us.pdf
 
Administrator guide
Administrator guideAdministrator guide
Administrator guide
 
Load balancing VMware Horizon View Deployment Handbuch
Load balancing VMware Horizon View Deployment HandbuchLoad balancing VMware Horizon View Deployment Handbuch
Load balancing VMware Horizon View Deployment Handbuch
 
Oracle Web Conferencing - Release 2.0.4
Oracle Web Conferencing - Release 2.0.4Oracle Web Conferencing - Release 2.0.4
Oracle Web Conferencing - Release 2.0.4
 
Informatica installation guide
Informatica installation guideInformatica installation guide
Informatica installation guide
 
Installing and conf guide for hp sm connector
Installing and conf guide for hp sm connectorInstalling and conf guide for hp sm connector
Installing and conf guide for hp sm connector
 
Coherence developer's guide
Coherence developer's guideCoherence developer's guide
Coherence developer's guide
 
Teamviewer manual by PW
Teamviewer manual by PWTeamviewer manual by PW
Teamviewer manual by PW
 
Admin
AdminAdmin
Admin
 
B28654oas10g best pracitice
B28654oas10g best praciticeB28654oas10g best pracitice
B28654oas10g best pracitice
 
Progress OpenEdge database administration guide and reference
Progress OpenEdge database administration guide and referenceProgress OpenEdge database administration guide and reference
Progress OpenEdge database administration guide and reference
 
Introduction to system_administration
Introduction to system_administrationIntroduction to system_administration
Introduction to system_administration
 
Oracle forms and resports
Oracle forms and resportsOracle forms and resports
Oracle forms and resports
 
B12303
B12303B12303
B12303
 
Rhel Tuningand Optimizationfor Oracle V11
Rhel Tuningand Optimizationfor Oracle V11Rhel Tuningand Optimizationfor Oracle V11
Rhel Tuningand Optimizationfor Oracle V11
 
Physical exercise web application documentation
Physical exercise web application documentationPhysical exercise web application documentation
Physical exercise web application documentation
 
Oracl apps api usages
Oracl apps api usagesOracl apps api usages
Oracl apps api usages
 

Thru rest api_1_0_ref_1_7

  • 1. Thru REST API 1.0 / Reference 1.7 www.thruinc.com | © 2014 Thru, Inc. All rights reserved Thru REST API Version 1.0 Programming Reference Version 1.7 PROGRAMMING REFERENCE
  • 2. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 2 Table of Contents Table of Contents .......................................................................................................................................................... 2 1 General .................................................................................................................................................................. 5 2 Overview ................................................................................................................................................................ 6 2.1 Web Service REST Design ............................................................................................................................ 6 2.2 Versioning ...................................................................................................................................................... 7 3 Thru REST Services API Security ....................................................................................................................... 8 3.1 Access Signature (HTTP Header) ................................................................................................................. 8 4 Exception Handling .............................................................................................................................................. 9 4.1 Error Response .............................................................................................................................................. 9 4.1.1 Error Data Transfer Object ........................................................................................................................ 9 4.2 Error Codes .................................................................................................................................................... 9 5 Web Service Data Specifications ...................................................................................................................... 10 5.1 API Data Types ............................................................................................................................................ 10 5.2 API Complex Data Constructions ................................................................................................................ 10 5.3 Session Resources ...................................................................................................................................... 10 5.3.1 ThruSessionRequest Structure ............................................................................................................... 10 5.3.2 ThruPublicSession Structure ................................................................................................................... 11 5.4 File System Resources ................................................................................................................................ 12 5.4.1 ThruPublicFolderInfo Structure ................................................................................................................ 12 5.4.2 ThruPublicFileInfo Structure .................................................................................................................... 14 5.4.3 ThruPublicContentResult Structure ......................................................................................................... 16 5.5 Message Resources .................................................................................................................................... 17 5.5.1 ThruPublicMessageInfo Structure ........................................................................................................... 17 5.5.2 ThruPublicMessagesListResult Structure ............................................................................................... 20 5.5.3 ThruPublicMessageRecipientInfo ............................................................................................................ 21 5.6 Search Resources ....................................................................................................................................... 22 5.6.1 ThruPublicSearchCriteria Structure ......................................................................................................... 22 5.7 Server Resources ........................................................................................................................................ 24 5.7.1 ThruPublicServerInfo Structure ............................................................................................................... 24 5.7.2 ThruMessageSettings Structure .............................................................................................................. 24 5.7.3 ThruPasswordSettings Structure ............................................................................................................. 26 5.7.4 ThruUploadSettings Structure ................................................................................................................. 27 5.7.5 ThruMobileSettings .................................................................................................................................. 29 5.8 System Log Resources ................................................................................................................................ 29 5.8.1 ThruPublicSystemLogOperation.............................................................................................................. 29 5.9 Ticket Resource ........................................................................................................................................... 30 5.9.1 ThruTicketInfo Structure .......................................................................................................................... 30 5.10 User Resources ........................................................................................................................................... 31 5.10.1 ThruPublicUserInfo Structure .............................................................................................................. 31 5.10.2 ThruPasswordInfo Structure ............................................................................................................... 33
  • 3. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 3 5.11 Service Resources ....................................................................................................................................... 33 5.11.1 ThruServiceVersion Structure ............................................................................................................. 33 5.11.2 ThruServiceVersionsResult Structure ................................................................................................. 34 5.12 Server Version Resources ........................................................................................................................... 35 5.12.1 ThruServerVersion Structure .............................................................................................................. 35 6 Web Services ...................................................................................................................................................... 37 6.1 Authentication Service ................................................................................................................................. 37 6.1.1 POST New Session Object ..................................................................................................................... 37 6.1.2 DELETE Existing Session Object ............................................................................................................ 37 6.1.3 CHECK Existing Session Object ............................................................................................................. 37 6.2 File System Service ..................................................................................................................................... 38 6.2.1 POST New Folder Information ................................................................................................................ 38 6.2.2 GET Existing Folder Information ............................................................................................................. 38 6.2.3 PUT Updated Folder Information ............................................................................................................. 39 6.2.4 DELETE Existing Folder .......................................................................................................................... 39 6.2.5 GET Home Folder Information ................................................................................................................ 40 6.2.6 GET List of Files and Folders Inside a Home Folder .............................................................................. 40 6.2.7 GET List of Files Inside a Home Folder .................................................................................................. 41 6.2.8 GET List of Folders Inside a Home Folder ............................................................................................. 41 6.2.9 GET Root Folder Information .................................................................................................................. 41 6.2.10 GET List of Files and Folders Inside a Root Folder ............................................................................ 42 6.2.11 GET List of Files Inside a Root Folder ................................................................................................ 42 6.2.12 GET List of Folders Inside a Root Folder ............................................................................................ 42 6.2.13 GET List of Files and Folders Inside a Folder ..................................................................................... 43 6.2.14 GET List of Files Inside a Folder ......................................................................................................... 43 6.2.15 GET List of Folders Inside a Folder .................................................................................................... 44 6.2.16 GET Existing File Information ............................................................................................................. 44 6.2.17 PUT Updated File Information ............................................................................................................. 44 6.2.18 DELETE Existing File .......................................................................................................................... 45 6.3 Message Service ......................................................................................................................................... 46 6.3.1 POST New Thru Message ....................................................................................................................... 46 6.3.2 GET Existing Thru Message .................................................................................................................... 47 6.3.3 DELETE Existing Thru Message ............................................................................................................. 47 6.3.4 PUT Updated Thru Message ................................................................................................................... 48 6.3.5 PUT Discard Thru Message .................................................................................................................... 49 6.3.6 PUT Complete Thru Message ................................................................................................................. 49 6.3.7 GET SentThru List ................................................................................................................................... 49 6.3.8 POST Project Message Storage ............................................................................................................. 50 6.4 Search Service ............................................................................................................................................. 50 6.4.1 POST Find All Thru Files and Folders by Search Criteria ....................................................................... 50 6.4.2 POST Find All Thru Folders by Search Criteria ...................................................................................... 51 6.4.3 POST Find All Thru Files by Search Criteria ........................................................................................... 51 6.5 Server Service ............................................................................................................................................. 52 6.5.1 GET Server Information ........................................................................................................................... 52 6.5.2 GET Message Settings ............................................................................................................................ 52 6.5.3 GET Password Settings .......................................................................................................................... 52 6.5.4 GET Upload Settings ............................................................................................................................... 53 6.5.5 GET Mobile settings ................................................................................................................................ 53 6.6 Favorites Service ......................................................................................................................................... 53 6.6.1 PUT Folder to Favorites .......................................................................................................................... 53 6.6.2 DELETE Folder from Favorites ............................................................................................................... 54 6.6.3 PUT File to Favorites ............................................................................................................................... 54 6.6.4 DELETE File from Favorites .................................................................................................................... 54
  • 4. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 4 6.6.5 GET All Content in Favorites ................................................................................................................... 56 6.6.6 GET Files in Favorites ............................................................................................................................. 56 6.6.7 GET Folders in Favorites ......................................................................................................................... 56 6.7 Service Versions Service ............................................................................................................................. 57 6.7.1 GET Information about Service Versions ................................................................................................ 57 6.8 System Log Service ..................................................................................................................................... 57 6.8.1 POST System Log Operation .................................................................................................................. 57 6.9 Ticket Service............................................................................................................................................... 58 6.9.1 POST New Ticket .................................................................................................................................... 58 6.10 User Service................................................................................................................................................. 58 6.10.1 GET User Information ......................................................................................................................... 58 6.10.2 PUT New Password for the User ........................................................................................................ 58 6.11 Server Version Service ................................................................................................................................ 59 6.11.1 GET Information About Server Version............................................................................................... 59 7 Programmatic File and Folder Transfers. ........................................................................................................ 60 7.1 Downloading. ............................................................................................................................................... 60 7.2 Uploading Files and Folders via basic protocol (deprecated) ...................................................................... 61 7.3 Uploading of files via Extended File Upload/Download Protocol ................................................................. 62 8 File Transfer User Interface Tools .................................................................................................................... 63 8.1 Upload Java/HTML5/HTML4 Tool and API ................................................................................................. 63 8.1.1 Overview .................................................................................................................................................. 63 8.1.2 Security Token ......................................................................................................................................... 63 8.1.3 Upload Tool URL Parameters, option with no Security Token. ............................................................... 64 8.1.4 Upload Tool URL Parameters, option with Security Token. .................................................................... 65 8.1.5 Server Error Codes .................................................................................................................................. 65 8.1.6 JavaScript Samples ................................................................................................................................. 66 8.1.7 URL Samples ........................................................................................................................................... 67 8.2 Java/HTML Download Tool and API ............................................................................................................ 68 8.2.1 Overview .................................................................................................................................................. 68 8.2.2 Security Token ......................................................................................................................................... 68 8.2.3 Download Tool URL Parameters, option with no Security Token ........................................................... 69 8.2.4 Download Tool URL Parameters, option with Security Token ................................................................ 69 8.2.5 Server Error Codes .................................................................................................................................. 71 8.2.6 JavaScript Samples ................................................................................................................................. 71 8.2.7 URL Sample ............................................................................................................................................ 72 Appendix A – Error Codes returned by RESTAPI .................................................................................................... 73 About Trademarks and Abbreviations ...................................................................................................................... 76
  • 5. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 5 1 General THE PURPOSE OF THIS DOCUMENT IS TO DESCRIBE THRU WEB SERVICES API, ITS PUBLIC ENDPOINTS, DATA SPECIFICATIONS AND ARCHITECTURE. THE DOCUMENT ALSO REVIEWS THE SECURITY, AUTHENTICATION AND SIDE BY SIDE VERSIONING. WS API IMPLEMENTATION UTILIZES ASP.NET MVC REST SDK WHICH PROVIDES AUTOMATIC SERIALIZATION TO AND FROM THE SERVICE DATA OBJECTS. THIS REFERENCE GUIDE DESCRIBES AND SUMMARIZES THE THRU REST API. THIS DOCUMENT HAS BEEN PREPARED SOLELY FOR INFORMATIONAL PURPOSES AND IS BEING FURNISHED FOR USE BY CUSTOMERS. DISTRIBUTION OF THIS DOCUMENT IS LIMITED TO CUSTOMERS. THE REFERENCE GUIDE AND ALL INFORMATION CONTAINED HEREIN ARE OF A CONFIDENTIAL NATURE. EACH RECIPIENT WILL TREAT IT IN A CONFIDENTIAL MANNER. SUCH RECIPIENT WILL, NOT DIRECTLY OR INDIRECTLY, DISCLOSE OR PERMIT ITS AGENTS, REPRESENTATIVES, EMPLOYEES, OFFICERS, DIRECTORS OR AFFILIATES TO DISCLOSE ANY SUCH INFORMATION AND SUCH RECIPIENT WILL USE THE DOCUMENT AND ANY RELATED INFORMATION ONLY TO ACCESS THE THRU SERVICE. IF EITHER THE RECIPIENT OR THE COMPANY ELECTS NOT TO PURSUE OR CONTINUE WITH THE THRU SERVICE, THE RECIPIENT MUST RETURN THIS DOCUMENT AND ANY OTHER MATERIAL RELATING TO THE THRU. SERVICE AND THRU, LLC., WITHOUT RETAINING ANY COPIES THEREOF. THE INFORMATION CONTAINED HEREIN IS PROVIDED ON A CONFIDENTIAL BASIS AND MAY NOT BE REPRODUCED IN WHOLE OR IN PART. IF YOU REQUIRE ANY MORE INFORMATION REGARDING THE THRU SERVICE PLEASE CONTACT: THRU. HELP CENTER HELPCENTER@THRUINC.COM 800.871. 9316
  • 6. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 6 2 Overview 2.1 Web Service REST Design The Thru REST Services API adheres to the following points of the REST paradigm: • Interaction between client and server is semi-stateless (no connection is established, but session is used to authorize user) • The API leverages existing features of the HTTP protocol (URL, headers, request body), not requiring any special messaging protocol/library (SOAP or RPC) • Platform-independence (client can be running on any operating system) • Language-independence (client can be developed in any language of preference) • Request body should be present in application/x-www-form-urlencoded format serialized as a standard query string: a=1&b=2&c=3&d=4&e=5 The standard HTTP header Accept is used to define a data format that will be provided for client in Response. The currently supported formats are: o Accept: application/xml o Accept: application/json • Response data are not bound to a specific format (e.g.: SOAP receives and returns data always in XML). Though the standard data exchange format used in REST architectures (as well as in the Thru API) is XML, the Thru API also supports JSON and, in fact, can be expanded to support other formats in the future. The exchanged data format is determined by the standard HTTP headers Content-Type. The currently supported formats: o Content-Type:application/xml o Content-Type:application/json • API endpoints are designed around resources (e.g.: files, messages) that are identified by uniform URIs. For instance, all API endpoints built for dealing with file system objects start with the same URI https://[ThruWebServer]/REST/[version]/FileSystem. The type of action to be performed on the resource is designated by passing standard HTTP verbs: o GET (Retrieve resource/resources) o POST (Create a new resource) o PUT (Update an existing resource) o DELETE (Delete an existing resource)
  • 7. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 7 2.2 Versioning To support changes in the API signature, without breaking existing clients, the Thru REST Services API supports side-by-side versioning. Different versions of the same endpoints can be made available using different URIs, based on the version number. For instance, if the Thru REST Service API has two versions (1.0 and 1.1), we have two sets of the File URIs: Version 1.0: http://[ThruWebServer]/REST/1.0/FileSystem/File Version 1.1: http://[thruWebServer]/REST/1.1/FileSystem/File
  • 8. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 8 3 Thru REST Services API Security 3.1 Access Signature (HTTP Header) Access to the Thru REST API is secured through the usage of session identifier provided as part of the request header. This session identifier should be received from the Authenticator service (see below). All interactions with Thru REST Services API should take place over HTTPS. However some actions that do not require security mechanisms should be available over HTTP. Also session identifier allows the API to identify the caller and enforce the necessary access rules to the invoked endpoint. Note: Not all endpoints require authenticated access. If an endpoint does require authenticated access, the client needs to pass session ID in the Authorization request header: • Authorization: SessionID
  • 9. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 9 4 Exception Handling In case of error, besides returning the standard HTTP Server error code (500), the Thru REST Services API endpoints will return more detailed information about the error in a structured format as part of response body. 4.1 Error Response 4.1.1 Error Data Transfer Object Item Name Data Type Sample Value Comments Message String “Invalid File ID: 12345” Describes the type of error, indicating (when possible) which input value(s) could have caused the error ErrorCode Integer 7001 A numeric code that identifies the type of error Sample response(in XML) <ErrorInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Message>Session no longer exists.</Message> <ErrorCode>101</ErrorCode> </ErrorInfo> 4.2 Error Codes Each type of error generated by the Thru REST Services API has its own numeric code, which is returned in the ErrorCode field of the ErrorInfo object. The codes can be used to determine client course of action. For the actual error codes, check Appendix A.
  • 10. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 10 5 Web Service Data Specifications 5.1 API Data Types The following primitive data types are used by the Thru REST Services API:  String: Sequence of characters in UTF-8 encoding. Empty string is used to represent a non-initialized string value  Integer: 32-bit integer number. Empty value indicates NULL-value  Long: 64-bit integer number. Empty value indicates NULL-value  Boolean: Boolean value. Possible values: True, False. Empty value indicates NULL-value  DateTime: Represents an instant in time, expressed as a date and time of day. In Thru REST services API, Empty value indicates NULL-value. DateTime is represented as a JSON string in following format /Date(ticks)/, where ticks represents the number of milliseconds since January 1, 1970 in Universal Coordinated Time (UTC). Example: “/Date(1337174868623)/”. 5.2 API Complex Data Constructions The following complex data constructions are used by the Thru REST Services API:  Collection<T>: A collection of objects of the same type. The following XML formatting is used to pass any collection between client and server: 5.3 Session Resources 5.3.1 ThruSessionRequest Structure ThruSessionRequest structure contains information required for the Thru user authentication. Item Name Data Type Sample Value Comments UserName String Test Username of the user in the system Password String Password Password of the user ApplicationId String 12 Application ID through which is sign-in ClientVersion String 1 Version of the client application Sample XML <FileNames> <String>Name #1</String> <String>Another Name</String> </FileNames> Corresponding Object Collection<string> FileNames;
  • 11. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 11 Sample Request UserName=Test&Password=Password&ClientVersion=1&ApplicationId=12 Sample Response Data Transfer Object public class ThruSessionRequest { public string UserName public string Password public string ApplicationId public string ClientVersion } 5.3.2 ThruPublicSession Structure ThruPublicSession structure contains authorization information about user. Item Name Data Type Sample Value Comments SessionID String TOjoy3c1LyReUsXqXX/7u3+0qv FYXGArgsZ1k0OEGhIfwB2cd365+SCM8Rs5 JOLPMD/IJJSd2Jy7IXLl5t685kgRJo0Tr bup/VDN+25Lkenh387d4pXJzObepqO qusnnsA4de+5r4PHfdN0 9niJtsoSOjWZ6XlEN Unique identification value required for user authorization UserID Integer 315KQM487N2EV Unique identification number of the user associated with SessionID value Sample <?xml version="1.0" encoding="utf-8"?> <ThruPublicSession xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SessionId>PKJEkiY2UHPRyWrY3s9pmpk34iTkNSdFoNBD04jUojajM9qJXUwQULllv1R4+Olqhe5fYRo8qHk+qDzaMOqkv4YAPX4jI6i5E4Il1+qbwl2QJ/OXfEr4MczMSXMFJIgQu5Ed5eani kXAvIo9mzipP3hPh/LJSwWs </SessionId> <UserId>1Q1OBQWVHTROE</UserId> </ThruPublicSession> Data Transfer Object
  • 12. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 12 public class ThruPublicSession { public string SessionID; public int UserID; } 5.4 File System Resources 5.4.1 ThruPublicFolderInfo Structure ThruPublicFolderInfo structure contains information about folder in Thru file system. Item Name Data Type Sample Value Comments FolderID Integer 0QN8H2VKTGIWE Unique identification number for the folder in Thru file system ParentFolderID Integer 11ETULS0966VI Unique identification number of the parent folder for the file in Thru file system. Root folder contains NULL as a value of ParentFolderID field Name String Admin Name of the folder Path String FOLDERS/HOME/Admin Path to the folder in folder tree Description String Description of the folder Tags Collection<String> Collection of keywords associated with the current folder Size Long 2450294218 Size of the folder EffectivePermission Integer 254 Permissions that describe the rights of the current authenticated user over the folder. Each right is linked with the corresponding bit of the EffectivePermission field value in a binary code: None = 0x00 Show = 0x01 Read = 0x02 Create = 0x04 Download = 0x08 Distribute = 0x010 Manage = 0x020 Modify = 0x040 Delete = 0x080 For example, full control over a folder is equal to the EffectivePermission value of 0x00FF
  • 13. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 13 DateCreated DateTime /Date(1337174868623)/ Date and time when file has been created in Thru file system (UTC) DateModified DateTime /Date(1337174868623)/ Date and time when file last has been updated (UTC) CreatedByUserID Integer 1Q1OBQWVHTROE Unique identification number of the user that has added file to Thru file system ModifiedByUserID Integer 1Q1OBQWVHTROE Unique identification number of the user that last accessed the file InFavorite Boolean false Indicates is folder marked as favorite FolderType Integer 0 0 – a regular folder 1 – root folder 2 – home folder 3 – a user’s “My Documents” folder 4 – a user’s drop box folder 5 – root folder for common folders/files 6 – root folder for home folders Sample XML <ThruPublicFolderInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <FolderId>0QN8H2VKTGIWE</FolderId> <ParentFolderId>11ETULS0966VI</ParentFolderId> <Name>Admin</Name> <Path>FOLDERS/HOME/Admin</Path> <Tags></Tags> <Size>2450294218</Size> <EffectivePermission>254</EffectivePermission> <DateCreated>/Date(1337174868623)/</DateCreated> <DateModified>/Date(1337174868623)/</DateModified> <CreatedByUserId>1Q1OBQWVHTROE</CreatedByUserId> <ModifiedByUserId>1Q1OBQWVHTROE</ModifiedByUserId> <InFavorite>false</InFavorite> <FolderType>0</FolderType> </ThruPublicFolderInfo> Data Transfer Object public class ThruPublicFolderInfo { public string FolderId public string ParentFolderId
  • 14. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 14 public string Name public string Description public string Path public string[] Tags public long? Size public int? EffectivePermission public ThruServerDateTime DateCreated public ThruServerDateTime DateModified public string CreatedByUserId public string ModifiedByUserId public bool? InFavorite; public int? FolderType; } 5.4.2 ThruPublicFileInfo Structure ThruPublicFileInfo structure contains information about file in Thru file system. Item Name Data Type Sample Value Comments FileID Integer 2OMFYXLA6BP9D Unique identification number for the file in Thru file system ParentFolderID Integer 1UTXM50KW0ISP Unique identification number of the parent folder for the file in Thru file system Name String 2.html Name of the file Description String Description of the file Path FOLDERS/HOME/Admin/ My Documents/2.html Path to the file in folder tree Tags Collection<String> Collection of keywords associated with the current folder Size Long 198 Size of the file EffectivePermission Integer 254 Permissions that describe the rights of the current authenticated user over the file. Each right is linked with the corresponding bit of the EffectivePermission field value in a binary code: None = 0x00 Show = 0x01 Read = 0x02 Create = 0x04 Download = 0x08 Distribute = 0x010
  • 15. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 15 Manage = 0x020 Modify = 0x040 Delete = 0x080 DateCreated DateTime /Date(1346072694480)/ Date and time when file has been created in Thru file system (UTC) DateModified DateTime /Date(1346072694480)/ Date and time when file last has been updated (UTC) CreatedByUserID Integer 1Q1OBQWVHTROE Unique identification number of the user that has added file to Thru file system ModifiedByUserID Integer 1Q1OBQWVHTROE Unique identification number of the user that last accessed the file IsQuarantined Boolean false Indicates is file has been quarantined InFavorite Boolean false Indicates is file marked as favorite Sample XML <?xml version="1.0" encoding="utf-8" ?> <ThruPublicFileInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <FileId>2OMFYXLA6BP9D</FileId> <ParentFolderId>1UTXM50KW0ISP</ParentFolderId> <Name>2.html</Name> <Path>FOLDERS/HOME/Admin/My Documents/2.html</Path> <Tags></Tags> <Size>198</Size> <EffectivePermission>254</EffectivePermission> <DateCreated>/Date(1346072694480)/</DateCreated> <DateModified>/Date(1346072694480)/</DateModified> <CreatedByUserId>1Q1OBQWVHTROE</CreatedByUserId> <ModifiedByUserId>1Q1OBQWVHTROE</ModifiedByUserId> <IsQuarantined>false</IsQuarantined> <InFavorite>false</InFavorite> </ThruPublicFileInfo> Data Transfer Object public class ThruPublicFileInfo { public string FileId; public string ParentFolderId; public string Name; public string Description; public string Path;
  • 16. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 16 public string[] Tags; public long? Size; public int? EffectivePermission; public ThruServerDateTime DateCreated; public ThruServerDateTime DateModified; public string CreatedByUserId; public string ModifiedByUserId; public bool? IsQuarantined; public bool? InFavorite; } 5.4.3 ThruPublicContentResult Structure ThruPublicContentResult structure contains information about the content of the Thru folder. Item Name Data Type Sample Value Comments Files Collection< ThruPublicFileInfo > Collection of file information structures Folders Collection<ThruPublicFolderInfo > Collection of folder information structures Sample XML <?xml version="1.0" encoding="utf-8" ?> <ThruPublicContentResult xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Folders> <ThruPublicFolderInfo> <FolderId>16LTFSCFLMF01</FolderId> <ParentFolderId>1UTXM50KW0ISP</ParentFolderId> <Name>test</Name> <Path>FOLDERS/HOME/Admin/My Documents/test</Path> <Tags></Tags> <Size>470968940</Size> <ChildFoldersCount>1</ChildFoldersCount> <ChildFilesCount>4</ChildFilesCount> <EffectivePermission>254</EffectivePermission> <DateCreated>/Date(1348146557730)/</DateCreated> <DateModified>/Date(1348146557730)/</DateModified> <CreatedByUserId>1Q1OBQWVHTROE</CreatedByUserId> <ModifiedByUserId>1Q1OBQWVHTROE</ModifiedByUserId> <InFavorite>false</InFavorite> <FolderType>0</FolderType> </ThruPublicFolderInfo> </Folders>
  • 17. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 17 <Files> <ThruPublicFileInfo> <FileId>2OMFYXLA6BP9D</FileId> <ParentFolderId>1UTXM50KW0ISP</ParentFolderId> <Name>2.html</Name> <Path>FOLDERS/HOME/Admin/My Documents/2.html</Path> <Tags></Tags> <Size>198</Size> <EffectivePermission>254</EffectivePermission> <DateCreated>/Date(1346072694480)/</DateCreated> <DateModified>/Date(1346072694480)/</DateModified> <CreatedByUserId>1Q1OBQWVHTROE</CreatedByUserId> <ModifiedByUserId>1Q1OBQWVHTROE</ModifiedByUserId> <IsQuarantined>false</IsQuarantined> <InFavorite>false</InFavorite> </ThruPublicFileInfo> </Files> </ThruPublicContentResult> Data Transfer Object public class ThruPublicContentResult { public ThruPublicFolderInfo[] Folders; public ThruPublicFileInfo[] Files; } 5.5 Message Resources 5.5.1 ThruPublicMessageInfo Structure ThruPublicMessageInfo structure contains information about Thru message. Item Name Data Type Sample Value Comments MessageID Integer 1HPHF1D8FF8S0 Unique identification number of the message UserID Integer 1Q1OBQWVHTROE Unique identification number of the user that is creator of message Subject String test Subject of the message DateCreated DateTime /Date(1337611985780)/ Date and time when the message has been created (UTC) DateSent DateTime /Date(1337611985780)/ Date and time when the message has been sent
  • 18. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 18 (UTC) DateExpired DateTime /Date(1357070340000)/ Date and time after which message is concerned as expired (UTC) CollectedFlag Boolean True Indicates does message were read at least by one of recipients PublicMessage String Public text Text of the private part of the message PrivateMessage String Private text Text of the public part of the message TrackingNo String T478-026-95732-36971 Number over the message is registered in Thru RequestLogin Boolean false Flag that indicate is the message request login for access by recipient SendByClient Boolean false Flag that indicate is the message was sent through the Thru Site or application. NotifyFlag Boolean false Flag that indicate is the notifications must be sent. Priority Integer 3 1 - High 2 - Low 3 - Normal IsExpired Boolean False Flag indicate is the message is expired ExpireNow Boolean False MsgHtmlTemplate String Html template over a message will be created MsgTextTemplate String Text template over a message will be created ToRecipients Collection <ThruPublicMessageRecipientInfo> List of recipient email addresses CcRecipients Collection <ThruPublicMessageRecipientInfo> List of Cc recipients BccRecipients Collection <ThruPublicMessageRecipientInfo> List of Bcc recipients FoldersAttached Collection<ThruPublicFolderInfo > Collection of Folder identifiers
  • 19. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 19 FilesAttached Collection<ThruPublicFolderInfo > Collection of File identifiers Sample XML <ThruPublicMessageInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <MessageId>0A2POFJY8EB8Q</MessageId> <UserId>1Q1OBQWVHTROE</UserId> <Subject>subject</Subject> <DateCreated>/Date(1352205302890)/</DateCreated> <DateSent></DateSent> <DateExpired>/Date(1353069302683)/</DateExpired> <CollectedFlag>false</CollectedFlag> <PublicMessage>body public</PublicMessage> <PrivateMessage>body private</PrivateMessage> <TrackingNo>T478-026-61916-68489</TrackingNo> <RequestLogin>false</RequestLogin> <SendByClient>true</SendByClient> <NotifyFlag>true</NotifyFlag> <Priority>3</Priority> <IsExpired>false</IsExpired> <ExpireNow>false</ExpireNow> <MsgHtmlTemplate>&lt;!DOCTYPE HTML PUBLIC &quot; -/W3C//DTD HTML 4.01 Transitional//EN&quot;&gt; &lt;html&gt; &lt;body&gt; &lt;span&gt;&lt;br/&gt; &lt;thru:bodyToken/&gt; &lt;/span&gt&lt;/body&gt; &lt;/html&gt;</MsgHtmlTemplate> <MsgTextTemplate> This email includes secure access to files. <thru:bodyToken/> </MsgTextTemplate> <ToRecipients> <ThruPublicMessageRecipientInfo> <MsgId>0A2POFJY8EB8Q</MsgId> <RecipientId>0MS5JFHL8E7N5</RecipientId> <RecipientEmail>gimpels@actimind.com</RecipientEmail> <Collected>false</Collected> </ThruPublicMessageRecipientInfo> </ToRecipients> <CcRecipients></CcRecipients> <BccRecipients></BccRecipients> <FoldersAttached></FoldersAttached> <FilesAttached></FilesAttached> </ThruPublicMessageInfo> Data Transfer Object
  • 20. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 20 public class ThruPublicMessageInfo { public string MessageId public string UserId public string Subject public ThruServerDateTime DateCreated public ThruServerDateTime DateSent public ThruServerDateTime DateExpired public bool? CollectedFlag public string PublicMessage public string PrivateMessage public string TrackingNo public bool? RequestLogin public bool? SendByClient public bool? NotifyFlag public int? Priority public bool? IsExpired public bool? ExpireNow public string MsgHtmlTemplate public string MsgTextTemplate public ThruPublicMessageRecipientInfo[] ToRecipients public ThruPublicMessageRecipientInfo[] CcRecipients public ThruPublicMessageRecipientInfo[] BccRecipients public ThruPublicFolderInfo[] FoldersAttached public ThruPublicFileInfo[] FilesAttached } 5.5.2 ThruPublicMessagesListResult Structure ThruPublicMessagesListResult structure contains collection of Thru messages. Item Name Data Type Sample Value Comments Messages Collection<ThruPublicMessageInfo > Collection of Messages Sample XML <ThruPublicMessagesListResult xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Messages> <ThruPublicMessageInfo> <MessageId>1R6NE5OZ8QHXA</MessageId> <UserId>1Q1OBQWVHTROE</UserId> <Subject>qsdasdfasd</Subject> <DateCreated>/Date(1337718371363)/</DateCreated> <DateSent>/Date(1337718371363)/</DateSent>
  • 21. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 21 <DateExpired>/Date(1337975940000)/</DateExpired> <CollectedFlag>true</CollectedFlag> <PublicMessage></PublicMessage> <PrivateMessage></PrivateMessage> <TrackingNo>T478-026-14576-91611</TrackingNo> <RequestLogin>false</RequestLogin> <SendByClient>false</SendByClient> <NotifyFlag>false</NotifyFlag> <Priority>3</Priority> <IsExpired>true</IsExpired> <ExpireNow>false</ExpireNow> <ToRecipients> <ThruPublicMessageRecipientInfo> <MsgId>1R6NE5OZ8QHXA</MsgId> <RecipientId>2MIMZFR1K0471</RecipientId> <RecipientEmail>dmitriy.babkin@actimind.com</RecipientEmail> <Collected>true</Collected> </ThruPublicMessageRecipientInfo> </ToRecipients> <CcRecipients></CcRecipients> <BccRecipients></BccRecipients> <FoldersAttached></FoldersAttached> <FilesAttached></FilesAttached> </ThruPublicMessageInfo> </Messages> </ThruPublicMessagesListResult> Data Transfer Object public class ThruPublicMessagesListResult { public ThruPublicMessageInfo[] Messages } 5.5.3 ThruPublicMessageRecipientInfo ThruPublicMessageRecipientInfo structure contains information about recipient of Thru message. Item Name Data Type Sample Value Comments MsgId String 1R6NE5OZ8QHXA Unique identification number of the Thru message RecipientId String 2MIMZFR1K0471 Unique identification number of Recipient RecipientEmail String test.test@test.com Recipient e-mail
  • 22. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 22 Collected Boolean true Indicates does message were read by recipient MsgRecipientLevelPublicID String Unique identification number of recipient level Sample XML <ThruPublicMessageRecipientInfo> <MsgId>1R6NE5OZ8QHXA</MsgId> <RecipientId>2MIMZFR1K0471</RecipientId> <RecipientEmail>test.test@test.com</RecipientEmail> <Collected>true</Collected> <MsgRecipientLevelPublicID>true</MsgRecipientLevelPublicID> </ThruPublicMessageRecipientInfo> Data Transfer Object public class ThruPublicMessageRecipientInfo { public string MsgId public string RecipientId public string RecipientEmail public bool? Collected public string MsgRecipientLevelPublicID } 5.6 Search Resources 5.6.1 ThruPublicSearchCriteria Structure ThruPublicSearchCriteria structure contains criteria for the search over Thru files and folders. Item Name Data Type Sample Value Comments FolderID Integer 0QN8H2VKTGIWE Indicates the folder from which to start the search NameCriteria String * String representing the search criteria for the name of Thru file system object NameCriteriaMatchAll Boolean True Indicates whether all criteria passed in NameCriteria field should be matched DescriptionCriteria String * String representing the search criteria for the description of Thru file system object DescriptionCriteriaMatchAll Boolean True Indicates whether all criteria passed in DescriptionCriteria field should be matched
  • 23. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 23 KeywordCriteria String 12* String representing the search criteria for the keywords of Thru file system object KeywordCriteriaMatchAll Boolean True Indicates whether all criteria passed in KeywordCriteria field should be matched LastModifiedByUsers Collection<String> Collection of user unique identifiers DateLastModifiedStart DateTime Date and time when Thru file system object has been modified. Start of Range (UTC) DateLastModifiedEnd DateTime Date and time when Thru file system object has been modified. End of Range (UTC) Recursive Boolean True Enable/disable recursive search over folder tree Sample folderId=0QN8H2VKTGIWE&NameCriteria=*& NameCriteriaMatchAll=true&DescriptionCriteria=*& DescriptionCriteriaMatchAll=true&KeywordCriteria=12*& KeywordCriteriaMatchAll=true&LastModifiedByUsers=& DateLastModifiedStart=&DateLastModifiedEnd=&Recursive=true Data Transfer Object public class ThruPublicSearchCriteria { public string FolderId public string NameCriteria public bool NameCriteriaMatchAll public string DescriptionCriteria public bool DescriptionCriteriaMatchAll public string KeywordCriteria public bool KeywordCriteriaMatchAll public string[] LastModifiedByUsers public ThruServerDateTime DateLastModifiedStart public ThruServerDateTime DateLastModifiedEnd public bool Recursive }
  • 24. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 24 5.7 Server Resources 5.7.1 ThruPublicServerInfo Structure ThruPublicServerInfo structure contains information about the configuration of server and its health status. Item Name Data Type Sample Value Comments SiteID Integer 14RD6GNEUV4ZV Identifier of the current site Name String test.example.com Pretty name of the current site Title String Thru Site name Title of the site Welcome String Welcome ‘Welcome’ text of the site Enabled Boolean True Indicate is the site enabled Sample <ThruPublicServerInfo xmlns:xsd=http://www.w3.org/2001/XMLSchema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SiteId>14RD6GNEUV4ZV</SiteId> <Name>test.example.com</Name> <Title>Thru Site name</Title> <Welcome>Thru is a secure and safe application you can use to store, organize and distribute your files. Your username determines your ability to view, download and upload files.</Welcome> <Enabled>true</Enabled> </ThruPublicServerInfo> Data Transfer Object public class ThruPublicServerInfo { public string SiteId public string Name public string Title public string Welcome public bool Enabled } 5.7.2 ThruMessageSettings Structure ThruMessageSettings structure contains information about the configuration of Thru messages. Item Name Data Type Sample Value Comments SeparateEmailsLimit Integer 1000 For tracking purposes, the system creates separate emails per recipient if the message requires a link to Thru server and request login
  • 25. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 25 is turned off. This parameter prevents massive email generation. SmtpServerRecipientLimit Integer 0 If your SMTP server has a limit, and the limit is entered here, Thru Server will block messages which exceed the limit. If the limit is NOT entered here, and a message exceeds recipient limit, SMTP server will send the message with a partial recipient list and the user will get an error message. MsgRequestLoginType Integer 3 1 - Never (No registration for external download) 2 - Always (external download always requires registration) 3 – User Choice (request login is turned off by default but the user can turn it on when sending a message) MsgRequestloginUserChoiceDefault Boolean False If request recipient login is 'User Choice' - turn on request login as default value for a new message. ExpiredMsgNotificationEnabled Boolean True Enable expired message notification WebUseMsgPwdInsteadOfRequestLogin Boolean false On the web interface, use message password instead of recipient login. This option only allowed if Request recipient login' is 'Never'. DefaultExpirationIntervalDays Integer 10 Default expiration interval in Days AllowSetAfterDefaultExpirationInterval Boolean False Allow to specify the message expiration interval larger than default Sample XML <ThruMessageSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SeparateEmailsLimit>1000</SeparateEmailsLimit> <SmtpServerRecipientLimit>0</SmtpServerRecipientLimit> <MsgRequestLoginType>3</MsgRequestLoginType> <MsgRequestloginUserChoiceDefault>false</MsgRequestloginUserChoiceDefault> <ExpiredMsgNotificationEnabled>true</ExpiredMsgNotificationEnabled> <WebUseMsgPwdInsteadOfRequestLogin>false</WebUseMsgPwdInsteadOfRequestLogin> <PrivateMessageNotificationEnabled>false</PrivateMessageNotificationEnabled> <DefaultExpirationIntervalDays>10</DefaultExpirationIntervalDays> <AllowSetAfterDefaultExpirationInterval>false</AllowSetAfterDefaultExpirationInterval> </ThruMessageSettings> Data Transfer Object public class ThruMessageSettings { public int SeparateEmailsLimit
  • 26. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 26 public int SmtpServerRecipientLimit public int MsgRequestLoginType public bool MsgRequestloginUserChoiceDefault public bool ExpiredMsgNotificationEnabled public bool WebUseMsgPwdInsteadOfRequestLogin public bool PrivateMessageNotificationEnabled public int DefaultExpirationIntervalDays public bool AllowSetAfterDefaultExpirationInterval } 5.7.3 ThruPasswordSettings Structure ThruPasswordSettings structure contains information about configuration of the password strength, expiration and lockout policies. Item Name Data Type Sample Value Comments AutomaticExpiration Boolean True Enable/Disable automatic password expiration ExpirationDays Integer 10 Expiration days ExpirationWarningNotificationDays Integer 0 Send expiration warning notification – warning days AutomaticLoginLockout Boolean True Enable/Disable automatic login lockout MaxLoginAttempts Integer 5 Max login attempts LockoutDurationSeconds Integer 20 Lockout duration seconds BlockPreviousPasswords Boolean False Do not allow reuse of previous passwords PreviousPasswordCount Integer 3 Number of previous passwords to check MinimumPasswordLength Integer 6 Minimum password length RequireSpecialCharacter Boolean False At least one special character required RequireLetter Boolean False At least one letter required RequireDigit Boolean False At least one digit required RequireUppercaseLetter Boolean False At least one uppercase letter required RequireLowercaseLetter Boolean False At least one lowercase letter required Sample XML <ThruPasswordSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <AutomaticExpiration>true</AutomaticExpiration>
  • 27. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 27 <ExpirationDays>10</ExpirationDays> <ExpirationWarningNotificationDays>0</ExpirationWarningNotificationDays> <AutomaticLoginLockout>true</AutomaticLoginLockout> <MaxLoginAttempts>5</MaxLoginAttempts> <LockoutDurationSeconds>20</LockoutDurationSeconds> <BlockPreviousPasswords>false</BlockPreviousPasswords> <PreviousPasswordCount>3</PreviousPasswordCount> <MinimumPasswordLength>6</MinimumPasswordLength> <RequireSpecialCharacter>false</RequireSpecialCharacter> <RequireLetter>false</RequireLetter> <RequireDigit>false</RequireDigit> <RequireUppercaseLetter>false</RequireUppercaseLetter> <RequireLowercaseLetter>false</RequireLowercaseLetter> </ThruPasswordSettings> Data Transfer Object public class ThruPasswordSettings { public bool? AutomaticExpiration public int? ExpirationDays public int? ExpirationWarningNotificationDays public bool? AutomaticLoginLockout public int? MaxLoginAttempts public int? LockoutDurationSeconds public bool? BlockPreviousPasswords public int? PreviousPasswordCount public int? MinimumPasswordLength public bool? RequireSpecialCharacter public bool? RequireLetter public bool? RequireDigit public bool? RequireUppercaseLetter public bool? RequireLowercaseLetter } 5.7.4 ThruUploadSettings Structure ThruUploadSettings structure contains information of upload settings. Item Name Data Type Sample Value Comments UploadAppletBatchMaxCount Integer 0 The maximum number of files uploaded in batch by the applet to the server in a single HTTP request. To indicate that there is no limit, use the value 0. UploadAppletChunkCount Integer 20 The maximum number of chunks to divide a file to be uploaded by the applet, before we start
  • 28. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 28 increasing the chunk size from the minimum size. UploadAppletChunkMaxSizeMb Integer 100 The maximum size (in Megabytes) of a file chunk uploaded by the applet to the server. UploadAppletChunkMinSizeMb Integer 60 The minimum size (in Megabytes) of a file chunk uploaded by the applet to the server. UploadAppletDeleteOnCancelDefault Boolean False Indicates whether the default behavior for the applet on an upload cancellation is to delete partially uploaded files. UploadAppletDeleteOnCancelEnabled Boolean True Indicates whether the user can opt on the behavior for the applet on an upload cancellation. If true, user can opt; false, otherwise. UploadAppletZippingEnabled Boolean False UploadAppletZippingMinFileSizeKb Integer 10 Sample XML <ThruUploadSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <UploadAppletBatchMaxCount>0</UploadAppletBatchMaxCount> <UploadAppletChunkCount>20</UploadAppletChunkCount> <UploadAppletChunkMaxSizeMb>100</UploadAppletChunkMaxSizeMb> <UploadAppletChunkMinSizeMb>60</UploadAppletChunkMinSizeMb> <UploadAppletDeleteOnCancelDefault>false</UploadAppletDeleteOnCancelDefault> <UploadAppletDeleteOnCancelEnabled>true</UploadAppletDeleteOnCancelEnabled> <UploadAppletZippingEnabled>false</UploadAppletZippingEnabled> <UploadAppletZippingMinFileSizeKb>10</UploadAppletZippingMinFileSizeKb> </ThruUploadSettings> Data Transfer Object public class ThruUploadSettings { public int UploadAppletBatchMaxCount public int UploadAppletChunkCount public int UploadAppletChunkMaxSizeMb public int UploadAppletChunkMinSizeMb public bool UploadAppletDeleteOnCancelDefault public bool UploadAppletDeleteOnCancelEnabled public bool UploadAppletZippingEnabled public int UploadAppletZippingMinFileSizeKb }
  • 29. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 29 5.7.5 ThruMobileSettings ThruMobileSettings structure contains information of mobile application settings. Item Name Data Type Sample Value Comments SessionRecheckIntervalSeconds Integer 60 EnableOpenInAnotherApplication Boolean True LocalSessionOfflineLifetimeSeconds Integer 180 MobilePolicyUpdateIntervalSeconds Integer 300 Sample XML <ThruMobileSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SessionRecheckIntervalSeconds>60</SessionRecheckIntervalSeconds> <EnableOpenInAnotherApplication>true</EnableOpenInAnotherApplication> <LocalSessionOfflineLifetimeSeconds>180</LocalSessionOfflineLifetimeSeconds> <MobilePolicyUpdateIntervalSeconds>300</MobilePolicyUpdateIntervalSeconds> </ThruMobileSettings> Data Transfer Object public class ThruMobileSettings { public int SessionRecheckIntervalSeconds public bool EnableOpenInAnotherApplication public int LocalSessionOfflineLifetimeSeconds public int MobilePolicyUpdateIntervalSeconds } 5.8 System Log Resources 5.8.1 ThruPublicSystemLogOperation ThruPublicSystemLogOperation structure contains information operation that will be logged in Thru. Item Name Data Type Sample Value Comments LogOperationId String Operation Id that is assigned for request operation OperationType Integer MobileOpenFileInExternalApplication = 0x4000000 FolderId String Identifier of the folder in Thru file system FileId String Identifier of the file in Thru file system MobileReceiverAppName String Mobile application name
  • 30. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 30 Sample Request: OperationType=67108864&FileId=30FZAAT6ULN30&MobileReceiverAppName=test Response: <ThruPublicSystemLogOperation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <LogOperationId>1UEVYEHGF7GVW</LogOperationId> <OperationType>67108864</OperationType> <FileId>30FZAAT6ULN30</FileId> <MobileReceiverAppName>test</MobileReceiverAppName> </ThruPublicSystemLogOperation> Data Transfer Object public class ThruPublicSystemLogOperation { public string LogOperationId public int OperationType public string FolderId public string FileId public string MobileReceiverAppName } 5.9 Ticket Resource 5.9.1 ThruTicketInfo Structure ThruTicketInfo structure contains email fields Item Name Data Type Sample Value Comments Subject String Subject Subject text Body String Message Body text Sample Subject=test&Body=message Data Transfer Object public class ThruTicketInfo { public string Subject public string Body }
  • 31. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 31 5.10 User Resources 5.10.1 ThruPublicUserInfo Structure ThruPublicUserInfo structure contains information about user of Thru. Item Name Data Type Sample Value Comments UserId String 1Q1OBQWVHTROE Identifier of user in Thru Name String admin User name that is used for sign-in in Thru DomainUsername String If user is in domain, this field represent it domain name FirstName String Ad User’s first name LastName String Test User’s last name FullName String Ad Test User’s full name Email String devnull@test.com User’s e-mail address Phone String User’s phone number CompanyName String Company name Role Integer 5 User’s role on Thru: None = 0, Guest = 1, Recipient = 2, Member = 3, Manager = 4, Administrator = 5, System = 6 DateCreated DateTime /Date(1337174868567)/ User’s date create (UTC) DateModified DateTime /Date(1351871161613)/ User’s last date modify (UTC) CreatedByUserId String Identifier of the user that is create the specified user ModifiedByUserId String 2T5LRH8F1R2QK Identifier of the user that is modify the specified user DateLastPasswordChanged DateTime /Date(1343838136630)/ The date of the last password modification PasswordNeverExpires Boolean True Flag indicate is the user password is never expires Sample XML
  • 32. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 32 <ThruPublicUserInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <UserId>1Q1OBQWVHTROE</UserId> <Name>admin</Name> <FirstName>Ad</FirstName> <LastName>3</LastName> <FullName>Ad 3</FullName> <Email>devnull@actimind.com</Email> <Phone></Phone> <CompanyName></CompanyName> <Role>5</Role> <DateCreated>/Date(1337174868567)/</DateCreated> <DateModified>/Date(1351871161613)/</DateModified> <ModifiedByUserId>2T5LRH8F1R2QK</ModifiedByUserId> <DateLastPasswordChanged>/Date(1343838136630)/</DateLastPasswordChanged> <PasswordNeverExpires>true</PasswordNeverExpires> </ThruPublicUserInfo> Data Transfer Object public class ThruPublicUserInfo { public string UserId public string Name public string DomainUsername public string FirstName public string LastName public string FullName public string Email public string Phone public string CompanyName public int Role public ThruServerDateTime DateCreated public ThruServerDateTime DateModified public string CreatedByUserId public string ModifiedByUserId public ThruServerDateTime DateLastPasswordChanged public bool PasswordNeverExpires }
  • 33. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 33 5.10.2 ThruPasswordInfo Structure ThruPasswordInfo structure contains information that is required for password change. Item Name Data Type Sample Value Comments OldPassword String password Current user password NewPassword String _password1 New password that is required to set ConfirmPassword String _password1 Confirmation of the New password field Sample OldPassword=password&NewPassword=_password1&ConfirmPassword=_password1 Data Transfer Object public class ThruPasswordInfo { public string OldPassword public string NewPassword public string ConfirmPassword } 5.11 Service Resources 5.11.1 ThruServiceVersion Structure ThruServiceVersion structure contains information about versions of specific REST service in the ThruServer. Item Name Data Type Sample Value Comments ServiceName String FileSystem Service name SupportedVersions String 1.0 Service version Sample <ThruServiceVersion> <ServiceName>FileSystem</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> Data Transfer Object public class ThruServiceVersion { public string ServiceName
  • 34. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 34 public string[] SupportedVersions } 5.11.2 ThruServiceVersionsResult Structure ThruServiceVersionsResult structure contains information about versions of REST services in the ThruServer. Item Name Data Type Sample Value Comments ServiceVersions Collection<ThruServiceVersion > REST Services Sample <ThruServiceVersionsResult xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ServiceVersions> <ThruServiceVersion> <ServiceName>Authentication</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> <ThruServiceVersion> <ServiceName>FileSystem</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> <ThruServiceVersion> <ServiceName>Message</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> <ThruServiceVersion> <ServiceName>Search</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> <ThruServiceVersion> <ServiceName>Favorites</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion>
  • 35. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 35 <ThruServiceVersion> <ServiceName>Server</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> <ThruServiceVersion> <ServiceName>Ticket</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> <ThruServiceVersion> <ServiceName>SystemLog</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> <ThruServiceVersion> <ServiceName>User</ServiceName> <SupportedVersions> <string>1.0</string> </SupportedVersions> </ThruServiceVersion> </ServiceVersions> </ThruServiceVersionsResult> Data Transfer Object public class ThruServiceVersionsResult { public ThruServiceVersion[] ServiceVersions } 5.12 Server Version Resources 5.12.1 ThruServerVersion Structure ThruServerVersion structure contains information about version of ThruServer. Item Name Data Type Sample Value Comments Major Integer 7 Major version Minor Integer 8 Minor version Buildnumber Integer 23 Build number
  • 36. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 36 Suffix String 1.1.2 Suffix, addition version identificator. This field can be empty. Revision Integer 11234 Revision number Sample <ThruServerVersion> <Major>7</Major> <Minor>8</Minor> <Buildnumber>23</Buildnumber> <Suffix></Suffix> <Revision>12714</Revision> </ThruServerVersion> Data Transfer Object public class ThruServerVersion { public int Major {get, set; } public int Minor { get, set; } public int Buildnumber { get, set; } public string Suffix { get; set; } public int Revision {get, set; } }
  • 37. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 37 6 Web Services 6.1 Authentication Service 6.1.1 POST New Session Object Url [ThruWebServer]/REST/[version]/Session Verb POST Required HTTP Headers Accept: (application/xml or application/json), Device_UUID (any unique identifier for the client device is required) Description Verify user credentials and authenticate Thru user in the system Request Body ThruSessionRequest object Return Data Object ThruPublicSession object Invocation Scenario(s) Verify customer credentials Authenticate customer Remarks Example request: UserName=admin&Password=adminadmin& ClientVersion=1&ApplicationId=12 6.1.2 DELETE Existing Session Object Url [ThruWebServer]/REST/[version]/Session Verb DELETE Required HTTP Headers Accept: (application/xml or application/json) Description Logs out Thru customer from the system. Request Body None Return Data Object None Invocation Scenario(s) Expire session object Logs out customer from the system Remarks 6.1.3 CHECK Existing Session Object Url [ThruWebServer]/REST/[version]/Session Verb GET Required HTTP Headers Accept: (application/xml or application/json)
  • 38. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 38 Description Check if customer is authenticated. Request Body None Return Data Object None Invocation Scenario(s) Check session object Remarks 6.2 File System Service 6.2.1 POST New Folder Information Url [ThruWebServer]/REST/[version]/FileSystem/Folder Verb POST Required HTTP Headers Accept: (application/xml or application/json) Description Creates a new folder in Thru file system Request Body ThruPublicFolderInfo object Return Data Object Updated ThruPublicFolderInfo object Invocation Scenario(s) Create a new folder Remarks Example request: Name=New+Folder&ParentFolderId=1UTXM50KW0ISP& Description=Description&Tags%5B%5D=567&Tags%5B%5D=897 6.2.2 GET Existing Folder Information Url [ThruWebServer]/REST/[version]/FileSystem/Folder/[FolderId] Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a folder information based on the provided ID Request Body None Return Data Object ThruPublicFolderInfo object Invocation Scenario(s) Get a folder information in order to fulfill it Remarks All returned dates are in UTC.
  • 39. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 39 6.2.3 PUT Updated Folder Information Url [ThruWebServer]/REST/[version]/FileSystem/Folder/[FolderId] Verb PUT Required HTTP Headers Accept: (application/xml or application/json) Content-Type: (application/xml or application/json) Description Updates folder information based on the provided information. Information should be passed in the body as a serialized representation of the ThruPublicFolderInfo DTO. Request Body ThruPublicFolderInfo object Return Data Object Updated ThruPublicFolderInfo object Invocation Scenario(s) Renaming folder Move folder and its content to another folder Remarks Value of the FolderID field in the posted ThruPublicFileInfo DTO should reference to the existing and non-deleted folder. Otherwise, exception will be thrown . Not all properties of ThruPublicFolderInfo can be modified: Name ParentFolderID Description Keywords The following properties should not be provided; if provided, their values will be ignored: FolderID EffectivePermission DateCreated DateModified CreatedByUserID ModifiedByUserID Exception will be thrown in case current user doesn’t have a right to do such modifications ModifiedByUserID field of the folder will be updated if the statement succeeds After successful processing of the command updated ThruPublicFolderInfo object will be returned Example request: folderId=3V45C8UTHL0A3&Name=&ParentFolderId=& Description=New+Description&Tags%5B%5D= 6.2.4 DELETE Existing Folder Url [ThruWebServer]/REST/[version]/FileSystem/Folder/[FolderId] Verb DELETE
  • 40. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 40 Required HTTP Headers Accept: (application/xml or application/json) Description Deletes folder and its content based on the provided information. No additional data should be passed on the request body Request Body None Return Data Object None Invocation Scenario(s) Mark folder and all underlying files and folders as deleted Remarks The folder could be restored later by administrator based on the Thru server configuration 6.2.5 GET Home Folder Information Url [ThruWebServer]/REST/[version]/FileSystem/Home Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a home folder information of the authenticated user Request Body None Return Data Object ThruPublicFolderInfo object Invocation Scenario(s) Get a home folder information of the authenticated user Remarks All returned dates are in UTC. 6.2.6 GET List of Files and Folders Inside a Home Folder Url [ThruWebServer]/REST/[version]/FileSystem/Home/Content Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a collection of file and folder information structures based on the home folder information of the authenticated user. Request Body None Return Data Object ThruPublicContentResult object Invocation Scenario(s) Get a full content of the folder Remarks
  • 41. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 41 6.2.7 GET List of Files Inside a Home Folder Url [ThruWebServer]/REST/[version]/FileSystem/Home/Content/Files Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a collection of file information structures based on the home folder information of the authenticated user. Request Body None Return Data Object ThruPublicContentResult object Invocation Scenario(s) Get files in the folder Remarks 6.2.8 GET List of Folders Inside a Home Folder Url [ThruWebServer]/REST/[version]/FileSystem/Home/Content/Folders Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a collection of folder information structures based on the home folder information of the authenticated user. Request Body None Return Data Object ThruPublicContentResult object Invocation Scenario(s) Get folders in the folder Remarks 6.2.9 GET Root Folder Information Url [ThruWebServer]/REST/[version]/FileSystem/Root Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a root folder information of the authenticated user Request Body None
  • 42. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 42 Return Data Object ThruPublicFolderInfo object Invocation Scenario(s) Get information of the root folder Remarks All returned dates are in UTC. 6.2.10 GET List of Files and Folders Inside a Root Folder Url [ThruWebServer]/REST/[version]/FileSystem/Root/Content Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a collection of file and folder information structures based on the root folder information of the authenticated user. Request Body None Return Data Object ThruPublicContentResult object Invocation Scenario(s) Get a full content of the folder Remarks 6.2.11 GET List of Files Inside a Root Folder Url [ThruWebServer]/REST/[version]/FileSystem/Root/Content/Files Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a collection of file information structures based on the root folder information of the authenticated user. Request Body None Return Data Object ThruPublicContentResult object Invocation Scenario(s) Get files in the folder Remarks 6.2.12 GET List of Folders Inside a Root Folder Url [ThruWebServer]/REST/[version]/FileSystem/Root/Content/Folders
  • 43. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 43 Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a collection of folder information structures based on the root folder information of the authenticated user. Request Body None Return Data Object ThruPublicContentResult object Invocation Scenario(s) Get folders in the folder Remarks 6.2.13 GET List of Files and Folders Inside a Folder Url [ThruWebServer]/REST/[version]/FileSystem/Folder/[FolderId]/Content Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a collection of file and folder information structures based on the provided parent folder ID. Request Body None Return Data Object ThruPublicContentResult object Invocation Scenario(s) Get a full content of the folder Remarks 6.2.14 GET List of Files Inside a Folder Url [ThruWebServer]/REST/[version]/FileSystem/Folder/[folderId]/Content/Files Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a collection of file information structures based on the provided parent folder ID. Request Body None Return Data Object ThruPublicContentResult object Invocation Scenario(s) Get files in the folder
  • 44. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 44 Remarks 6.2.15 GET List of Folders Inside a Folder Url [ThruWebServer]/REST/[version]/FileSystem/ Folder/[folderId]/Content/Folders Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a collection of folder information structures based on the provided parent folder ID. Request Body None Return Data Object ThruPublicContentResult object Invocation Scenario(s) Get folders in the folder Remarks 6.2.16 GET Existing File Information Url [ThruWebServer]/REST/[version]/FileSystem/File/[FileId] Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a file information based on the provided ID Request Body None Return Data Object ThruPublicFileInfo object Invocation Scenario(s) Get a file information in order to fulfill it Remarks All returned dates are in UTC. 6.2.17 PUT Updated File Information Url [ThruWebServer]/REST/[version]/FileSystem/File/[FileId] Verb PUT Required HTTP Headers Accept: (application/xml or application/json) Description Updates file information based on the provided information. Information should be passed in
  • 45. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 45 the body as a serialized representation of the ThruPublicFileInfo DTO Request Body ThruPublicFileInfo object Return Data Object Updated ThruPublicFileInfo object Invocation Scenario(s) Renaming file Move file to another folder Remarks Value of the FileID field in the posted ThruPublicFileInfo DTO should reference to the existing, non-deleted, non-quarantined file. Otherwise, exception will be thrown Not all properties of ThruPublicFileInfo can be modified: Name ParentFolderID Description Keywords ParentFolderID The following properties should not be provided; if provided, their values will be ignored: Size DateCreated DateModified CreatedByUserID ModifiedByUserID IsQuarantined ModifiedByUserID field of the file will be updated if the statement succeeded After successful processing of the command updated ThruPublicFileInfo object will be returned 6.2.18 DELETE Existing File Url [ThruWebServer]/REST/[version]/FileSystem/File/[FileId] Verb DELETE Required HTTP Headers Accept: (application/xml or application/json) Description Deletes file based on the provided information. No additional data should be passed on the request body. Request Body None
  • 46. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 46 Return Data Object None Invocation Scenario(s) Mark file whose ID is specified in URL as deleted Remarks Possibly later this file can be restored by administrator based on the Thru server configuration 6.3 Message Service 6.3.1 POST New Thru Message Url [ThruWebServer]/REST/[version]/Message Verb POST Required HTTP Headers Accept: (application/xml or application/json) Description Creates Thru message according to ThruPublicMessageInfo structure passed in HTTP request Request Body ThruPublicMessageInfo object Return Data Object Updated ThruPublicMessageInfo object Invocation Scenario(s) Send one or more files and folders to recipients Send private message to recipients Remarks ToRecipients, CcRecipients, BccRecipients fields in ThruPublicMessageInfo should be present in request as a string array. These fields will bind to required structure on server side. DateExpired must be converted to UTC. Example POST parameters: BccRecipients[]=Bcctest@test.com BccRecipients[]=Bcctest2@test.com CcRecipients[]=CcTest@test.com CcRecipients[]=CcTest2@test.com DateExpired= FilesAttached[]= FoldersAttached[]= NotifyFlag= Priority=3 PrivateMessage=body private PublicMessage=body public RequestLogin=false SendByClient=true Subject=subject ToRecipients[]=ToTest@test.com ToRecipients[]=ToTest2@test.com UserPassword= 1 To-recipient should be provided at least.
  • 47. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 47 DateExpired must be converted to UTC. If SendByClient is true, after calling this method the client must: 1. send email notification and call the REST method ‘completeMessage‘ which sets message’s DateSent. 2. Or call the REST method ‘discardMessage’ to cancel the creation of ‘distribution’ object on the server. Created by this method message will be deleted on the server. The returned ThruPublicMessageInfo contains ‘MsgHtmlTemplate’ parameter which must be parsed by the client. The token <thru:bodyToken/> must be replaced with the public message. The token <thru:passwordToken/> (if exists) must be replaced with the field MsgRecipientLevelPublicID of the first To recipient. 6.3.2 GET Existing Thru Message Url [ThruWebServer]/REST/[version]/Message/[MessageId] Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves message information based on the provided ID. Request Body None Return Data Object ThruPublicMessageInfo object Invocation Scenario(s) Get a message in the Thru server Remarks All returned dates are in UTC. 6.3.3 DELETE Existing Thru Message Url [ThruWebServer]/REST/[version]/Message/[MessageId] Verb DELETE Required HTTP Headers Accept: (application/xml or application/json) Description Deletes message based on the provided information. No additional data should be passed on the request body. Request Body None Return Data Object None Invocation Scenario(s) Mark message whose ID is specified in URL as deleted Remarks
  • 48. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 48 6.3.4 PUT Updated Thru Message Url [ThruWebServer]/REST/[version]/Message/[MessageId] Verb PUT Required HTTP Headers Accept: (application/xml or application/json) Content-Type: (application/xml or application/json) Description Updates message information based on the provided information. Information should be passed in the body as a serialized representation of the ThruPublicMessageInfo DTO Request Body ThruPublicMessageInfo object Return Data Object Updated ThruPublicMessageInfo object Invocation Scenario(s) Delete attached folders Delete attached files Delete recipients from the To, Cc, Bcc Change expired date Expire message now Remarks Value of the MessageID field in the posted ThruPublicMessageInfo DTO should reference to the existing, non-deleted message. Otherwise, exception will be thrown. Not all properties of ThruPublicMessageInfo can be modified: DateExpired ExpireNow ToRecipients, CcRecipients, BccRecipients FoldersAttached, FilesAttached DateExpired must be converted to UTC. Recipients to delete must be provided in ToRecipients field. They will be deleted from To, Cc and Bcc lists. If provided, the values of the following fields are ignored: Subject Priority PublicMessage PrivateMessage CollectedFlag RequestLogin SendByClient DateCreated DateSent After successful processing of the command updated ThruPublicFileInfo object will be returned.
  • 49. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 49 6.3.5 PUT Discard Thru Message Url [ThruWebServer]/REST/[version]/Message/Discard/[MessageId] Verb PUT Required HTTP Headers Accept: (application/xml or application/json) Description Discard message based on the provided information. No additional data should be passed on the request body. Request Body None Return Data Object None Invocation Scenario(s) Mark message that’s ID is specified in URL as deleted Remarks This method can be called only after the method ‘New Thru message’ is called 6.3.6 PUT Complete Thru Message Url [ThruWebServer]/REST/[version]/Message/Complete/[MessageId] Verb PUT Required HTTP Headers Accept: (application/xml or application/json) Description Complete message based on the provided information. No additional data should be passed on the request body. Request Body None Return Data Object ThruPublicMessageInfo object Invocation Scenario(s) Mark message that’s ID is specified in URL as completed. Remarks This method can be called only after the method ‘New Thru message’ is called 6.3.7 GET SentThru List Url [ThruWebServer]/REST/[version]/Message/Content/[skip]/[take] Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Get list of the sent messages. Attachments are not included in returned data object. Request Body None Return Data Object ThruPublicMessageInfo object Invocation Scenario(s) Search over all Thru messages available for the current authenticated user.
  • 50. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 50 Attachments are not included in result, use GET Existing Thru Message. Optional: 1. Skip custom number of messages. 2. Take custom number of messages. Remarks 6.3.8 POST Project Message Storage Url [ThruWebServer]/REST/[version]/Message/Storage/[type] Verb POST Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a folder information of the message storage. Request Body “Subject”: <subject> in case of Type is set “Days”. Current version of this method supports only one type=‘Days.’ Return Data Object ThruPublicMessageInfo object Invocation Scenario(s) Find or if not exist create folder for message storage. Optional: type of the folder name. Remarks 6.4 Search Service 6.4.1 POST Find All Thru Files and Folders by Search Criteria Url [ThruWebServer]/REST/[version]/Search/[Skip]/[Take] Verb POST Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a collection of folder and file structures based on the provided search criteria structure. Request Body ThruPublicSearchCriteria object Return Data Object ThruPublicContentResult object Invocation Scenario(s) Search over all Thru files and folders available to the current authenticated user. Remarks NameCriteria, DescriptionCriteria, KeywordCriteria are automatically wrapped by the ‘*’ if not contains it as part of criteria. For ex: “text” -> “*text*”, but “tex*t” -> “tex*t”
  • 51. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 51 6.4.2 POST Find All Thru Folders by Search Criteria Url [ThruWebServer]/REST/[version]/Search/Folders/[Skip]/[Take] Verb POST Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a collection of folder structures based on provided search criteria structure. Request Body ThruPublicSearchCriteria object Return Data Object ThruPublicContentResult object Invocation Scenario(s) Search over all Thru folders available to the current authenticated user. Remarks ThruPublicContentResult always contain null for ThruPublicFileInfo NameCriteria, DescriptionCriteria, KeywordCriteria are automatically wrapped by the ‘*’ if not contains it as part of criteria. For ex: “text” -> “*text*”, but “tex*t” -> “tex*t” 6.4.3 POST Find All Thru Files by Search Criteria Url [ThruWebServer]/REST/[version]/Search/Files/[Skip]/[Take] Verb POST Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a collection of files structures based on the provided search criteria structure. Request Body ThruPublicSearchCriteria object Return Data Object ThruPublicContentResult object Invocation Scenario(s) Search over all Thru files available to the current authenticated user. Remarks ThruPublicContentResult always contain null for ThruPublicFolderInfo NameCriteria, DescriptionCriteria, KeywordCriteria are automatically wrapped by the ‘*’ if not contains it as part of criteria. For ex: “text” -> “*text*”, but “tex*t” -> “tex*t”
  • 52. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 52 6.5 Server Service 6.5.1 GET Server Information Url [ThruWebServer]/REST/[version]/Server/Info Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves information about current server. Request Body None Return Data Object ThruPublicServerInfo object Invocation Scenario(s) Get file information in order to fulfill it. Remarks 6.5.2 GET Message Settings Url [ThruWebServer]/REST/[version]/Server/MessageSettings Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves information about message settings in the server. Request Body None Return Data Object ThruMessageSettings object Invocation Scenario(s) Get information about message settings in order to fulfill it. Remarks 6.5.3 GET Password Settings Url [ThruWebServer]/REST/[version]/Server/PasswordSettings Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves information about password settings in the server Request Body None Return Data Object ThruPasswordSettings object
  • 53. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 53 Invocation Scenario(s) Get information about password settings in order to fulfill it. Remarks 6.5.4 GET Upload Settings Url [ThruWebServer]/REST/[version]/Server/UploadSettings Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves information about upload settings in the server. Request Body None Return Data Object ThruUploadSettings object Invocation Scenario(s) Get information about upload settings in the server. Remarks 6.5.5 GET Mobile settings Url [ThruWebServer]/REST/[version]/Server/MobileSettings Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves information about mobile settings in the server. Request Body None Return Data Object ThruMobileSettings object Invocation Scenario(s) Get information about mobile settings in the server. Remarks 6.6 Favorites Service 6.6.1 PUT Folder to Favorites Url [ThruWebServer]/REST/[version]/Favorites/Folder/[FolderId] Verb PUT Required HTTP Headers Accept: (application/xml or application/json) Description Add folder with the specified id to favorites.
  • 54. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 54 Request Body None Return Data Object None Invocation Scenario(s) Mark folder whose ID is specified in URL as favorite Remarks 6.6.2 DELETE Folder from Favorites Url [ThruWebServer]/REST/[version]/Favorites/Folder/[FolderId] Verb DELETE Required HTTP Headers Accept: (application/xml or application/json) Description Remove folder with the specified ID from favorites. Request Body None Return Data Object None Invocation Scenario(s) Remove folder whose ID is specified in URL from favorites Remarks 6.6.3 PUT File to Favorites Url [ThruWebServer]/REST/[version]/Favorites/File/[FileId] Verb PUT Required HTTP Headers Accept: (application/xml or application/json) Description Add file with the specified ID to favorites. Request Body None Return Data Object None Invocation Scenario(s) Mark file whose ID is specified in URL as favorite. Remarks 6.6.4 DELETE File from Favorites Url [ThruWebServer]/REST/[version]/Favorites/File/[FileId] Verb DELETE
  • 55. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 55 Required HTTP Headers Accept: (application/xml or application/json) Description Remove file with the specified ID from favorites. Request Body None Return Data Object None Invocation Scenario(s) Remove file whose ID is specified in URL from favorites. Remarks
  • 56. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 56 6.6.5 GET All Content in Favorites Url [ThruWebServer]/REST/[version]/Favorites/Content Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a collection of file and folder information structures marked as favorites. Result can be filtered by options. Request Body Return Data Object ThruPublicContentResult object Invocation Scenario(s) Get a full content in favorites. Get files in favorites. Get folders in favorites. Remarks 6.6.6 GET Files in Favorites Url [ThruWebServer]/REST/[version]/Favorites/Content/Files Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a collection of file information structures marked as favorites. Result can be filtered by options. Request Body Return Data Object ThruPublicContentResult object Invocation Scenario(s) Get files in favorites. Remarks 6.6.7 GET Folders in Favorites Url [ThruWebServer]/REST/[version]/Favorites/Content/Folders Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Retrieves a collection of folder information structures marked as favorites. Result can be filtered by options.
  • 57. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 57 Request Body Return Data Object ThruPublicContentResult object Invocation Scenario(s) Get folders in favorites. Remarks 6.7 Service Versions Service 6.7.1 GET Information about Service Versions Url [ThruWebServer]/REST/[version]/ServiceVersions Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Gets information about versions of REST services in the ThruServer . Request Body None Return Data Object ThruServiceVersion object Invocation Scenario(s) Get list of services and their versions. Remarks 6.8 System Log Service 6.8.1 POST System Log Operation Url [ThruWebServer]/REST/[version]/SystemLog/[operationId] Verb POST Required HTTP Headers Accept: (application/xml or application/json) Security Header Required Description Add new log operation based on the provided ThruPublicSystemLogOperation structure. Request Body ThruPublicSystemLogOperation object Return Data Object ThruPublicSystemLogOperation object with system log operation id Invocation Scenario(s) Add new system log data. Remarks
  • 58. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 58 6.9 Ticket Service 6.9.1 POST New Ticket Url [ThruWebServer]/REST/[version]/Ticket Verb POST Required HTTP Headers Accept: (application/xml or application/json) Security Header Required Description Send ticket based on the provided information. Request Body ThruTicketInfo object Return Data Object None Invocation Scenario(s) Send email to reseller. Remarks 6.10 User Service 6.10.1 GET User Information Url [ThruWebServer]/REST/[version]/User/Info Verb GET Required HTTP Headers Accept: (application/xml or application/json) Security Header Required Description Get information about currently logged user. Request Body None Return Data Object ThruPublicUserInfo object Invocation Scenario(s) Get information about user. Remarks 6.10.2 PUT New Password for the User Url [ThruWebServer]/REST/[version]/User/Password Verb PUT
  • 59. Thru REST API 1.0 / Reference 1.7 © 2014 Thru, Inc. All rights reserved | Page 59 Required HTTP Headers Accept: (application/xml or application/json) Security Header Required Description Set new password for the user. Request Body ThruPasswordInfo object Return Data Object None Invocation Scenario(s) Set new password. Remarks 6.11 Server Version Service 6.11.1 GET Information About Server Version Url [ThruWebServer]/REST/ServerVersion Verb GET Required HTTP Headers Accept: (application/xml or application/json) Description Gets information about version of Thru Server . Request Body None Return Data Object ThruServerVersion Structure object Invocation Scenario(s) Get version. Remarks Example: Server version 7.8.13.0.3.12312 Return: Major: 7 Minor: 8 Buildnumber: 13 Suffix: 0.3 Revision: 12312