13.07.2015 Views

iThenticate API Guide - Turnitin

iThenticate API Guide - Turnitin

iThenticate API Guide - Turnitin

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: IntroductionIntroductionThis document is a technical reference specification for the <strong>iThenticate</strong> <strong>API</strong>. The <strong>API</strong> isbased on the XML-RPC specification which may be referenced at http://xmlrpc.com.The xml examples shown in this document have added whitespace for readability.To begin using the <strong>API</strong> you will need an account username and password to accessthe <strong>API</strong>. See your <strong>iThenticate</strong> account representative to obtain these credentials.The url of the <strong>API</strong> resource is https://api.ithenticate.com/rpc (note that there is notrailing slash).An example <strong>API</strong> client written in Perl is available as a guide and can be provided byyour account representative.A number of XML-RPC client libraries exist for various programming languages.These libraries typically provide a high-level interface for making XML-RPC requests.Some examples below will show the raw XML request and response “payload”, butclient libraries often allow you to work with your language’s familiar data structuresdirectly and not with the raw XML.The XML examples shown in this document have added whitespace for readability.<strong>API</strong> Constraints<strong>API</strong> 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 beUTF-8 encoded. All requests are made via the HTTP POST method. All connections tothe <strong>iThenticate</strong> <strong>API</strong> server must be made via an SSL connection via https. Requestsmade over http will be returned a 302 redirect code, which some XML-RPC clients maynot handle appropriately.<strong>API</strong> RequestsRequests are sent in accordance with the XML-RPC specification (http://www.xmlrpc.com/). An XML-RPC “struct” element is used as the payload container for all<strong>iThenticate</strong> XML-RPC requests. This allows named parameters as input data. The orderof the members within the struct element is not important.Every <strong>API</strong> request must be encrypted via Secure Sockets Layer (SSL).Every <strong>API</strong> request must include a session id (sid). The session id is obtained by aninitial “login” <strong>API</strong> request that returns the session id in the XML-RPC response.The <strong>iThenticate</strong> <strong>API</strong> will request validation but the user is encouraged to ensure thatclient side requests conform to the guidelines presented in the <strong>API</strong>. Requests whichdo not conform to the parameters and examples shown in this document cannot beguaranteed to return correct responses, nor can they be guaranteed to return errorsor messages about what elements of the request were invalid. As with HTTP requests,Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .3


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: <strong>API</strong> Requestsrequest parameters that are not designated for a certain method will beignored rather than an error being thrown. See each method description for therequired request parameters.An example login request is shown here (whitespace inserted for readability).The username and password are passed in a struct element.loginpasswordapi_test_user_123usernameapi_test_user@test.api.ithenticate.comCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .4


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: <strong>API</strong> Responses<strong>API</strong> ResponsesResponses are returned in accordance with the XML-RPC specification (http://www.xmlrpc.com/). An example successful login response is shown below. The session idused to authenticate subsequent requests is returned in the sid element.All responses include a api_status value, which may have the following values. Thevalues use coding scheme similar to the familiar HTTP status codes.Note: the api_status is NOT the HTTP status for your request.200 - successful response, repsonse may contain messages but not errors401 - request failed to provide an authenticated session id (sid) for the resource403 - access to the requested resource is not authorized404 - requested resource was not found500 - error in the request, response payload may contain errors or messagesThe date and time format for any response data is dateTime.iso8601.An example of a successful response from a login method request:sid7c306332c88eab2842d83fe099585fceb2cd1e34api_status200Failed ResponsesResponses can contain a list of one or more errors. These are strings describing theerror condition. These are typically due to input data validation failures and thusassociated with the specific input field.See an example response from a failed login method call on the next page.Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .5


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Failed ResponsesBelow is an example of a response from a failed login method call where the passwordfield was too short:errorspasswordInput must be at least 6 characters. You submitted 3api_status500Note: These error messages may be localized based on the account’slanguage preferences.Response MessagesResponses can also contain a list of one or more “messages”. These are typicallyinformational such as “record updated”, but may also include error information abouta failed request.Below is an example response for a successful folder creation containing informationalstatus message:sid374cfed6020ff134e36263e8c070a47aba50a757messagesFolder Group Createdapi_status200id109Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .6


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Error ProcessingError ProcessingXML-RPC is an HTTP-based protocol, and thus any client applications must look atthe HTTP status code before attempting to parse the XML response. <strong>iThenticate</strong> <strong>API</strong>requests return 200 HTTP status code unless there is a serious error that preventsprocessing of the request. For example, attempting to contact the <strong>API</strong> with an invalidXML-RPC endpoint URL will result in a HTTP status code 404. Malformed XML-RPCrequests (e.g. invalid XML) will likely generate a 500 HTTP status code.The <strong>iThenticate</strong> XML-RPC response will include an api_status element that indicatesthe success or failure of the <strong>API</strong> request. The api_status for normal successfulmethods will be 200. Although the api_status code is similar to canonical HTTPresponses code, they should not be considered the same. Differences between valuesfor api_status and standardized HTTP response codes in the HTTP may be subtleand the user should remember that HTTP status codes and api_status are separateentities and will almost always have different values for responses. Clients shouldcheck the HTTP response code before looking at the api_status value returned in theXML-RPC response.An api_status code of 401 is returned for authorization failures. This can be due toinvalid login credentials or a request coming from an IP address not authorized for<strong>API</strong> requests.An api_status code of 403 indicates that the user does not have access to therequested resource.An api_status code of 404 indicates that an object id in the response does not existor is invalid.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 therequirements of the method. For example, not providing required elements in theXML-RPC request or submitting incorrectly formatted data.Additional information about an error can be obtained by inspecting two additionalelements 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 login”, or a specific failure condition not covered by the errors field.The distinction between the errors and the messages elements may not be entirelyclear to the end user. In the case where the documentation is unclear, the user isadvised to discern the exact behavior of each element from the response given by the<strong>API</strong> web service itself.Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .7


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Error ProcessingExample of a response that includes an error condition with a explanation in themessages element:messagesSorry, failed to log in.api_status401Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .8


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Error ProcessingThe message list may contain more than one message. For example, in this casemore detail is provided about the error condition:messagesAccess denied from 127.0.0.1Sorry, failed to log in.api_status401Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .9


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Error Processing<strong>iThenticate</strong> <strong>API</strong> requests require one or more parameters. For example, loggingin requires two parameters: a username and a password. The errors element,if included in the XML-RPC response, will provide details about errors with theseparameters. The errors element is an XML-RPC struct element with the keysbeing the names of the parameters, and the values an XML-RPC list of one or moremessages related to that parameter. The messages element may also contain detailsabout errors encountered during the login process.An example of the login method above shows an XML-RPC response where an invalidpassword 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 anothermessage gives the reason for the failed login attempt.messagesAccess denied from 127.0.0.1Sorry, failed to log in.status401Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .10


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: <strong>API</strong> Request ParametersRequest and Response Parameter Tables<strong>API</strong> Request ParametersElementXML-RPCDATA TYPEDESCRIPTION<strong>API</strong> METHODSsidstringSession Identifier, 40 characters(a-z, 0-9)All except loginusernamestringThe username for the account, mustbe a valid email addressloginpasswordstringAccount password, minimum 6characters, no spaces, only wordcharacters (alphanumerics andunderscores), cannot be all numbersloginnamestringAlphanumeric name for an entity,maximum length 4096 charactersgroup.addfolder.addfolder_groupintid of the folder group, user must ownthe folder groupfolder.addgroup.foldersdescriptionstringAn alphanumeric description,maximum length 4096 charactersfolder.addidintAn id of an existing folder group,folder, user, or document.folder.getfolder.trashuser.dropdocument.getdocument.trashreport.getgroup.getgroup.dropdocument_remove_from_indexexclude_quotes boolean Exclude quotes from the folderfolder.addreport.getreport.get_documentexclude_bibliobooleanExclude bibliographies from the folderor reportfolder.addreport.getreport.get_documentexclude_small_matchesbooleanExclude small matches from thefolder or reportfolder.addreport.getreport.get_documentshared_witharray onintegersIds of users the folder is to be sharedwithfolder.shareCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .11


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: <strong>API</strong> Request ParametersElementXML-RPCDATA TYPEDESCRIPTION<strong>API</strong> METHODSadd_to_indexbooleanAdds the folder to the search indexRequired if the account has a privatenodefolder.addfirst_namestringFirst name for a user, maximum 4096charactersuser.addlast_namestringLast name for a user, maximum 4096charactersuser.addtimezoneintNumeric timezone ID, defaults to126 ‘America/Los_Angeles’. See theappendix for available timezonesuser.addsubmit_toint1=> ’Generate Report Only’2=> ’to Document Repository Only’(private storage node required)3=> ‘to Document Repository &Generate Report’ (private storagenode required)document.adduploadsarray of arraysAn array of document data. Eacharray element contains an elementsas follows:title, author_first, author_last,filename, uploaddocument.addtitlestringThe title of the document, maximum256 charactersdocument.addauthor_firststringThe document author’s first name,maximum 4096 charactersdocument.addauthor_laststringThe document author’s last name,maximum 4096 charactersdocument.adduploadbase64The base64 encoded documentcontentdocument.addcallback_urlstringA url which will be fetched withthe document id when the reportis generated. For asynchronousuploading.document.addostringOrder by parameter, accepts a folder,group, or user attribute to order theresults byfolder.listgroup.listuser.listpstringSpecify which page of a pager resultsset to returnfolder.listgroup.listuser.listr string Specify number of rows to returnfolder.listgroup.listuser.listdstringReverse the sort order for a recordlistfolder.listgroup.listuser.listCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .12


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: <strong>API</strong> Response Parameters<strong>API</strong> Response ParametersElementXML-RPCDATA TYPEDESCRIPTION<strong>API</strong> METHODSsidstringSession identifier, 40 characters (a-z,0-9)loginapi_statusint200: Success500: Application error401: Authentication failure403: Authorization failure404: Does not exist or has beendeletedallmessagesarrayList of one or more informationalmessages. These messages may ormay not contain error conditions notlisted in the errors field.allerrorsstructList of one or more error messages.These are typically due to inputdata validation failures and thusassociated with the specific inputfield, but may general in nature andrequire inspection of the messagesfield.allresponse_timestampdateTime.iso8601An iso8601 XMLRPC field in UTC (witha ‘Z’ appended), returned only forresponses that have a 200 api_statuscodeallid int Id of the newly created elementgroup.addfolder.adddocument.addgroup.listgroup.foldersuser.addgroups array An array of group elements group.listgroupstructA struct of group element attributesid, nameall that returngroupsfolders array An array of folder elementsfolder.listgroup.listfolderstructA struct of folder element attributesid, namefolder.getfolder.listgroup.listCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .13


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: <strong>API</strong> Response ParametersElementXML-RPCDATA TYPEDESCRIPTION<strong>API</strong> METHODSpagerstructContains the following members:entries_per_page, total_entries,current_pagefolder.listgroup.listentries_per_page int Number of entries per pager pageany that return apagertotal_entriesintTotal number of records returned bythe pager elementany that return apagercurrent_page int Current page of result setany that return apageraccountstructContains members describing theaccount statusaccount.getusers array An array of user elements user.listuserstructA struct of user element attributes(id, email, first_name, last_name)user.listuser.getreport_urlstringA url to view the report whichrequires user authenticationreport.getview_only_urlstringA view only report url which expiresin a set amount of timereport.getview_only_expiresdateTime.iso8601The expiration time in minutes fromthe response_timestamp field atwhich the view_only_url expires.report.getdocumentsarrayAn array of document structs. Eachdocument struct has the followingattributes:id, is_pending, author_first,author_last, uploaded_time,processed_time, percent_match,title, partsdocument.getpartsarrayAn array of document part (section)structs. Each document part(section) struct has the followingattributes:doc_id, score, words, folder,group, id, namedocument.getCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .14


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: <strong>API</strong> Response ParametersElementXML-RPCDATA TYPEDESCRIPTION<strong>API</strong> METHODSdoc_id int Document part (section) id document.getmax_percent_matchintThe largest source match percentagefor the documentdocument.getscore int Document part (section) score document.getwordsintNumber of words in document part(section)document.getuploadedarrayAn array of upload structscorresponding to uploads. Eachupload struct has the followingattributes:id, mime_type, filename, folderdocument.addmime_typestringThe MIME type determined for anuploaded documentany that return anuploaded structis_pendingintThe number of document sections/parts remaining to be processed bythe document processing systemafter a document is uploaded.document.getfilename string The document filenameany that return anuploaded structCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .15


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Login<strong>API</strong> Method ReferenceLoginThe login method is used to authenticate a session. A session is initiated by supplyingvalid authentication credentials (username and password) to the login method anda session id (sid) is returned that must be included when making additional requests.Method Name: loginArguments: username, passwordReturns: sid, api_status, response_timestampErrors: Returns errors on unsuccessful login attempts. The error handling is splitbetween the errors field and the messages field. Some possible combinationsare:• If the password is too short, an error will be present in the errors element indicatingthe password was too short, and no informational message will exist in the messageselement.• If the username was not a valid email address, an errors element will be presentedindicating 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 thismessages element. Some possible messages are as follow:• If the username was of the correct form, but does not exist in the system, thegeneric 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 bereturned if the username was valid and the password was incorrect (note that this willnot be the case for an INVALID password, one that is too short or does not containthe characters needed for a valid password).• If the <strong>API</strong> 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 <strong>API</strong> client MUSTexamine all possible combinations of messages and errors, except for messagesand errors simultaneously, to determine if an error condition exists). However, asa convenience approach, checking for the existence of the sid element is usuallysufficient to guarantee a successful login.• The existence of (error) messages is usually accompanied by an api_status elementvalue of ‘401’.Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .16


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: LoginExample Request:loginpasswordbarusernamefoo@example.comExample Response:sidce22ce7de1963cc838c29869eec81a46fec4d847api_status200Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .17


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Create Folder GroupCreate Folder GroupUse this method to create a folder group.Method Name: group.addArguments: sid, nameReturns: sid, api_status, response_timestamp, idErrors: NoneMessages: Message indicating successful folder creationExample Request:group.addsid7f5257b23706f66a3484df1078daaddf78f3a435name2627_test_group_314Example Response:sid7f5257b23706f66a3484df1078daaddf78f3a435messagesFolder Group Createdapi_status200id119Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .18


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: List Folder GroupsList Folder GroupsUse this method to list all folder groups owned by this user.Method Name: group.listArguments: sidReturns: sid, api_status, response_timestamp, groupsErrors: NoneMessages: NoneExample Request:group.listsid52d868fce4a8f16db1c69a5918cc1affc4b61b19Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .19


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: List Folder GroupsExample Response:sid52d868fce4a8f16db1c69a5918cc1affc4b61b19api_status200groupsname13073_test_group_947id120name2531_test_group_633id116Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .20


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: List FoldersList FoldersUse this method to list all folders owned by this user.Method Name: folder.listArguments: sidReturns: sid, api_status, response_timestamp, folders, groups, pagerErrors: NoneMessages: NoneExample Request:folder.listsidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .21


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: List FoldersExample Response:sidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96foldersgroupname2531_test_group_633id116name2531_testfolder_438id259api_status200pagertotal_entries1current_page1entries_per_page25Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .22


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Create FolderCreate FolderUse this method to create a new folder.Method Name: folder.addArguments: sid, name, folder_group, description, exclude_quotes,add_to_index, exclude_biblio, exclude_small_matchesReturns: sid, api_status, response_timestampErrors: Returns an error message if an invalid folder group is specifiedMessage: Returns a message on folder creation success, no message on errorsExample Request:folder.addsidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96folder_group123name6016_testfolder_773description<strong>API</strong> client test folderexclude_quotes1Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .23


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Create FolderExample Response:sidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96messagesFolder createdapi_status200id262Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .24


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Share FolderShare FolderSet folder sharing.Method Name: folder.shareArguments: sid, id, shared_withReturns: sid, api_status, response_timestampErrors: Returns an error message if an errors occursMessage: Returns a message on folder sharing successExample Request:folder.sharesidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96id262shared_with262263Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .25


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Share FolderExample Response:sidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96api_status200messagesYour sharing preferences have been updatedCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .26


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: List Group FoldersList Group FoldersUse this method to list the folders in a folder group.Method Name: group.foldersArguments: sid, idReturns: sid, api_status, response_timestamp, groups, folders, pagerErrors: Returns an error message if an invalid folder_group id is specifiedMessages: NoneExample Request:group.folderssidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96id123Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .27


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: List Group FoldersExample Response:sidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96foldersgroupname6016_test_group_169id123name6016_testfolder_773id262api_status200pagertotal_entries1current_page1entries_per_page25Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .28


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Get FolderGet FolderUse this method call to get a folder and it’s associated objects.Method Name: folder.getArguments: sid, idReturns: sid, api_status, response_timestamp, folder, group, documents,pagerErrors: Returns an error message if an invalid folder id is specifiedMessages: NoneExample Request:folder.getsidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96id262Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .29


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Get FolderExample Response:sidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96documentsapi_status200pagertotal_entries0current_page1entries_per_page25foldergroupname6016_test_group_169id123name6016_testfolder_773id262Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .30


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Account StatusAccount StatusUse this method to get the current account status.Method Name: account.getArguments: sidReturns: sid, api_status, response_timestamp, accountErrors: NoneMessages: NoneExample Request:account.getsidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .31


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Account StatusExample Response:sidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96accountwords_per_Page1500report_limit10000report_count1534user_limit10000resubmission_limit10000resubmission_count1050valid_until2009-04-19T00:00:00user_count8unit_namePageapi_status200Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .32


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Add UserAdd UserUse this method to add a user to the account. Only the administrator user isauthorized to use this method.Method Name: user.addArguments: sid, email, first_name, last_name, password, timezoneReturns: sid, api_status, response_timestamp, idErrors: Returns an error message if invalid arguments are passed, detailing whicharguments were invalidMessages: Returns a message indicating the user was added. No messages will bepresent if errors occurred in the transactionExample Request:user.addsidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96emailjoe@user.compasswordswizzlestick123timezone126last_nameUserfirst_nameJoeCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .33


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Add UserExample Response:sidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96messagesJoe User Createdapi_status200id22Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .34


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: List UsersList UsersThis method lists users in the account. Only the administrator user is authorized touse this method.Method Name: user.listArguments: sidReturns: sid, api_status, response_timestamp, usersErrors: NoneMessage: NoneExample Request:user.listsidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96See the next page for an example response.Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .35


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: List UsersExample Response:sidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96api_status200usersemailapi_test_user@test.api.ithenticate.comid17last_nameUserfirst_name<strong>API</strong> Testemailjoe@user.comid22last_nameUserfirst_nameJoeCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .36


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Submit DocumentSubmit DocumentThis method is used to submit a document to a given folder for submission to thedocument processing system.Method Name: document.addArguments: sid, folder, submit_to, uploadsReturns: sid, api_status, response_timestamp, uploadedErrors: Returns an error message if invalid input arguments are passedMessages: Returns messages indicating successful document submission. Nomessages will be present if errors occurredSubmission Requirements:• File must be less than 20 MB• The maximum document length is 400 pages.• File Types allowed: MS Word, WordPerfect, PostScript, PDF, HTML, RTF,OpenOffice (ODT) and plain text.See the next two pages for an example request and an example response.Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .37


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Submit DocumentExample Request:document.addsidf6ebaf325cfec9f69b5a68f3a77d9d0b57b29b96uploadsfilename/tmp/CVxcXdk3lT.txtauthor_lastNeumanuploadZm9vIGJhciBiaXo=title6016 ithenticate test doc 509author_firstAlfredsubmit_to1folder262Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .38


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Submit DocumentExample Response:sid5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1messagesUploaded 1 document successfullyuploadedfilename/tmp/0dxBM2vB3i.txtid2161foldername7497_testfolder_199id265mime_typetext/plainapi_status200Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .39


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Get Document StatusGet Document StatusThis method is used to retrieve status information regarding a document and all itsparts.Method Name: document.getArguments: sid, idReturns: sid, api_status, response_timestamp, id, pager, documents, folderErrors: Returns an error message if an invalid document id is passedMessage: NoneExample Request:document.getsid5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1id2161Example Response: This response contains match data from a document beingprocessedsid5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1documentsuploaded_time2008-06-05T15:13:11Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .40


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Get Document Statusauthor_lastNeumanis_pending1processed_time2008-06-05T15:30:02partsdoc_id1210614scoreid1234465words15000doc_id1210614score100id1234466words15000Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .41


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Get Document Statusdoc_id1210614score100id1234468words12150percent_match73titlefasc0bid2161author_firstAlfredapi_status200pagertotal_entries1Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .42


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Get Document Statuscurrent_page1entries_per_page25foldergroupname9133_test_group_858id1497name9133_testfolder_858id46266Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .43


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Get Similarity ReportGet Similarity ReportThis method returns a set of urls to report data for a document section.Method: report.getArguments: id (document part/section id), sid, exclude_biblio, exclude_quotes, exclude_small_matchesReturns: sid, api_status, response_timestamp, report_url, view_only_url,view_only_expires, exclude_quotes, exclude_biblio, exclude_small_matchesErrors: Returns an error if an invalid document id is passedMessage: NoneNote: When retrieving the view_only_url for a report you may add a queryparameter “report_type” to specify which report viewing mode to openthe Similarity Report in. The available report types are: similarity, content,largest, and summary. Here is an example of the view_only url with theaddition of a report_type query parameter:https://app.ithenticate.com/view_report/0E536A44-9C7F-11E1-B447-E7A05B115896?report_type=contentIf the report_type parameter is not used the Similarity Report will open in thedefault report viewing mode that was set for the account.Example Request:report.getsid5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1id8896exclude_quotes1exclude_biblio1exclude_small_matches1Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .44


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Get Similarity ReportExample Response:sid432d8b581da65ae89f9683803e750884d022c568status200view_only_expires2008-06-27T20:54:24Z


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Get Similarity Report for first Document SectionGet Similarity Report for first Document SectionThis method returns the “report_url” data for the first document sectionMethod:report.get_documentArguments: id (document part/section id), sid, exclude_biblio, exclude_quotes, exclude_small_matchesReturns: sid, api_status, response_timestamp, report_url, view_only_url,view_only_expires, exclude_quotes, exclude_biblio, exclude_small_matchesErrors: Returns an error if an invalid document id is passedMessage: NoneExample Request:report.get_documentsid5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1id8896exclude_quotes1exclude_biblio1exclude_small_matches1Example Response:Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .46


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Get Similarity Report for first Document Sectionsid432d8b581da65ae89f9683803e750884d022c568status200view_only_expires2008-06-27T20:54:24Zresponse_timestamp2008-06-27T20:34:24Zreport_urlhttps://api.ithenticate.com/report/1233814/similarityapi_status200view_only_urlhttps://api.ithenticate.com/view_report/6DE5D6A2-4488-11DDCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .47


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Drop UserDrop UserA method call to drop a user from the account. Only the administrator user isauthorized to use this method.Method Name: user.dropArguments: sid, idReturns: sid, api_status, response_timestampErrors: Returns an error if an invalid user id was passedMessage: Returns a message indicating the user was deleted. No message will bereturned if errors occurredExample Request:user.dropsid5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1id23Example Response:sid5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1messagesUser Joe User Deletedapi_status200Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .48


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Trash a DocumentTrash a DocumentThis method moves a document to the trash folder.Method: document.trashArguments: sid, idReturns: sid, api_status, response_timestampErrors: Returns an error if an invalid document id was passedMessage: Returns a message indicating the document was trashed. No message willbe present if errors occurredExample Request:document.trashsid5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1id2161Example Response:sid5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1messagesDocument moved to trashapi_status200Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .49


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Trash a FolderTrash a FolderThis method moves a folder to the trash folder group. The folder must be empty ofdocuments.Method: folder.trashArguments: sid, idReturns: sid, api_status, response_timestampErrors: An error will be returned if the folder is not emptyMessage: Returns a message indicating the group was deleted.Example Request:folder.trashsid5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1id265Example Response:sid5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1messagesFolder “7497_testfolder_199” Moved to Trashapi_status200Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .50


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Delete a Folder GroupDelete a Folder GroupThis method deletes a folder group. The group must be empty of folders to bedeleted.Method: group.dropArguments: sid, idReturns: sid, api_status, response_timestampErrors: An error will be returned if the folder is not emptyMessage: Returns a message indicating the group was deletedExample Request:group.dropsid5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1id126Example Response:sid5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1messagesGroup “7497_test_group_794” removedapi_status200Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .51


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Remove Documents from Private NodeRemove Documents from Private NodeThis method removes document/s from the private node. This method only applies toaccounts that have purchased the private node.Method: document.remove_from_indexArguments: sid, idReturns: sid, api_status, response_timestampErrors: Returns an error if an invalid document id was passedMessage: Returns a message indicating the document was removed from theprivate node. No message will be present if errors occurredExample Request:document.remove_from_indexsid5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1id126Example Response:sid5d58f1491c3355c6dfbdeccd76429a6c3a94cdc1messagesDocument queued for removal from your indexapi_status200Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .52


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>AppendixesAppendix A - TimezonesID | Timezone-------------------------1 Europe/Andorra2 Asia/Dubai3 Asia/Kabul4 America/Antigua5 America/Anguilla6 Europe/Tirane7 Asia/Yerevan8 America/Curacao9 Africa/Luanda10 Antarctica/McMurdo11 Antarctica/South_Pole12 Antarctica/Rothera13 Antarctica/Palmer14 Antarctica/Mawson15 Antarctica/Davis16 Antarctica/Casey17 Antarctica/Vostok18 Antarctica/DumontDUrville19 Antarctica/Syowa20 America/Argentina/Buenos_Aires21 America/Argentina/Cordoba22 America/Argentina/Jujuy23 America/Argentina/Tucuman24 America/Argentina/Catamarca25 America/Argentina/La_Rioja26 America/Argentina/San_Juan27 America/Argentina/Mendoza28 America/Argentina/Rio_Gallegos29 America/Argentina/Ushuaia30 Pacific/Pago_Pago31 Europe/Vienna32 Australia/Lord_Howe33 Australia/Hobart34 Australia/Currie35 Australia/Melbourne36 Australia/Sydney37 Australia/Broken_Hill38 Australia/Brisbane39 Australia/Lindeman40 Australia/Adelaide41 Australia/Darwin42 Australia/Perth43 Australia/Eucla44 America/ArubaCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.45 Europe/Mariehamn46 Asia/Baku47 Europe/Sarajevo48 America/Barbados49 Asia/Dhaka50 Europe/Brussels51 Africa/Ouagadougou52 Europe/Sofia53 Asia/Bahrain54 Africa/Bujumbura55 Africa/Porto-Novo56 America/St_Barthelemy57 Atlantic/Bermuda58 Asia/Brunei59 America/La_Paz60 America/Noronha61 America/Belem62 America/Fortaleza63 America/Recife64 America/Araguaina65 America/Maceio66 America/Bahia67 America/Sao_Paulo68 America/Campo_Grande69 America/Cuiaba70 America/Porto_Velho71 America/Boa_Vista72 America/Manaus73 America/Eirunepe74 America/Rio_Branco75 America/Nassau76 Asia/Thimphu77 Africa/Gaborone78 Europe/Minsk79 America/Belize80 America/St_Johns81 America/Halifax82 America/Glace_Bay83 America/Moncton84 America/Goose_Bay85 America/Blanc-Sablon86 America/Montreal87 America/Toronto88 America/Nipigon89 America/Thunder_Bay90 America/Iqaluit91 America/Pangnirtung92 America/Resolute93 America/Atikokan94 America/Rankin_Inlet95 America/WinnipegSection: Appendix A - Timezones<strong>iThenticate</strong> <strong>API</strong> Manual: .53


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>96 America/Rainy_River97 America/Regina98 America/Swift_Current99 America/Edmonton100 America/Cambridge_Bay101 America/Yellowknife102 America/Inuvik103 America/Dawson_Creek104 America/Vancouver105 America/Whitehorse106 America/Dawson107 Indian/Cocos108 Africa/Kinshasa109 Africa/Lubumbashi110 Africa/Bangui111 Africa/Brazzaville112 Europe/Zurich113 Africa/Abidjan114 Pacific/Rarotonga115 America/Santiago116 Pacific/Easter117 Africa/Douala118 Asia/Shanghai119 Asia/Harbin120 Asia/Chongqing121 Asia/Urumqi122 Asia/Kashgar123 America/Bogota124 America/Costa_Rica125 America/Havana126 Atlantic/Cape_Verde127 Indian/Christmas128 Asia/Nicosia129 Europe/Prague130 Europe/Berlin131 Africa/Djibouti132 Europe/Copenhagen133 America/Dominica134 America/Santo_Domingo135 Africa/Algiers136 America/Guayaquil137 Pacific/Galapagos138 Europe/Tallinn139 Africa/Cairo140 Africa/El_Aaiun141 Africa/Asmara142 Europe/Madrid143 Africa/Ceuta144 Atlantic/Canary145 Africa/Addis_Ababa146 Europe/HelsinkiSection: Appendix A - Timezones147 Pacific/Fiji148 Atlantic/Stanley149 Pacific/Truk150 Pacific/Ponape151 Pacific/Kosrae152 Atlantic/Faroe153 Europe/Paris154 Africa/Libreville155 Europe/London156 America/Grenada157 Asia/Tbilisi158 America/Cayenne159 Europe/Guernsey160 Africa/Accra161 Europe/Gibraltar162 America/Godthab163 America/Danmarkshavn164 America/Scoresbysund165 America/Thule166 Africa/Banjul167 Africa/Conakry168 America/Guadeloupe169 Africa/Malabo170 Europe/Athens171 Atlantic/South_Georgia172 America/Guatemala173 Pacific/Guam174 Africa/Bissau175 America/Guyana176 Asia/Hong_Kong177 America/Tegucigalpa178 Europe/Zagreb179 America/Port-au-Prince180 Europe/Budapest181 Asia/Jakarta182 Asia/Pontianak183 Asia/Makassar184 Asia/Jayapura185 Europe/Dublin186 Asia/Jerusalem187 Europe/Isle_of_Man188 Asia/Calcutta189 Indian/Chagos190 Asia/Baghdad191 Asia/Tehran192 Atlantic/Reykjavik193 Europe/Rome194 Europe/Jersey195 America/Jamaica196 Asia/Amman197 Asia/TokyoCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .54


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>198 Africa/Nairobi199 Asia/Bishkek200 Asia/Phnom_Penh201 Pacific/Tarawa202 Pacific/Enderbury203 Pacific/Kiritimati204 Indian/Comoro205 America/St_Kitts206 Asia/Pyongyang207 Asia/Seoul208 Asia/Kuwait209 America/Cayman210 Asia/Almaty211 Asia/Qyzylorda212 Asia/Aqtobe213 Asia/Aqtau214 Asia/Oral215 Asia/Vientiane216 Asia/Beirut217 America/St_Lucia218 Europe/Vaduz219 Asia/Colombo220 Africa/Monrovia221 Africa/Maseru222 Europe/Vilnius223 Europe/Luxembourg224 Europe/Riga225 Africa/Tripoli226 Africa/Casablanca227 Europe/Monaco228 Europe/Chisinau229 Europe/Podgorica230 America/Marigot231 Indian/Antananarivo232 Pacific/Majuro233 Pacific/Kwajalein234 Europe/Skopje235 Africa/Bamako236 Asia/Rangoon237 Asia/Ulaanbaatar238 Asia/Hovd239 Asia/Choibalsan240 Asia/Macau241 Pacific/Saipan242 America/Martinique243 Africa/Nouakchott244 America/Montserrat245 Europe/Malta246 Indian/Mauritius247 Indian/Maldives248 Africa/Blantyre249 America/Mexico_City250 America/Cancun251 America/Merida252 America/Monterrey253 America/Mazatlan254 America/Chihuahua255 America/Hermosillo256 America/Tijuana257 Asia/Kuala_Lumpur258 Asia/Kuching259 Africa/Maputo260 Africa/Windhoek261 Pacific/Noumea262 Africa/Niamey263 Pacific/Norfolk264 Africa/Lagos265 America/Managua266 Europe/Amsterdam267 Europe/Oslo268 Asia/Katmandu269 Pacific/Nauru270 Pacific/Niue271 Pacific/Auckland272 Pacific/Chatham273 Asia/Muscat274 America/Panama275 America/Lima276 Pacific/Tahiti277 Pacific/Marquesas278 Pacific/Gambier279 Pacific/Port_Moresby280 Asia/Manila281 Asia/Karachi282 Europe/Warsaw283 America/Miquelon284 Pacific/Pitcairn285 America/Puerto_Rico286 Asia/Gaza287 Europe/Lisbon288 Atlantic/Madeira289 Atlantic/Azores290 Pacific/Palau291 America/Asuncion292 Asia/Qatar293 Indian/Reunion294 Europe/Bucharest295 Europe/Belgrade296 Europe/Kaliningrad297 Europe/Moscow298 Europe/Volgograd299 Europe/SamaraSection: Appendix A - TimezonesCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .55


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>300 Asia/Yekaterinburg301 Asia/Omsk302 Asia/Novosibirsk303 Asia/Krasnoyarsk304 Asia/Irkutsk305 Asia/Yakutsk306 Asia/Vladivostok307 Asia/Sakhalin308 Asia/Magadan309 Asia/Kamchatka310 Asia/Anadyr311 Africa/Kigali312 Asia/Riyadh313 Pacific/Guadalcanal314 Indian/Mahe315 Africa/Khartoum316 Europe/Stockholm317 Asia/Singapore318 Atlantic/St_Helena319 Europe/Ljubljana320 Arctic/Longyearbyen321 Europe/Bratislava322 Africa/Freetown323 Europe/San_Marino324 Africa/Dakar325 Africa/Mogadishu326 America/Paramaribo327 Africa/Sao_Tome328 America/El_Salvador329 Asia/Damascus330 Africa/Mbabane331 America/Grand_Turk332 Africa/Ndjamena333 Indian/Kerguelen334 Africa/Lome335 Asia/Bangkok336 Asia/Dushanbe337 Pacific/Fakaofo338 Asia/Dili339 Asia/Ashgabat340 Africa/Tunis341 Pacific/Tongatapu342 Europe/Istanbul343 America/Port_of_Spain344 Pacific/Funafuti345 Asia/Taipei346 Africa/Dar_es_Salaam347 Europe/Kiev348 Europe/Uzhgorod349 Europe/Zaporozhye350 Europe/SimferopolSection: Appendix A - Timezones351 Africa/Kampala352 Pacific/Johnston353 Pacific/Midway354 Pacific/Wake355 America/New_York356 America/Detroit357 America/Kentucky/Louisville358 America/Kentucky/Monticello359 America/Indiana/Indianapolis360 America/Indiana/Vincennes361 America/Indiana/Knox362 America/Indiana/Winamac363 America/Indiana/Marengo364 America/Indiana/Vevay365 America/Chicago366 America/Indiana/Tell_City367 America/Indiana/Petersburg368 America/Menominee369 America/North_Dakota/Center370 America/North_Dakota/New_Salem371 America/Denver372 America/Boise373 America/Shiprock374 America/Phoenix375 America/Los_Angeles376 America/Anchorage377 America/Juneau378 America/Yakutat379 America/Nome380 America/Adak381 Pacific/Honolulu382 America/Montevideo383 Asia/Samarkand384 Asia/Tashkent385 Europe/Vatican386 America/St_Vincent387 America/Caracas388 America/Tortola389 America/St_Thomas390 Asia/Saigon391 Pacific/Efate392 Pacific/Wallis393 Pacific/Apia394 Asia/Aden395 Indian/Mayotte396 Africa/Johannesburg397 Africa/Lusaka398 Africa/HarareCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .56


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Appendix B - PHP Development NotesAppendix B - PHP Development NotesExample PHP ProgramA sample client program is available from <strong>iThenticate</strong> to show a simple api clientimplementation in PHP. See your account representative for a copy.SSLAll connections to the <strong>iThenticate</strong> web service must be made using SSL. Therecommended base module is IXR_Library.inc.php version 1.7.1 (beta). It providesan SSL client implementation in the IXR_ClientSSL constructor.Curl OptionsOn some implementations, notably Windows running Apache with mod_php, curl callsmay return false. The CURLOPT_CAINFO curl option must be set to the location ofthe curl certificate bundle file, example ‘C:\windows\system32\ca-bundle.crt’. It maybe necessary to install a standalone curl package, as the php implementation doesnot always provide the certificate bundle.It is not recommended to set the curl option CURLOPT_SSL_VERIFYPEER to 0. Thisdisables peer SSL certificate verification, and makes your connection susceptible tointerception via a man in the middle attack. Although many web resources give thisas an example of how to overcome connection issues with PHP and curl, we stronglyadvise against disabling peer certificate verification.Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .57


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Appendix C - Perl Development NotesAppendix C - Perl Development NotesPerl Client LibrariesThe perl module WebService::<strong>iThenticate</strong> can be found on the Comprehensive PerlArchive Network (CPAN).http://search.cpan.org/dist/WebService-<strong>iThenticate</strong>This library contains all the necessary examples and methods to develop in Perl usingthe <strong>iThenticate</strong> <strong>API</strong>.Copyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .58


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Appendix D - Manual ChangesAppendix D - Manual ChangesNovember 7, 2012• Added new method (document.remove_from_index) for removing a document fromthe private node for an accountSeptember 14, 2011• Add exclude_biblio and exclude_small_matches to folder.add and report.get• Add callback_url to document.add• Add folder.sharing method• Add report.get_document methodDec 8, 2008• Update link to WebService::<strong>iThenticate</strong> on CPAN in Appendix CAugust 14, 2008• Add is_pending to response parameter list• Add <strong>API</strong> url to documentJuly 24, 2008• Move request and response parameters to tablesJuly 15, 2008• Format XML examples for readability• Correct boolean fields which were represented as type int• Remove redudant field and method definitionsJune 27, 2008• Corrected error in similarity report response fields• Update similarity report response xml• Clarified id passed to report.get as document section id, not document idCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .59


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Section: Appendix D - Manual ChangesGlossaryCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .60


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>Definitionsaccount - is a class name thatrepresents the <strong>iThenticate</strong> account.This class name has the followingread only attributes: report_count,report_limit, resubmission_count,resubmission_limit, unit_name,user_name, user_count, user_limit,valid_until, words_per_pageaccount administrator - anaccount administrator (referred toas the account admin) has accessto the manage users tab on the<strong>iThenticate</strong> homepageadd - this function adds a newobject. The available classes thisfunction can be used with are:group, folder, document, user. Anexample <strong>API</strong> method name isfolder.add<strong>API</strong> method variables:author_first - A string value representingthe document author’s first nameauthor_last - A string value representingthe document author’s last namedescription - A string value representingthe users comments about a folderemail - A string value representing theassociated email addressexclude_quotes - A boolean valuedetermining whether quoted material isexcluded from Similarity Reportsfilename - A string value representing anoptional file source reference for thedocumentfirst_name - A string value representingthe associated user first namefolder - An integer value representing theassociated folder idid - An integer value unique to the group,read onlylast_name - A string value representingthe associated user last namename - A string value representing thename of the associated folder or groupSection: Definitionsreport_count - Integer value representingthe number of reports generatedreport_limit - Integer value representingthe allowed number of reportsresubmission_count - Integer valuerepresenting the number of currentresubmissionsresubmission_limit - Integer valuerepresenting the number of allowedresubmissionstitle - A string value representing thedocument titleunit_name - String value, set to Pageupload - A base64 encoded valuecontaining the word content of thedocumentuser_count - Integer value, number ofregistered usersuser_limit - Integer value, number ofallowed usersurl - A string value representing the urlwhere the report may be accessedvalid_until - Date Time value, expirationdate for accountwords_per_Page - Integer value,number of words per pageclass - the general format formethod invocation (excluding login)is of the form class.method. Thereare six available classes: account,document, folder, group, report,and userdocument - this class namerepresents a document containingwords. This class has the followingattributes: id, title, author_first,author_last, filename, upload,folderCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .61


 <strong>iThenticate</strong> <strong>API</strong> <strong>Guide</strong>drop - is a function name thatdeletes an object. This function canbe used with the user and groupclasses. An example <strong>API</strong> methodname is user.dropfolder - this class name representsa folder, a container of documents.This class has the followingattributes: id, folder_group, name,description, exclude_quotesfunction - function names areadded to a class using the period‘.’ operator to create a string whichrepresents the <strong>API</strong> method name.The list of standard function namesare the following: add, drop, get,list, and trashname has the following read onlyattribute: urltrash - is a function name thatmoves an object to the trash. Theavailable classes this function canbe used with are: document andfolder. An example <strong>API</strong> methodname is document.trashSection: Definitionsuser - represents an <strong>iThenticate</strong>user. The user class name containsthe following attributes: id, email,first_name, last_namegroup - this class representsa folder group, a container forfolder. Groups have the followingattributes: id, nameget - is a function name that getsan object. The available classesthis method can be used with are:group, folder, document, account,user, report. An example <strong>API</strong>method name is folder.getlist - is a function name thatreturns a list of the objects for aspecific user. The available classesthis method can be used with are:group, folder, and user. An example<strong>API</strong> method name would look likethis: group.listmethod - each class may becombined with one of severalstandard method (function) namesusing the period ‘.’ operator tocreate a string which representsthe <strong>API</strong> method name. The generalformat for a method name is: class.methodreport - represents an <strong>iThenticate</strong>Similarity Report. The report classCopyright © 1998 – 2012 iParadigms, LLC. All rights reserved.<strong>iThenticate</strong> <strong>API</strong> Manual: .62

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!