TAP API Documentation
The TAP API follows Microsoft's OData standard for all URL Elements & parameters. Find a guide to these features here. The most up-to-date TAP API endpoints are available on the API Explorer Page.
POST | Access Token | /auth/identity/connect/token | Generates an access token for use in subsequent calls. |
Note:
This call requires a TAP user account and the API is subject to the same permission limitations as this user account. Please insure you use a Super Admin user account to gather the access token, otherwise there is the potential that some results may not be included in the response due to limited security privileges.
URL Elements & Parameters
Tenant Name
- The subdomain of your environment e.g. default.tap.thinksmart.com
Environment
Body Elements
grant_type
- password
scope
- api
redirect_uri
- tapredirect (Typical default value, reach out to Mitratech to confirm)
username
- The registered user to be authorized
password
- That user's password
client_id
- To be obtained from Mitratech
client_secret
- To be obtained from Mitratech
Sample Request
HTTP
POST /default/auth/identity/connect/token HTTP/1.1
Host: default.stagingtap.thinksmart.com
Content-Type: application/x-www-form-urlencoded
grant_type=password&scope=api&redirect_uri=tapredirect&username=test@test.com&password=UserPassWord&client_id=6b95e19lc3774a9a900e72287ffcefa4&client_secret=qSYBt+HkGTElD+FpKs3ItdUbRZHVeyvZvj1a/Tt5C4M=
Sample Response
{
"access_token": "d57fc1d99d15f18f9234aa181853d805",
"expires_in": 3600,
"token_type": "Bearer"
}
Live
Live Response
POST | Bulk API | /api/users/bulkAddorUpdate | Used to create new user accounts. |
Note:
This call requires a TAP user account and the API is subject to the same permission limitations as this user account. Please ensure you use a Super Admin user account to gather the access token, otherwise, there is the potential that some results may not be included in the response due to limited security privileges.
URL Elements & Parameters
Tenant Name
- The subdomain of your environment e.g. default.tap.thinksmart.com
Environment
Body Elements
grant_type
- password
Sample Request
HTTP
POST /default/auth/identity/connect/token HTTP/1.1
Host: default.stagingtap.thinksmart.com
Content-Type: application/x-www-form-urlencoded
grant_type=password&scope=api&redirect_uri=tapredirect&username=test@test.com&password=UserPassWord&client_id=6b95e19lc3774a9a900e72287ffcefa4&client_secret=qSYBt+HkGTElD+FpKs3ItdUbRZHVeyvZvj1a/Tt5C4M=
Sample Response
{
"access_token": "d57fc1d99d15f18f9234aa181853d805",
"expires_in": 3600,
"token_type": "Bearer"
}
Live
Live Response
GET | Download by ID | /api/v1/files/{id} | Method which will return a file by id. Use GET File Attachments to get the file ids from a specific workflow record. |
URL Elements & Parameters
{id}
- The id of the file you want to download.
Sample Request
HTTP
GET /default/api/v1/files/ef821349-695b-414f-8d40-78dde3fa3eb1 HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer ad98e0b76d9a90543c8b4bd9953cec1c
Sample Response
Octet stream of file body.
Live
Live Response
GET | Audit Trail | /api/v1/workflows/getaudittraildetails/name | Method to audit the workflows by name |
URL Elements & Parameters
Request #
- Workflow Name
Request Body
Sample Request
HTTP
GET /default/api/v1/workflows/audittraildetails/name HTTP/1.1
Host: default.stagingtap.thinksmart.com
Content-Type: application/json
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
[
"Request # 00000190",
"Request # 00000167",
"Request # 00000166"
]
Sample Response
[
{
"WorkflowName": "Request # 00000190",
"AuditTrailFieldLogStageList": [
{
"Stage": "Stage 1",
"Date": "2023-01-13T12:43:05.0431102",
"User": "Francisco Trinidad",
"Status": "Relationship 1",
"Fields": [
{
"Name": "element3",
"Value": "Hi this a sample.",
"Type": "text-area",
"Label": "Click to edit"
},
{
"Name": "element4",
"Value": "
"Type": "text-box",
"Label": "Click to edit"
}
]
} ] },
{ "WorkflowName": "Request # 00000167",
"AuditTrailFieldLogStageList": []
},
{ "WorkflowName": "Request # 00000166",
"AuditTrailFieldLogStageList": []
} ]
Live
Live Response
GET | Tenant Configurations | /api/v1/gridconfigurations/tenant | Method which will return all dashboard grid configurations. |
URL Elements & Parameters
$top
- The max number of records
$skip
- The number of records to skip
$filter
- A function that must evaluate to true for a record to be returned
$select
- Specifies a subset of properties to return
$orderby
- Determines what values are used to order a collection of records
$inlinecount
- Set 'allpages' if you want to have total count value in result
Sample Request
HTTP
GET /default/api/v1/gridconfigurations/tenant?$top=1&$skip=0&$filter=Name eq 'Cole API Training' HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer e2f3bc12116f1d87f35d01a62526b7e1
Sample Response
{
"Items": [
{
"ID": "2dbfc80d-5fb4-458d-ab92-2e2abbec11cc",
"Name": "Cole API Training",
"Description": "Cole API Training",
"Configuration": null,
"UserID": null,
"ApplicationID": "00000000-0000-0000-0000-000000000000",
"IsPinned": false,
"IsTenant": true,
"IsDefault": false,
"HasURL Elements & Parameters": false,
"DateCreated": "2019-10-03T18:06:13.732",
"UserCreated": "3883892d-81e0-4606-a18c-406a3ca09355",
"DateModified": "2020-04-29T22:02:47.787",
"UserModified": "3883892d-81e0-4606-a18c-406a3ca09355"
}
],
"NextPageLink": null,
"Count": null
}
Live
Live Response
GET | User Configurations | /api/v1/gridconfigurations/user | Method that will return all dashboard grid configurations visible for current user |
URL Elements & Parameters
$top
- The max number of records
$skip
- The number of records to skip
$filter
- A function that must evaluate to true for a record to be returned
$select
- Specifies a subset of properties to return
$orderby
- Determines what values are used to order a collection of records
$inlinecount
- Set 'allpages' if you want to have total count value in result
Sample Request
HTTP
GET /default/api/v1/gridconfigurations/user HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer 5b79de7c00961bfebd24c10f95e30ce6
Sample Response
{
"Items": [
{
"ID": "cb5b946c-d965-4925-ab1b-f2f6cc3fdd53",
"Name": "User default",
"Description": null,
"Configuration": null,
"UserID": "b24626a6-6d61-4b76-99f6-3ed4b4606468",
"ApplicationID": "00000000-0000-0000-0000-000000000000",
"IsPinned": false,
"IsTenant": false,
"IsDefault": false,
"HasParameters": false,
"DateCreated": "2020-05-18T15:23:55.642",
"UserCreated": "b24626a6-6d61-4b76-99f6-3ed4b4606468",
"DateModified": "2020-05-18T15:23:55.642",
"UserModified": "b24626a6-6d61-4b76-99f6-3ed4b4606468"
}
],
"NextPageLink": null,
"Count": null
}
Live
Live Response
GET | Configuration by ID | /api/v1/gridconfigurations/{id} | Method which returns the details of a grid configuration by id. |
URL Elements & Parameters
{id}
- The id of the grid configuration returned from the tenant configurations or user configurations call.
Sample Request
HTTP
GET /default/api/v1/gridconfigurations/cb5b946c-d965-4925-ab1b-f2f6cc3fdd53 HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer 5b79de7c00961bfebd24c10f95e30ce6
Sample Response
{
"ID": "cb5b946c-d965-4925-ab1b-f2f6cc3fdd53",
"Name": "User default",
"Description": null,
"Configuration": null,
"UserID": "b24626a6-6d61-4b76-99f6-3ed4b4606468",
"ApplicationID": "00000000-0000-0000-0000-000000000000",
"IsPinned": false,
"IsTenant": false,
"IsDefault": false,
"HasParameters": false,
"DateCreated": "2020-05-18T15:23:55.642",
"UserCreated": "b24626a6-6d61-4b76-99f6-3ed4b4606468",
"DateModified": "2020-05-18T15:23:55.642",
"UserModified": "b24626a6-6d61-4b76-99f6-3ed4b4606468"
}
Live
Live Response
GET | Available Templates | /api/v1/templates/dashboard | Returns available workflow templates for visible on dashboard |
URL Elements & Parameters
$top
- The max number of records
$skip
- The number of records to skip
$filter
- A function that must evaluate to true for a record to be returned
$select
- Specifies a subset of properties to return
$orderby
- Determines what values are used to order a collection of records
$inlinecount
- Set 'allpages' if you want to have total count value in result
Sample Request
HTTP
GET /default/api/v1/templates/dashboard?$filter=WorkflowName eq 'Cole API Training 2020' HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
Sample Response
{
"Items": [
{
"ID": "f5031928-95d6-4169-8d95-a9fc5b89c5ae",
"WorkflowName": "Cole API Training 2020",
"InitialStage": "Description for stage 1",
"DateCreated": "2020-03-30T10:48:39.257"
}
],
"NextPageLink": null,
"Count": null
}
Live
Live Response
GET | User info by ID | /api/v1/users/{id} | Method which returns user info by id. |
URL Elements & Parameters
{id}
- The id of the user in question.
Sample Request
HTTP
GET /default/api/v1/users/b24626a6-6d61-4b76-99f6-3ed4b4606468? HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
Sample Response
{
"ID": "b24626a6-6d61-4b76-99f6-3ed4b4606468",
"FullName": "Cole API User",
"Email": "test@test.com",
"Roles": [
"Super Admin"
],
"Departments": [
"Global"
],
"ESignKey": "test2@test.com",
"CustomFields": [
{
"Key": "Employee Type",
"Value": "Full Time"
}
]
}
Live
Live Response
GET | Current User | /api/v1/users/current | Returns authenticated user info. |
Sample Request
HTTP
GET /default/api/v1/users/current HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
Sample Response
{
"ID": "b24626a6-6d61-4b76-99f6-3ed4b4606468",
"FullName": "Cole API User",
"Email": "test@test.com",
"Roles": [
"Super Admin"
],
"Departments": [
"Global"
],
"ESignKey": "test2@test.com",
"CustomFields": [
{
"Key": "Employee Type",
"Value": "Full Time"
}
]
}
Live
Live Response
GET | All Users | /api/v1/users | Returns TAP users info. |
URL Elements & Parameters
$top
- The max number of records
$skip
- The number of records to skip
$filter
- A function that must evaluate to true for a record to be returned
$select
- Specifies a subset of properties to return
$orderby
- Determines what values are used to order a collection of records
$inlinecount
- Set 'allpages' if you want to have total count value in result
Sample Request
HTTP
GET /default/api/v1/users?$filter=FullName eq 'Cole API User' HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
Sample Response
{
"Items": [
{
"ID": "b24626a6-6d61-4b76-99f6-3ed4b4606468",
"FullName": "Cole API User",
"Email": "cole.apiuser@cole.com",
"Roles": [
"Super Admin"
],
"Departments": [
"Global"
],
"ESignKey": "test@test.com",
"CustomFields": [
{
"Key": "Employee Type",
"Value": "Full Time"
}
]
}
],
"NextPageLink": null,
"Count": null
}
Live
Live Response
GET | All Workflows | /api/v1/workflows/all | Method that will return all dashboard workflows (does not support OData filtering yet). |
URL Elements & Parameters
pageSize
- Page size (Required)
page
- Number of displayed page (Required)
configurationId
- Id of Workflow Dashboard configuration
search
- Text for search filter
orderBy
- Field name for sorting
orderDirection
- Direction of sorting. Possible values: ASC, DESC
advancedFilter
- Advanced filter for records (e.g. : column1~startswith~'value'~and~column2~eq~'value')
dynamicColumns
- Dynamic columns separated with comma to select and filter on
Sample Request
HTTP
GET /default/api/v1/workflows/all?pageSize=1&page=1 HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
Sample Response
Note:
Main Fields in TAP have two underscores '__' as a prefix and suffix. Main Fields are ALWAYS
returned in the response of this endpoint.
For Example: '__WorkflowName__', '__WorkflowDescription__', '__CurrentAssignee__', '__DateCreated__', etc.
{
"Items": [
{
"ResultSetId": "de7d60b1-ec0b-4d90-8988-0a3d8d3727e9",
"TaskId": "de7d60b1-ec0b-4d90-8988-0a3d8d3727e9",
"TokenId": "67f44d69-2a50-4501-9579-04c49f9f6735",
"Columns": [
{
"Name": "__WorkflowName__",
"Label": "Workflow Name",
"Value": "Request # 00489724"
},
{
"Name": "__WorkflowDescription__",
"Label": "Workflow Description",
"Value": "Time Range Test"
},
{
"Name": "__CurrentAssignee__",
"Label": "Current Assignee",
"Value": "Cole Stewart (2nd)"
},
{
"Name": "__DateLastUpdated__",
"Label": "Last Updated",
"Value": "5/14/2020 9:09:29 AM"
},
{
"Name": "__DateCreated__",
"Label": "Created",
"Value": "5/14/2020 9:09:29 AM"
},
{
"Name": "__DateSigned__",
"Label": "Date Signed",
"Value": ""
},
{
"Name": "__DateCompleted__",
"Label": "Completed",
"Value": ""
},
{
"Name": "__Status__",
"Label": "Status",
"Value": "Relationship 1"
},
{
"Name": "__DocumentIdentifier__",
"Label": "Document ID",
"Value": ""
},
{
"Name": "__EndDate__",
"Label": "End Date",
"Value": "12/31/2033 12:00:00 AM"
},
{
"Name": "__FormProgress__",
"Label": "Stage Progress",
"Value": "0"
},
{
"Name": "__NextSigner__",
"Label": "Next Signer",
"Value": ""
}
],
"Actions": [
"edit_",
"remove_",
"attachments_",
"cancel",
"continue",
"auditTrail",
"changeUser",
"offline_"
]
}
],
"Count": 159072
}
Live
Live Response
GET | Action Required | /api/v1/workflows/actionrequired | Returns all workflows that require action on the behalf of the user account executing the call. |
URL Elements & Parameters
pageSize
- Page size (Required)
page
- Number of displayed page (Required)
configurationId
- Id of Workflow Dashboard configuration
search
- Text for search filter
orderBy
- Field name for sorting
orderDirection
- Direction of sorting. Possible values: ASC, DESC
advancedFilter
- Advanced filter for records (e.g. : column1~startswith~'value'~and~column2~eq~'value')
dynamicColumns
- Dynamic columns separated with comma to select and filter on
Sample Request
HTTP
GET /default/api/v1/workflows/actionrequired?pageSize=1&page=1 HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
Sample Response
{
"Items": [
{
"ResultSetId": "de7d60b1-ec0b-4d90-8988-0a3d8d3727e9",
"TaskId": "de7d60b1-ec0b-4d90-8988-0a3d8d3727e9",
"TokenId": "67f44d69-2a50-4501-9579-04c49f9f6735",
"Columns": [
{
"Name": "__WorkflowName__",
"Label": "Workflow Name",
"Value": "Request # 00489724"
},
{
"Name": "__WorkflowDescription__",
"Label": "Workflow Description",
"Value": "Time Range Test"
},
{
"Name": "__CurrentAssignee__",
"Label": "Current Assignee",
"Value": "Cole Stewart (2nd)"
},
{
"Name": "__DateLastUpdated__",
"Label": "Last Updated",
"Value": "5/14/2020 9:09:29 AM"
},
{
"Name": "__DateCreated__",
"Label": "Created",
"Value": "5/14/2020 9:09:29 AM"
},
{
"Name": "__DateSigned__",
"Label": "Date Signed",
"Value": ""
},
{
"Name": "__DateCompleted__",
"Label": "Completed",
"Value": ""
},
{
"Name": "__Status__",
"Label": "Status",
"Value": "Relationship 1"
},
{
"Name": "__DocumentIdentifier__",
"Label": "Document ID",
"Value": ""
},
{
"Name": "__EndDate__",
"Label": "End Date",
"Value": "12/31/2033 12:00:00 AM"
},
{
"Name": "__FormProgress__",
"Label": "Stage Progress",
"Value": "0"
},
{
"Name": "__NextSigner__",
"Label": "Next Signer",
"Value": ""
}
],
"Actions": [
"edit_",
"remove_",
"attachments_",
"cancel",
"continue",
"auditTrail",
"changeUser",
"offline_"
]
}
],
"Count": 159072
}
Live
Live Response
GET | Task Values | /api/v1/workflows/{taskId}/view | View values from specific workflow task by "{taskId}" |
URL Elements & Parameters
{taskId}
- ID of workflow task
include
- Additional properties to include. Use "fieldCode" value to add EchoSign code to result.
Sample Request
HTTP
GET /default/api/v1/workflows/97244a03-df1a-403e-8913-ad6706ad3b46/view HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
Sample Response
Note:
If the value entered in a form field is modified in a later stage, the response of this call will only display the latest data and not all previous values, unlike the Audit Trail. Also, please be aware that if you have more than one form field with the same Name this can create some confusion when parsing the response body. Unique Field Names are highly recommended.
[
{
"Label": "From",
"Value": "05/12/2020"
},
{
"Label": "Is all information accurate?",
"Value": "Option 1"
},
{
"Label": "1. Record Code Name",
"Value": "Accounts Payable"
},
{
"Label": "1. Retention Period",
"Value": "7 Years"
},
{
"Label": "1. Record Code",
"Value": "ACC-1020"
},
{
"Label": "To",
"Value": "05/12/2020"
},
{
"Label": "Description",
"Value": "asdf"
},
{
"Label": "Records Review Due Date",
"Value": "05/12/2020"
},
{
"Label": "Select Request Type",
"Value": "Option 1"
},
{
"Label": "Submission Date",
"Value": "05/12/2020"
},
{
"Label": "Your Email",
"Value": "test@test.com"
},
{
"Label": "Is review by all attorneys required?",
"Value": "Option 2"
},
{
"Label": "Record Location",
"Value": "adsf"
},
{
"Label": "Destruction Eligibility Date",
"Value": "05/12/2020"
}
]
Live
Live Response
GET | Form Info | /api/v1/workflows/form | View form info for workflow initiation or continuation. If there is only templateId provided - will return info for start stage. |
URL Elements & Parameters
templateId
- ID of workflow template
tokenId
- ID of workflow token (for continuation only)
additionalInfo
- Adds additional field info into result
Sample Request
HTTP
GET /default/api/v1/workflows/form?templateId=f5031928-95d6-4169-8d95-a9fc5b89c5ae HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
Sample Response
{
"TemplateId": "f5031928-95d6-4169-8d95-a9fc5b89c5ae",
"ResultSetId": null,
"TaskId": null,
"TokenId": null,
"TemplateName": "Cole API Training 2020",
"Title": null,
"StageTitle": "Stage 1",
"Status": null,
"ActiveRelationship": null,
"IsContinuable": true,
"CurrentAssignee": null,
"IsWizardEnabled": false,
"FormSections": [
{
"title": "Form",
"sectionIndex": 0
},
{
"title": "Submit",
"sectionIndex": 1
}
],
"AdditionalWorkflowInfo": {
"allConditions": []
},
"FormFields": [
{
"ID": "form-element-wrapper_1",
"Name": "element1",
"Label": "Text 1 User Readable",
"Value": "",
"Required": false,
"Editable": true,
"Validation": "",
"FieldType": "text-box",
"AdditionalInfo": null
},
{
"ID": "form-element-wrapper_3",
"Name": "element3",
"Label": "Area 1",
"Value": "",
"Required": false,
"Editable": true,
"Validation": null,
"FieldType": "text-area",
"AdditionalInfo": null
},
{
"ID": "form-element-wrapper_4",
"Name": "element4",
"Label": "Dropdown 1",
"Value": "",
"Required": false,
"Editable": true,
"Validation": "drop-down",
"FieldType": "drop-down",
"AdditionalInfo": null
},
{
"ID": "form-element-wrapper_6",
"Name": "element6",
"Label": "Radio 1",
"Value": "",
"Required": false,
"Editable": true,
"Validation": "radio-button",
"FieldType": "radio-button",
"AdditionalInfo": null
},
{
"ID": "form-element-wrapper_7",
"Name": "element7",
"Label": "File Field 1",
"Value": "",
"Required": false,
"Editable": true,
"Validation": null,
"FieldType": "file-upload",
"AdditionalInfo": null
}
]
}
Live
Live Response
POST | Initiate | /api/v1/workflows/{templateId}/form | Initiates workflow by workflow template ID. |
URL Elements & Parameters
templateId
- ID of workflow template (Required)
Note:
Each revision has a different templateID. Regardless of the ID provided to this parameter ONLY the latest revision of the template will be initiated.
Allowed Content Types
application/json
in structure { "fieldName" : "fieldValue" }
multipart/form-data
(only way to submit files) in structure { "fieldName" : "fieldValue" }
application/x-www-form-urlencoded
in structure fieldName1=fieldValue1&fieldName2=fieldValue2
Request Body
Sample Request
HTTP
POST /default/api/v1/workflows/f5031928-95d6-4169-8d95-a9fc5b89c5ae/form HTTP/1.1
Host: default.stagingtap.thinksmart.com
Content-Type: application/json
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
{
"element1": "Cole",
"element3": "This is an area field \n don't you know",
"element4": "Dogs",
"element6": "One"
}
Sample Response
{
"ResultSetId": "e5dc17e3-bee1-4e52-9015-f67849827a67",
"TokenCollection": [
"10a73c62-7ed3-4c85-80cb-e15d22381937"
]
}
Live
Live Response
PUT | Continue | /api/v1/workflows/{tokenId}/form | Submit active workflow by Token ID. |
URL Elements & Parameters
{tokenId}
- ID of workflow token
Allowed Content Types
application/json
in structure { "fieldName" : "fieldValue" }
multipart/form-data
(only way to submit files) in structure Content-Disposition: form-data
key=<elementid of upload form field> value=<filepath on local system>
application/x-www-form-urlencoded
in structure fieldName1=fieldValue1&fieldName2=fieldValue2
Request Body
Sample Request
HTTP
PUT /default/api/v1/workflows/024775a4-ba29-4a47-a113-08d2173d66a5/form HTTP/1.1
Host: default.stagingtap.thinksmart.com
Content-Type: application/json
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
{
"element1": "Cole 2"
}
Sample Response
{
"ResultSetId": "9d4422f6-b671-46d9-9a59-bd70c4d25131",
"TokenCollection": [
"da85043a-ee64-4e79-a980-cba29540a93d"
]
}
Live
Live Response
GET | File Attachments | /api/v1/workflows/{resultSetId}/files | View workflow attachments by resultSetId |
URL Elements & Parameters
{resultSetId}
- ID of workflow
Sample Request
HTTP
GET /default/api/v1/workflows/21c237e9-80ff-4a77-93f1-5a6502537d06/files HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
Sample Response
[
{
"ID": "340657b6-c209-4bc7-a4e7-525a46147fb9",
"Name": "Example.pdf",
"UploadedBy": "Cole API User",
"UploadedOn": "2020-05-17T23:59:59"
}
]
Live
Live Response
DELETE | Cancel Sent Documents | /api/v1/workflows/{resultSetId}/docs | Terminates workflow instance by resultSetId |
URL Elements & Parameters
{resultSetId}
- Unique ID of workflow instance
onlyReminders
- Resets only reminders of workflow ("cancel and continue" if false)
Sample Request
HTTP
DELETE /default/api/v1/workflows/f4556b4b-b1b6-4311-8535-30680962da4e/docs HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
Sample Response
"f15c5db3-4fbb-467d-a06d-c2ae6d6ef883"
Live
Live Response
GET | Signed Documents | /api/v1/workflows/{resultSetId}/docs | View workflow signed documents by resultSetId |
URL Elements & Parameters
{resultSetId}
- Unique ID of workflow instance
Sample Request
HTTP
GET /default/api/v1/workflows/0343d707-68a9-4169-894b-4d10b511c489/docs HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
Sample Response
[
{
"ID": "24db6805-65c1-4116-ae19-c11213e2db21",
"Name": "Example_20200518",
"Status": "Signed",
"SignedOn": "2020-05-18T09:04:58.89",
"AgreementID": "3AAABLblqZhCFTIk62mlFlFg_z_qogm-R7D4bbfz2LyntZ5B85ckGzT98lgR_YNoCDouaY3Iq0AB8V3kPK1gnd59Mpgv5Ggjz",
"UploadedOn": "2020-05-18T09:04:37.363",
"UploadedBy": "Cole Stewart (2nd)"
}
]
Live
Live Response
DELETE | Cancel Workflow | /api/v1/workflows/{resultSetId}/cancel | Cancels workflow instance by resultSetId |
URL Elements & Parameters
{resultSetId}
- Unique ID of workflow instance
Sample Request
HTTP
DELETE /default/api/v1/workflows/1ee7fe50-c779-4f46-ace8-7197ed04bb63/cancel HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
Sample Response
-- 1154 No Content --
Live
Live Response
PUT | Reassign Workflow | /api/v1/workflows/{tokenId}/assign/{userId} | Assigns new user to specific workflow token by tokenId |
URL Elements & Parameters
{tokenId}
- ID of workflow token (Required)
userId
- New user ID (Required)
message
- (Required)
Sample Request
HTTP
PUT /default/api/v1/workflows/4420b8cc-3e37-45c6-8292-f6f86f2a260d/assign/3883892d-81e0-4606-a18c-406a3ca09355? HTTP/1.1
Host: default.stagingtap.thinksmart.com
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
Sample Response
-- 1150 OK --
Live
Live Response
PUT | Save Workflow | /api/v1/workflows/{resultsetId} | Saves any form by resultSetId |
New Endpoints August 2020
POST | Archive by Filter | /api/v1/workflows/archive/filter | Archives records by Filter. Archived records can be restored with Restore calls. |
Allowed Content Types
application/json
Request Body
Sample Request
HTTP
POST /default/api/v1/workflows/archive/filter HTTP/1.1
Host: default.stagingtap.thinksmart.com
Content-Type: application/json
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
{
"PageSize": 1,
"Page": 1,
"ConfigurationId": "",
"Search": "",
"OrderBy": "",
"OrderDirection": "",
"AdvancedFilter": "__WorkflowDescription__~contains~'Sample Workflow'",
"DynamicColumns": "",
"IsNullFilter": true
}
Sample Response
{
"12b9e358-e6ac-460d-8df4-91f3f9f1f2a4": true
}
Live
Live Response
POST | Archive by ID | /api/v1/workflows/archive | Archives records by resultSetId. Archived records can be restored with Restore calls. |
Allowed Content Types
application/json
Request Body
Sample Request
HTTP
POST /default/api/v1/workflows/archive HTTP/1.1
Host: default.stagingtap.thinksmart.com
Content-Type: application/json
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
[
"12b9e358-e6ac-460d-8df4-91f3f9f1f2a4",
"f4e07773-3149-4dc7-bff6-e12bc8faf544"
]
Sample Response
{
"12b9e358-e6ac-460d-8df4-91f3f9f1f2a4": true,
"f4e07773-3149-4dc7-bff6-e12bc8faf544": true
}
Live
Live Response
POST | Archive by Name | /api/v1/workflows/archive/name | Archives records by workflow name. Archived records can be restored with Restore calls. |
Allowed Content Types
application/json
Request Body
Sample Request
HTTP
POST /default/api/v1/workflows/archive/name HTTP/1.1
Host: default.stagingtap.thinksmart.com
Content-Type: application/json
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
[
"Request # 00504395",
"Request # 00504397"
]
Sample Response
{
"Request # 00504395": true,
"Request # 00504397": true
}
Live
Live Response
POST | Delete by Filter | /api/v1/workflows/delete/filter | Deletes records by Filter. Deleted records are removed permanently. |
Allowed Content Types
application/json
Request Body
Sample Request
HTTP
POST /default/api/v1/workflows/delete/filter HTTP/1.1
Host: default.stagingtap.thinksmart.com
Content-Type: application/json
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
{
"PageSize": 1,
"Page": 1,
"ConfigurationId": "",
"Search": "",
"OrderBy": "",
"OrderDirection": "",
"AdvancedFilter": "__WorkflowDescription__~contains~'Sample Workflow'",
"DynamicColumns": "",
"IsNullFilter": true
}
Sample Response
{
"12b9e358-e6ac-460d-8df4-91f3f9f1f2a4": true
}
Live
Live Response
POST | Delete by ID | /api/v1/workflows/delete | Deletes records by resultSetId. Deleted records are removed permanently. |
Allowed Content Types
application/json
Request Body
Sample Request
HTTP
POST /default/api/v1/workflows/delete HTTP/1.1
Host: default.stagingtap.thinksmart.com
Content-Type: application/json
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
[
"12b9e358-e6ac-460d-8df4-91f3f9f1f2a4",
"f4e07773-3149-4dc7-bff6-e12bc8faf544"
]
Sample Response
{
"12b9e358-e6ac-460d-8df4-91f3f9f1f2a4": true,
"f4e07773-3149-4dc7-bff6-e12bc8faf544": true
}
Live
Live Response
POST | Delete by Name | /api/v1/workflows/delete/name | Deletes records by workflow name. Deleted records are removed permanently. |
Allowed Content Types
application/json
Request Body
Notes
Returns 500 upon failure to delete.
Sample Request
HTTP
POST /default/api/v1/workflows/delete/name HTTP/1.1
Host: default.stagingtap.thinksmart.com
Content-Type: application/json
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
[
"Request # 00504395",
"Request # 00504397"
]
Sample Response
{
"Request # 00504395": true,
"Request # 00504397": true
}
Live
Live Response
POST | Restore by ID | /api/v1/workflows/restore | Restores previously-archived records by workflow name. |
Allowed Content Types
application/json
Request Body
Sample Request
HTTP
POST /default/api/v1/workflows/restore HTTP/1.1
Host: default.stagingtap.thinksmart.com
Content-Type: application/json
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
[
"12b9e358-e6ac-460d-8df4-91f3f9f1f2a4",
"f4e07773-3149-4dc7-bff6-e12bc8faf544"
]
Sample Response
{
"12b9e358-e6ac-460d-8df4-91f3f9f1f2a4": true,
"f4e07773-3149-4dc7-bff6-e12bc8faf544": true
}
Live
Live Response
POST | Restore by Name | /api/v1/workflows/restore/name | Restores previously-archived records by workflow name. |
New Endpoints in TAP 1.17
TAP 1.17 released in May 2024 has introduced a variety of new endpoints detailed below:
New API Endpoints to get roles and departments and Create/ Update/ Delete TAP users.
As part of this new feature 5 new endpoints are created. User account being used for authentication should have administration page access to generate a valid token for this call.
· Get Roles
· Get Departments
· Create User
· Update User
· Delete User
Get Roles
This API is used to get all existing roles. These role id’s further can be used for creating or updating users.
URL : GET - https://tenant-url/api/v1/users/roles
Get Departments
This API is used to get all existing departments. These department id’s further can be used for creating or updating users.
URL : GET - https://tenant-url/api/v1/users/departments
Create User
This API is used to create users through Json. We can either create single or multiple users at a time.
Required fields to create a user is Login/Password/FirstName/LastName/Roles/Departments
URL : POST - https://tenant-url/api/v1/users
Below is the sample Json for creating a user.
[{"FirstName":"John1",
"lastName":"Doe",
"Login":"john@gmail.com",
"Password":"QJDnsh2022!",
"Roles":["4ac13c63-dd85-4c58-beb6-87c0d84aba5a","def4a3c8-8fd7-4fd2-85c4-2e2be65f653a"],
"Departments":["1d06831c-2a37-4dc1-b6ba-c96406b8e722"],
"SisenseUserName":"test",
"SisenseUserPassword":"password",
"GenericFields":[{"FieldCode":"domainaddress","FieldValue":"test"}]
},
{"FirstName":"John2",
"lastName":"Doe",
"Login":"john2@gmail.com",
"Password":"QJDnsh2022!",
"Roles":["4ac13c63-dd85-4c58-beb6-87c0d84aba5a"],
"Departments":["1d06831c-2a37-4dc1-b6ba-c96406b8e722"]
}]
Update User
This API is used to update users through Json. We can either update single or multiple users at a time.
Required fields to update a user is Login
URL : PATCH - https://tenant-url/api/v1/users
Below is the sample Json for updating a user.
[{"FirstName":"John",
"lastName":"Doe",
"Login":"john@gmail.com"
},
{"FirstName":"John",
"lastName":"Doe",
"isLockedOut":true,
"Login":"john2@gmail.com",
"Roles":["83e7da9c-f259-4918-9bb5-d193c401595f"],
"Departments":["1d06831c-2a37-4dc1-b6ba-c96406b8e722"]
}]
Delete User
This API is used to delete users through Json. We can either delete single or multiple users at a time.
Required fields to delete a user is Login
URL : DELETE - https://tenant-url/api/v1/users
Below is the sample Json for deleting a user.
["john@gmail.com","john1@gmail.com"]
New API Endpoints to Get Comments
New Features
· Get Comments by Workflow ID/ ResultSet Id
· Get Comments by Workflow Name
· Get Comments by Filter Id.
Get Comments by Workflow IDs/ ResultSet Ids
This endpoint is used to get workflow comments from a workflow or list of workflows based on provided ID/ResultSetID.
URL : GET - https://tenant-url/api/v1/workflows/comments
//Http Get request to
// https://default.local-dev.thinksmart.com/local/api/v1/workflows/comments
//Body Request :
["4BA397D6-FBDF-4EFE-B459-1587B6CF6748", "5E100D0A-3924-4B57-B892-32B31E385D44"]
//Response
[
{
"WorkflowName": "Request # 00000002",
"CommentsFieldsList": [
{
"User": "khyati super admin desai",
"Comments": "second comment",
"CommentsCreatedDate": "2023-10-03T15:11:19.75"
},
{
"User": "khyati super admin desai",
"Comments": "third comment",
"CommentsCreatedDate": "2023-10-03T15:11:19.77"
}
]
},
{
"WorkflowName": "Request # 00000007",
"CommentsFieldsList": [
{
"Message": "Record contains no comments"
}
]
}
]
Get Comments by Workflow Names
This endpoint is used to get workflow comments from a workflow or list of workflows based on provided Workflow Name(s).
URL : GET - https://tenant-url/api/v1/workflows/comments/name
//Http Get request to
// https://default.local-dev.thinksmart.com/local/api/v1/workflows/comments/name
//Body Request :
["Request # 00000003","Request # 00000002"]
//Response
[
{
"WorkflowName": "Request # 00335992",
"Count": 1,
"Error": "",
"CommentsFieldsList": [
{
"User": "Uma Mahamkali",
"Comments": "@uma.mahamkali@mitratech.com",
"CommentsCreatedDate": "2020-10-14T03:12:06.51"
}
]
},
{
"WorkflowName": "Request # 00387340",
"Count": 8,
"Error": "",
"CommentsFieldsList": [
{
"User": "Indrajeet Kumar",
"Comments": "Test1",
"CommentsCreatedDate": "2021-02-05T02:40:37.243"
},
{
"User": "Indrajeet Kumar",
"Comments": "Test2",
"CommentsCreatedDate": "2021-02-05T02:40:39.907"
},
{
"User": "Indrajeet Kumar",
"Comments": "Test3",
"CommentsCreatedDate": "2021-02-05T02:40:42.663"
},
{
"User": "Indrajeet Kumar",
"Comments": "Test4",
"CommentsCreatedDate": "2021-02-05T02:40:45.73"
},
{
"User": "Indrajeet Kumar",
"Comments": "Test5",
"CommentsCreatedDate": "2021-02-05T02:40:48.683"
},
{
"User": "Indrajeet Kumar",
"Comments": "Test6",
"CommentsCreatedDate": "2021-02-05T02:40:55.79"
},
{
"User": "Indrajeet Kumar",
"Comments": "Test8",
"CommentsCreatedDate": "2021-02-05T02:41:16.367"
},
{
"User": "Indrajeet Kumar",
"Comments": "Test9",
"CommentsCreatedDate": "2021-02-05T02:41:20.577"
}
]
}
]
Get Comments by Filter Id
This endpoint is used to get workflow comments from a workflow or list of workflows based on provided dashboard view Filter ID.
URL : GET - https://tenant-url/api/v1/workflows/comments/all
//Http Get request to
// https://default.local-dev.thinksmart.com/local/api/v1/workflows/comments/all
//Body Request :
{
"Page": 1,
"PageSize" : 2,
"ConfigurationId": "e25d1683-a234-4c08-aa9b-44182924c635",
}
//Response
{
"Items": [
{
"WorkflowName": "Request # 00000004",
"CommentsFieldsList": [
{
"Message": "Record contains no comments"
}
]
},
{
"WorkflowName": "Request # 00000003",
"CommentsFieldsList": [
{
"User": "khyati super admin desai",
"Comments": "Hello from Khyati Test1",
"CommentsCreatedDate": "2023-10-04T18:26:48.307"
},
{
"User": "khyati super admin desai",
"Comments": "Second comment from khyati Test 1",
"CommentsCreatedDate": "2023-10-04T18:26:48.323"
},
{
"User": "khyati super admin desai",
"Comments": "Testing order by",
"CommentsCreatedDate": "2023-10-12T14:29:23.717"
},
{
"User": "khyati super admin desai",
"Comments": "Testing order by",
"CommentsCreatedDate": "2023-10-12T14:30:10.44"
}
]
}
],
"Count": 2
}
New API Endpoints to Get Discussion Section
New Features
· Get Discussion by Workflow ID/ ResultSet Id
· Get Discussion by Workflow Name
· Get Discussion by Filter Id.
Get Discussion by Workflow IDs/ ResultSet Ids
This endpoint is used to get discussion section info for a workflow or list of workflows based on ID/ResultSetID.
URL : GET - https://tenant-url/api/v1/workflows/discussion
//Http Get request to
// https://default.local-dev.thinksmart...ows/discussion
//Body Request :
["15dc2e38-cd9b-4eeb-a245-71e4a02fcdb4","5cfeb64a-6e23-4835-85df-207984927166"]
//Response
[
{
"WorkflowName": "Request # 00718496",
"Count" : 1,
"Error" : "",
"CommentsFieldsList":
[
{
"Stage": "Collab 1",
"User": "Soumya Rani voore",
"Comments": "This is a test comment",
"CommentsCreatedDate": "2023-10-19T05:47:41.65"
}
]
},
{
"WorkflowName": "Request # 00718444",
"Count" : 3,
"Error" : "",
"CommentsFieldsList":
[
{
"Stage": "Stage 2",
"User": "Testing TAP",
"Comments": "its Italian pastaaa",
"CommentsCreatedDate": "2023-10-18T07:13:21.113"
},
{
"Stage": "Stage 2",
"User": "NRU",
"Comments": "pasta pasta pasta everywhere",
"CommentsCreatedDate": "2023-10-18T07:13:56.42"
},
{
"Stage": "Stage 2",
"User": "Soumya Rani voore",
"Comments": "alfredooooo",
"CommentsCreatedDate": "2023-10-18T07:51:26.927"
}
]
}
]
Get Discussion by Workflow Names
This endpoint is used to get discussion section info for a workflow or list of workflows based on provided Workflow Name(s).
URL : GET - https://tenant-url/api/v1/workflows/discussion/name
//Http Get request to
// https://default.local-dev.thinksmart...iscussion/name
//Body Request :
["Request # 00000080", "Request # 00000075"]
//Response
[
{
"WorkflowName" : "Request # 00000080"
"Count" : 0,
"Error" : []
"CommentsFieldsList": []
}
{
"WorkflowName" : "Request # 00000075"
"Count" : "0",
"Error" : []
"CommentsFieldsList": []
}
]
Get Discussion by Filter Id
This endpoint is used to get discussion section info for a workflow or list of workflows based on provided dashboard view Filter ID.
URL : GET - https://tenant-url/api/v1/workflows/discussion/all
//Http Get request to
// https://default.local-dev.thinksmart...discussion/all
//Body Request :
{
"Page": 1,
"PageSize" : 5,
"ConfigurationId": "e25d1683-a234-4c08-aa9b-44182924c635",
}
//Response
{
"Items": [
{
"WorkflowName": "Request # 00718553",
"Count" : 0,
"Error" : ""
"CommentsFieldsList": []
},
{
"WorkflowName": "Request # 00718552",
"Count" : 2,
"Error" : "",
"CommentsFieldsList":
[
{
"Stage": "Collab 1",
"User": "Soumya Rani voore",
"Comments": "medimix soap",
"CommentsCreatedDate": "2023-10-19T08:53:52"
},
{
"Stage": "Collab 1",
"User": "NRU",
"Comments": "santoor soap",
"CommentsCreatedDate": "2023-10-19T09:13:55.2"
}
]
},
{
"WorkflowName": "Request # 00718551",
"Count" : 1,
"Error" : "",
"CommentsFieldsList":
[
{
"Stage": "Collaboration Stage",
"User": "Soumya Rani voore",
"Comments": "pears soap",
"CommentsCreatedDate": "2023-10-19T08:53:17.52"
}
]
},
{
"WorkflowName": "Request # 00718550",
"Count" : 1,
"Error" : "",
"CommentsFieldsList":
[
{
"Stage": "Collaboration Stage",
"User": "Soumya Rani voore",
"Comments": "lux soap",
"CommentsCreatedDate": "2023-10-19T08:52:06.633"
}
]
},
{
"WorkflowName": "Request # 00718549",
"Count" : 1,
"Error" : "",
"CommentsFieldsList":
[
{
"Stage": "Stage 2",
"User": "Soumya Rani voore",
"Comments": "hello there priya",
"CommentsCreatedDate": "2023-10-19T08:51:09.553"
}
]
}
],
"Count": 5
}
POST BulkAddorUpdate
Users can efficiently utilize the BulkAddOrUpdate API to manage multiple records in a single request.
Note: This call requires a TAP user account and the API is subject to the same permission limitations as this user account. Please make sure you use a Super Admin user account to gather the access token, otherwise, there is the potential that some results may not be included in the response because of limited security privileges.
URL : POST - https://tenant-url/api/users/bulkAddorUpdate
Sample Request and Sample Response
The authorization for this API differs from other APIs. Please refer to the screenshot below.
Allowed Content Types
application/json
Request Body
Sample Request
HTTP
POST /default/api/v1/workflows/restore/name HTTP/1.1
Host: default.stagingtap.thinksmart.com
Content-Type: application/json
Authorization: Bearer d57fc1d99d15f18f9234aa181853d805
[
"Request # 00504395",
"Request # 00504397"
]
Sample Response
{
"Request # 00504395": true,
"Request # 00504397": true
}
Live
Live Response