Ideogram Object Removal API

The object-removal API from Ideogram — 1 operation(s) for object-removal.

GitHub OpenAPI
Business capability
Generative Media AE-110.20

Operations 1

POST /v2/image/remove-object/ideogram-1 Remove an object #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ideogram:ideogram-object-removal-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ideogram-object-removal-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ideogram API v2 Object Removal API
  version: 1.0.0
servers:
- url: https://api.ideogram.ai
  description: https://api.ideogram.ai
tags:
- name: object-removal
paths:
  /v2/image/remove-object/ideogram-1:
    post:
      operationId: objectRemoval_post_remove_object_from_v2_assets
      summary: Remove an object
      description: 'Remove a masked object from an image. Upload the source `image` and a

        `mask` of the same size using `multipart/form-data`. Returns a

        `generation_id`; poll `GET /v2/generations/{generation_id}` for the

        result.'
      tags:
      - object-removal
      parameters:
      - name: dry_run
        in: query
        description: '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.

          '
        required: false
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Object removal request accepted; poll for completion with `GET /v2/generations/{generation_id}`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoveObjectFromV2AssetsResponse'
        '400':
          description: Invalid input provided.
          content:
            application/json:
              schema:
                description: Any type
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                description: Any type
        '402':
          description: Insufficient credits or quota.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerationErrorResponse'
        '403':
          description: Not authorized to remove an object.
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: The source image or mask was not found.
          content:
            application/json:
              schema:
                description: Any type
        '413':
          description: An uploaded source or mask image is too large.
          content:
            application/json:
              schema:
                description: Any type
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerationErrorResponse'
        '503':
          description: The endpoint is temporarily unavailable.
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        description: The source `image` and `mask`, uploaded using `multipart/form-data`.
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                image:
                  type: string
                  format: binary
                  description: The source image to remove an object from. JPEG, PNG, or WEBP, up to 50MB. Multipart requests only.
                mask:
                  type: string
                  format: binary
                  description: A black-and-white mask the same size as the image; white (>= 128) marks the region to remove. JPEG, PNG, or WEBP, up to 50MB. Multipart requests only.
                seed:
                  type: integer
                  minimum: 0
                  maximum: 2147483647
                  description: Random seed. Set for reproducible generation.
              required:
              - image
              - mask
      security:
      - ApiKeyAuth: []
components:
  schemas:
    GenerationErrorResponseTaskCompletionSpeed:
      type: string
      enum:
      - fast
      - slow
      description: 'The queue this request resolved to. Present when `reject_reason`

        is `inflight_limit`.

        '
      title: GenerationErrorResponseTaskCompletionSpeed
    RemoveObjectFromV2AssetsResponse:
      type: object
      properties:
        generation_id:
          type: string
          description: 'URL-safe base64 ID of the accepted generation. Accepted by the

            `GET /v2/generations/{generation_id}` polling endpoint.

            '
      required:
      - generation_id
      description: 'Acknowledgement that the request was accepted. Poll

        `GET /v2/generations/{generation_id}` with the returned `generation_id`

        for the result.

        '
      title: RemoveObjectFromV2AssetsResponse
    GenerationRejectReason:
      type: string
      enum:
      - insufficient_funds
      - subscription_required
      - daily_limit
      - priority_credit_required
      - inflight_limit
      - feature_limit
      description: The account or usage limit that rejected a generation request.
      title: GenerationRejectReason
    GenerationErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: A message describing why the generation request was rejected.
        reject_reason:
          $ref: '#/components/schemas/GenerationRejectReason'
        max_inflight_requests:
          type: integer
          minimum: 1
          description: 'How many generations the account may have in progress at once on

            the queue this request resolved to. Present when `reject_reason`

            is `inflight_limit`.

            '
        task_completion_speed:
          $ref: '#/components/schemas/GenerationErrorResponseTaskCompletionSpeed'
          description: 'The queue this request resolved to. Present when `reject_reason`

            is `inflight_limit`.

            '
      required:
      - error
      - reject_reason
      description: A generation request rejected by an account or usage limit.
      title: GenerationErrorResponse
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Api-Key
      description: API key for access control. Use in the header with the name \"Api-Key\"