curl --request POST \
--url https://api.sigmora.org/v1/image/thumbnail \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"subject": "<string>",
"transcript": "<string>",
"assetId": "<string>",
"description": "<string>",
"mood": "<string>",
"colors": "<string>",
"projectId": "<string>"
}
'import requests
url = "https://api.sigmora.org/v1/image/thumbnail"
payload = {
"title": "<string>",
"subject": "<string>",
"transcript": "<string>",
"assetId": "<string>",
"description": "<string>",
"mood": "<string>",
"colors": "<string>",
"projectId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
subject: '<string>',
transcript: '<string>',
assetId: '<string>',
description: '<string>',
mood: '<string>',
colors: '<string>',
projectId: '<string>'
})
};
fetch('https://api.sigmora.org/v1/image/thumbnail', 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.sigmora.org/v1/image/thumbnail",
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([
'title' => '<string>',
'subject' => '<string>',
'transcript' => '<string>',
'assetId' => '<string>',
'description' => '<string>',
'mood' => '<string>',
'colors' => '<string>',
'projectId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.sigmora.org/v1/image/thumbnail"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"subject\": \"<string>\",\n \"transcript\": \"<string>\",\n \"assetId\": \"<string>\",\n \"description\": \"<string>\",\n \"mood\": \"<string>\",\n \"colors\": \"<string>\",\n \"projectId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.sigmora.org/v1/image/thumbnail")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"subject\": \"<string>\",\n \"transcript\": \"<string>\",\n \"assetId\": \"<string>\",\n \"description\": \"<string>\",\n \"mood\": \"<string>\",\n \"colors\": \"<string>\",\n \"projectId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sigmora.org/v1/image/thumbnail")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"subject\": \"<string>\",\n \"transcript\": \"<string>\",\n \"assetId\": \"<string>\",\n \"description\": \"<string>\",\n \"mood\": \"<string>\",\n \"colors\": \"<string>\",\n \"projectId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"projectId": "<string>",
"credits": 123,
"thumbnail": {
"url": "<string>",
"contentId": "<string>",
"platform": "<string>",
"aspectRatio": "<string>",
"style": "<string>",
"prompt": "<string>"
},
"creditBalance": 123
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}Thumbnail
Generate a platform-sized thumbnail from a title, with the brief LLM-refined first.
curl --request POST \
--url https://api.sigmora.org/v1/image/thumbnail \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"subject": "<string>",
"transcript": "<string>",
"assetId": "<string>",
"description": "<string>",
"mood": "<string>",
"colors": "<string>",
"projectId": "<string>"
}
'import requests
url = "https://api.sigmora.org/v1/image/thumbnail"
payload = {
"title": "<string>",
"subject": "<string>",
"transcript": "<string>",
"assetId": "<string>",
"description": "<string>",
"mood": "<string>",
"colors": "<string>",
"projectId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
subject: '<string>',
transcript: '<string>',
assetId: '<string>',
description: '<string>',
mood: '<string>',
colors: '<string>',
projectId: '<string>'
})
};
fetch('https://api.sigmora.org/v1/image/thumbnail', 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.sigmora.org/v1/image/thumbnail",
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([
'title' => '<string>',
'subject' => '<string>',
'transcript' => '<string>',
'assetId' => '<string>',
'description' => '<string>',
'mood' => '<string>',
'colors' => '<string>',
'projectId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.sigmora.org/v1/image/thumbnail"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"subject\": \"<string>\",\n \"transcript\": \"<string>\",\n \"assetId\": \"<string>\",\n \"description\": \"<string>\",\n \"mood\": \"<string>\",\n \"colors\": \"<string>\",\n \"projectId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.sigmora.org/v1/image/thumbnail")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"subject\": \"<string>\",\n \"transcript\": \"<string>\",\n \"assetId\": \"<string>\",\n \"description\": \"<string>\",\n \"mood\": \"<string>\",\n \"colors\": \"<string>\",\n \"projectId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sigmora.org/v1/image/thumbnail")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"subject\": \"<string>\",\n \"transcript\": \"<string>\",\n \"assetId\": \"<string>\",\n \"description\": \"<string>\",\n \"mood\": \"<string>\",\n \"colors\": \"<string>\",\n \"projectId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"projectId": "<string>",
"credits": 123,
"thumbnail": {
"url": "<string>",
"contentId": "<string>",
"platform": "<string>",
"aspectRatio": "<string>",
"style": "<string>",
"prompt": "<string>"
},
"creditBalance": 123
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}{
"success": "<unknown>",
"error": "<string>",
"details": "<unknown>"
}Authorizations
A workspace API key.
Body
1 - 20030030001 - 20050080100subject_left, subject_right, centered viral, cinematic, bold-text, dramatic, educational, minimal youtube, youtube_shorts, instagram_reels, tiktok The project to file this work under. Optional: omit it and one is created for you, and its id comes back on the response — read it from there rather than assuming. Pass the same id across calls when you want the script, the render and the thumbnail to land in one container. A project this workspace does not own answers not_found; the work is never silently filed somewhere else.
1 - 200Response
Success.
The project this work was filed under. Read it from here — a call that sent no projectId had one created, and this is where its id comes back.
"prj_9x2a4c"
What this call actually cost, which is not always what was quoted.
300
Show child attributes
Show child attributes
Your balance after the charge. Absent when billing is disabled for the workspace.
3900