Get Template
curl --request GET \
--url https://app.uselamina.ai/v1/templates/{id} \
--header 'x-api-key: <api-key>'import requests
url = "https://app.uselamina.ai/v1/templates/{id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://app.uselamina.ai/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.uselamina.ai/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 => [
"x-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"
"net/http"
"io"
)
func main() {
url := "https://app.uselamina.ai/v1/templates/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.uselamina.ai/v1/templates/{id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.uselamina.ai/v1/templates/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "tmpl-product-launch",
"name": "Product Launch Hero",
"description": "Create high-impact hero visuals for product launches with lifestyle context and brand-aligned styling",
"category": "launch",
"suggestedModalities": [
"image",
"video"
],
"suggestedPlatforms": [
"instagram",
"facebook"
],
"guidanceData": {
"promptDirectives": [
"Emphasize product in natural lifestyle context",
"Use brand color palette as accent",
"Include human interaction with product"
],
"negativePrompts": [
"no plain white backgrounds",
"no floating/disembodied products",
"no text overlays"
],
"winningPatterns": [
"product-in-context",
"lifestyle imagery",
"aspirational setting"
],
"testIdeas": [
"Test studio vs outdoor settings",
"Test with/without human model"
],
"creativeStructure": null
},
"multiAssetComposition": [
{
"role": "hero",
"modality": "image",
"description": "Primary product hero shot in lifestyle context"
},
{
"role": "detail",
"modality": "image",
"description": "Close-up detail shot highlighting key product features"
},
{
"role": "caption",
"modality": "text",
"description": "Engaging caption with call-to-action"
}
],
"isBuiltIn": true
}
}{
"error": "Invalid API key"
}{
"error": "App not found"
}"Too many requests from this IP, please try again in a minute"Create
Get Template
Get full template details including guidance data and multi-asset composition.
The guidanceData section contains the structured guidance that will be injected
into the content creation process when this template is used:
promptDirectives— Positive instructions for the AI generation promptnegativePrompts— Things to avoid in generationwinningPatterns— Patterns known to perform welltestIdeas— Suggested A/B test variationscreativeStructure— Optional structured creative direction
The multiAssetComposition section (if present) describes a multi-asset content
piece with roles for each asset (e.g. hero image, supporting image, caption).
GET
/
v1
/
templates
/
{id}
Get Template
curl --request GET \
--url https://app.uselamina.ai/v1/templates/{id} \
--header 'x-api-key: <api-key>'import requests
url = "https://app.uselamina.ai/v1/templates/{id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://app.uselamina.ai/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.uselamina.ai/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 => [
"x-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"
"net/http"
"io"
)
func main() {
url := "https://app.uselamina.ai/v1/templates/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.uselamina.ai/v1/templates/{id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.uselamina.ai/v1/templates/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "tmpl-product-launch",
"name": "Product Launch Hero",
"description": "Create high-impact hero visuals for product launches with lifestyle context and brand-aligned styling",
"category": "launch",
"suggestedModalities": [
"image",
"video"
],
"suggestedPlatforms": [
"instagram",
"facebook"
],
"guidanceData": {
"promptDirectives": [
"Emphasize product in natural lifestyle context",
"Use brand color palette as accent",
"Include human interaction with product"
],
"negativePrompts": [
"no plain white backgrounds",
"no floating/disembodied products",
"no text overlays"
],
"winningPatterns": [
"product-in-context",
"lifestyle imagery",
"aspirational setting"
],
"testIdeas": [
"Test studio vs outdoor settings",
"Test with/without human model"
],
"creativeStructure": null
},
"multiAssetComposition": [
{
"role": "hero",
"modality": "image",
"description": "Primary product hero shot in lifestyle context"
},
{
"role": "detail",
"modality": "image",
"description": "Close-up detail shot highlighting key product features"
},
{
"role": "caption",
"modality": "text",
"description": "Engaging caption with call-to-action"
}
],
"isBuiltIn": true
}
}{
"error": "Invalid API key"
}{
"error": "App not found"
}"Too many requests from this IP, please try again in a minute"Returns full details for a specific content template, including the recommended app, pre-filled inputs, and customizable parameters.
Use this to inspect what a template provides before using it as the basis for a content creation request. The response includes enough context for an agent or UI to show the template’s purpose, preview its defaults, and let the user override specific fields.
Authorizations
Workspace API key. Prefix: lma_. Example: lma_abc123...
Path Parameters
Template ID (from GET /v1/templates response).
Response
Full template details with guidance data
Full template details including structured guidance data.
Show child attributes
Show child attributes