edit-workflow

Rebuild an advertisement in another language

Rebuilds the source advertisement for one target language. Layout, logos, brand type, and the product are preserved; the visible marketing copy is what changes.

Without exact_copy the copy is translated. Supply exact_copy to place wording that has already been approved, character for character, instead of translating it.

The output keeps the source advertisement's own shape and is generated at a frame derived from it, so neither the shape nor the size is asked for.

One request localizes into one language. Localize into several languages by submitting one request per language.

The request is processed asynchronously. Poll GET /v1/generations/{generation_id} with the returned generation_id until the generation is completed or failed.

Supply the source advertisement 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-localizer

Query parameters

dry_runboolean

When true, the request is validated and priced but not run: nothing is generated, stored, or billed, and no safety review is performed. The response is a PriceQuote object instead of the usual response for this endpoint. Send exactly the request you would send to generate, so the quote reflects the same options.

Request body

imagestring binary

The source advertisement to localize (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.

language'ar' | 'cs' | 'da' | 'de' | 'en' | 'es' | 'fi' | 'fr' | 'fr-ca' | 'hu' | 'it' | 'ja' | 'nl' | 'no' | 'pl' | 'pt' | 'sv' required

The target language the copy is rebuilt in. Arabic is rendered right-to-left.

exact_copystring

Pre-approved wording, one original => replacement mapping per line. Each mapping names the text element showing original and sets it to replacement, placed character for character rather than translated. Any text element not listed is left as it is in the source. When omitted, all visible marketing copy is translated.

promptstring

Optional additional direction for the localization, for example "keep the badge in English". It takes priority over the preservation rules for anything it explicitly asks to change.

quality'low' | 'medium' | 'high'

The quality tier for the edit. Higher tiers may improve detail and take longer to complete.

seedinteger

Random seed. Set for reproducible generation.

num_imagesinteger

Number of localized variations to create for this language.

target_collection_idstring

A collection you can write to, by its URL-safe base64 collection id. Completed outputs are added to it automatically.

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"
  },
  "seed": 12345,
  "webhook_url": "https://api.example.com/webhooks/ideogram"
}

Response

Ad localization accepted for asynchronous processing.

generation_idstring required

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

Example response

{
  "generation_id": "generation_id"
}

Changes

Changed in 5 of the 33 revisions of this API.614

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the new optional query request parameter dry_run

      new-optional-request-parameter

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • ○

      added the new optional request property (media type: multipart/form-data)

      new-optional-request-property

    • ○

      added the new optional request property (media type: application/json)

      new-optional-request-property

  • 4e95197be44a66See the full diff
    • ▲

      removed the enum value HIGH of the request property (media type: multipart/form-data)

      request-property-enum-value-removed

    • ▲

      removed the enum value HIGH of the request property (media type: application/json)

      request-property-enum-value-removed

    • ▲

      removed the enum value LOW of the request property (media type: multipart/form-data)

      request-property-enum-value-removed

    • ▲

      removed the enum value LOW of the request property (media type: application/json)

      request-property-enum-value-removed

    • ▲

      removed the enum value MEDIUM of the request property (media type: multipart/form-data)

      request-property-enum-value-removed

    • ▲

      removed the enum value MEDIUM of the request property (media type: application/json)

      request-property-enum-value-removed

    • ○

      added the new high enum value to the request property (media type: multipart/form-data)

      request-property-enum-value-added

    • ○

      added the new high enum value to the request property (media type: application/json)

      request-property-enum-value-added

    • ○

      added the new low enum value to the request property (media type: multipart/form-data)

      request-property-enum-value-added

    • ○

      added the new low enum value to the request property (media type: application/json)

      request-property-enum-value-added

    • ○

      added the new medium enum value to the request property (media type: multipart/form-data)

      request-property-enum-value-added

    • ○

      added the new medium enum value to the request property (media type: application/json)

      request-property-enum-value-added

    This revision also has 13 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • ○

      endpoint added

      endpoint-added