curl --request POST \
--url https://app.uselamina.ai/v1/intelligence/predict \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"concept": "A lifestyle photo of our new sneakers in an urban setting with warm golden-hour lighting",
"platform": "instagram",
"modality": "image",
"brandProfileId": null,
"campaignId": null
}
'import requests
url = "https://app.uselamina.ai/v1/intelligence/predict"
payload = {
"concept": "A lifestyle photo of our new sneakers in an urban setting with warm golden-hour lighting",
"platform": "instagram",
"modality": "image",
"brandProfileId": None,
"campaignId": None
}
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({
concept: 'A lifestyle photo of our new sneakers in an urban setting with warm golden-hour lighting',
platform: 'instagram',
modality: 'image',
brandProfileId: null,
campaignId: null
})
};
fetch('https://app.uselamina.ai/v1/intelligence/predict', 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/intelligence/predict",
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([
'concept' => 'A lifestyle photo of our new sneakers in an urban setting with warm golden-hour lighting',
'platform' => 'instagram',
'modality' => 'image',
'brandProfileId' => null,
'campaignId' => null
]),
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/intelligence/predict"
payload := strings.NewReader("{\n \"concept\": \"A lifestyle photo of our new sneakers in an urban setting with warm golden-hour lighting\",\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"brandProfileId\": null,\n \"campaignId\": null\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/intelligence/predict")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"concept\": \"A lifestyle photo of our new sneakers in an urban setting with warm golden-hour lighting\",\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"brandProfileId\": null,\n \"campaignId\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.uselamina.ai/v1/intelligence/predict")
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 \"concept\": \"A lifestyle photo of our new sneakers in an urban setting with warm golden-hour lighting\",\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"brandProfileId\": null,\n \"campaignId\": null\n}"
response = http.request(request)
puts response.read_body{
"data": {
"predictedScore": 78.5,
"confidence": "medium",
"strengths": [
"Strong alignment with brand visual identity",
"Lifestyle format historically performs well"
],
"risks": [
"Golden-hour lighting may not differentiate from competitors",
"Urban setting is overused in category"
],
"suggestions": [
"Add a human subject for +15% predicted engagement",
"Consider a close-up crop variant"
]
}
}{
"error": "concept, platform, and modality are required"
}{
"error": "Invalid API key"
}"Too many requests from this IP, please try again in a minute"Predict Content Performance
Predict how a content concept would perform on a given platform before creating it. Returns a performance prediction based on the workspace’s historical data and brand context.
Use this to validate ideas before spending credits on content creation, or to compare multiple concepts and pick the strongest one.
The concept field is a natural-language description of the content you
are considering — it does not need to be a polished prompt. For example:
“A lifestyle photo of our new sneakers in an urban setting with warm golden-hour lighting.”
curl --request POST \
--url https://app.uselamina.ai/v1/intelligence/predict \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"concept": "A lifestyle photo of our new sneakers in an urban setting with warm golden-hour lighting",
"platform": "instagram",
"modality": "image",
"brandProfileId": null,
"campaignId": null
}
'import requests
url = "https://app.uselamina.ai/v1/intelligence/predict"
payload = {
"concept": "A lifestyle photo of our new sneakers in an urban setting with warm golden-hour lighting",
"platform": "instagram",
"modality": "image",
"brandProfileId": None,
"campaignId": None
}
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({
concept: 'A lifestyle photo of our new sneakers in an urban setting with warm golden-hour lighting',
platform: 'instagram',
modality: 'image',
brandProfileId: null,
campaignId: null
})
};
fetch('https://app.uselamina.ai/v1/intelligence/predict', 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/intelligence/predict",
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([
'concept' => 'A lifestyle photo of our new sneakers in an urban setting with warm golden-hour lighting',
'platform' => 'instagram',
'modality' => 'image',
'brandProfileId' => null,
'campaignId' => null
]),
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/intelligence/predict"
payload := strings.NewReader("{\n \"concept\": \"A lifestyle photo of our new sneakers in an urban setting with warm golden-hour lighting\",\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"brandProfileId\": null,\n \"campaignId\": null\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/intelligence/predict")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"concept\": \"A lifestyle photo of our new sneakers in an urban setting with warm golden-hour lighting\",\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"brandProfileId\": null,\n \"campaignId\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.uselamina.ai/v1/intelligence/predict")
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 \"concept\": \"A lifestyle photo of our new sneakers in an urban setting with warm golden-hour lighting\",\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"brandProfileId\": null,\n \"campaignId\": null\n}"
response = http.request(request)
puts response.read_body{
"data": {
"predictedScore": 78.5,
"confidence": "medium",
"strengths": [
"Strong alignment with brand visual identity",
"Lifestyle format historically performs well"
],
"risks": [
"Golden-hour lighting may not differentiate from competitors",
"Urban setting is overused in category"
],
"suggestions": [
"Add a human subject for +15% predicted engagement",
"Consider a close-up crop variant"
]
}
}{
"error": "concept, platform, and modality are required"
}{
"error": "Invalid API key"
}"Too many requests from this IP, please try again in a minute"concept describing the content idea along with the target platform and modality. Returns a performance prediction grounded in your workspace’s historical data and brand context.
Use this in pre-creation decision flows, A/B content selection, or automated quality gates to prioritize high-performing concepts.Authorizations
Workspace API key. Prefix: lma_. Example: lma_abc123...
Body
Natural-language content concept or brief to evaluate.
Target platform (e.g. instagram, tiktok, facebook, linkedin).
Content modality of the concept.
image, video, text, audio, mixed Optional brand profile to evaluate against.
Optional campaign context for more targeted prediction.
Response
Performance prediction with scores and reasoning
Prediction results. Structure varies based on the workspace's intelligence model.