> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vidgo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Ideogram 4.5 Edit

> The Ideogram 4.5 Edit API edits one image from a text instruction, with an optional mask, up to 4 reference images and regular or high edit precision.

> [!TIP]
>
> 1. After submission, a `task_id` will be returned. If you provided a `callback_url`, when the task status becomes `finished` or `failed`, a POST request will be sent to the `callback_url`.
> 2. Regardless of whether `callback_url` is provided, you can retrieve the result through the unified [Query Task Status](https://docs.vidgo.ai/api-manual/task-management/status.md) endpoint.

Ideogram 4.5 Edit changes one existing image from a written instruction. Restrict the edit to a masked area, guide it with up to four reference images, and choose `high` edit precision when the untouched parts must stay pixel-exact. Typical uses are swapping products or signage text, retouching backgrounds and producing variants of a design. Ideogram says the model avoids the colour drift and artifacts that build up over repeated edits.

Ideogram 4.5 is Ideogram's image model for text-heavy visuals and precise edits. Vidgo exposes it as two model IDs: [Text to Image](https://docs.vidgo.ai/api-manual/image-series/ideogram-v4-5-text-to-image.md) and [Edit](https://docs.vidgo.ai/api-manual/image-series/ideogram-v4-5-edit.md).

## Models

* **ideogram/v4.5/edit** — Image edit with Ideogram 4.5: one source image, optional mask and references.

## Features

* Image edit from a natural-language instruction, including replacing text in the image.
* Optional mask to limit the edit to one area.
* Up to 4 reference images for style or content (3 when a mask is used).
* `edit_precision: high` for edits that keep everything else unchanged.
* Four quality tiers, including `very_low` for cheap drafts, and 1–8 results per request.

## Input modes

* **Instruction edit**: `image_urls` + `prompt`. The model decides which area to change.
* **Masked edit**: add `mask_url` (black = edit, white = keep) and keep `size: auto`.
* Either mode can add `reference_image_urls`.

## Required parameters

* `prompt` (string): What to change and how, 1–10,000 characters. Must not be blank.
* `image_urls` (string\[]): Exactly one image to edit. Public HTTP(S) URL or `data:image/...;base64,...` data URI.

## Optional parameters

* `mask_url` (string): Mask the same size as the source image, containing both black (edit) and white (keep). Requires `size: auto`.
* `reference_image_urls` (string\[]): Up to 4 reference images, or up to 3 with `mask_url`. They guide the result and are not edited.
* `edit_precision` (string): `regular` or `high`. Default `regular`. `high` requires `size: auto`.
* `quality` (string): `very_low`, `low`, `medium` or `high`. Default `medium`.
* `n` (integer): Number of results, `1`–`8`. Default `1`.
* `size` (string): Output size. Default `auto`. See [Size](#size).

## Size

* `auto` (default) keeps the source image's dimensions. It is required when you send `mask_url` or `edit_precision: high`.
* Presets: `1:1`, `1:1 HD`, `4:3`, `3:4`, `16:9`, `9:16`.
* Custom `WIDTHxHEIGHT`, for example `1536x1024`: each side at least 256 and a multiple of 32, at most 4,194,304 pixels in total (2048x2048), and an aspect ratio no wider than 6:1.

## Output

The finished task returns one file per requested image (`n`) in the `files` array of [Query Task Status](https://docs.vidgo.ai/api-manual/task-management/status.md) and the callback payload.

## Examples

* **Instruction-only edit**: change the text on a shop sign, `size: auto`, `medium` quality.
* **Masked edit with a reference and high precision**: a sofa mask plus an armchair reference image, `edit_precision: high`, `quality: high`, with a `callback_url`.

## Notes

* `image_urls` must contain exactly one image. To create an image from scratch, use [Ideogram 4.5 Text to Image](https://docs.vidgo.ai/api-manual/image-series/ideogram-v4-5-text-to-image.md).
* A `mask_url` or `edit_precision: high` with any `size` other than `auto` returns 400, and so do four references together with a mask.
* Fields not listed above return 400. `model` and `callback_url` belong at the request root, not inside `input`.
* Credits are reserved at submission and depend on `quality` and `n` only; `size`, the mask and references do not change the price. A failed task is refunded in full. See the [pricing page](https://vidgo.ai/apis/api-pricing) for current rates.


## OpenAPI

````yaml api-manual/image-series/ideogram-v4-5-edit.json POST /api/generate/submit
openapi: 3.0.0
info:
  title: Vidgo API - Ideogram 4.5 Edit
  description: >-
    The Ideogram 4.5 Edit API edits one image from a text instruction, with an
    optional mask, up to 4 reference images and regular or high edit precision.
  version: 1.0.0
servers:
  - url: https://api.vidgo.ai
    description: Production server
security:
  - BearerAuth: []
paths:
  /api/generate/submit:
    post:
      tags:
        - Image Series
      summary: Ideogram 4.5 Edit
      description: >-
        Send only the `input` fields listed for this model. Any other field
        returns 400. `mask_url` and `edit_precision: high` both require `size:
        auto`. Image fields accept public HTTP(S) URLs or
        `data:image/...;base64,...` data URIs.
      operationId: submit_ideogram_v4_5_edit
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - input
              properties:
                model:
                  type: string
                  description: Model ID. Use `ideogram/v4.5/edit`.
                  example: ideogram/v4.5/edit
                callback_url:
                  type: string
                  format: uri
                  nullable: true
                  description: >-
                    Optional public HTTP(S) endpoint that receives a POST when
                    the task becomes `finished` or `failed`. HTTPS is
                    recommended. Omit it, or send `null` or an empty string, to
                    disable callbacks.
                  example: https://your-domain.com/callback
                input:
                  type: object
                  required:
                    - prompt
                    - image_urls
                  properties:
                    prompt:
                      type: string
                      minLength: 1
                      maxLength: 10000
                      example: Change the shop sign to read "OPEN LATE" in neon pink
                      description: >-
                        Edit instruction: what to change and how. 1–10,000
                        characters, not blank.
                    image_urls:
                      type: array
                      items:
                        type: string
                        format: uri
                      minItems: 1
                      maxItems: 1
                      example:
                        - https://example.com/storefront.png
                      description: >-
                        Exactly one image to edit: a public HTTP(S) URL or an
                        image data URI.
                    mask_url:
                      type: string
                      format: uri
                      description: >-
                        Optional mask of the area to edit, the same size as the
                        source image. Black marks the area to edit, white the
                        area to keep. Requires `size: auto`. Public HTTP(S) URL
                        or image data URI.
                    reference_image_urls:
                      type: array
                      items:
                        type: string
                        format: uri
                      maxItems: 4
                      description: >-
                        Optional style or content references: up to 4 images, or
                        up to 3 when `mask_url` is set. References guide the
                        edit and are not edited themselves. Public HTTP(S) URLs
                        or image data URIs.
                    edit_precision:
                      type: string
                      enum:
                        - regular
                        - high
                      default: regular
                      description: >-
                        `regular` or `high`. `high` keeps unchanged pixels
                        intact more strictly and requires `size: auto`.
                    quality:
                      type: string
                      enum:
                        - very_low
                        - low
                        - medium
                        - high
                      default: medium
                      description: >-
                        Rendering quality. It sets the billing rate. `very_low`
                        is available on this edit ID only.
                    'n':
                      type: integer
                      minimum: 1
                      maximum: 8
                      default: 1
                      description: Number of images to generate.
                    size:
                      type: string
                      default: auto
                      example: auto
                      description: >-
                        Output size. `auto` keeps the source image's size.
                        Otherwise use a preset (`1:1`, `1:1 HD`, `4:3`, `3:4`,
                        `16:9`, `9:16`) or `WIDTHxHEIGHT` with each side at
                        least 256 and a multiple of 32, at most 4,194,304 pixels
                        in total and an aspect ratio no wider than 6:1. Must be
                        `auto` with `mask_url` or `edit_precision: high`.
                  additionalProperties: false
                  description: Generation parameters.
            examples:
              instruction_edit:
                summary: Instruction-only edit
                value:
                  model: ideogram/v4.5/edit
                  input:
                    prompt: Change the shop sign to read "OPEN LATE" in neon pink
                    image_urls:
                      - https://example.com/storefront.png
                    quality: medium
                    'n': 1
                    size: auto
              masked_edit:
                summary: Masked edit with a reference and high precision
                value:
                  model: ideogram/v4.5/edit
                  callback_url: https://your-domain.com/callback
                  input:
                    prompt: >-
                      Replace the sofa with the green velvet armchair from the
                      reference image
                    image_urls:
                      - https://example.com/living-room.png
                    mask_url: https://example.com/sofa-mask.png
                    reference_image_urls:
                      - https://example.com/armchair.png
                    edit_precision: high
                    quality: high
                    'n': 1
                    size: auto
      responses:
        '200':
          description: Task submitted
          content:
            application/json:
              schema:
                type: object
                required:
                  - code
                  - data
                properties:
                  code:
                    type: integer
                    enum:
                      - 200
                    description: HTTP status code.
                  data:
                    type: object
                    required:
                      - task_id
                      - status
                      - created_time
                    properties:
                      task_id:
                        type: string
                        description: >-
                          Task ID. Use it with [Query Task
                          Status](/api-manual/task-management/status).
                      status:
                        type: string
                        enum:
                          - not_started
                        description: Initial task status.
                      created_time:
                        type: string
                        format: date-time
                        description: Time the task was created (ISO 8601).
              example:
                code: 200
                data:
                  task_id: task-unified-1762160000-abc123
                  status: not_started
                  created_time: '2026-11-03T10:30:00'
        '400':
          description: >-
            Invalid input, unsupported field, inaccessible media, or
            insufficient credits
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '401':
          description: Invalid credentials
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '404':
          description: Unknown or disabled model
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '408':
          description: Request timed out
          content:
            text/plain:
              schema:
                type: string
              example: Request timeout
        '422':
          description: Invalid JSON or non-object request body
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '429':
          description: Rate or API key credit limit exceeded
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '502':
          description: Unable to create the upstream generation task
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
        '503':
          description: The requested model is temporarily unavailable
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
                    description: Error message.
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        All API endpoints require Bearer Token authentication


        Get your API Key:


        Go to **Dashboard → API Key** ([API Key Management
        Page](https://vidgo.ai/apis/dashboard/api-key)) to get your API Key


        Add it to the request header:


        ```

        Authorization: Bearer VIDGO_API_KEY

        ```

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.