edit-workflow

Advertisement Resizer

Reframes the source creative to the exact requested ad resolution, regenerating the layout so text and key elements stay legible at the target size.

Supply platform to keep the whole advertisement clear of that platform's own interface. The advertisement is generated at the largest rectangle that fits inside the platform's published safe zone for the requested aspect ratio, placed at that rectangle's position, and the space around it is filled in so the returned image is still exactly the requested resolution. Omit platform and the advertisement fills the whole frame.

Safe zones are published per aspect ratio, and not every platform publishes one for every ratio. google and tiktok publish 16:9, 1:1, and 9:16; meta and snapchat publish 9:16 only. A platform combined with a resolution that platform has no safe zone for is rejected with a 400.

The request is processed asynchronously. Poll GET /v1/generations/{generation_id} with the returned generation_id until the generation is completed or failed. The completed generation reports the exact amount billed for the request in usage_cost_usd_micros.

Supply the source creative as either an AssetIdentifier reference (image_asset_identifier) or the raw image bytes directly (image, multipart requests only). Provide exactly one of the two forms; supplying both, or neither, is rejected with a 400.

post/v2/tool/ad-resizer

Request body

imagestring binary

The source creative to reframe (max size 25MB), as raw bytes; only JPEG, PNG, and WEBP formats are supported. Multipart requests only. Provide exactly one of image_asset_identifier or image.

resolution'300x250' | '336x280' | '300x600' | '1080x1080' | '1080x1350' | '1080x1920' | '1920x1080' | '728x90' | '160x600' | '970x250' | '320x50' | '300x50' | '320x100' | '1800x900' | '2400x2400' | '1200x3500' | '2880x2880' | '2560x3200' | '3200x2560' | '2448x3264' | '3264x2448' | '2336x3504' | '3504x2336' | '2240x3584' | '3584x2240' | '2160x3840' | '3840x2160' | '1920x3840' | '3840x1920' | '1280x3840' | '3840x1280' required

Target ad resolution, formatted as WIDTHxHEIGHT. Must be one of the supported ad resolutions listed above; any other value is rejected with a 400. Each returned image has exactly these pixel dimensions, whether or not a platform was supplied.

platform'google' | 'meta' | 'snapchat' | 'tiktok'

The ad platform whose published safe zone the advertisement must stay inside. google covers YouTube and Google Ads placements; meta covers Facebook and Instagram. When supplied, the advertisement is generated inside that platform's safe zone for the requested aspect ratio and the remaining space is filled in around it. When omitted, the advertisement fills the whole frame. Any other value is rejected with a 400.

promptstring

Optional edit instruction to apply while reframing, for example "remove the logo" or "put the price bottom-right".

quality'VERY_LOW' | 'LOW' | 'MEDIUM' | 'HIGH' | 'VERY_HIGH'

The generation quality level. Higher levels may use more inference steps or additional prompt processing. VERY_HIGH generates multiple candidates internally and returns the strongest result, so it has noticeably higher latency and cost than the other levels.

num_imagesinteger

The number of reframed variations to generate.

privateboolean

When true or omitted, the output is kept private to your account. Set to false to publish the output to the public feed. Enterprise accounts always generate privately.

webhook_urlstring uri

HTTPS URL that Ideogram delivers the generated result to. Ideogram sends a JSON POST to this URL once all images for the request have finished generating. The body mirrors the synchronous generate response: request_id, created, and a data array containing every generated image (url, prompt, resolution, seed, is_image_safe). Each delivery is signed with Ed25519 and verifiable against the public keys at https://api.ideogram.ai/v1/.well-known/jwks.json. Must be HTTPS; private and loopback hosts and the cloud metadata service are rejected.

Example request

{
  "image_asset_identifier": {
    "asset_type": "RESPONSE",
    "asset_id": "7uS_VESkRI6O3-sVgHQp_A"
  },
  "webhook_url": "https://api.example.com/webhooks/ideogram"
}

Response

Ad resize accepted for asynchronous processing.

generation_idstring required

URL-safe base64 ID accepted by the generation polling endpoint.

Example response

{
  "generation_id": "generation_id"
}

Changes