Images
Generate image
Returns 202 with job_id for async generation. Either prompt or description must be provided.
POST
/
images
/
generate
Generate image
curl --request POST \
--url https://api.smartlyq.com/v1/images/generate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>",
"description": "<string>",
"style": "<string>",
"size": "<string>",
"format": "<string>",
"quality": "<string>"
}
'import requests
url = "https://api.smartlyq.com/v1/images/generate"
payload = {
"prompt": "<string>",
"description": "<string>",
"style": "<string>",
"size": "<string>",
"format": "<string>",
"quality": "<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({
prompt: '<string>',
description: '<string>',
style: '<string>',
size: '<string>',
format: '<string>',
quality: '<string>'
})
};
fetch('https://api.smartlyq.com/v1/images/generate', 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.smartlyq.com/v1/images/generate",
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([
'prompt' => '<string>',
'description' => '<string>',
'style' => '<string>',
'size' => '<string>',
'format' => '<string>',
'quality' => '<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.smartlyq.com/v1/images/generate"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"description\": \"<string>\",\n \"style\": \"<string>\",\n \"size\": \"<string>\",\n \"format\": \"<string>\",\n \"quality\": \"<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.smartlyq.com/v1/images/generate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"<string>\",\n \"description\": \"<string>\",\n \"style\": \"<string>\",\n \"size\": \"<string>\",\n \"format\": \"<string>\",\n \"quality\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smartlyq.com/v1/images/generate")
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 \"prompt\": \"<string>\",\n \"description\": \"<string>\",\n \"style\": \"<string>\",\n \"size\": \"<string>\",\n \"format\": \"<string>\",\n \"quality\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"job_id": "ext_7f2c91"
},
"usage": {
"units": 1,
"cost": "0.0150",
"balance_remaining": "99.9850"
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "BAD_REQUEST",
"message": "The request body is not valid JSON.",
"details": {}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "INVALID_API_KEY",
"message": "Missing or malformed Authorization header",
"details": {}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "INSUFFICIENT_BALANCE",
"message": "Wallet balance is insufficient for this request",
"details": {
"required": "0.0250",
"balance": "0.0100"
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "INSUFFICIENT_SCOPE",
"message": "API key lacks required scope: social:write",
"details": {
"required_scope": "social:write"
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Missing required fields: content, platforms.",
"details": {
"fields": [
"content",
"platforms"
]
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 12 seconds.",
"details": {
"retry_after": 12
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "SERVER_ERROR",
"message": "Something went wrong on our side. Retry with the same request_id - it is safe.",
"details": {}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}Authorizations
API key from Developer dashboard (Bearer token).
Body
application/json
Either prompt or description must be provided.
Short image generation prompt
Detailed image description
Visual style (e.g. photorealistic, illustration, watercolor)
Image dimensions (e.g. 1024x1024, 1792x1024)
Output format (e.g. png, jpg, webp)
Quality level (e.g. standard, hd)
⌘I
Generate image
curl --request POST \
--url https://api.smartlyq.com/v1/images/generate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>",
"description": "<string>",
"style": "<string>",
"size": "<string>",
"format": "<string>",
"quality": "<string>"
}
'import requests
url = "https://api.smartlyq.com/v1/images/generate"
payload = {
"prompt": "<string>",
"description": "<string>",
"style": "<string>",
"size": "<string>",
"format": "<string>",
"quality": "<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({
prompt: '<string>',
description: '<string>',
style: '<string>',
size: '<string>',
format: '<string>',
quality: '<string>'
})
};
fetch('https://api.smartlyq.com/v1/images/generate', 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.smartlyq.com/v1/images/generate",
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([
'prompt' => '<string>',
'description' => '<string>',
'style' => '<string>',
'size' => '<string>',
'format' => '<string>',
'quality' => '<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.smartlyq.com/v1/images/generate"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"description\": \"<string>\",\n \"style\": \"<string>\",\n \"size\": \"<string>\",\n \"format\": \"<string>\",\n \"quality\": \"<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.smartlyq.com/v1/images/generate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"<string>\",\n \"description\": \"<string>\",\n \"style\": \"<string>\",\n \"size\": \"<string>\",\n \"format\": \"<string>\",\n \"quality\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smartlyq.com/v1/images/generate")
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 \"prompt\": \"<string>\",\n \"description\": \"<string>\",\n \"style\": \"<string>\",\n \"size\": \"<string>\",\n \"format\": \"<string>\",\n \"quality\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"job_id": "ext_7f2c91"
},
"usage": {
"units": 1,
"cost": "0.0150",
"balance_remaining": "99.9850"
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "BAD_REQUEST",
"message": "The request body is not valid JSON.",
"details": {}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "INVALID_API_KEY",
"message": "Missing or malformed Authorization header",
"details": {}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "INSUFFICIENT_BALANCE",
"message": "Wallet balance is insufficient for this request",
"details": {
"required": "0.0250",
"balance": "0.0100"
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "INSUFFICIENT_SCOPE",
"message": "API key lacks required scope: social:write",
"details": {
"required_scope": "social:write"
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Missing required fields: content, platforms.",
"details": {
"fields": [
"content",
"platforms"
]
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 12 seconds.",
"details": {
"retry_after": 12
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "SERVER_ERROR",
"message": "Something went wrong on our side. Retry with the same request_id - it is safe.",
"details": {}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}
