curl --request GET \
--url https://app.sajn.se/api/v1/templates/{id} \
--header 'Authorization: Bearer <token>' \
--header 'authorization: <authorization>'import requests
url = "https://app.sajn.se/api/v1/templates/{id}"
headers = {
"authorization": "<authorization>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {authorization: '<authorization>', Authorization: 'Bearer <token>'}
};
fetch('https://app.sajn.se/api/v1/templates/{id}', 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://app.sajn.se/api/v1/templates/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.sajn.se/api/v1/templates/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("authorization", "<authorization>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.sajn.se/api/v1/templates/{id}")
.header("authorization", "<authorization>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sajn.se/api/v1/templates/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["authorization"] = '<authorization>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"workspaceId": "<string>",
"organizationId": "<string>",
"createdById": "<string>",
"isGlobal": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"templateMeta": {
"signingOrder": "PARALLEL",
"forceReadFullDocument": true,
"showChatToSigners": true,
"preferredLanguage": "sv",
"value": "<string>",
"signableAfterExpired": true,
"sendPlainTextEmailOnly": true,
"allowDelegation": true,
"reminderIntervalDays": "<string>",
"responsibleUserId": "<string>",
"accessVerification": "NONE",
"internalRecipients": [
"<string>"
],
"visibility": "EVERYONE",
"selectedUserIds": [
"<string>"
],
"ssnDisplayMode": "FULL",
"sameDeviceSigning": true,
"documentCategoryId": "<string>"
},
"fields": [
{
"id": "<string>",
"type": "TEXT",
"position": 123,
"fieldMeta": {
"type": "TEXT",
"content": "<string>",
"locked": true,
"sectionStyle": {
"background": "none",
"padding": "none",
"bleed": true,
"border": true
},
"visibilityRule": {
"customInputId": "<string>",
"equals": "<string>",
"mode": "SHOW_WHEN"
},
"hidden": true
},
"documentId": "<string>",
"templateId": "<string>",
"createdAt": null,
"updatedAt": null
}
],
"parties": [
{
"id": "<string>",
"templateId": "<string>",
"name": "<string>",
"type": "INDIVIDUAL",
"role": "SIGNER",
"deliveryMethod": "EMAIL",
"twoStepVerification": "NONE",
"createdAt": "<unknown>",
"updatedAt": "<unknown>",
"email": "<string>",
"phone": "<string>",
"signingOrder": 123,
"contactId": "<string>",
"companyId": "<string>",
"companyName": "<string>",
"companyRole": "<string>",
"companyOrgNumber": "<string>",
"externalId": "<string>",
"ssn": "<string>",
"country": "<string>",
"requiredSignature": "NONE"
}
],
"tags": [
{
"id": "<string>",
"name": "<string>",
"color": "<string>"
}
]
}{
"message": "<string>",
"code": "<string>",
"errorId": "<string>",
"issues": [
{
"path": "<string>",
"message": "<string>"
}
],
"requiredScopes": [
"<string>"
],
"grantedScopes": [
"<string>"
]
}{
"message": "<string>",
"code": "<string>",
"errorId": "<string>",
"issues": [
{
"path": "<string>",
"message": "<string>"
}
],
"requiredScopes": [
"<string>"
],
"grantedScopes": [
"<string>"
]
}Get a template by ID
Retrieve detailed information about a specific template including all fields, parties, and tags.
curl --request GET \
--url https://app.sajn.se/api/v1/templates/{id} \
--header 'Authorization: Bearer <token>' \
--header 'authorization: <authorization>'import requests
url = "https://app.sajn.se/api/v1/templates/{id}"
headers = {
"authorization": "<authorization>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {authorization: '<authorization>', Authorization: 'Bearer <token>'}
};
fetch('https://app.sajn.se/api/v1/templates/{id}', 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://app.sajn.se/api/v1/templates/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.sajn.se/api/v1/templates/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("authorization", "<authorization>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.sajn.se/api/v1/templates/{id}")
.header("authorization", "<authorization>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sajn.se/api/v1/templates/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["authorization"] = '<authorization>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"workspaceId": "<string>",
"organizationId": "<string>",
"createdById": "<string>",
"isGlobal": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"templateMeta": {
"signingOrder": "PARALLEL",
"forceReadFullDocument": true,
"showChatToSigners": true,
"preferredLanguage": "sv",
"value": "<string>",
"signableAfterExpired": true,
"sendPlainTextEmailOnly": true,
"allowDelegation": true,
"reminderIntervalDays": "<string>",
"responsibleUserId": "<string>",
"accessVerification": "NONE",
"internalRecipients": [
"<string>"
],
"visibility": "EVERYONE",
"selectedUserIds": [
"<string>"
],
"ssnDisplayMode": "FULL",
"sameDeviceSigning": true,
"documentCategoryId": "<string>"
},
"fields": [
{
"id": "<string>",
"type": "TEXT",
"position": 123,
"fieldMeta": {
"type": "TEXT",
"content": "<string>",
"locked": true,
"sectionStyle": {
"background": "none",
"padding": "none",
"bleed": true,
"border": true
},
"visibilityRule": {
"customInputId": "<string>",
"equals": "<string>",
"mode": "SHOW_WHEN"
},
"hidden": true
},
"documentId": "<string>",
"templateId": "<string>",
"createdAt": null,
"updatedAt": null
}
],
"parties": [
{
"id": "<string>",
"templateId": "<string>",
"name": "<string>",
"type": "INDIVIDUAL",
"role": "SIGNER",
"deliveryMethod": "EMAIL",
"twoStepVerification": "NONE",
"createdAt": "<unknown>",
"updatedAt": "<unknown>",
"email": "<string>",
"phone": "<string>",
"signingOrder": 123,
"contactId": "<string>",
"companyId": "<string>",
"companyName": "<string>",
"companyRole": "<string>",
"companyOrgNumber": "<string>",
"externalId": "<string>",
"ssn": "<string>",
"country": "<string>",
"requiredSignature": "NONE"
}
],
"tags": [
{
"id": "<string>",
"name": "<string>",
"color": "<string>"
}
]
}{
"message": "<string>",
"code": "<string>",
"errorId": "<string>",
"issues": [
{
"path": "<string>",
"message": "<string>"
}
],
"requiredScopes": [
"<string>"
],
"grantedScopes": [
"<string>"
]
}{
"message": "<string>",
"code": "<string>",
"errorId": "<string>",
"issues": [
{
"path": "<string>",
"message": "<string>"
}
],
"requiredScopes": [
"<string>"
],
"grantedScopes": [
"<string>"
]
}2026-09, which is deprecated and stops working on October 1, 2027. To see the current version, select 2026-10 in the menu at the top of the sidebar. To move your integration, see Upgrading to 2026-10.Authorizations
Personal API key, e.g. Authorization: Bearer sajn_sk_.... Not scope-limited — acts as the issuing user.
Headers
Bearer token for API authentication
Path Parameters
Response
200
Unique template identifier
Template name/title
Workspace ID this template belongs to
Organization ID this template belongs to
User ID of the template creator
Whether this is a global template
Date and time when the template was created
Date and time when the template was last updated
Template metadata with default settings
Show child attributes
Show child attributes
Template fields/sections in position order
Show child attributes
Show child attributes
Template parties (signer defaults)
Show child attributes
Show child attributes
Tags applied to this template
Show child attributes
Show child attributes
Was this page helpful?

