ForHosting KIT · Images

Generate banners

A banner brief usually arrives as three lines of text and a deadline, not a finished design file. This endpoint turns that brief, subject, message and target dimensions, into a generated banner sized for the placement it needs to fill, without a design tool in the loop.

● BetaPer request + per image$0.002
Use it from WebAPIEmailApp soonTelegram soon

Run this on our servers with your account. Free tools run in your browser; this one bills your KIT balance per the price above.

Who actually needs a banner generated on demand

Ad platforms run dozens of creative sizes for a single campaign, marketplaces need a fresh promotional banner every time a sale starts, and SaaS products need a hero image whenever a new landing page ships. In every one of these cases, waiting on a designer for a routine banner is the wrong use of their time, and a static template reused endlessly starts to look stale. This endpoint exists for that specific gap: routine banner production that needs to happen often, quickly, and without a human opening a design tool each time.

What you send and what comes back

You submit a brief describing the banner's subject and message, along with the target dimensions for the placement it's meant for, ad unit, hero section, email header, and the task returns a generated banner image sized to fit. Because the endpoint is asynchronous, you get a task_id right away and the finished banner arrives later by webhook or a signed link, so a request can be fired the moment a campaign or page is created without blocking anything downstream.

Why ad and hero banners are a distinct generation problem

A banner is not just an image, it's an image constrained by a fixed aspect ratio and a job to do: hold attention in a small space and communicate one idea fast, usually with room implied for a headline or call to action. That combination of tight framing and communicative purpose is different from open-ended illustration, which is why treating banner generation as its own task, rather than a generic image request cropped afterward, tends to produce compositions that actually fit their slot instead of feeling cut off.

Fitting into a campaign pipeline

Because results are delivered asynchronously, this endpoint plugs naturally into ad and campaign tooling: a campaign is created, a banner request fires automatically in the target sizes needed, and each finished creative lands via webhook ready to attach to its placement. It pairs well with a resize step for any additional formats a platform requires, and with a text overlay step if a headline needs to be composited on afterward.

What to expect from generated banners

Results are original generated compositions built from your brief, not templates pulled from a stock library, so expect variation between requests even with similar briefs, and treat exact text rendering inside the banner as something to verify rather than assume is perfect. For campaigns where legal or brand-exact wording is required, generate the visual here and composite verified text on top in a separate, controlled step.

Automated ad creative at campaign launch

An ad platform generates a full set of banner sizes automatically the moment a campaign is created, instead of routing each size to a designer.

Seasonal sale banners for a storefront

An ecommerce store generates a fresh promotional banner for its homepage every time a new sale or seasonal event starts.

Landing page hero images

A SaaS marketing team generates a matching hero banner for every new landing page variant it ships for testing.

Newsletter and email headers

A newsletter tool generates a header banner for each issue based on that issue's topic, keeping visuals fresh without manual design work.

How do I generate a banner through the api?

Send a POST to /image/banner with a brief describing the subject and message plus your target dimensions; you get a task_id back and the banner arrives by webhook or a signed link.

Can I request a specific banner size?

Yes, you specify target dimensions in the request and the generated banner is composed to fit that aspect ratio and size.

Is this free to use?

There's no free tier — free tiers get abused and slow everyone down. Access runs on a prepaid ForHosting KIT balance: top up from $10.00 (it never expires) and each request is charged at its published price, so a call with no balance returns HTTP 402. No subscription, no tokens, no invented credits, and a failed task is never charged.

How much does generating a banner cost?

$0.002 per request plus $0.0065 per image, billed only for banners the task actually completes.

Will the text on the banner be exactly what I typed?

Treat generated text inside the image as approximate; for legally required or brand-exact wording, generate the visual here and composite verified text separately.

Can I generate multiple ad sizes for one campaign?

Submit one request per target size in parallel and collect each finished banner as its webhook fires, which is the standard way to cover a full ad size set.

What happens if a banner generation request fails?

The task retries automatically up to three times; if it still fails, you get a clear error and are never charged for the failed attempt.

How is this different from the general text to image endpoint?

This endpoint is tuned specifically for banner composition, fixed aspect ratios and layouts that leave room for a message, rather than open-ended illustration.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/image/banner

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, and soon from our app, email and Telegram.

curl -X POST https://api.kit.forhosting.com/image/banner \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image":"https://ejemplo.com/imagen.jpg"}'
{
  "image": "https://ejemplo.com/imagen.jpg"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "image.banner",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002
Per image$0.0065

Published price — no tokens, no invented credits. A failed task is never charged.

max_mb15
max_megapixels12
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.
422task_failedThe task failed after 3 retries. You are never charged for it.

Read the full KIT documentation →