Introduction
Introduction to iThenticate's API
To begin using the API, use your regular iThenticate administrator login details. The URL of the API resource is https://api.ithenticate.com/rpc. An example API client written in Perl is available as a guide and can be provided by your account representative. Numerous XML-RPC client libraries exist for various programming languages, providing a high-level interface for making XML-RPC requests.
API Constraints
API requests are throttled to 60 requests/second per account. A user’s account cannot have more than 1000 folders and 100 folder groups. All XML-RPC data must be UTF-8 encoded. All requests are made via the HTTP POST method, and connections must be made via SSL.
API Requests
Every API request must include a session id (sid) obtained by an initial “login” API request. The iThenticate API will request validation, but users should ensure client-side requests conform to the guidelines. Non-conforming requests may not return correct responses or errors.
API Responses
All responses include an api_status value, similar to HTTP status codes. Example values are 200 (successful response), 401 (unauthenticated session id), 403 (unauthorized access), 404 (resource not found), and 500 (request error).
Failed Responses
Responses can contain a list of errors, typically due to input data validation failures. Example of a failed login response with too short a password:
Below is an example of a response from a failed login method call where the password field was too short:
<struct> <member> <name>errors</name> <value> <struct> <member> <name>password</name> <value> <array><data> <value><string>Input must be at least 6 characters. You submitted 3</string></value> </data></array> </value> </member> </struct> </value> </member> <member> <name>api_status</name> <value><int>500</int></value> </member></struct>
These error messages may be localized based on the account’s language preferences.
Response Messages
Example of a successful response with a message:
<struct> <member> <name>sid</name> <value><string>374cfed6020ff134e36263e8c070a47aba50a757</string></value> </member>
<member> <name>messages</name> <value><array><data> <value><string>Folder Group Created</string></value> </data></array></value> </member>
<member> <name>api_status</name> <value><int>200</int></value> </member>
<member> <name>id</name> <value><int>109</int></value> </member></struct>
Error Processing
XML-RPC is an HTTP-based protocol, and thus any client applications must look at the HTTP status code before attempting to parse the XML response. iThenticate API requests return 200 HTTP status code unless there is a serious error that prevents processing of the request. For example, attempting to contact the API with an invalid XML-RPC endpoint URL will result in a HTTP status code 404. Malformed XML-RPC requests (e.g. invalid XML) will likely generate a 500 HTTP status code.
The iThenticate XML-RPC response will include an api_status element that indicates the success or failure of the API request. The api_status for normal successful methods will be 200. Although the api_status code is similar to canonical HTTP responses code, they should not be considered the same. Differences between values for api_status and standardized HTTP response codes in the HTTP may be subtle and the user should remember that HTTP status codes and api_status are separate entities and will almost always have different values for responses. Clients should check the HTTP response code before looking at the api_status value returned in the XML-RPC response.
An api_status code of 401 is returned for authorization failures. This can be due to invalid login credentials or a request coming from an IP address not authorized for API requests.
An api_status code of 403 indicates that the user does not have access to the requested resource
An api_status code of 404 indicates that an object id in the response does not exist or is invali
An api_status code of 500 indicates that the request was invalid in some way. This would typically be if the data passed in the XML-RPC request did not meet the requirements of the method. For example, not providing required elements in the XML-RPC request or submitting incorrectly formatted data.
Additional information about an error can be obtained by inspecting two additional elements other than the api_status element.
As described above, the XML-RPC response may include a messages element. This element may provide an overall reason for the failure, for example “Failed to log in”, or a specific failure condition not covered by the errors field.
The distinction between the errors and the messages elements may not be entirely clear to the end user. In the case where the documentation is unclear, the user is advised to discern the exact behavior of each element from the response given by the API web service itself.
Example of a response that includes an error condition with a explanation in the messages element:
Example of an error response:
<?xml version=”1.0” encoding=”utf-8”?><methodResponse> <params> <param>
<value> <struct> <member> <name>messages</name> <value> <array> <data>
<value> <string>Sorry, failed to log in.</string> </value> </data> </array></value> </member>
<member> <name>api_status</name>
<value> <int>401</int> </value> </member> </struct></value> </param></params></methodResponse>
The message list may contain more than one message. For example, in this case more detail is provided about the error condition:
<?xml version=”1.0” encoding=”utf-8”?><methodResponse> <params> <param> <value> <struct> <member> <name>messages</name> <value> <array> <data> <value> <string>Access denied from 127.0.0.1</string> </value> <value> <string>Sorry, failed to log in.</string> </value> </data> </array> </value> </member> <member> <name>api_status</name> <value> <int>401</int> </value> </member> </struct> </value> </param> </params></methodResponse>
iThenticate API requests require one or more parameters. For example, logging in requires two parameters: a username and a password. The errors element, if included in the XML-RPC response, will provide details about errors with these parameters. The errors element is an XML-RPC struct element with the keys being the names of the parameters, and the values an XML-RPC list of one or more messages related to that parameter. The messages element may also contain details about errors encountered during the login process.
An example of the login method above shows an XML-RPC response where an invalid password parameter was submitted.
The following example shows an XML-RPC response that includes two messages, One begins with a generic message saying login did not succeed, and another message gives the reason for the failed login attempt.
<?xml version=”1.0” encoding=”utf-8”?><methodResponse> <params> <param> <value> <struct>
<member> <name>messages</name> <value> <array> <data> <value> <string>Access denied from 127.0.0.1</string> </value>
<value> <string>Sorry, failed to log in.</string> </value> </data> </array> </value> </member>
<member> <name>status</name> <value> <int>401</int> </value> </member> </struct> </value> </param> </params></methodResponse>
Request and response parameters
Request parameter tables
Element | XML-RPC Data Type | Description | API Methods |
---|---|---|---|
sid | string |
Session identifier, 40 characters (a-z, 0-9) |
All except login |
username | string | The username | login |
password | string | The password | login |
name | string | The name of the folder that contains the submissions, maximum 200 characters |
group.add folder.add |
folder_group | string | The name of the folder group that contains the folder |
folder.add group.folders |
description | string | A description of the folder group | folder.add |
id | int | Id of the newly created element |
folder.get folder.trash user.drop document.get document.trash report.get group.get group.drop document_remove_from_index |
exclude_quotes | boolean | Exclude quotes from the folder or report |
folder.add report.get report.get_document |
exclude_biblo | boolean | Exclude the bibliography from the folder or report |
folder.add folder.put report.get |
exclude_phrases | boolean | Exclude phrases from the folder or report |
folder.add folder.put report.get |
exclude_small_matches* | boolean | Exclude small matches from the folder or report |
folder.add folder.put report.get |
exclude_by_percent | boolean | Set to true to exclude small matches by percent. Set to false to exclude small matches by word count. |
folder.add folder.put report.get |
exclude_percent | boolean | The percent that the small match would be to be excluded from the report (a value between 1 and 100) |
folder.add folder.put report.get |
exclude_word_count | boolean | The word count that the small match would be to be excluded from the report (a value between 1 and 1000) |
folder.add folder.put report.get |
exclude_abstract | boolean | Exclude the abstract from the folder or report |
folder.add folder.put |
exclude_methods | boolean | Exclude the methods and materials section from the folder or report |
folder.add folder.put |
shared_with | array of integers | Ids of users the folder is to be shared with | folder.sharing |
add_to_index | boolean | Adds the folder to the search index Required if the account has a private node | folder.add |
first_name | string | First name for a user, maximum 4096 characters | user.add |
last_name | string | Last name for a user, maximum 4096 characters | user.add |
timezone | int | Numeric timezone ID, defaults to 126 ‘America/Los_Angeles’. See the appendix for available timezones | user.add |
submit_to | int | 1=> ’Generate Report Only’ 2=> ’to Document Repository Only’ (private storage node required) 3=> ‘to Document Repository & Generate Report’ (private storage node required) | document.add |
uploads | array of arrays | An array of document data. Each array element contains an elements as follows: title, author_first, author_last, filename, upload | document.add |
title | string | The title of the document, maximum 256 characters | document.add |
author_first | string | The document author’s first name, maximum 200 characters | document.add |
author_last | string | The document author’s last name, maximum 200 characters | document.add |
upload | base64 | The base64-encoded document | document.add |
callback_url | string | A url which will be fetched with the document id when the report is generated. For asynchronous uploading. | document.add |
o | string | Order by parameter, accepts a folder, group, or user attribute to order the results by |
folder.list group.list user.list |
p | string | Specify which page of a pager results set to return |
folder.list group.list user.list |
r | string | Specify number of rows to return |
folder.list group.list user.list |
d | string | Reverse the sort order for a record list |
folder.list group.list user.list |
* If exclude_small_matches is true, then exclude_by_percent has to be set to either true or false (true if excluding by percent, false if excluding by word count). If exclude_by_percent is true, then exclude_percent must be set to the percentage value (between 1 and 100). If exclude_by_percent is false, then exclude_word_count must be set to the word count value (between 1 and 1000).
Response parameter table
Element | XML-RPC Data Type | Description | API Methods |
---|---|---|---|
sid | string | Session identifier, 40 characters (a-z, 0-9) | login |
api_status | int | 200: Success 500: Application error 401: Authentication failure 403: Authorization failure 404: Does not exist or has been deleted | all |
messages | array | List of one or more informational messages. These messages may or may not contain error conditions not listed in the errors field. | all |
errors | struct | List of one or more error messages. These are typically due to input data validation failures and thus associated with the specific input field, but may general in nature and require inspection of the messages field. | all |
response_timestamps | dateTime.iso8601 | An iso8601 XMLRPC field in UTC (with a ‘Z’ appended), returned only for responses that have a 200 api_status code. | all |
id | int | Id of the newly created element |
group.add folder.add document.add group.list group.folder user.add |
groups | array | An array of group elements | group.list |
group | struct | A struct of group element attributes id, name | all that return groups |
folders | array | An array of folder elements |
folder.list group.list |
folder | struct | A struct of folder element attributes id, name |
folder.get folder.list group.list |
pager | struct | Contains the following members: entries_per_page, total_entries, current_page | any that return a pager |
entries_per_page | int | Number of entries per pager page | any that return a pager |
total_entries | int | Total number of records returned by the pager element | any that return a pager |
current_page | int | Current page of result set | account.get |
account | struct | Contains members describing the account status | user.list |
users | array | An array of user elements |
user.list |
user | struct | A struct of user element attributes (id, email, first_name, last_name) |
user.list user.get |
report_url | A url to view the report which requires user authentication | report.get | |
view_only_url | array | A view only report url which expires in a set amount of time | report.get |
view_only_expires | array | The expiration time in minutes from the response_timestamp field at which the view_only_url expires. | report.get |
documents | int | An array of document structs. Each document struct has the following attributes: id, is_pending, author_first, author_last, uploaded_time, processed_time, percent_match, title, parts | document.get |
parts | int | An array of document part (section) structs. Each document part (section) struct has the following attributes: doc_id, score, words, folder, group, id, name | document.get |
doc_id | int | Document part (section) id | document.get |
max_percent_match | int | The largest source match percentage for the document | document.get |
score | array | Document part (section) score | document.get |
words | string | Number of words in document part (section) | document.get |
uploaded | array | An array of upload structs corresponding to uploads. Each upload struct has the following attributes: id, mime_type, filename, folder | document.add |
mime_type | string | The MIME type determined for an uploaded document | any that return an uploaded struct |
is_pending | int | The number of document sections/ parts remaining to be processed by the document processing system after a document is uploaded. | document.get |
filename | string | The document filename | any that return an uploaded struct |
API method reference
Login
The login method is used to authenticate a session. A session is initiated by supplying valid authentication credentials (username and password) to the login method and a session id (sid) is returned that must be included when making additional requests.
Method Name: login
Arguments: username, password
Returns: sid, api_status, response_timestamp
Errors: Returns errors on unsuccessful login attempts. The error handling is split between the errors field and the messages field. Some possible combinations are:
- If the password is too short, an error will be present in the errors element indicating the password was too short, and no informational message will exist in the messages element.
- If the username was not a valid email address, an errors element will be presented indicating that fact, and no informational message will exist.
- The existence of errors is usually accompanied by a status code of ‘500’.
Messages: Unsuccessful login attempts may also return error messages in this messages element. Some possible messages are as follow:
- If the username was of the correct form, but does not exist in the system, the generic message “Sorry, failed to log in.” will be returned in the messages element. This error message (in the messages element, NOT the errors element) will also be returned if the username was valid and the password was incorrect (note that this will not be the case for an INVALID password, one that is too short or does not contain the characters needed for a valid password).
- If the API client has not been authorized to connect with the IP address it is using, the error message (in the messages element, NOT the errors element) will be Access denied from 127.0.0.1”, with the invalid IP address presented in the message
- (127.0.0.1 used as an example).
- Multiple messages may be presented, for situations where invalid username/password combinations are submitted, as well as invalid access attempts. However, both errors and messages will not be presented simultaneously (the API client MUST examine all possible combinations of messages and errors, except for messages and errors simultaneously, to determine if an error condition exists). However, as a convenience approach, checking for the existence of the sid element is usually sufficient to guarantee a successful login.
- The existence of (error) messages is usually accompanied by an api_status element value of ‘401’.
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>login</methodName> <params> <param><value><struct> <member> <name>password</name> <value><string>bar</string></value> </member> <member> <name>username</name> <value><string>foo@example.com</string></value> </member> </struct></value></param> </params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>ce22ce7de1963cc838c29869eec81a46fec4d847</string></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member></struct>
Create Folder Group
Use this method to create a folder group.
Method Name: group.add
Arguments: sid, name
Returns: sid, api_status, response_timestamp, id
Errors: None
Messages: Message indicating successful folder creation
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>group.add</methodName> <params> <param><value><struct> <member> <name>sid</name> <value><string>7f5257b23706f66a3484df1078daaddf78f3a435</string></value> </member> <member> <name>name</name> <value><string>2627_test_group_314</string></value> </member> </struct></value></param> </params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>7f5257b23706f66a3484df1078daaddf78f3a435</string></value> </member> <member> <name>messages</name> <value><array><data> <value><string>Folder Group Created</string></value> </data></array></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member> <member> <name>id</name> <value><int>119</int></value> </member></struct>
List folder groups
Use this method to list all folder groups owned by this user.
Method Name: group.list
Arguments: sid
Returns: sid, api_status, response_timestamp, groups
Errors: None
Messages: None
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>group.list</methodName> <params> <param><value><struct> <member> <name>sid</name> <value><string>52d868fce4a8f16db1c69a5918cc1affc4b61b19</string></value> </member> </struct></value></param> </params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>52d868fce4a8f16db1c69a5918cc1affc4b61b19</string></value> </member> <member> <name>api_status</name> <value><int>200</int></value></member> <member> <name>groups</name> <value> <array> <data> <value> <struct> <member> <name>name</name> <value><string>13073_test_group_947</string></value> </member> <member> <name>id</name> <value><int>120</int></value> </member> </struct> </value> <value> <struct> <member> <name>name</name> <value><string>2531_test_group_633</string></value> </member> <member> <name>id</name> <value><int>116</int></value> </member> </struct> </value> </data> </array> </value> </member></struct>
List folders
Use this method to list all folders owned by this user.
Method Name: folder.list
Arguments: sid
Returns: sid, api_status, response_timestamp, folders, groups, pager
Errors: None
Messages: None
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>folder.list</methodName> <params> <param><value><struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> </struct></value></param> </params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>folders</name> <value><array><data> <value><struct> <member> <name>group</name> <value><struct> <member> <name>name</name> <value><string>2531_test_group_633</string></value> </member> <member> <name>id</name> <value><int>116</int></value> </member> </struct></value> </member> <member> <name>name</name> <value><string>2531_testfolder_438</string></value> </member> <member> <name>id</name> <value><int>259</int></value> </member> </struct></value> </data></array></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member> <member> <name>pager</name> <value><struct> <member> <name>total_entries</name> <value><int>1</int></value> </member> <member> <name>current_page</name> <value><int>1</int></value> </member> <member> <name>entries_per_page</name> <value><int>25</int></value> </member> </struct></value> </member></struct>
Create folder
Use this method to create a new folder.
Method Name: folder.add
Arguments: sid, name, folder_group, description, exclude_quotes, add_to_index, exclude_biblio, exclude_phrases, exclude_small_matches, exclude_abstracts, exclude_methods
Returns: sid, api_status, response_timestamp
Errors: Returns an error message if an invalid folder group is specified
Message: Returns a message on folder creation success, no message on errors
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>folder.add</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>folder_group</name> <value><int>123</int></value> </member> <member> <name>name</name> <value><string>6016_testfolder_773</string></value> </member> <member> <name>description</name> <value><string>API client test folder</string></value> </member> <member> <name>exclude_quotes</name> <value><boolean>1</boolean></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>messages</name> <value><array><data> <value><string>Folder created</string></value> </data></array></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member> <member> <name>id</name> <value><int>262</int></value></member></struct>
Adjust folder settings
Use this method to adjust a folder’s settings.
Method Name: folder.put
Arguments: sid, id, name, description, exclude_quotes, add_to_index, exclude_biblio, exclude_phrases, exclude_small_matches, exclude_abstracts, exclude_methods
Returns: sid, api_status, response_timestamp
Errors: Returns an error message if an invalid folder group is specified
Message: Returns a message on folder creation success, no message on errors
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>folder.put</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>id</name> <value><int>262</int></value> </member> <member> <name>name</name> <value><string>6016_testfolder_773</string></value> </member> <member> <name>description</name> <value><string>API client test folder</string></value> </member> <member> <name>exclude_quotes</name> <value><boolean>0</boolean></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>messages</name> <value><array><data> <value><string>Folder created</string></value> </data></array></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member> <member> <name>id</name> <value><int>262</int></value></member></struct>
Share folder
Set folder sharing.
Method Name: folder.sharing
Arguments: sid, id, shared_with
Returns: sid, api_status, response_timestamp
Errors: Returns an error message if an errors occurs
Message: Returns a message on folder sharing success
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>folder.sharing</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>id</name> <value><int>262</int></value> </member> <member> <name>shared_with</name> <value><array><data> <int>262</int> <int>263</int> </data></array></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member> <member> <name>messages</name> <value><array><data> <value><string>Your sharing preferences have been updated</string></value> </data></array></value> </member></struct>
List group folders
Use this method to list the folders in a folder group.
Method Name: group.folders
Arguments: sid, id
Returns: sid, api_status, response_timestamp, groups, folders, pager
Errors: Returns an error message if an invalid folder_group id is specified
Messages: None
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>group.folders</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>id</name> <value><int>123</int></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>folders</name> <value><array><data> <value><struct> <member> <name>group</name> <value><struct> <member> <name>name</name> <value><string>6016_test_group_169</string></value> </member> <member> <name>id</name> <value><int>123</int></value> </member> </struct></value> </member> <member> <name>name</name> <value><string>6016_testfolder_773</string></value> </member> <member> <name>id</name> <value><int>262</int></value> </member> </struct></value> </data></array></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member> <member> <name>pager</name> <value><struct> <member> <name>total_entries</name> <value><int>1</int></value> </member> <member> <name>current_page</name> <value><int>1</int></value> </member> <member> <name>entries_per_page</name> <value><int>25</int></value> </member> </struct></value> </member></struct>
Get folder
Use this method call to get a folder and it’s associated objects.
Method Name: folder.get
Arguments: sid, idReturns: sid, api_status, response_timestamp, folder, group, documents, pager
Errors: Returns an error message if an invalid folder id is specified
Messages: None
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>folder.get</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>id</name> <value><int>262</int></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>documents</name> <value><array><data></data></array></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member> <member> <name>pager</name> <value><struct> <member> <name>total_entries</name> <value><int>0</int></value> </member> <member> <name>current_page</name> <value><int>1</int></value> </member> <member> <name>entries_per_page</name> <value><int>25</int></value> </member> </struct></value> </member> <member> <name>folder</name> <value><struct><member> <name>group</name> <value><struct> <member> <name>name</name> <value><string>6016_test_group_169</string></value> </member> <member> <name>id</name> <value><int>123</int></value> </member> </struct></value> </member> <member> <name>name</name> <value><string>6016_testfolder_773</string></value> </member> <member> <name>id</name> <value><int>262</int></value> </member></struct></value> </member></struct>
Account status
Account Status
Use this method to get the current account status.
Method Name: account.get
Arguments: sid
Returns: sid, api_status, response_timestamp, account
Errors: None
Messages: None
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>account.get</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>account</name> <value><struct> <member> <name>words_per_Page</name> <value><int>1500</int></value> </member> <member> <name>report_limit</name> <value><int>10000</int></value> </member> <member> <name>report_count</name> <value><int>1534</int></value> </member> <member> <name>user_limit</name> <value><int>10000</int></value> </member> <member> <name>resubmission_limit</name> <value><int>10000</int></value> </member> <member> <name>resubmission_count</name> <value><int>1050</int></value> </member> <member> <name>valid_until</name> <value><string>2009-04-19T00:00:00</string></value> </member> <member> <name>user_count</name> <value><int>8</int></value> </member> <member> <name>unit_name</name> <value><string>Page</string></value> </member> </struct></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member></struct>
Add user
Use this method to add a user to the account. Only the administrator user is authorized to use this method.
Method Name: user.add
Arguments: sid, email, first_name, last_name
Optional arguments: timezone, report_group, can_submit_documents, share_folders, can_index_documents*, is_admin, password (optional - if no password is specified users will receive an activation email with a temporary password)
*can_index_documents is an option only for accounts that have a customer repository enabled for the account.
Returns: sid, api_status, response_timestamp, id
Errors: Returns an error message if invalid arguments are passed, detailing which arguments were invalid.
Messages: Returns a message indicating the user was added. No messages will be present if errors occurred in the transaction.
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>user.add</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>email</name> <value><string>joe@user.com</string></value> </member> <member> <name>password</name> <value><string>swizzlestick123</string></value> </member> <member> <name>timezone</name> <value><int>126</int></value> </member> <member> <name>last_name</name> <value><string>User</string></value> </member> <member> <name>first_name</name> <value><string>Joe</string></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>messages</name> <value><array><data> <value><string>Joe User Created</string></value> </data></array></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member> <member> <name>id</name> <value><int>22</int></value> </member></struct>
List users
This method lists users in the account. Only the administrator user is authorized to use this method.
Method Name: user.list
Arguments: sid
Returns: sid, api_status, response_timestamp, users
Errors: None
Message: None
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>user.list</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member> <member> <name>users</name> <value><array><data> <value><struct> <member> <name>email</name> <value><string>api_test_user@test.api.ithenticate.com</string></value> </member> <member> <name>id</name> <value><int>17</int></value> </member> <member> <name>last_name</name> <value><string>User</string></value> </member> <member> <name>first_name</name> <value><string>API Test</string></value> </member> </struct></value> <value><struct> <member> <name>email</name> <value><string>joe@user.com</string></value> </member> <member> <name>id</name> <value><int>22</int></value> </member> <member> <name>last_name</name> <value><string>User</string></value> </member> <member> <name>first_name</name> <value><string>Joe</string></value> </member> </struct></value> </data></array></value> </member></struct>
Submit document
Submit Document
This method is used to submit a document to a given folder for submission to the document processing system.
Method Name: document.add
Arguments: sid, folder, submit_to, uploads
Returns: sid, api_status, response_timestamp, uploaded
Errors: Returns an error message if invalid input arguments are passed
Messages: Returns messages indicating successful document submission. No messages will be present if errors occurred
Submission Requirements:
- File must be less than 100 MB
- The maximum document length is 800 pages.
- File Types allowed: MS Word, WordPerfect, PostScript, PDF, HTML, RTF, OpenOffice (ODT) and plain text.
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>document.add</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>f6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96</string></value> </member> <member> <name>uploads</name> <value><array><data> <value><struct> <member> <name>filename</name> <value><string>/tmp/CVxcXdk3lT.txt</string></value> </member> <member> <name>author_last</name> <value><string>Neuman</string></value> </member> <member> <name>upload</name> <value><base64>Zm9vIGJhciBiaXo=</base64></value> </member> <member> <name>title</name> <value><string>6016 ithenticate test doc 509</string></value> </member> <member> <name>author_first</name> <value><string>Alfred</string></value> </member> </struct></value> </data></array></value> </member> <member> <name>submit_to</name> <value><int>1</int></value> </member> <member> <name>folder</name> <value><int>262</int></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1</string></value> </member> <member> <name>messages</name> <value><array><data> <value><string>Uploaded 1 document successfully</string></value> </data></array></value> </member> <member> <name>uploaded</name> <value><array><data> <value><struct> <member> <name>filename</name> <value><string>/tmp/0dxBM2vB3i.txt</string></value> </member> <member> <name>id</name> <value><int>2161</int></value> </member> <member> <name>folder</name> <value><struct> <member> <name>name</name> <value><string>7497_testfolder_199</string></value> </member> <member> <name>id</name> <value><int>265</int></value> </member> </struct></value></member> <member> <name>mime_type</name> <value><string>text/plain</string></value> </member> </struct></value> </data></array></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member></struct>
Get document status
Get Document Status
This method is used to retrieve status information regarding a document and all its parts.
Method Name: document.get
Arguments: sid, id
Returns: sid, api_status, response_timestamp, id, pager, documents, folder
Errors: Returns an error message if an invalid document id is passed
Message: None
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>document.get</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1</string></value> </member> <member> <name>id</name> <value><int>2161</int></value> </member> </struct></value> </param></params></methodCall>
Example Response
This response contains match data from a document being processed.
<struct> <member> <name>sid</name> <value><string>5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1</string></value> </member> <member> <name>documents</name> <value><array><data><value><struct> <member> <name>uploaded_time</name> <value><dateTime.iso8601>2008-06-05T15:13:11</dateTime.iso8601></value> </member> <member> <name>author_last</name> <value><string>Neuman</string></value> </member> <member> <name>is_pending</name> <value><int>1</int></value> </member> <member> <name>processed_time</name> <value><dateTime.iso8601>2008-06-05T15:30:02</dateTime.iso8601></value> </member> <member> <name>parts</name> <value><array><data> <value><struct> <member> <name>doc_id</name> <value><int>1210614</int></value> </member> <member> <name>score</name> <value><int>40</int></value> </member> <member> <name>max_percent_match</name> <value><int>10</int></value> </member> <member> <name>id</name> <value><int>1234465</int></value> </member> <member> <name>words</name> <value><int>15000</int></value> </member> </struct></value> <value><struct> <member> <name>doc_id</name> <value><int>1210614</int></value> </member> <member> <name>score</name> <value><int>100</int></value> </member> <member> <name>id</name> <value><int>1234466</int></value> </member> <member> <name>words</name> <value><int>15000</int></value> </member> </struct></value> <value><struct> <member> <name>doc_id</name> <value><int>1210614</int></value> </member> <member> <name>score</name> <value><int>100</int></value> </member> <member> <name>id</name> <value><int>1234468</int></value> </member> <member> <name>words</name> <value><int>12150</int></value> </member> </stuct></value> </data></array></value> </member> <member> <name>percent_match</name> <value><int>73</int></value> </member> <member> <name>title</name> <value><string>fasc0b</string></value> </member> <member> <name>id</name> <value><int>2161</int></value> </member> <member> <name>author_first</name> <value><string>Alfred</string></value> </member> </struct></value></data></array></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member> <member> <name>pager</name> <value><struct> <member> <name>total_entries</name> <value><int>1</int></value> </member> <member> <name>current_page</name> <value><int>1</int></value> </member> <member> <name>entries_per_page</name> <value><int>25</int></value> </member> </struct></value> </member> <member> <name>folder</name> <value><struct> <member> <name>group</name> <value><struct> <member> <name>name</name> <value><string>9133_test_group_858</string></value> </member> <member> <name>id</name> <value><int>1497</int></value> </member> </struct></value> </member> <member> <name>name</name> <value><string>9133_testfolder_858</string></value> </member> <member> <name>id</name> <value><int>46266</int></value> </member> </struct></value> </member></struct>
Get similarity report
Get Similarity Report
This method returns a set of urls to report data for a document section.
Method: report.get
Arguments: id (document part/section id), sid, exclude_biblio, exclude_quotes, exclude_small_matches
Returns: sid, api_status, response_timestamp, report_url, view_only_url, view_only_expires, exclude_quotes, exclude_biblio, exclude_small_matches
Errors: Returns an error if an invalid document id is passed
Messages: None
Note: When retrieving the view_only_url for a report you may add a query parameter “report_type” to specify which report viewing mode to open the Similarity Report in. The available report types are: similarity, content, largest, and summary. Here is an example of the view_only url with the addition of a report_type query parameter:
https://app.ithenticate.com/view_report/0E536A44-9C7F-11E1-B447-E7A05B115896?report_type=content
If the report_type parameter is not used the Similarity Report will open in the default report viewing mode that was set for the account
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>report.get</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1</string></value> </member> <member> <name>id</name> <value><int>8896</int></value> </member><member> <name>exclude_quotes</name> <value><boolean>1</boolean></value> </member> <member> <name>exclude_biblio</name> <value><boolean>1</boolean></value> </member> <member> <name>exclude_small_matches</name> <value><boolean>1</boolean></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>432d8b581da65ae89f9683803e750884d022c568</string></value> </member> <member> <name>status</name> <value><int>200</int></value> </member> <member> <name>view_only_expires</name> <value><dateTime.iso8601>2008-06-27T20:54:24Z</dateTime.iso8601></value> </member <member> <name>response_timestamp_</name> <value><dateTime.iso8601>2008-06-27T20:34:24Z</dateTime.iso8601></value> </member> <member> <name>report_url</name> <value><string>http://api.ithenticate.com/report/1233814/similarity</string></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member> <member> <name>view_only_url</name> <value><string>https://api.ithenticate.com/view_report/6DE5D6A2-4488-11DD</string> </value> <member></struct>
Get similarity report for first document set
Get Similarity Report for first Document Section
This method returns the “report_url” data for the first document section
Method: report.get_document
Arguments: id (document id), sid, exclude_biblio, exclude_quotes, exclude_small_matches
Returns: sid, api_status, response_timestamp, report_url, view_only_url,view_only_expires, exclude_quotes, exclude_biblio, exclude_small_matches
Errors: Returns an error if an invalid document id is passed
Message: None
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>report.get_document</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1</string></value> </member> <member> <name>id</name> <value><int>8896</int></value> </member> <member> <name>exclude_quotes</name> <value><boolean>1</boolean></value> </member> <member> <name>exclude_biblio</name> <value><boolean>1</boolean></value> </member> <member> <name>exclude_small_matches</name> <value><boolean>1</boolean></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>432d8b581da65ae89f9683803e750884d022c568</string></value> </member> <member> <name>status</name> <value><int>200</int></value> </member> <member> <name>view_only_expires</name> <value><dateTime.iso8601>2008-06-27T20:54:24Z</dateTime.iso8601></value> </member> <member> <name>response_timestamp</name> <value><dateTime.iso8601>2008-06-27T20:34:24Z</dateTime.iso8601></value> </member> <member> <name>report_url</name> <value><string>https://api.ithenticate.com/report/1233814/similarity</string></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member> <member> <name>view_only_url</name> <value><string>https://api.ithenticate.com/view_report/6DE5D6A2-4488-11DD</string> </value> </member></struct>
Drop user
A method call to drop a user from the account. Only the administrator user is authorized to use this method.
Method Name: user.drop
Arguments: sid, id
Returns: sid, api_status, response_timestamp
Errors: Returns an error if an invalid user id was passed
Message: Returns a message indicating the user was deleted. No message will be returned if errors occurred
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>user.drop</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1</string></value> </member> <member> <name>id</name> <value><int>23</int></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1</string></value> </member> <member> <name>messages</name> <value><array><data> <value><string>User Joe User Deleted</string></value> </data></array></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member></struct>
Trash a document
This method moves a document to the trash folder.
Method: document.trash
Arguments: sid, id
Returns: sid, api_status, response_timestamp
Errors: Returns an error if an invalid document id was passed
Message: Returns a message indicating the document was trashed. No message will be present if errors occurred
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>document.trash</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1</string></value> </member> <member> <name>id</name> <value><int>2161</int></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1</string></value> </member> <member> <name>messages</name> <value><array><data> <value><string>Document moved to trash</string></value> </data></array></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member></struct>
Trash a Folder
This method moves a folder to the trash folder group. The folder must be empty of documents.
Method: folder.trash
Arguments: sid, id
Returns: sid, api_status, response_timestamp
Errors: An error will be returned if the folder is not empty
Message: Returns a message indicating the group was deleted.
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>folder.trash</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1</string></value> </member> <member> <name>id</name> <value><int>265</int></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1</string></value> </member> <member> <name>messages</name> <value><array><data> <value><string>Folder “7497_testfolder_199” Moved to Trash</string></value> </data></array></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member></struct>
Delete a folder group
This method deletes a folder group. The group must be empty of folders to be deleted.
Method: group.drop
Arguments: sid, id
Returns: sid, api_status, response_timestamp
Errors: An error will be returned if the folder is not empty
Message: Returns a message indicating the group was deleted
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>group.drop</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1</string></value> </member> <member> <name>id</name> <value><int>126</int></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1</string></value> </member> <member> <name>messages</name> <value><array><data> <value><string>Group “7497_test_group_794” removed</string></value> </data></array></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member></struct>
Remove documents from a private node
This method removes document/s from the private node. This method only applies to
accounts that have purchased the private node.
Method: document.remove_from_index
Arguments: sid, id
Returns: sid, api_status, response_timestamp
Errors: Returns an error if an invalid document id was passed
Message: Returns a message indicating the document was removed from the private node. No message will be present if errors occurred
Example Request
<?xml version=”1.0” encoding=”UTF-8”?><methodCall> <methodName>document.remove_from_index</methodName> <params><param> <value><struct> <member> <name>sid</name> <value><string>5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1</string></value> </member> <member> <name>id</name> <value><int>126</int></value> </member> </struct></value> </param></params></methodCall>
Example Response
<struct> <member> <name>sid</name> <value><string>5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1</string></value> </member> <member> <name>messages</name> <value><array><data> <value><string>Document queued for removal from your index</string></value> </data></array></value> </member> <member> <name>api_status</name> <value><int>200</int></value> </member></struct>
Appendices
ID Time Zone
1 Europe/Andorra
2 Asia/Dubai
3 Asia/Kabul
4 America/Antigua
5 America/Anguilla
6 Europe/Tirrane
7 Asia/Yerevan
8 America/Curacao
9 Africa/Luanda
10 Antartica/McMurdo
11 Antartica/South_Pole
12 Antartica/Rothera
13 Antartica/Palmer
14 Antartica/Mawson
15 Antartica/Davis
16 Antartica/Casey
17 Antartica/Vostok
18 Antartica/DurmontDurville
19 Antartica/Syowa
20 America/Argentina/Buenos_Aries
21 America/Argentina/Cordoba
22 America/Argentina/Jujuy
23 America/Argentina/Tucuman
24 America/Argentina/Catamarca
25 America/Argentina/La_Roja
26 America/Argentina/San_Juan
27 America/Argentina/Mendoza
28 America/Argentina/Rio_Gallegos
29 America/Argentina/Ushuaia
30 Pacific/Pago_Pago
31 Europe/Vienna
32 Australia/Lord_Howe
33 Australia/Hobart
34 Australia/Currie
35 Australia/Melbourne
36 Australia/Sydney
37 Australia/Broken_Hill
38 Australia/Brisbane
39 Australia/Lindeman
40 Australia/Adelaide
41 Australia/Darwin
42 Australia/Perth
43 Australia/Eucla
44 America/Aruba
45 Europe/Mariehamn
46 Asia/Baku
47 Europe/Sarajevo
48 America/barbados
49 Asia/Dhka
50 Europe/Brussels
51 Africa/Ouagadougou
52 Europe/Sofia
53 Asia/Bahrain
54 Africa/Bujumbura
55 Africa/Porto-Novo
56 America/St_Barthelemy
57 Atlantic/Bermuda
58 Asia/Brumei
59 America/La_Paz
60 America/Noronha
61 America/Belem
62 America/Fortaleza
63 America/Recife
64 America/Araguaina
65 America/Maceio
66 America/Bahia
67 America/Sao_Paulo
68 America/Campo_Grande
69 America/Cuiaba
70 America/Porto_Velho
71 America/Boa_Vista
72 America/Manaus
73 America/Eirunepe
74 America/Rio_Branco
75 America/Nassau
76 Asia/Timphu
77 Africa/Gaborone
78 Europe/Minsk
79 America/Belize
80 America/St_Johns
81 America/Halifax
82 America/Glace_Bay
83 America/Moncton
84 America/Goose_Bay
85 America/Blanc-Sablon
86 America/Montreal
87 America/Toronto
89 America/Thunder_Bay
90 America/Iqaluit
91 America/Pangnirtung
92 America/Resolute
93 America/Atikokan
94 America/Rankin_Inlet
95 America/Winnipeg
96 America/Rainy_River
97 America/Regina
98 America/Swift_Current
99 America/Edmonton
100 America/Cambridge_Bay
101 America/Yellowknife
102 America/Inuvik
103 America/Dawson_Creek
104 America/Vancouver
105 America/Whitehorse
106 America/Dawson
107 Indian/Cocos
108 Africa/Kinshasa
109 Africa/Lubumbashi
110 Africa/Bangui
111 Africa/Brazzaville
112 Europe/Zurich
113 Africa/Abidjan
114 Pacific/Rarotonga
115 America/Santiago
116 Pacific/Easter
117 Africa/Douala
118 Asia/Shanghai
119 Asia/Harbin
120 Asia/Chongquig
121 Asia/Urumqi
122 Asia/Kashgar
123 America/Bogota
124 America/Costa_Rica
125 America/Havana
126 Atlantic/Cape_Verde
127 Indian/Christmas
128 Asia/Nicosia
129 Europe/Prague
130 Europe/Berlin
131 Africa/Djibouti
132 Europe/Copenhagen
133 America/Dominica
134 America/Santo_Domingo
135 Africa/Algiers
136 America/Guayaquil
137 Pacific/Galapagos
138 Europe/Tallinn
139 Africa/Cairo
140 Africa/El_Aaiun
141 Africa/Asmara
142 Europe/Madrid
143 Africa/Ceuta
144 Atlantic/Canary
145 Africa/Addis_Ababa
146 Europe/Helsinki
147 Pacific/Fiji
148 Atlantic/Stanley
149 Pacific/Truk
150 Pacific/Ponape
151 Pacific/Kosrae
152 Atlantic/Faroe
153 Europe/Paris
154 Africa/Libreville
155 Europe/London
156 America/Grenada
157 Asia/Tbilisi
158 America/Cayenne
159 Europe/Guernsey
160 Africa/Accra
161 Europe/Gibraltar
162 America/Godthab
163 America/Godthab
164 America/Scoresbysund
165 America/Thule
166 Africa/Banjul
167 Africa/Conakry
168 America/Guadeloupe
169 Africa/Malabo
170 Europe/Athens
171 Atlantic/South_Georgia
172 America/Guatemala
173 Pacific/Guam
174 Africa/Bissau
175 America/Guyana
176 Asia/Hong_Kong
177 America/Tegucigalpa
178 Europe/Zagreb
179 America/Port-au-Prince
180 Europe/Budapest
181 Asia/Jakarta
182 Asia/Pontianak
183 Asia/Makassar
184 Asia/Jayapura
185 Europe/Dublin
186 Asia/Jerusalem
187 Europe/Isle_of_Man
188 Asia/Calcutta
189 Indian/Chagos
190 Asia/Baghdad
191 Asia/Tehran
192 Atlantic/Reykjavik
193 Europe/Rome
194 Europe/Jersey
195 America/Jamaica
196 Asia/Amman
197 Asia/Tokyo
198 Africa/Nairobi
199 Asia/Bishkek
200 Asia/Phnom_Penh
201 Pacific/Tarawa
202 Pacific/Enderbury
203 Pacific/Kiritimati
204 Indian/Comoro
205 America/St_Kitts
206 Asia/Pyongyang
207 Asia/Seoul
208 Asia/Kuwait
209 America/Cayman
210 Asia/Almaty
211 Asia/Qyzylorda
212 Asia/Aqtobe
213 Asia/Aqtau
214 Asia/Oral
215 Asia/Vientiane
216 Asia/Beirut
217 America/St_Lucia
218 Europe/Vaduz
219 Asia/Colombo
220 Africa/Monrovia
221 Africa/Maseru
222 Europe/Vilnius
223 Europe/Luxembourg
224 Europe/Riga
225 Africa/Tripoli
226 Africa/Casablanca
227 Europe/Monaco
228 Europe/Chisinau
229 Europe/Podgorica
230 America/Marigot
231 Indian/Antananarivo
232 Pacific/Majuro
233 Pacific/Kwajalein
234 Europe/Skopje
235 Africa/Bamako
236 Asia/Rangoon
237 Asia/Ulaanbaatar
238 Asia/Hovd
239 Asia/Choibalsan
240 Asia/Macau
241 Pacific/Saipan
242 America/Martinique
243 Africa/Nouakchott
244 America/Montserrat
245 Europe/Malta
246 Indian/Mauritius
247 Indian/Maldives
248 Africa/Blantyre
249 America/Mexico_City
250 America/Cancun
251 America/Merida
252 America/Monterrey
253 America/Mazatlan
254 America/Chihuahua
255
America/Hermosillo
256 America/Tijuana
257 Asia/Kuala_Lumpur
258 Asia/Kuching
259 Africa/Maputo
260 Africa/Windhoek
261 Pacific/Noumea
262 Africa/Niamey
263 Pacific/Norfolk
264 Africa/Lagos
265
America/Managua
266 Europe/Amsterdam
267 Europe/Oslo
268 Asia/Katmandu
269 Pacific/Nauru
270 Pacific/Niue
271 Pacific/Auckland
272 Pacific/Chatham
273 Asia/Muscat
274 America/Panama
275 America/Lima
276 Pacific/Tahiti
277 Pacific/Marquesas
278 Pacific/Gambier
279 Pacific/Port_Moresby
280 Asia/Manila
281 Asia/Karachi
282 Europe/Warsaw
283 America/Miquelon
284 Pacific/Pitcairn
285 America/Puerto_Rico
286 Asia/Gaza
287 Europe/Lisbon
288 Atlantic/Madeira
289 Atlantic/Azores
290 Pacific/Palau
291 America/Asuncion
292 Asia/Qatar
293 Indian/Reunion
294 Europe/Bucharest
295 Europe/Belgrade
296 Europe/Kaliningrad
297 Europe/Moscow
298 Europe/Volgograd
299 Europe/Samara
300 Asia/Yekaterinburg
301 Asia/Omsk
302 Asia/Novosibirsk
303 Asia/Krasnoyarsk
304 Asia/Irkutsk
305 Asia/Yakutsk
306 Asia/Vladivostok
307 Asia/Sakhalin
308 Asia/Magadan
309 Asia/Kamchatka
310 Asia/Anadyr
311 Africa/Kigali
312 Asia/Riyadh
313 Pacific/Guadalcanal
314 Indian/Mahe
315 Africa/Khartoum
316 Europe/Stockholm
317 Asia/Singapore
318 Atlantic/St_Helena
319 Europe/Ljubljana
320 Arctic/Longyearbyen
321 Europe/Bratislava
322 Africa/Freetown
323 Europe/San_Marino
324 Africa/Dakar
325 Africa/Mogadishu
326 America/Paramaribo
327 Africa/Sao_Tome
328 America/El_Salvador
329 Asia/Damascus
330 Africa/Mbabane
331 America/Grand_Turk
332 Africa/Ndjamena
333 Indian/Kerguelen
334 Africa/Lome
335 Asia/Bangkok
336 Asia/Dushanbe
337 Pacific/Fakaofo
338 Asia/Dili
339 Asia/Ashgabat
340 Africa/Tunis
341 Pacific/Tongatapu
342 Europe/Istanbul
343 America/Port_of_Spain
344 Pacific/Funafuti
345 Asia/Taipei
346 Africa/Dar_es_Salaam
347 Europe/Kiev
348 Europe/Uzhgorod
349 Europe/Zaporozhye
350 Europe/Simferopol
351 Africa/Kampala
352 Pacific/Johnston
353 Pacific/Midway
354 Pacific/Wake
355 America/New_York
356 America/Detroit
357 America/Kentucky/Louisville
358 America/Kentucky/Monticello
359 America/Indiana/Indianapolis
360 America/Indiana/Vincennes
361 America/Indiana/Knox
362 America/Indiana/Winamac
363 America/Indiana/Marengo
364 America/Indiana/Vevay
365 America/Chicago
366 America/Indiana/Tell_City
367 America/Indiana/Petersburg
368 America/Menominee
369 America/North_Dakota/Center
370 America/North_Dakota/New_Salem
371 America/Denver
372 America/Boise
373 America/Shiprock
374 America/Phoenix
375 America/Los_Angeles
376 America/Anchorage
377 America/Juneau
378 America/Yakutat
379 America/Nome
380 America/Adak
381 Pacific/Honolulu
382 America/Montevideo
383 Asia/Samarkand
384 Asia/Tashkent
385 Europe/Vatican
386 America/St_Vincent
387 America/Caracas
388 America/Tortola
389 America/St_Thomas
390 Asia/Saigon
391 Pacific/Efate
392 Pacific/Wallis
393 Pacific/Apia
394 Asia/Aden
395 Indian/Mayotte
396 Africa/Johannesburg
397 Africa/Lusaka
398 Africa/Harare
Appendix B - PHP Development Notes
SSL
All connections to the iThenticate web service must be made using SSL. The recommended base module is IXR_Library.inc.php version 1.7.1 (beta). It provides an SSL client implementation in the IXR_ClientSSL constructor.
cURL Options
On some implementations, notably Windows running Apache with mod_php, curl calls may return false. The CURLOPT_CAINFO curl option must be set to the location of the curl certificate bundle file, example ‘C:\windows\system32\ca-bundle.crt’. It may be necessary to install a standalone curl package, as the php implementation does not always provide the certificate bundle.
It is not recommended to set the curl option CURLOPT_SSL_VERIFYPEER to 0. This disables peer SSL certificate verification, and makes your connection susceptible to interception via a man in the middle attack. Although many web resources give this as an example of how to overcome connection issues with PHP and curl, we strongly advise against disabling peer certificate verification.
Appendix C - Perl Development Notes
Perl Client Libraries The perl module WebService::iThenticate can be found on the Comprehensive Perl Archive Network (CPAN).
http://search.cpan.org/~phred/WebService-iThenticate-0.16/
This library contains all the necessary examples and methods to develop in Perl using the iThenticate API.
Troubleshooting
If you are experiencing any issues while using our service through the iThenticate API, please email our support team at:
Please include the following information in your email when contacting support:
- The raw XML of the API request and response.
How you capture this is dependent on the library and programming language used in your client application. Our support team cannot assist you with this.
- The exact time of the request.
This should be shown in the response XML, but it will help our support team if you note it along with the time zone (or convert the time into UTC).
- The public IP address from which you are sending the request.
This will help us search our logs.
- The email address used to log in.
Please do not send us your password. iThenticate support will never ask you to reveal your password.