Branding
Place your existing brand assets into generated imagery: composite your real logo into a
scene, and produce branded templates. Inject brand colours and style rules via the
palette and logo_url fields. Both endpoints return a job_id with a matching
GET …/status/{job_id} route, see Jobs.
- Logo placement
- Branded template
POST /branding/logo/image/v1, place your existing logo (logo_url) into a generated
branded image. prompt describes the scene or layout; your real mark is composited in,
so this is logo placement, not logo generation.
- cURL
- JavaScript
- Python
- Java
curl -X POST https://api.imagepipeline.io/branding/logo/image/v1 \
-H "X-API-Key: $IMAGEPIPELINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "social hero banner for a summer sale, place the brand logo in the top-left, warm minimal layout",
"logo_url": "https://your-cdn/brand-logo.png",
"palette": ["#1c1a17", "#b08d57"],
"width": 1024,
"height": 1024
}'
const res = await fetch("https://api.imagepipeline.io/branding/logo/image/v1", {
method: "POST",
headers: {
"X-API-Key": process.env.IMAGEPIPELINE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "social hero banner for a summer sale, place the brand logo in the top-left, warm minimal layout",
"logo_url": "https://your-cdn/brand-logo.png",
"palette": ["#1c1a17", "#b08d57"],
"width": 1024,
"height": 1024
}),
});
const { job_id } = await res.json();
import requests
res = requests.post(
"https://api.imagepipeline.io/branding/logo/image/v1",
headers={"X-API-Key": API_KEY},
json={
"prompt": "social hero banner for a summer sale, place the brand logo in the top-left, warm minimal layout",
"logo_url": "https://your-cdn/brand-logo.png",
"palette": ["#1c1a17", "#b08d57"],
"width": 1024,
"height": 1024
},
)
job_id = res.json()["job_id"]
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.imagepipeline.io/branding/logo/image/v1"))
.header("X-API-Key", System.getenv("IMAGEPIPELINE_API_KEY"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("""
{
"prompt": "social hero banner for a summer sale, place the brand logo in the top-left, warm minimal layout",
"logo_url": "https://your-cdn/brand-logo.png",
"palette": ["#1c1a17", "#b08d57"],
"width": 1024,
"height": 1024
}
"""))
.build();
HttpResponse<String> res = client.send(req, BodyHandlers.ofString());
| Field | Type | Default | Notes |
|---|---|---|---|
prompt | string | , | Required. Describe the scene or layout to place the logo into. |
logo_url | string | , | Public URL of your existing logo (PNG/WebP with transparency) to composite into the image. Without it, no mark is placed. |
palette | string[] | , | Brand colours as hex codes, e.g. ["#FF5733", "#3498DB"]. |
width / height | integer | 1024 | Output dimensions (max 1024). |
seed | integer | -1 | -1 randomizes; set a value for reproducibility. |
output_format | string | webp | webp, jpeg, or png. |
callback_url | string | , | Receive a webhook on completion. |
server_id | string | , | Enterprise: pin to a dedicated pod. |
Response — poll GET …/status/{job_id} until status is completed:
{
"job_id": "job_9d4a1e6f",
"status": "completed",
"result_url": "https://cdn.imagepipeline.io/o/9d4a1e6f.webp",
"processing_time_seconds": 9.6,
"balance_remaining_usd": 187.52
}
POST /branding/template/image/v1, generate a branded layout/template from prompt,
honouring your palette. You can include hex codes directly in the prompt.
- cURL
- JavaScript
- Python
- Java
curl -X POST https://api.imagepipeline.io/branding/template/image/v1 \
-H "X-API-Key: $IMAGEPIPELINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "social announcement card with headline space",
"palette": ["#5b5bd6", "#a5a5f5"]
}'
const res = await fetch("https://api.imagepipeline.io/branding/template/image/v1", {
method: "POST",
headers: {
"X-API-Key": process.env.IMAGEPIPELINE_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "social announcement card with headline space",
"palette": ["#5b5bd6", "#a5a5f5"]
}),
});
const { job_id } = await res.json();
import requests
res = requests.post(
"https://api.imagepipeline.io/branding/template/image/v1",
headers={"X-API-Key": API_KEY},
json={
"prompt": "social announcement card with headline space",
"palette": ["#5b5bd6", "#a5a5f5"]
},
)
job_id = res.json()["job_id"]
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.imagepipeline.io/branding/template/image/v1"))
.header("X-API-Key", System.getenv("IMAGEPIPELINE_API_KEY"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("""
{
"prompt": "social announcement card with headline space",
"palette": ["#5b5bd6", "#a5a5f5"]
}
"""))
.build();
HttpResponse<String> res = client.send(req, BodyHandlers.ofString());
| Field | Type | Default | Notes |
|---|---|---|---|
prompt | string | , | Required. Describe the branded asset to generate. |
palette | string[] | , | Brand colours as hex codes. |
width / height | integer | 1024 | Output dimensions (max 1024). |
seed | integer | -1 | -1 randomizes; set a value for reproducibility. |
output_format | string | webp | webp, jpeg, or png. |
callback_url | string | , | Receive a webhook on completion. |
server_id | string | , | Enterprise: pin to a dedicated pod. |
Response — poll GET …/status/{job_id} until status is completed:
{
"job_id": "job_70f2c8ab",
"status": "completed",
"result_url": "https://cdn.imagepipeline.io/o/70f2c8ab.webp",
"processing_time_seconds": 10.3,
"balance_remaining_usd": 187.52
}