ByteDance's Seedream 4.5 text-to-image model.
curl https://www.ninjachat.ai/api/v1/images/generations \
-H "Authorization: Bearer $NINJACHAT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "model": "seedream-4.5", "prompt": "a red fox in a snowy forest, golden hour", "aspect_ratio": "16:9" }'Each request below is generated from what Seedream 4.5 serves on NinjaChat today — the same capabilities and parameters that GET /models reports — so it runs as written with your key.
One synchronous call returns a hosted image URL you can use straight away.
# export NINJACHAT_API_KEY="nj_sk_..." (Developers → Keys)
curl https://www.ninjachat.ai/api/v1/images/generations \
-H "Authorization: Bearer $NINJACHAT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-4.5",
"prompt": "product shot of a matte black espresso machine on walnut, soft window light",
"size": "2560x1440",
"n": 1
}'size is one of 1920x1920, 2560x1440, or 1440x2560; pass aspect_ratio (for example "4:5") or explicit width/height between 256 and 2048 when you need another frame.n goes up to 4 and every image is billed at this model's per-image price; data[i].url is a permanent CDN link, so there is nothing to poll.storage is optional and defaults to "durable". Set it to "provider" to skip the persistence hop for lower latency; then handle either a temporary url or b64_json plus mime_type.