Templates
List
POST
/
templates
/
list
List
curl --request POST \
--url https://sandbox.syngrafii.com/api/v1/templates/list \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"memberId": "<string>",
"teamId": "<string>",
"folderId": "<string>",
"allMembers": true,
"search": "<string>",
"personal": true,
"shared": true,
"mostRecent": 123,
"sortBy": "<string>",
"collectionCode": "<string>",
"packageTypes": [
"<string>"
],
"types": [
"<string>"
],
"take": 123,
"skip": 123
}
'import requests
url = "https://sandbox.syngrafii.com/api/v1/templates/list"
payload = {
"memberId": "<string>",
"teamId": "<string>",
"folderId": "<string>",
"allMembers": True,
"search": "<string>",
"personal": True,
"shared": True,
"mostRecent": 123,
"sortBy": "<string>",
"collectionCode": "<string>",
"packageTypes": ["<string>"],
"types": ["<string>"],
"take": 123,
"skip": 123
}
headers = {
"api_key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {api_key: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
memberId: '<string>',
teamId: '<string>',
folderId: '<string>',
allMembers: true,
search: '<string>',
personal: true,
shared: true,
mostRecent: 123,
sortBy: '<string>',
collectionCode: '<string>',
packageTypes: ['<string>'],
types: ['<string>'],
take: 123,
skip: 123
})
};
fetch('https://sandbox.syngrafii.com/api/v1/templates/list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.syngrafii.com/api/v1/templates/list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'memberId' => '<string>',
'teamId' => '<string>',
'folderId' => '<string>',
'allMembers' => true,
'search' => '<string>',
'personal' => true,
'shared' => true,
'mostRecent' => 123,
'sortBy' => '<string>',
'collectionCode' => '<string>',
'packageTypes' => [
'<string>'
],
'types' => [
'<string>'
],
'take' => 123,
'skip' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api_key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.syngrafii.com/api/v1/templates/list"
payload := strings.NewReader("{\n \"memberId\": \"<string>\",\n \"teamId\": \"<string>\",\n \"folderId\": \"<string>\",\n \"allMembers\": true,\n \"search\": \"<string>\",\n \"personal\": true,\n \"shared\": true,\n \"mostRecent\": 123,\n \"sortBy\": \"<string>\",\n \"collectionCode\": \"<string>\",\n \"packageTypes\": [\n \"<string>\"\n ],\n \"types\": [\n \"<string>\"\n ],\n \"take\": 123,\n \"skip\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api_key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.syngrafii.com/api/v1/templates/list")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"memberId\": \"<string>\",\n \"teamId\": \"<string>\",\n \"folderId\": \"<string>\",\n \"allMembers\": true,\n \"search\": \"<string>\",\n \"personal\": true,\n \"shared\": true,\n \"mostRecent\": 123,\n \"sortBy\": \"<string>\",\n \"collectionCode\": \"<string>\",\n \"packageTypes\": [\n \"<string>\"\n ],\n \"types\": [\n \"<string>\"\n ],\n \"take\": 123,\n \"skip\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.syngrafii.com/api/v1/templates/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api_key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"memberId\": \"<string>\",\n \"teamId\": \"<string>\",\n \"folderId\": \"<string>\",\n \"allMembers\": true,\n \"search\": \"<string>\",\n \"personal\": true,\n \"shared\": true,\n \"mostRecent\": 123,\n \"sortBy\": \"<string>\",\n \"collectionCode\": \"<string>\",\n \"packageTypes\": [\n \"<string>\"\n ],\n \"types\": [\n \"<string>\"\n ],\n \"take\": 123,\n \"skip\": 123\n}"
response = http.request(request)
puts response.read_body{
"items": [
{
"organizationId": "<string>",
"templateId": "<string>",
"templateCode": "<string>",
"memberId": "<string>",
"teamId": "<string>",
"folderId": "<string>",
"shared": true,
"timeCreated": "<string>",
"timeUpdated": "<string>",
"timeLastUsed": "<string>",
"name": "<string>",
"description": "<string>",
"packageType": "<string>",
"type": "<string>",
"state": "<string>",
"documents": [
{
"documentId": "<string>",
"documentCode": "<string>",
"index": 123,
"name": "<string>",
"fileName": "<string>"
}
],
"signers": [
{
"signerId": "<string>",
"index": 123,
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"role": "<string>",
"templateRole": "<string>",
"type": "<string>"
}
],
"recipients": [
{
"recipientId": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"templateRole": "<string>",
"type": "<string>"
}
]
}
],
"total": 123,
"take": 123,
"skip": 123
}Users in iinked Sign can create re-usable Templates in the UI that can be used to generate new signing Packages for workflows that are used frequently. You can get a list of the templates and use a template in the creation of a package.
Request
You can retrieve a list of an organization’s member’s current templates by callingtemplates/list.
- Templates
- Auto templates
Request
POST /templates/list
{
"memberId": "e4f0bce5-30fc-43c4-b9ee-364ff5b04dea",
"search": null,
"personal": true,
"shared": null,
"mostRecent": null,
"sortBy": "last_used",
"take": 100,
"skip": 0
}
Request
GET /templates/list
{
"memberId": null,
"types": [
"auto_template"
],
"take": 100,
"skip": 0
}
Body
Some filters are restricted based on the authentication method used or permissions of the organization member.To filter templates for other members, you must use one of the following authentication methods:
- Organization API Key
- User API Key with
Sign EditororTemplate Editorrole enabled - Organization OAuth App
string
The member ID to retrieve templates for.
string
The team ID to retrieve templates for.
string
Filter templates by folder ID.
boolean
When
true, retrieves templates for all members in the organization.string
Filter templates by search terms.
This performs a full text search on template
name, description, message, category, client number, matter number, as well as signer and recipient first name, last name, email, mobile number, and template role.You can use * as a wildcard character to perform suffix matching (e.g., Contract* matches any template whose name contains a word starting with “Contract”).boolean
When
true, retrieves members personal templates only.boolean
When
true, retrieves organization shared templates only.number
Filter templates last used within the last X number of days.
string
default:"created"
Sort results by by one of the following:
Hide values
Hide values
| Value | Description |
|---|---|
| created | Date template was created (descending). |
| last_used | Date template was last used (descending). |
string
Filter templates by collection code.
string[]
Filter templates by package type.
Show values
Show values
| Value | Description |
|---|---|
| concurrent | Concurrent: Allows multiple signers to sign the document simultaneously. |
| Sequential | Sequential: Requires signers to sign the document in a specific order. |
| Counterpart | Group Send: Enables group signing, where all signers receive the document at the same time. |
| video_closing_room | Video Signing Room: A virtual room for signing documents via video conference. |
| Live Session | In Person: An in-person signing session with all parties present. |
Even though the signing workflow names have evolved, the constants used to identify them have remained the same.
The package type constants are case-sensitive. Ensure that you use the exact casing as shown in the table above when specifying package types in your API requests.
string[]
Filter templates by template type.
Show values
Show values
| Value | Description |
|---|---|
| template | Standard template. |
| auto_template | Auto template. |
number
default:50
Number of templates to return.
number
Number of templates to skip.
Response
The response will contain a list of templates that match the provided filter criteria.object[]
Array of templates returned.
Show properties
Show properties
string
Unique identifier of the organization that owns the template.
string
Unique identifier of the template.
string
Template code used to reference the template.
string
Unique identifier of the member that created the template.
string
Unique identifier of the team the template belongs to, if any.
string
Unique identifier of the folder that contains the template, if any.
boolean
Indicates whether the template is shared across the organization.
string
Timestamp when the template was created (ISO 8601 format).
string
Timestamp when the template was last updated (ISO 8601 format).
string
Timestamp when the template was last used (ISO 8601 format).
string
Display name of the template.
string
Description of the template. (optional)
string
Package type the template is configured for.
Show values
Show values
| Value | Description |
|---|---|
| concurrent | Concurrent: Allows multiple signers to sign the document simultaneously. |
| Sequential | Sequential: Requires signers to sign the document in a specific order. |
| Counterpart | Group Send: Enables group signing, where all signers receive the document at the same time. |
| video_closing_room | Video Signing Room: A virtual room for signing documents via video conference. |
| Live Session | In Person: An in-person signing session with all parties present. |
Even though the signing workflow names have evolved, the constants used to identify them have remained the same.
The package type constants are case-sensitive. Ensure that you use the exact casing as shown in the table above when specifying package types in your API requests.
string
Template type.
Show values
Show values
| Value | Description |
|---|---|
| template | Standard template. |
| auto_template | Auto template. |
string
Current state of the template.
Show values
Show values
| Value | Description |
|---|---|
| active | Template is active. |
| deleted | Template has been deleted. |
object[]
object[]
List of signers configured on the template.
Show properties
Show properties
string
Unique identifier for the signer.
number
Signing order index.
string
First name of the signer.
string
Last name of the signer.
string
Email address of the signer.
string
Role of the signer.
Show values
Show values
| Value | Description |
|---|---|
| signer | Signer |
| guest | Guest of VSR or In Person signing that is not a signer of any documents |
| host | Host of VSR or In Person signing |
string
Template role associated to signer. (optional)
string
Type of the signer.
Show values
Show values
| Value | Description |
|---|---|
| signer | Signer |
| guest | Signer that was added by the host during VSR or In Person signing session |
object[]
List of recipients configured on the template.
Show properties
Show properties
string
Unique identifier for the recipient.
string
First name of the recipient.
string
Last name of the recipient.
string
Email address of the recipient.
string
Template role associated to recipient. (optional)
string
Type of the recipient.
Show values
Show values
| Value | Description |
|---|---|
| cc | Recipient that will be CC on package email notifications. |
| bcc | Recipient that will be BCC on package email notifications. |
number
Total number of templates that match filter criteria.
number
Number of templates returned per request.
number
Number of templates skipped.
⌘I
List
curl --request POST \
--url https://sandbox.syngrafii.com/api/v1/templates/list \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"memberId": "<string>",
"teamId": "<string>",
"folderId": "<string>",
"allMembers": true,
"search": "<string>",
"personal": true,
"shared": true,
"mostRecent": 123,
"sortBy": "<string>",
"collectionCode": "<string>",
"packageTypes": [
"<string>"
],
"types": [
"<string>"
],
"take": 123,
"skip": 123
}
'import requests
url = "https://sandbox.syngrafii.com/api/v1/templates/list"
payload = {
"memberId": "<string>",
"teamId": "<string>",
"folderId": "<string>",
"allMembers": True,
"search": "<string>",
"personal": True,
"shared": True,
"mostRecent": 123,
"sortBy": "<string>",
"collectionCode": "<string>",
"packageTypes": ["<string>"],
"types": ["<string>"],
"take": 123,
"skip": 123
}
headers = {
"api_key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {api_key: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
memberId: '<string>',
teamId: '<string>',
folderId: '<string>',
allMembers: true,
search: '<string>',
personal: true,
shared: true,
mostRecent: 123,
sortBy: '<string>',
collectionCode: '<string>',
packageTypes: ['<string>'],
types: ['<string>'],
take: 123,
skip: 123
})
};
fetch('https://sandbox.syngrafii.com/api/v1/templates/list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.syngrafii.com/api/v1/templates/list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'memberId' => '<string>',
'teamId' => '<string>',
'folderId' => '<string>',
'allMembers' => true,
'search' => '<string>',
'personal' => true,
'shared' => true,
'mostRecent' => 123,
'sortBy' => '<string>',
'collectionCode' => '<string>',
'packageTypes' => [
'<string>'
],
'types' => [
'<string>'
],
'take' => 123,
'skip' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api_key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.syngrafii.com/api/v1/templates/list"
payload := strings.NewReader("{\n \"memberId\": \"<string>\",\n \"teamId\": \"<string>\",\n \"folderId\": \"<string>\",\n \"allMembers\": true,\n \"search\": \"<string>\",\n \"personal\": true,\n \"shared\": true,\n \"mostRecent\": 123,\n \"sortBy\": \"<string>\",\n \"collectionCode\": \"<string>\",\n \"packageTypes\": [\n \"<string>\"\n ],\n \"types\": [\n \"<string>\"\n ],\n \"take\": 123,\n \"skip\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api_key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.syngrafii.com/api/v1/templates/list")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"memberId\": \"<string>\",\n \"teamId\": \"<string>\",\n \"folderId\": \"<string>\",\n \"allMembers\": true,\n \"search\": \"<string>\",\n \"personal\": true,\n \"shared\": true,\n \"mostRecent\": 123,\n \"sortBy\": \"<string>\",\n \"collectionCode\": \"<string>\",\n \"packageTypes\": [\n \"<string>\"\n ],\n \"types\": [\n \"<string>\"\n ],\n \"take\": 123,\n \"skip\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.syngrafii.com/api/v1/templates/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api_key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"memberId\": \"<string>\",\n \"teamId\": \"<string>\",\n \"folderId\": \"<string>\",\n \"allMembers\": true,\n \"search\": \"<string>\",\n \"personal\": true,\n \"shared\": true,\n \"mostRecent\": 123,\n \"sortBy\": \"<string>\",\n \"collectionCode\": \"<string>\",\n \"packageTypes\": [\n \"<string>\"\n ],\n \"types\": [\n \"<string>\"\n ],\n \"take\": 123,\n \"skip\": 123\n}"
response = http.request(request)
puts response.read_body{
"items": [
{
"organizationId": "<string>",
"templateId": "<string>",
"templateCode": "<string>",
"memberId": "<string>",
"teamId": "<string>",
"folderId": "<string>",
"shared": true,
"timeCreated": "<string>",
"timeUpdated": "<string>",
"timeLastUsed": "<string>",
"name": "<string>",
"description": "<string>",
"packageType": "<string>",
"type": "<string>",
"state": "<string>",
"documents": [
{
"documentId": "<string>",
"documentCode": "<string>",
"index": 123,
"name": "<string>",
"fileName": "<string>"
}
],
"signers": [
{
"signerId": "<string>",
"index": 123,
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"role": "<string>",
"templateRole": "<string>",
"type": "<string>"
}
],
"recipients": [
{
"recipientId": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"templateRole": "<string>",
"type": "<string>"
}
]
}
],
"total": 123,
"take": 123,
"skip": 123
}