Ideogram Object Removal API
The object-removal API from Ideogram — 1 operation(s) for object-removal.
The object-removal API from Ideogram — 1 operation(s) for object-removal.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/ideogram:ideogram-object-removal-api"
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.
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: 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\"