curl --request GET \
--url https://api.sendkit.dev/templates/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sendkit.dev/templates/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sendkit.dev/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://api.sendkit.dev/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>"
],
]);
$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://api.sendkit.dev/templates/{id}"
req, _ := http.NewRequest("GET", url, nil)
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://api.sendkit.dev/templates/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sendkit.dev/templates/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "550e8400-e29b-41d4-a716-446655440000",
"folder_id": null,
"name": "Welcome Email",
"subject": "Welcome to {{COMPANY}}",
"html_content": "<h1>Welcome, {{FIRST_NAME}}!</h1><p>Thanks for joining.</p>",
"text_content": "Welcome, {{FIRST_NAME}}! Thanks for joining.",
"reply_to": "support@yourdomain.com",
"status": "published",
"sender": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "John Doe",
"username": "john",
"email": "john@yourdomain.com",
"reply_to": "reply@yourdomain.com",
"created_at": "2026-03-03 10:00:00",
"updated_at": "2026-03-03 10:00:00"
},
"variables": [
{
"key": "FIRST_NAME",
"type": "string",
"fallback_value": "there"
}
],
"created_at": "2026-03-03 10:00:00",
"updated_at": "2026-03-03 10:00:00"
}{
"message": "Invalid API key."
}{
"message": "Not found."
}Get a template
Retrieve a single template by ID, including its sender and variables.
curl --request GET \
--url https://api.sendkit.dev/templates/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sendkit.dev/templates/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sendkit.dev/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://api.sendkit.dev/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>"
],
]);
$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://api.sendkit.dev/templates/{id}"
req, _ := http.NewRequest("GET", url, nil)
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://api.sendkit.dev/templates/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sendkit.dev/templates/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "550e8400-e29b-41d4-a716-446655440000",
"folder_id": null,
"name": "Welcome Email",
"subject": "Welcome to {{COMPANY}}",
"html_content": "<h1>Welcome, {{FIRST_NAME}}!</h1><p>Thanks for joining.</p>",
"text_content": "Welcome, {{FIRST_NAME}}! Thanks for joining.",
"reply_to": "support@yourdomain.com",
"status": "published",
"sender": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "John Doe",
"username": "john",
"email": "john@yourdomain.com",
"reply_to": "reply@yourdomain.com",
"created_at": "2026-03-03 10:00:00",
"updated_at": "2026-03-03 10:00:00"
},
"variables": [
{
"key": "FIRST_NAME",
"type": "string",
"fallback_value": "there"
}
],
"created_at": "2026-03-03 10:00:00",
"updated_at": "2026-03-03 10:00:00"
}{
"message": "Invalid API key."
}{
"message": "Not found."
}Authorizations
API key from your SendKit dashboard. Pass it as a Bearer token in the Authorization header.
Path Parameters
The template ID.
Response
The template object
Unique identifier.
"550e8400-e29b-41d4-a716-446655440000"
The folder this template belongs to. Null if unassigned.
null
The name of the template.
"Welcome Email"
The email subject line.
"Welcome to {{COMPANY}}"
The HTML content of the template.
"<h1>Welcome, {{FIRST_NAME}}!</h1><p>Thanks for joining.</p>"
The plain text content of the template.
"Welcome, {{FIRST_NAME}}! Thanks for joining."
The reply-to email address for emails sent with this template.
"support@yourdomain.com"
The template status. Only published templates can be used for sending.
published, draft "published"
The sender associated with this template.
Show child attributes
Show child attributes
The template variables and their configuration.
Show child attributes
Show child attributes
When the template was created.
"2026-03-03 10:00:00"
When the template was last updated.
"2026-03-03 10:00:00"

