Score Content
curl --request POST \
--url https://app.uselamina.ai/v1/content/score \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"platform": "instagram",
"modality": "image",
"limit": 10
}
'import requests
url = "https://app.uselamina.ai/v1/content/score"
payload = {
"platform": "instagram",
"modality": "image",
"limit": 10
}
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({platform: 'instagram', modality: 'image', limit: 10})
};
fetch('https://app.uselamina.ai/v1/content/score', 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/score",
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([
'platform' => 'instagram',
'modality' => 'image',
'limit' => 10
]),
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/score"
payload := strings.NewReader("{\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"limit\": 10\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/score")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"limit\": 10\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.uselamina.ai/v1/content/score")
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 \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"limit\": 10\n}"
response = http.request(request)
puts response.read_body{
"data": {
"scores": [
{
"contentItemId": "item-001",
"overallScore": 88.5,
"dimensions": {
"brandAlignment": 92,
"predictedEngagement": 85,
"visualQuality": 90,
"platformFitness": 87
},
"feedback": "Strong brand alignment. Consider adding a call-to-action for higher engagement."
},
{
"contentItemId": "item-002",
"overallScore": 62,
"dimensions": {
"brandAlignment": 55,
"predictedEngagement": 68,
"visualQuality": 72,
"platformFitness": 53
},
"feedback": "Visual style doesn't match brand guidelines. Try warmer tones and lifestyle setting."
}
]
}
}{
"error": "Invalid API key"
}"Too many requests from this IP, please try again in a minute"Score
Score Content
Evaluate workspace content across multiple quality dimensions. Scores are computed based on brand alignment, predicted engagement, visual quality, and platform fitness.
You can either:
- Provide specific
contentItemIdsto score particular items - Omit
contentItemIdsand useplatform/modality/limitfilters to score recent workspace content matching those criteria
Use scores to identify your strongest content, find items that need improvement, and prioritize what to publish.
POST
/
v1
/
content
/
score
Score Content
curl --request POST \
--url https://app.uselamina.ai/v1/content/score \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"platform": "instagram",
"modality": "image",
"limit": 10
}
'import requests
url = "https://app.uselamina.ai/v1/content/score"
payload = {
"platform": "instagram",
"modality": "image",
"limit": 10
}
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({platform: 'instagram', modality: 'image', limit: 10})
};
fetch('https://app.uselamina.ai/v1/content/score', 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/score",
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([
'platform' => 'instagram',
'modality' => 'image',
'limit' => 10
]),
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/score"
payload := strings.NewReader("{\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"limit\": 10\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/score")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"limit\": 10\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.uselamina.ai/v1/content/score")
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 \"platform\": \"instagram\",\n \"modality\": \"image\",\n \"limit\": 10\n}"
response = http.request(request)
puts response.read_body{
"data": {
"scores": [
{
"contentItemId": "item-001",
"overallScore": 88.5,
"dimensions": {
"brandAlignment": 92,
"predictedEngagement": 85,
"visualQuality": 90,
"platformFitness": 87
},
"feedback": "Strong brand alignment. Consider adding a call-to-action for higher engagement."
},
{
"contentItemId": "item-002",
"overallScore": 62,
"dimensions": {
"brandAlignment": 55,
"predictedEngagement": 68,
"visualQuality": 72,
"platformFitness": 53
},
"feedback": "Visual style doesn't match brand guidelines. Try warmer tones and lifestyle setting."
}
]
}
}{
"error": "Invalid API key"
}"Too many requests from this IP, please try again in a minute"Evaluate workspace content across multiple quality dimensions including brand alignment, visual quality, and engagement potential.
Pass
contentItemIds to score specific items, or use the platform and modality filters to score recent content matching those criteria. Results include per-dimension breakdowns useful for automated quality gates, ranking content variants, or building review dashboards.Authorizations
Workspace API key. Prefix: lma_. Example: lma_abc123...
Body
application/json
Specific content item IDs to score. Omit to score recent workspace content.
Filter content by target platform before scoring.
Filter content by modality before scoring.
Maximum number of items to score (when not providing specific IDs).
Response
Content scores and evaluation details
Scoring results. Structure varies based on the workspace's intelligence model.