The official Ideogram API (v2) is supported as is: replace
https://api.ideogram.ai with https://api.ephone.ai/ideogram and put your API key from this site in the Api-Key header, and code written against the official docs works unchanged. The OpenAI-compatible image endpoints and the unified task API work too.Available models
Every model’s parameters, prices and further examples are on its model detail page (search for Ideogram in the model marketplace).
Official format
Usehttps://api.ephone.ai/ideogram followed by the official path; the body and response match the official API. Send JSON without files and multipart/form-data when uploading images.
Authorization: Bearer <API key> also works.
Sync, async and queries
- Results come back in the response by default, as with the official API. The gateway waits up to 10 minutes; if the images are not ready by then, the response carries only
generation_idwithoutdata; keep querying and the task is not lost. - With
async: trueor awebhook_url, the response returns ageneration_idright away; queryGET https://api.ephone.ai/ideogram/v2/generations/{generation_id}: keep waiting whilestatusispending; oncompletedthe result is indata; onfailedthe reason is infailure_reason. - Replace background and remove object are async only, as with the official API; describe has no async mode and answers right away.
generation_id is this site’s task ID and can only be queried here.
Callbacks
With awebhook_url, the gateway sends one JSON POST to it when the task ends, with the same body as the query endpoint. Unlike the official webhooks:
- The callback comes from this site, without the official
X-Ideogram-Webhook-*headers or signature. - It is sent once without retries, and the URL must be a public http(s) address.
OpenAI SDK
ideogram-4-5/generate, ideogram-4/generate, ideogram-4-transparent/generate and p-image-ideogram/generate work with POST /v1/images/generations; editing, background removal, object removal and background replacement work with POST /v1/images/edits. The gateway returns once the images are ready; with response_format: b64_json, an image that cannot be downloaded or is too large comes back as a url.
Other Ideogram parameters (
magic_prompt, seed, rendering_speed, output_resolution, …) go at the top level of the body, in extra_body with the OpenAI SDK. Models without a prompt (background removal, object removal, background replacement) ignore whatever prompt you send.
Unified task API
Setmodel to the model name and use Ideogram’s parameter names in input; image fields take public URLs or Base64. See Task API.
Price quotes
Add?dry_run=true to an official-format URL and send the same body: the gateway quotes this site’s price without generating or billing. The response matches the official one:
usd_micros is the total for the request (USD × 10⁶). Describe does not support price quotes: ?dry_run=true returns 400 and nothing is run or billed (Ideogram itself would run and bill it).
Billing
- Billed per image actually delivered, at the per-image price on the model detail page;
num_imagesis reserved on submission and settled by the images delivered. - Images that fail the safety checks (
is_image_safe: false, emptyurl) are not billed, nor are requests rejected for invalid parameters or content moderation.
Differences from the official API
- Result URLs are long-lived re-hosted copies when this site re-hosts results; otherwise they are the official temporary links, which expire after 24 hours, so download them promptly.
- Asset references (
image_asset_identifierand similar), collections and custom models stored in an Ideogram account are not supported; upload the images instead. - Background removal and replacement results are always private.
- When every image fails the safety checks, a request answered in place returns 422 (Ideogram returns 200 with empty
urls) and an async task ends asfailed; neither is billed. - Query results do not include
usage_cost_usd_micros.
Errors
Errors return{"error": "reason"}:
Related links
Ideogram API docs
Official endpoints and parameters
Task API
Submitting, querying and callbacks on the unified task API