Templates
Clone template
POST
/
api
/
templates
/
{id}
/
clone
Clone template
curl --request POST \
--url https://spitshake.io/api/templates/{id}/clone \
--header 'Content-Type: application/json' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"name": "<string>",
"folder_name": "<string>"
}
'import requests
url = "https://spitshake.io/api/templates/{id}/clone"
payload = {
"name": "<string>",
"folder_name": "<string>"
}
headers = {
"X-Auth-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Auth-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', folder_name: '<string>'})
};
fetch('https://spitshake.io/api/templates/{id}/clone', 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://spitshake.io/api/templates/{id}/clone",
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([
'name' => '<string>',
'folder_name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Auth-Token: <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://spitshake.io/api/templates/{id}/clone"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"folder_name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Auth-Token", "<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://spitshake.io/api/templates/{id}/clone")
.header("X-Auth-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"folder_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://spitshake.io/api/templates/{id}/clone")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Auth-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"folder_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"external_id": "<string>",
"folder_name": "<string>",
"source": "<string>",
"shared": true,
"download_url": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"schema": [
{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"type": "text",
"submitter_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"required": true,
"readonly": true,
"key": "<string>",
"default_value": "<string>",
"placeholder": "<string>",
"pattern": "<string>",
"validation": "ssn",
"options": [
"<string>"
],
"formula": "<string>",
"areas": [
{
"x": 23.07,
"y": 20.35,
"w": 25,
"h": 5,
"page": 1,
"attachment_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"preferences": {}
}
],
"submitters": [
{
"name": "<string>",
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"preferences": {
"display_title": "Acme Legal Retainer",
"logo_url": "<string>",
"company_name": "<string>",
"favicon_url": "<string>",
"primary_button_color": "#2f5d8a",
"header_color": "#14213d",
"show_branding": true,
"brand_id": 7,
"custom_domain": "sign.example.com",
"signing_nav_style": "standard"
},
"documents": [
{
"id": 123,
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"filename": "<string>",
"page_count": 123,
"page_dimensions": [
{
"width": 123,
"height": 123
}
],
"url": "<string>"
}
]
}Authorizations
ApiTokenSessionCookie
API token generated at Settings > API
Path Parameters
Body
application/json
Response
200 - application/json
Cloned template
Public template ID (e.g. tpl_AbC123...)
URL to download the full template PDF bundle
Field definitions with positioning
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Template preferences, including the branding and domain keys below.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
⌘I
Clone template
curl --request POST \
--url https://spitshake.io/api/templates/{id}/clone \
--header 'Content-Type: application/json' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"name": "<string>",
"folder_name": "<string>"
}
'import requests
url = "https://spitshake.io/api/templates/{id}/clone"
payload = {
"name": "<string>",
"folder_name": "<string>"
}
headers = {
"X-Auth-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Auth-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', folder_name: '<string>'})
};
fetch('https://spitshake.io/api/templates/{id}/clone', 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://spitshake.io/api/templates/{id}/clone",
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([
'name' => '<string>',
'folder_name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Auth-Token: <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://spitshake.io/api/templates/{id}/clone"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"folder_name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Auth-Token", "<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://spitshake.io/api/templates/{id}/clone")
.header("X-Auth-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"folder_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://spitshake.io/api/templates/{id}/clone")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Auth-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"folder_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"external_id": "<string>",
"folder_name": "<string>",
"source": "<string>",
"shared": true,
"download_url": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"schema": [
{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"type": "text",
"submitter_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"required": true,
"readonly": true,
"key": "<string>",
"default_value": "<string>",
"placeholder": "<string>",
"pattern": "<string>",
"validation": "ssn",
"options": [
"<string>"
],
"formula": "<string>",
"areas": [
{
"x": 23.07,
"y": 20.35,
"w": 25,
"h": 5,
"page": 1,
"attachment_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"preferences": {}
}
],
"submitters": [
{
"name": "<string>",
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"preferences": {
"display_title": "Acme Legal Retainer",
"logo_url": "<string>",
"company_name": "<string>",
"favicon_url": "<string>",
"primary_button_color": "#2f5d8a",
"header_color": "#14213d",
"show_branding": true,
"brand_id": 7,
"custom_domain": "sign.example.com",
"signing_nav_style": "standard"
},
"documents": [
{
"id": 123,
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"filename": "<string>",
"page_count": 123,
"page_dimensions": [
{
"width": 123,
"height": 123
}
],
"url": "<string>"
}
]
}
