Generate Content Brief
curl --request POST \
--url https://app.uselamina.ai/v1/content/brief \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"goal": "Increase Instagram engagement for our new sneaker collection",
"platform": "instagram",
"modality": "image",
"count": 3
}
'import requests
url = "https://app.uselamina.ai/v1/content/brief"
payload = {
"goal": "Increase Instagram engagement for our new sneaker collection",
"platform": "instagram",
"modality": "image",
"count": 3
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
goal: 'Increase Instagram engagement for our new sneaker collection',
platform: 'instagram',
modality: 'image',
count: 3
})
};
fetch('https://app.uselamina.ai/v1/content/brief', 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/content/brief",
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([
'goal' => 'Increase Instagram engagement for our new sneaker collection',
'platform' => 'instagram',
'modality' => 'image',
'count' => 3
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.uselamina.ai/v1/content/brief"
payload := strings.NewReader("{\n \"goal\": \"Increase Instagram engagement for our new sneaker collection\",\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"count\": 3\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-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://app.uselamina.ai/v1/content/brief")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"goal\": \"Increase Instagram engagement for our new sneaker collection\",\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"count\": 3\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.uselamina.ai/v1/content/brief")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"goal\": \"Increase Instagram engagement for our new sneaker collection\",\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"count\": 3\n}"
response = http.request(request)
puts response.read_body{
"data": {
"briefs": [
{
"brief": "Create a lifestyle photo of sneakers on a skateboarder in an urban park, golden-hour lighting, warm tones, shot from low angle to emphasize the shoes",
"platform": "instagram",
"modality": "image",
"reasoning": "Lifestyle imagery is your top-performing pattern (+3.2x engagement). Low-angle urban shots align with current streetwear trends."
},
{
"brief": "Flat-lay composition of the full sneaker colorway lineup on a concrete surface with coffee and sunglasses props, overhead shot, minimalist styling",
"platform": "instagram",
"modality": "image",
"reasoning": "Product flat-lays with lifestyle props drive strong save-to-like ratios. Concrete texture matches brand's urban identity."
},
{
"brief": "Close-up macro shot of sneaker texture and stitching details, shallow depth of field, studio lighting with warm accent",
"platform": "instagram",
"modality": "image",
"reasoning": "Detail shots generate high comment engagement. Studio lighting with warm accents matches brand's visual identity."
}
]
}
}{
"error": "goal is required (string)"
}{
"error": "Invalid API key"
}"Too many requests from this IP, please try again in a minute"Create
Generate Content Brief
Generate content briefs from a goal, enriched with brand
context and trend signals. Returns multiple brief suggestions that can be
fed directly into POST /v1/content/create.
Example workflow:
- Call this endpoint with a goal: “Increase Instagram engagement for our sneaker line”
- Review the generated briefs (each is a self-contained content creation instruction)
- Pass the best brief as the
brieffield toPOST /v1/content/create
Each generated brief incorporates:
- Workspace brand DNA and voice attributes
- Current trend signals for the target platform
- Historical performance patterns
POST
/
v1
/
content
/
brief
Generate Content Brief
curl --request POST \
--url https://app.uselamina.ai/v1/content/brief \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"goal": "Increase Instagram engagement for our new sneaker collection",
"platform": "instagram",
"modality": "image",
"count": 3
}
'import requests
url = "https://app.uselamina.ai/v1/content/brief"
payload = {
"goal": "Increase Instagram engagement for our new sneaker collection",
"platform": "instagram",
"modality": "image",
"count": 3
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
goal: 'Increase Instagram engagement for our new sneaker collection',
platform: 'instagram',
modality: 'image',
count: 3
})
};
fetch('https://app.uselamina.ai/v1/content/brief', 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/content/brief",
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([
'goal' => 'Increase Instagram engagement for our new sneaker collection',
'platform' => 'instagram',
'modality' => 'image',
'count' => 3
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.uselamina.ai/v1/content/brief"
payload := strings.NewReader("{\n \"goal\": \"Increase Instagram engagement for our new sneaker collection\",\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"count\": 3\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-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://app.uselamina.ai/v1/content/brief")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"goal\": \"Increase Instagram engagement for our new sneaker collection\",\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"count\": 3\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.uselamina.ai/v1/content/brief")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"goal\": \"Increase Instagram engagement for our new sneaker collection\",\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"count\": 3\n}"
response = http.request(request)
puts response.read_body{
"data": {
"briefs": [
{
"brief": "Create a lifestyle photo of sneakers on a skateboarder in an urban park, golden-hour lighting, warm tones, shot from low angle to emphasize the shoes",
"platform": "instagram",
"modality": "image",
"reasoning": "Lifestyle imagery is your top-performing pattern (+3.2x engagement). Low-angle urban shots align with current streetwear trends."
},
{
"brief": "Flat-lay composition of the full sneaker colorway lineup on a concrete surface with coffee and sunglasses props, overhead shot, minimalist styling",
"platform": "instagram",
"modality": "image",
"reasoning": "Product flat-lays with lifestyle props drive strong save-to-like ratios. Concrete texture matches brand's urban identity."
},
{
"brief": "Close-up macro shot of sneaker texture and stitching details, shallow depth of field, studio lighting with warm accent",
"platform": "instagram",
"modality": "image",
"reasoning": "Detail shots generate high comment engagement. Studio lighting with warm accents matches brand's visual identity."
}
]
}
}{
"error": "goal is required (string)"
}{
"error": "Invalid API key"
}"Too many requests from this IP, please try again in a minute"Generate structured content briefs grounded in your brand context, trend signals, and performance data.
Each brief includes a creative direction, suggested format, target platform, and recommended app. Use this as a planning step before content creation, or feed briefs directly into the create-content endpoint for fully automated production.
Returns up to
count briefs (default 3, max 10) per request.Authorizations
Workspace API key. Prefix: lma_. Example: lma_abc123...
Body
application/json
Goal or objective for the content (e.g. "Increase engagement for our sneaker line").
Target platform to optimize briefs for.
Desired content modality (e.g. image, video).
Number of brief variations to generate.
Required range:
x <= 10Brand profile to incorporate into briefs.
Response
Generated content briefs
Generated briefs. Structure varies based on the workspace's intelligence model.