MAKEUGC PLATFORM API · DOCS V2
Image Generation & Editing
Create images from text or edit existing product and character references.
Workflow
- Choose a text-to-image model or its edit variant.
- For editing, provide the image reference fields required by that model and describe the intended change.
- Submit and poll with media=image. Download every completed URL from output.output_link.
Example IDs and media URLs are placeholders. Replace them with values from your account and accessible media files.
Choose a model
Text-to-image generation for single-image output.
nano-banana-pro GPT Image 2OpenAI image generation model.
gpt-image-2 FLUX.2 ProFlux text-to-image generation.
flux-2-pro Grok Imagine ImageGrok text-to-image generation.
grok-imagine-image Nano Banana Pro · EditEdit model that accepts up to 2 source images.
nano-banana-pro-edit GPT Image 2 · EditOpenAI edit model with up to 2 source images.
gpt-image-2-edit FLUX.2 Pro · EditFlux edit model with up to 2 source images.
flux-2-pro-edit Grok Imagine Image · EditGrok edit model with up to 2 source images.
grok-imagine-image-edit Seedream 5.0 ProGenerate images with Seedream 5.0 Pro.
seedream-v5.0 Seedream 5.0 Pro · EditEdit or blend up to ten source images with Seedream 5.0 Pro.
seedream-v5.0-edit GPT Image 1.5Generate images with GPT Image 1.5.
gpt-image-1.5 GPT Image 1.5 · EditEdit images with GPT Image 1.5.
gpt-image-1.5-edit GPT Image 2.5 FlareGenerate images with GPT Image 2.5 Flare.
gpt-image-2.5-flare GPT Image 2.5 Flare · EditEdit images with GPT Image 2.5 Flare.
gpt-image-2.5-flare-edit GPT Image 2.5 SunburstGenerate images with GPT Image 2.5 Sunburst.
gpt-image-2.5-sunburst GPT Image 2.5 Sunburst · EditEdit images with GPT Image 2.5 Sunburst.
gpt-image-2.5-sunburst-edit BananaGenerate an image from text with Banana.
banana Banana · EditEdit a source image with Banana.
banana-edit Nano Banana 2Generate an image from text with Nano Banana 2.
banana-2 Nano Banana 2 · EditEdit a source image with Nano Banana 2.
banana-2-edit FLUX 2Generate an image from text with FLUX 2.
flux-2 FLUX 2 · EditEdit a source image with FLUX 2.
flux-2-edit Seedream 4.5Generate an image from text with Seedream 4.5.
seedream-v4.5 Seedream 4.5 · EditEdit a source image with Seedream 4.5.
seedream-v4.5-edit WAN 2.6 ImageGenerate an image from text with WAN 2.6 Image.
wan-v2.6 WAN 2.6 Image · EditEdit a source image with WAN 2.6 Image.
wan-v2.6-edit Recraft v3Generate an image from text with Recraft v3.
recraft-v3 Recraft v3 · EditEdit a source image with Recraft v3.
recraft-v3-edit Imagen 4 PreviewGenerate an image from text with Imagen 4 Preview.
imagen4-preview Imagen 4 FastGenerate an image from text with Imagen 4 Fast.
imagen4-preview-fast Imagen 4 UltraGenerate an image from text with Imagen 4 Ultra.
imagen4-preview-ultraExample request
This example uses Nano Banana Pro. Replace media URLs with your own files. The model reference documents all options and the matching status request.
curl --fail-with-body --max-time 120 -X POST "https://app.makeugc.ai/api/platform/enterprise/generate" \
-H "X-Api-Key: $MAKEUGC_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "nano-banana-pro",
"params": {
"prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
"resolution": "1k"
}
}'
// Run on your server with Node.js 20+.
const apiKey = process.env.MAKEUGC_API_KEY;
if (!apiKey) throw new Error("Set MAKEUGC_API_KEY first");
const response = await fetch("https://app.makeugc.ai/api/platform/enterprise/generate", {
method: "POST",
headers: {
"X-Api-Key": apiKey,
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "nano-banana-pro",
"params": {
"prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
"resolution": "1k"
}
}),
signal: AbortSignal.timeout(120000),
});
const text = await response.text();
if (!response.ok) {
throw new Error(`HTTP ${response.status}: ${text} (request ${response.headers.get("x-request-id")})`);
}
const result = JSON.parse(text);
console.log(result);
# Install the requests package before running.
import os
import requests
payload = {
"model": "nano-banana-pro",
"params": {
"prompt": "A studio photograph of a ceramic coffee cup on a warm neutral background.",
"resolution": "1k"
}
}
response = requests.post(
"https://app.makeugc.ai/api/platform/enterprise/generate",
headers={"X-Api-Key": os.environ["MAKEUGC_API_KEY"]},
json=payload,
timeout=120,
)
if not response.ok:
raise RuntimeError(f"HTTP {response.status_code}: {response.text} "
f"(request {response.headers.get('x-request-id')})")
print(response.json())
See Jobs & status for polling and result formats.