---
title: "Generate an editable design with Ideogram 4.0 HTML"
method: POST
path: "/v1/ideogram-v4/generate-design"
tags: ["generate"]
---

# Generate an editable design with Ideogram 4.0 HTML

`POST /v1/ideogram-v4/generate-design`

Experimental prototype endpoint for generating an editable V4 HTML design from a prompt.

Optionally accepts inspiration reference images to guide transferable visual style. Inspiration images are design/style references only and are not edit targets.

Images links are available for a limited period of time; if you would like to keep the image, you must download it.

## Request body

- GenerateDesignRequestV4
  - `prompt` string, required — The text prompt for editable design generation.
  - `seed` integer, nullable — Random seed for reproducibility.
  - `magic_prompt_option` 'AUTO' | 'ON' | 'OFF' — Determine if MagicPrompt should be used in generating the request or not.
  - `magic_prompt_system_prompt_config_id` string — A base64url-encoded magic prompt system prompt config ID to use for this request.
  - `resolution` '1024x1024' | '896x1120' | '1120x896' | '864x1152' | '1152x864' | '832x1248' | '1248x832' | '800x1280' | '1280x800' | '720x1280' | '1280x720' | '720x1440' | '1440x720' — The resolutions supported for Ideogram 4.0 layout-to-image and design generation.
  - `rendering_speed` 'FLASH' | 'TURBO' | 'BALANCED' | 'DEFAULT' | 'QUALITY' — The rendering speed to use.
  - `inspiration_reference_images` string[] — Experimental. Up to 4 static inspiration images used as transferable visual style references for V4 layout-to-image design. Images are not edit targets and are not inserted into the generated HTML layout. Supported formats are JPEG, PNG, and WebP (max size 10MB each). Animated images are not supported.
  - `inspiration_reference_model` 'claude-sonnet-4-6' | 'claude-opus-4-6' | 'claude-opus-4-7', nullable — Experimental. Model to use for the inspiration vision prepass.
  - `artifact_generation_model` 'claude-sonnet-4-6' | 'claude-opus-4-6' | 'claude-opus-4-7', nullable — Experimental. Model to use for the HTML/layout and base-plate handoff generation call.
  - `layout2image_variant` 'opus_4_7' | 'separate_image_layer' | 'bbox_aware', nullable — Experimental. Staging only. Select a v4 layout-to-image pipeline variant. Omit for the default v4l2i path. Rejected on production.
  - `response_type` 'layered' | 'url' | 'binary' | 'html', nullable — layered (default): full editable design payload with text layers and HTML. url: JSON with an expiring link to the final composited cover image. binary: raw PNG bytes of the final composited cover image (Content-Type image/png). html: raw HTML document of the generated layout (Content-Type text/html).

## Response `200`

Design(s) generated successfully.

- union
  - LayeredImageGenerationResponseV3 — The response which contains information about the generated image, including the download link and other text layeres. Images links are available for a limited period of time; if you would like to keep the image, you must download it.
    - `response_type` 'layered' — Discriminator for the postGenerateDesignV4 oneOf response. Always "layered" for this shape; absent on the legacy postGenerateDesignV3 endpoint.
    - `created` string, date-time, required — The time the request was created.
    - `data` LayeredImageGenerationObjectV3[], required — A list of ImageObjects that contain the generated image(s).
      - `url` string, uri, nullable — The direct link to the image generated.
      - `prompt` string, required — The prompt used for the generation. This may be different from the original prompt.
      - `resolution` '512x1536' | '576x1408' | '576x1472' | '576x1536' | '640x1344' | '640x1408' | '640x1472' | '640x1536' | '704x1152' | '704x1216' | '704x1280' | '704x1344' | '704x1408' | '704x1472' | '736x1312' | '768x1088' | '768x1216' | '768x1280' | '768x1344' | '800x1280' | '832x960' | '832x1024' | '832x1088' | '832x1152' | '832x1216' | '832x1248' | '864x1152' | '896x960' | '896x1024' | '896x1088' | '896x1120' | '896x1152' | '960x832' | '960x896' | '960x1024' | '960x1088' | '1024x832' | '1024x896' | '1024x960' | '1024x1024' | '1088x768' | '1088x832' | '1088x896' | '1088x960' | '1120x896' | '1152x704' | '1152x832' | '1152x864' | '1152x896' | '1216x704' | '1216x768' | '1216x832' | '1248x832' | '1280x704' | '1280x768' | '1280x800' | '1312x736' | '1344x640' | '1344x704' | '1344x768' | '1408x576' | '1408x640' | '1408x704' | '1472x576' | '1472x640' | '1472x704' | '1536x512' | '1536x576' | '1536x640', required — The resolutions supported for Ideogram 3.0.
      - `upscaled_resolution` string — Output resolution, only used if operations alters image dimensions, such as upscale, crop etc.
      - `is_image_safe` boolean, required — Whether this request passes safety checks. If false, the url field will be empty.
      - `seed` integer, required — Random seed. Set for reproducible generation.
      - `style_type` 'AUTO' | 'GENERAL' | 'REALISTIC' | 'DESIGN' | 'CUSTOM' | 'FICTION' | 'STYLIZED' — The style type to generate with.
  - ImageGenerationResponseV4Layout — The response which contains information about the generated layout-to-image output, including the download link. Images links are available for a limited period of time; if you would like to keep the image, you must download it.
    - `response_type` 'url' — Discriminator for the postGenerateDesignV4 oneOf response. Always "url" for this shape.
    - `created` string, date-time, required — The time the request was created.
    - `data` ImageGenerationObjectV4Layout[], required — A list of ImageObjects that contain the generated image(s).
      - `url` string, uri, nullable — The direct link to the image generated.
      - `prompt` string, required — The prompt used for the generation. This may be different from the original prompt.
      - `resolution` '1024x1024' | '896x1120' | '1120x896' | '864x1152' | '1152x864' | '832x1248' | '1248x832' | '800x1280' | '1280x800' | '720x1280' | '1280x720' | '720x1440' | '1440x720', required — The resolutions supported for Ideogram 4.0 layout-to-image and design generation.
      - `is_image_safe` boolean, required — Whether this request passes safety checks. If false, the url field will be empty.
      - `seed` integer, required — Random seed. Set for reproducible generation.

## Other responses

- `400` — Invalid input provided.
- `401` — Not authorized.
- `422` — Prompt failed the safety check.
- `429` — Too many requests.

---

[API](https://skmtc.net/ideogram/apis/ideogram-openapi-3-0.md) · [All operations](https://skmtc.net/ideogram/apis/ideogram-openapi-3-0/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ideogram/ideogram-openapi-3-0/revisions/bd40f367a834/schema)
