Seedream 5.5
curl --request POST \
--url https://api.snapgen.org/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"prompt": "<string>",
"size": "<string>",
"resolution": "<string>",
"image_urls": [
"<string>"
],
"background": "<string>",
"output_format": "<string>",
"n": 123
}
'import requests
url = "https://api.snapgen.org/v1/images/generations"
payload = {
"model": "<string>",
"prompt": "<string>",
"size": "<string>",
"resolution": "<string>",
"image_urls": ["<string>"],
"background": "<string>",
"output_format": "<string>",
"n": 123
}
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({
model: '<string>',
prompt: '<string>',
size: '<string>',
resolution: '<string>',
image_urls: ['<string>'],
background: '<string>',
output_format: '<string>',
n: 123
})
};
fetch('https://api.snapgen.org/v1/images/generations', 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.snapgen.org/v1/images/generations",
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([
'model' => '<string>',
'prompt' => '<string>',
'size' => '<string>',
'resolution' => '<string>',
'image_urls' => [
'<string>'
],
'background' => '<string>',
'output_format' => '<string>',
'n' => 123
]),
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.snapgen.org/v1/images/generations"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"image_urls\": [\n \"<string>\"\n ],\n \"background\": \"<string>\",\n \"output_format\": \"<string>\",\n \"n\": 123\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.snapgen.org/v1/images/generations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"image_urls\": [\n \"<string>\"\n ],\n \"background\": \"<string>\",\n \"output_format\": \"<string>\",\n \"n\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snapgen.org/v1/images/generations")
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 \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"image_urls\": [\n \"<string>\"\n ],\n \"background\": \"<string>\",\n \"output_format\": \"<string>\",\n \"n\": 123\n}"
response = http.request(request)
puts response.read_bodyImage Series
Seedream 5.5
Generate or edit one image with Seedream 5.5 and up to ten references.
POST
/
v1
/
images
/
generations
Seedream 5.5
curl --request POST \
--url https://api.snapgen.org/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"prompt": "<string>",
"size": "<string>",
"resolution": "<string>",
"image_urls": [
"<string>"
],
"background": "<string>",
"output_format": "<string>",
"n": 123
}
'import requests
url = "https://api.snapgen.org/v1/images/generations"
payload = {
"model": "<string>",
"prompt": "<string>",
"size": "<string>",
"resolution": "<string>",
"image_urls": ["<string>"],
"background": "<string>",
"output_format": "<string>",
"n": 123
}
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({
model: '<string>',
prompt: '<string>',
size: '<string>',
resolution: '<string>',
image_urls: ['<string>'],
background: '<string>',
output_format: '<string>',
n: 123
})
};
fetch('https://api.snapgen.org/v1/images/generations', 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.snapgen.org/v1/images/generations",
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([
'model' => '<string>',
'prompt' => '<string>',
'size' => '<string>',
'resolution' => '<string>',
'image_urls' => [
'<string>'
],
'background' => '<string>',
'output_format' => '<string>',
'n' => 123
]),
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.snapgen.org/v1/images/generations"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"image_urls\": [\n \"<string>\"\n ],\n \"background\": \"<string>\",\n \"output_format\": \"<string>\",\n \"n\": 123\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.snapgen.org/v1/images/generations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"image_urls\": [\n \"<string>\"\n ],\n \"background\": \"<string>\",\n \"output_format\": \"<string>\",\n \"n\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snapgen.org/v1/images/generations")
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 \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"size\": \"<string>\",\n \"resolution\": \"<string>\",\n \"image_urls\": [\n \"<string>\"\n ],\n \"background\": \"<string>\",\n \"output_format\": \"<string>\",\n \"n\": 123\n}"
response = http.request(request)
puts response.read_bodyGenerate an image from a text prompt, or add public image URLs to guide an edit.
The route returns one image at
The total is the selected base price plus the price of every supplied reference.
For example, a 1K output with two references costs $0.036. Check the
live model page for current prices.
Send the JSON body to
1K, 1.5K or 2K.
| Property | Value |
|---|---|
| Public model ID | seedream-5.5 |
| Output count | One image per request (n: 1) |
| Base output price | $0.02 at 1K or 1.5K; $0.035 at 2K |
| Reference images | Up to ten public HTTP(S) URLs; $0.008 per reference |
| Output formats | PNG or JPEG |
string
required
Use
seedream-5.5.string
required
A non-empty creative brief of at most 7,000 characters.
string
default:"auto"
auto, 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 21:9, 2:1
or 1:2. Custom pixel sizes are not accepted.string
default:"1K"
1K, 1.5K or 2K. The selected tier determines the base output price.string[]
Optional: up to ten public HTTP(S) image URLs. Each reference is billed.
string
default:"auto"
auto, opaque or transparent. Transparent output requires PNG. Describe
the isolated subject and review the resulting alpha channel.string
default:"png"
png or jpeg. Transparent output requires png.integer
default:"1"
Only
1 is supported.Generate an image
{
"model": "seedream-5.5",
"prompt": "A ceramic cup on a sunlit table, editorial product photography",
"size": "1:1",
"resolution": "1K",
"n": 1
}
Edit with references
{
"model": "seedream-5.5",
"prompt": "Keep the product shape, and change the background to pale linen",
"size": "1:1",
"resolution": "1K",
"n": 1,
"image_urls": ["https://example.com/product.png"]
}
POST /v1/images/generations. Use Prefer: respond-async
to receive a task ID immediately, then poll GET /v1/tasks/{id} with the same
API key. A waiting request may also return a task if it has not finished.
Keep the same idempotency key when retrying an uncertain submission; download
temporary result URLs promptly.
This integration does not expose custom pixel dimensions, batch output or layer
decomposition.