Ideogram v4 API, Ideogram RMBG API: Pricing, Documentation
by Ideogram
Ideogram v4 API, developers can create images containing logos, signs, typography, and text elements that render correctly. The API offers text-to-image and image-to-image generation, plus background removal.

Models Version
Get $5 Free Credit on First Payment
No strings attached — add funds and get $5 bonus instantly
Ideogram v4 API Documentation
https://gateway.pixazo.ai/ideogram-v4/v1/ideogram-v4-request
Authentication
All requests require an API key passed via header.
| Header | Type | Required | Description |
|---|---|---|---|
| Ocp-Apim-Subscription-Key | string | Yes | Your API subscription key |
Ideogram V4 generate request
Request Code
POST https://gateway.pixazo.ai/ideogram-v4/v1/ideogram-v4-request
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_API_KEY
{
"prompt": "A vintage travel poster of Kyoto in autumn, bold hand-painted lettering reading KYOTO across the top",
"num_images": 1,
"image_size": "square_hd",
"output_format": "jpeg",
"rendering_speed": "BALANCED",
"acceleration": "none",
"expansion_model": "Medium",
"enable_safety_checker": true,
"sync_mode": false
}
import requests
url = "https://gateway.pixazo.ai/ideogram-v4/v1/ideogram-v4-request"
headers = {
"Content-Type": "application/json",
"Cache-Control": "no-cache",
"Ocp-Apim-Subscription-Key": "YOUR_API_KEY"
}
data = {
"prompt": "A vintage travel poster of Kyoto in autumn, bold hand-painted lettering reading KYOTO across the top",
"num_images": 1,
"image_size": "square_hd",
"output_format": "jpeg",
"rendering_speed": "BALANCED",
"acceleration": "none",
"expansion_model": "Medium",
"enable_safety_checker": true,
"sync_mode": false
}
response = requests.post(url, json=data, headers=headers)
print(response.json())
const url = "https://gateway.pixazo.ai/ideogram-v4/v1/ideogram-v4-request";
const headers = {
"Content-Type": "application/json",
"Cache-Control": "no-cache",
"Ocp-Apim-Subscription-Key": "YOUR_API_KEY"
};
const data = {
"prompt": "A vintage travel poster of Kyoto in autumn, bold hand-painted lettering reading KYOTO across the top",
"num_images": 1,
"image_size": "square_hd",
"output_format": "jpeg",
"rendering_speed": "BALANCED",
"acceleration": "none",
"expansion_model": "Medium",
"enable_safety_checker": true,
"sync_mode": false
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data));
curl -X POST "https://gateway.pixazo.ai/ideogram-v4/v1/ideogram-v4-request" \
-H "Content-Type: application/json" \
-H "Cache-Control: no-cache" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
--data-raw '{
"prompt": "A vintage travel poster of Kyoto in autumn, bold hand-painted lettering reading KYOTO across the top",
"num_images": 1,
"image_size": "square_hd",
"output_format": "jpeg",
"rendering_speed": "BALANCED",
"acceleration": "none",
"expansion_model": "Medium",
"enable_safety_checker": true,
"sync_mode": false
}'
Output
{
"request_id": "ideogram-v4_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "QUEUED",
"polling_url": "https://gateway.pixazo.ai/v2/requests/status/ideogram-v4_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
Webhook (Optional)
Add the X-Webhook-URL header to your generate request to receive a POST callback instead of polling.
X-Webhook-URL: https://your-server.com/webhook/callback
Request Parameters - Ideogram V4 generate request
| Parameter | Required | Type | Default | Allowed values / range | Description |
|---|---|---|---|---|---|
| prompt | Yes | string | — | — | Text prompt for image generation. Must describe the desired visual content with clarity. |
| num_images | No | integer | 1 | 1, 2, 3, 4 | Number of images to generate. |
| image_size | No | string or object | "square_hd" | "square_hd", "square", "portrait_4_3", "portrait_16_9", "landscape_4_3", "landscape_16_9", or custom {width, height} object | Image dimensions preset or custom resolution. |
| output_format | No | string | "jpeg" | "jpeg", "png" | Output image format. |
| rendering_speed | No | string | "BALANCED" | "TURBO", "BALANCED", "QUALITY" | Quality vs speed trade-off tier. |
| acceleration | No | string | "none" | "none", "low", "regular", "high" | Hardware acceleration level. Higher values may reduce generation time but increase cost. |
| expansion_model | No | string | "Medium" | "None", "Medium", "Large" | Which model expands (rewrites and enriches) your prompt before generation. "None" disables prompt expansion and skips its fee; "Medium" is fast; "Large" uses Ideogram's Magic Prompt for the highest quality. |
| enable_safety_checker | No | boolean | true | — | Turns on automatic filtering of unsafe or explicit (NSFW) content. Leave enabled unless you have a specific reason to disable it. |
| seed | No | integer | — | — | Random seed that controls the generation's randomness. Reuse the same seed with identical settings to reproduce the same result; leave it empty for a different output each time. |
| sync_mode | No | boolean | false | — | If on, the finished file is sent back directly instead of as a download link. Handy for quick tests; for normal use, leave it off to get a download link. |
Example Request
{
"prompt": "A vintage travel poster of Kyoto in autumn, bold hand-painted lettering reading KYOTO across the top",
"num_images": 1,
"image_size": "square_hd",
"output_format": "jpeg",
"rendering_speed": "BALANCED",
"acceleration": "none",
"expansion_model": "Medium",
"enable_safety_checker": true,
"sync_mode": false
}
Response
{
"request_id": "ideogram-v4_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "QUEUED",
"polling_url": "https://gateway.pixazo.ai/v2/requests/status/ideogram-v4_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
Request Headers
| Header | Value |
|---|---|
| Content-Type | application/json |
| Cache-Control | no-cache |
| Ocp-Apim-Subscription-Key | YOUR_API_KEY |
Response Handling
Common status codes.
| Code | Meaning |
|---|---|
| 202 | Accepted — Request queued |
| 400 | Bad Request |
| 401 | Unauthorized |
| 402 | Insufficient Balance |
| 403 | Forbidden |
| 429 | Too Many Requests |
| 500 | Internal Server Error |
Error Responses
Queue system errors and model validation errors.
Queue System Errors
// 402 — Insufficient balance
{
"error": "Insufficient Balance",
"message": "Your wallet does not have enough balance."
}
// 400 — Model not found
{
"error": "Model not found",
"message": "Model 'ideogram-v4' not found or is disabled"
}
Error via Status/Webhook
{
"request_id": "ideogram-v4_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "ERROR",
"model_id": "ideogram-v4",
"error": "Description of the error",
"output": null
}
Retrieving Results
Poll the universal status endpoint to check progress and retrieve results.
Endpoint
GET https://gateway.pixazo.ai/v2/requests/status/{request_id}
Ocp-Apim-Subscription-Key: YOUR_API_KEY
cURL Example
curl -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
"https://gateway.pixazo.ai/v2/requests/status/ideogram-v4_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Response (Completed)
{
"request_id": "ideogram-v4_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "COMPLETED",
"model_id": "ideogram-v4",
"error": null,
"output": {
"media_url": ["https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/ideogram-v4_019dxxxx/output.jpeg"],
"media_type": "image/jpeg"
},
"created_at": "2026-03-31T10:00:00.000Z",
"updated_at": "2026-03-31T10:00:15.000Z",
"completed_at": "2026-03-31T10:00:15.000Z"
}
Response Fields
| Field | Type | Description |
|---|---|---|
| request_id | string | Unique request identifier |
| status | string | QUEUED, PROCESSING, COMPLETED, FAILED, or ERROR |
| model_id | string | Model that processed the request |
| error | string|null | Error message if failed |
| output.media_url | array | URLs to generated media (R2 CDN) |
| output.media_type | string | MIME type of the output |
| created_at | string | When request was created |
| completed_at | string | When request completed |
| polling_url | string | Status URL (initial response only) |
Status Values
| Status | Description |
|---|---|
| QUEUED | Request accepted, waiting to be processed |
| PROCESSING | Being processed by the model |
| COMPLETED | Done — output contains the result |
| FAILED | Failed — check error field |
| ERROR | System error — not charged |
Status Flow
QUEUED → PROCESSING → COMPLETED
→ FAILED
→ ERROR
Typical Workflow
- Send a generate request to the API endpoint
- Save the
request_idfrom the response - Poll every 5-10 seconds:
GET /v2/requests/status/{request_id} - When
statusis"COMPLETED", download fromoutput.media_url
Tip: Use X-Webhook-URL header to get a callback instead of polling.
Ideogram v4 API Pricing
Higher tier = more detail and better prompt adherence at higher cost and latency. Use Turbo for speed, Balanced for everyday work, Quality for final assets.
| Resolution | Price (USD) |
|---|---|
| Per megapixel (Turbo) | $0.0075 |
| Per megapixel (Balanced, default) | $0.015 |
| Per megapixel (Quality) | $0.025 |
Ideogram v4 API Documentation
https://gateway.pixazo.ai/ideogram-v4-image-to-image/v1/ideogram-v4-image-to-image-request
Authentication
All requests require an API key passed via header.
| Header | Type | Required | Description |
|---|---|---|---|
| Ocp-Apim-Subscription-Key | string | Yes | Your API subscription key |
Ideogram V4 Image to Image generate request
Request Code
POST https://gateway.pixazo.ai/ideogram-v4-image-to-image/v1/ideogram-v4-image-to-image-request
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_API_KEY
{
"prompt": "Restyle as a vibrant watercolor illustration with bold ink outlines",
"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/Image.jpeg",
"image_size": "auto",
"strength": 0.8,
"num_images": 1,
"rendering_speed": "BALANCED",
"acceleration": "none",
"output_format": "jpeg",
"expansion_model": "Medium",
"enable_safety_checker": true,
"sync_mode": false
}
import requests
url = "https://gateway.pixazo.ai/ideogram-v4-image-to-image/v1/ideogram-v4-image-to-image-request"
headers = {
"Content-Type": "application/json",
"Cache-Control": "no-cache",
"Ocp-Apim-Subscription-Key": "YOUR_API_KEY"
}
data = {
"prompt": "Restyle as a vibrant watercolor illustration with bold ink outlines",
"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/Image.jpeg",
"image_size": "auto",
"strength": 0.8,
"num_images": 1,
"rendering_speed": "BALANCED",
"acceleration": "none",
"output_format": "jpeg",
"expansion_model": "Medium",
"enable_safety_checker": true,
"sync_mode": false
}
response = requests.post(url, json=data, headers=headers)
print(response.json())
const url = "https://gateway.pixazo.ai/ideogram-v4-image-to-image/v1/ideogram-v4-image-to-image-request";
const headers = {
"Content-Type": "application/json",
"Cache-Control": "no-cache",
"Ocp-Apim-Subscription-Key": "YOUR_API_KEY"
};
const data = {
"prompt": "Restyle as a vibrant watercolor illustration with bold ink outlines",
"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/Image.jpeg",
"image_size": "auto",
"strength": 0.8,
"num_images": 1,
"rendering_speed": "BALANCED",
"acceleration": "none",
"output_format": "jpeg",
"expansion_model": "Medium",
"enable_safety_checker": true,
"sync_mode": false
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data));
curl -X POST "https://gateway.pixazo.ai/ideogram-v4-image-to-image/v1/ideogram-v4-image-to-image-request" \
-H "Content-Type: application/json" \
-H "Cache-Control: no-cache" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
--data-raw '{
"prompt": "Restyle as a vibrant watercolor illustration with bold ink outlines",
"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/Image.jpeg",
"image_size": "auto",
"strength": 0.8,
"num_images": 1,
"rendering_speed": "BALANCED",
"acceleration": "none",
"output_format": "jpeg",
"expansion_model": "Medium",
"enable_safety_checker": true,
"sync_mode": false
}'
Output
{
"request_id": "ideogram-v4-image-to-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "QUEUED",
"polling_url": "https://gateway.pixazo.ai/v2/requests/status/ideogram-v4-image-to-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
Webhook (Optional)
Add the X-Webhook-URL header to your generate request to receive a POST callback instead of polling.
X-Webhook-URL: https://your-server.com/webhook/callback
Request Parameters - Ideogram V4 Image to Image generate request
| Parameter | Required | Type | Default | Allowed values / range | Description |
|---|---|---|---|---|---|
| prompt | Yes | string | — | — | Text prompt describing the desired output. Must be descriptive for best results. |
| image_url | Yes | string | — | — | Upload your input image. JPG, PNG, WebP, GIF, or AVIF. |
| image_size | No | string or object | "auto" | "auto", "square_hd", "square", "portrait_4_3", "portrait_16_9", "landscape_4_3", "landscape_16_9" | Preset aspect ratios: `auto`, `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9`. Alternatively, provide a custom object with `width` and `height` integers. |
| strength | No | float | 0.8 | 0.0–1.0 | How much the result may differ from the input. Higher values allow bigger changes from the source; lower values keep the output closer to the original. |
| num_images | No | integer | 1 | 1–4 | Number of images to generate. Allowed range: 1–4. |
| rendering_speed | No | string | "BALANCED" | "TURBO", "BALANCED", "QUALITY" | Quality vs speed tier. Allowed: `TURBO`, `BALANCED`, `QUALITY`. |
| acceleration | No | string | "none" | "none", "low", "regular", "high" | Hardware acceleration level. Allowed: `none`, `low`, `regular`, `high`. |
| output_format | No | string | "jpeg" | "jpeg", "png" | Output image format. Allowed: `jpeg`, `png`. |
| expansion_model | No | string | "Medium" | "None", "Medium", "Large" | Model used to expand the prompt for richer generation. Allowed: `None`, `Medium`, `Large`. |
| enable_safety_checker | No | boolean | true | — | Turns on automatic filtering of unsafe or explicit (NSFW) content. Leave enabled unless you have a specific reason to disable it. |
| seed | No | integer | — | — | Random seed that controls the generation's randomness. Reuse the same seed with identical settings to reproduce the same result; leave it empty for a different output each time. |
| sync_mode | No | boolean | false | — | If on, the finished file is sent back directly instead of as a download link. Handy for quick tests; for normal use, leave it off to get a download link. |
Content Item Types & Limits
| Type | Max | Format / Size | Description |
|---|---|---|---|
| image | 1 | JPG, PNG, WEBP, GIF, AVIF · < 10 MB | Input image. |
Example Request
{
"prompt": "Restyle as a vibrant watercolor illustration with bold ink outlines",
"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/nano-banana/nano-banana-a382a80b-f8df-4de1-a0c1-a5dcfd42dae4-1758783383399.jpg",
"image_size": "auto",
"strength": 0.8,
"num_images": 1,
"rendering_speed": "BALANCED",
"acceleration": "none",
"output_format": "jpeg",
"expansion_model": "Medium",
"enable_safety_checker": true,
"sync_mode": false
}
Response
{
"request_id": "ideogram-v4-image-to-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "QUEUED",
"polling_url": "https://gateway.pixazo.ai/v2/requests/status/ideogram-v4-image-to-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
Request Headers
| Header | Value |
|---|---|
| Content-Type | application/json |
| Cache-Control | no-cache |
| Ocp-Apim-Subscription-Key | YOUR_API_KEY |
Response Handling
Common status codes.
| Code | Meaning |
|---|---|
| 202 | Accepted — Request queued |
| 400 | Bad Request |
| 401 | Unauthorized |
| 402 | Insufficient Balance |
| 403 | Forbidden |
| 429 | Too Many Requests |
| 500 | Internal Server Error |
Error Responses
Queue system errors and model validation errors.
Queue System Errors
// 402 — Insufficient balance
{
"error": "Insufficient Balance",
"message": "Your wallet does not have enough balance."
}
// 400 — Model not found
{
"error": "Model not found",
"message": "Model 'ideogram-v4-image-to-image' not found or is disabled"
}
Error via Status/Webhook
{
"request_id": "ideogram-v4-image-to-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "ERROR",
"model_id": "ideogram-v4-image-to-image",
"error": "Description of the error",
"output": null
}
Retrieving Results
Poll the universal status endpoint to check progress and retrieve results.
Endpoint
GET https://gateway.pixazo.ai/v2/requests/status/{request_id}
Ocp-Apim-Subscription-Key: YOUR_API_KEY
cURL Example
curl -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
"https://gateway.pixazo.ai/v2/requests/status/ideogram-v4-image-to-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Response (Completed)
{
"request_id": "ideogram-v4-image-to-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "COMPLETED",
"model_id": "ideogram-v4-image-to-image",
"error": null,
"output": {
"media_url": ["https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/ideogram-v4-image-to-image_019dxxxx/output.jpeg"],
"media_type": "image/jpeg"
},
"created_at": "2026-03-31T10:00:00.000Z",
"updated_at": "2026-03-31T10:00:15.000Z",
"completed_at": "2026-03-31T10:00:15.000Z"
}
Response Fields
| Field | Type | Description |
|---|---|---|
| request_id | string | Unique request identifier |
| status | string | QUEUED, PROCESSING, COMPLETED, FAILED, or ERROR |
| model_id | string | Model that processed the request |
| error | string|null | Error message if failed |
| output.media_url | array | URLs to generated media (R2 CDN) |
| output.media_type | string | MIME type of the output |
| created_at | string | When request was created |
| completed_at | string | When request completed |
| polling_url | string | Status URL (initial response only) |
Status Values
| Status | Description |
|---|---|
| QUEUED | Request accepted, waiting to be processed |
| PROCESSING | Being processed by the model |
| COMPLETED | Done — output contains the result |
| FAILED | Failed — check error field |
| ERROR | System error — not charged |
Status Flow
QUEUED → PROCESSING → COMPLETED
→ FAILED
→ ERROR
Typical Workflow
- Send a generate request to the API endpoint
- Save the
request_idfrom the response - Poll every 5-10 seconds:
GET /v2/requests/status/{request_id} - When
statusis"COMPLETED", download fromoutput.media_url
Tip: Use X-Webhook-URL header to get a callback instead of polling.
Ideogram v4 API Pricing
| Resolution | Price (USD) |
|---|---|
| Per megapixel (Turbo) | $0.0075 |
| Per megapixel (Balanced, default) | $0.015 |
| Per megapixel (Quality) | $0.025 |
Ideogram Remove Background API Documentation
https://gateway.pixazo.ai/ideogram-remove-background/v1/ideogram-remove-background-request
Authentication
All requests require an API key passed via header.
| Header | Type | Required | Description |
|---|---|---|---|
| Ocp-Apim-Subscription-Key | string | Yes | Your API subscription key |
Ideogram Remove Background generate request - Ideogram Remove Background
Request Code
POST https://gateway.pixazo.ai/ideogram-remove-background/v1/ideogram-remove-background-request
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY
{
"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/Image.jpeg"
}
import requests
url = "https://gateway.pixazo.ai/ideogram-remove-background/v1/ideogram-remove-background-request"
headers = {
"Content-Type": "application/json",
"Cache-Control": "no-cache",
"Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/Image.jpeg"
}
response = requests.post(url, json=data, headers=headers)
print(response.json())
fetch('https://gateway.pixazo.ai/ideogram-remove-background/v1/ideogram-remove-background-request', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Cache-Control': 'no-cache',
'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
},
body: JSON.stringify({
image_url: 'https://pub-582b7213209642b9b995c96c95a30381.r2.dev/Image.jpeg'
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
curl -X POST "https://gateway.pixazo.ai/ideogram-remove-background/v1/ideogram-remove-background-request" \
-H "Content-Type: application/json" \
-H "Cache-Control: no-cache" \
-H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
--data-raw '{
"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/Image.jpeg"
}'
Output
{
"images": [
{
"file_name": "nano-banana-pro-edit-output.png",
"content_type": "image/png",
"url": "[RESPONSE_URL]"
}
],
"description": ""
}
Request Parameters - Ideogram Remove Background generate request
| Parameter | Required | Type | Default | Allowed values / range | Description |
|---|---|---|---|---|---|
| image_url | Yes | string | — | — | Source image URL. Supported formats: JPEG, PNG, WebP. Max file size 10MB. |
| sync_mode | No | boolean | false | true, false | If on, the finished file is sent back directly instead of as a download link. Handy for quick tests; for normal use, leave it off to get a download link. |
Content Item Types & Limits
| Type | Max | Format / Size | Description |
|---|---|---|---|
| image | 1 | JPEG, PNG, WEBP · < 10 MB | Image to remove the background from. |
Minimum Request
{
"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/upscaler_019ed0c8-bb34-7854-afbc-b2a164758a15b/output.png"
}
Full Request (all options)
{
"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/Image.jpeg",
"sync_mode": false
}
Response
{
"request_id": "ideogram-remove-background_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "QUEUED",
"polling_url": "https://gateway.pixazo.ai/v2/requests/status/ideogram-remove-background_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
Response Fields - Ideogram Remove Background generate request
| Field | Type | Description |
|---|---|---|
| request_id | string | Unique identifier for the job submission. |
| status | string | Current status of the request (QUEUED, PROCESSING, etc.). |
| polling_url | string | URL to use for checking the job status. |
Request Headers
| Header | Value |
|---|---|
| Content-Type | application/json |
| Cache-Control | no-cache |
| Ocp-Apim-Subscription-Key | Your subscription key |
Response Handling
Common status codes for Ideogram Remove Background generate request.
| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 429 | Too Many Requests |
| 500 | Internal Server Error |
Error Responses
400: Bad Request
{
"error": "Invalid image_url",
"message": "The provided image_url is malformed or unreachable."
}
401: Unauthorized
{
"error": "Unauthorized",
"message": "Missing or invalid Ocp-Apim-Subscription-Key header."
}
Status Workflow
Check status of your request using the polling_url returned in the response.
Status Values
| Status | Description |
|---|---|
| QUEUED | Request accepted, waiting to be processed |
| PROCESSING | Being processed by the model |
| COMPLETED | Done — output contains the result |
| FAILED | Failed — check error field |
| ERROR | System error — not charged |
Status Flow
Submitted
↓
QUEUED
↓
PROCESSING
↓
COMPLETED or FAILED or ERROR
Typical Workflow
- Submit request to /ideogram-remove-background-request
- Receive response with request_id and polling_url
- Make GET requests to polling_url every 2–3 seconds
- When status is COMPLETED, extract output from the response
- Handle FAILED or ERROR states as appropriate
Ideogram Remove Background check status - Ideogram Remove Background
Request Code
POST https://gateway.pixazo.ai/v2/requests/status/ideogram-remove-background_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY
import requests
url = "https://gateway.pixazo.ai/v2/requests/status/ideogram-remove-background_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
headers = {
"Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
response = requests.get(url, headers=headers)
print(response.json())
fetch('https://gateway.pixazo.ai/v2/requests/status/ideogram-remove-background_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', {
method: 'GET',
headers: {
'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
curl -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
"https://gateway.pixazo.ai/v2/requests/status/ideogram-remove-background_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Output
{
"images": [
{
"file_name": "nano-banana-pro-edit-output.png",
"content_type": "image/png",
"url": "[RESPONSE_URL]"
}
],
"description": ""
}
Request Parameters - Ideogram Remove Background check status
| Parameter | Required | Type | Default | Allowed values / range | Description |
|---|---|---|---|---|---|
| request_id | Yes | string | — | — | The unique request ID returned from the initial submission endpoint. |
Minimum Request
{
"request_id": "ideogram-remove-background_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
Full Request (all options)
{
"request_id": "ideogram-remove-background_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
Response
{
"request_id": "ideogram-remove-background_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "COMPLETED",
"model_id": "ideogram-remove-background",
"error": null,
"output": {
"media_url": ["https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/ideogram-remove-background_019dxxxx/output.png"],
"media_type": "image/png"
},
"created_at": "2026-03-31T10:00:00.000Z",
"updated_at": "2026-03-31T10:00:15.000Z",
"completed_at": "2026-03-31T10:00:15.000Z"
}
Response Fields - Ideogram Remove Background check status
| Field | Type | Description |
|---|---|---|
| request_id | string | Unique identifier for the request. |
| status | string | Current status of the job (QUEUED, PROCESSING, COMPLETED, FAILED, ERROR). |
| model_id | string | The model used for processing. |
| error | null|string | null if successful, error details if failed. |
| output | object | Contains media_url and media_type for the generated result. |
| output.media_url | array | Array of URLs pointing to the generated media. |
| output.media_type | string | MIME type of the output (e.g., image/png). |
| created_at | string | Timestamp when the request was received. |
| updated_at | string | Timestamp when the request status was last updated. |
| completed_at | string | Timestamp when the request was completed. |
Request Headers
| Header | Value |
|---|---|
| Ocp-Apim-Subscription-Key | Your subscription key |
Response Handling
Common status codes for Ideogram Remove Background check status.
| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad Request - Invalid request_id |
| 401 | Unauthorized |
| 404 | Not Found - Request ID not found |
| 429 | Too Many Requests |
| 500 | Internal Server Error |
Notes & Tips
- Pricing is $0.01 per request.
- Use
sync_mode: trueif you need the output as a data URI directly in the submission response (not recommended for production). - Wait 2–3 seconds between polling requests for optimal performance.
- Implement exponential backoff for retrying failed or system error responses.
- Image must be under 10MB and in JPEG, PNG, or WebP format.
- The output is always a transparent PNG, suitable for compositing.
- Responses from the polling endpoint are not cached — each poll counts toward your usage limits.
- Use the polling URL returned in the initial response — do not construct it manually.
Ideogram Remove Background API Pricing
⚡ Performance
Live usage measured on Pixazo's gateway, split by model version. Generation time is how long a generation takes end-to-end (lower is better). Success rate is the percent of generations that complete (higher is better).
〰 Uptime
Percent of generations that succeeded over the selected period, per model version.