Image model missing from Sume's /v1/images/models? Read it live
GET /v1/images/models lists models Sume can serve now; sume/auto is never listed, and unknown ids return 404 model_not_found. Read the catalog at runtime.

If a model you expected is missing from GET /v1/images/models, one of three things is true: it is not in Sume's catalog under that id, it is sume/auto (never listed on purpose), or it is not available right now. The Image API page describes the list as the place to discover models, capabilities, and pricing, and says sume/auto is not listed in it. In Sume's catalog code, a row is also withheld when its platform provider is not configured, so the list is a live answer rather than a static one.
Asking for a model that is not served returns 404 model_not_found with details.catalog_url pointing back at /v1/images/models. The same applies to GET /v1/images/models/{model_id}/endpoints. Read the list at runtime and treat it as the source of truth.
What are the ways an id can fail?
Most misses are naming. The page says bare Image Router ids such as gpt-image-2 and nano-banana-2 are accepted as aliases for their org/slug forms, but dated snapshot ids and invented suffixes are not. In a run of Sume's normalizer on 2026-10-03, gpt-image-2.5-flare returned 404 model_not_found; the ids that work are openai/gpt-image-2.5 (Flare) and openai/gpt-image-2.5-sunburst.
| Id you send | Outcome |
|---|---|
openai/gpt-image-2.5 | Served; listed in the catalog |
gpt-image-2 or nano-banana-2 | Accepted as an alias of the org/slug id |
sume/auto | Accepted for generation; never listed in GET /v1/images/models |
gpt-image-2.5-flare | 404 model_not_found |
| A catalog row hidden at runtime | Not in the list; endpoints URL is also a 404 |
Can I sort the list by newest model?
Not usefully. The created field is required by the list schema, but Sume has no per-model creation time, so every row reports the catalog's own ship date (1785801600, 2026-08-04 UTC, in the repository I read). Do not sort on it, and do not use it to detect a new model.
How should a script read the catalog?
Fetch the list once per run, build a dictionary by id, and fail early with a clear message when your chosen model is absent. The same dictionary gives you supported_parameters, so you can check quality, output_format, and aspect_ratio before you submit.
import os
import requests
r = requests.get(
"https://api.sume.com/v1/images/models",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
timeout=30,
)
models = {m["id"]: m for m in r.json()["data"]}
wanted = "openai/gpt-image-2.5"
if wanted not in models:
raise SystemExit(f"{wanted} is not served right now; pick one of {sorted(models)}")
print(sorted(models[wanted]["supported_parameters"]))What about the legacy router routes?
The older POST /v1/image-router/generate and GET /v1/image-router/models routes still work, but the page marks them deprecated in favour of the Images API, and says they will not gain new parameters. Image 1.0 is a compatibility alias for Auto and is retiring soon. A model that appears only on the legacy list is a reason to migrate, not to stay.
When you file a support request about a missing model, include the request_id from the error body, the exact id you sent, and the time. Do not paste API keys or signed URLs.
Sources
Related posts
More in Developers
- Which Sume image models take no output_format? Soul and Ideogram 4.5
Soul and Ideogram 4.5 publish an empty output_format list on Sume: omit the field. Recraft V4 lists webp only; the other 16 rows take png, jpeg and webp.
- Image retry returns 409 idempotency_conflict: new key per payload
A 409 idempotency_conflict on a Sume image job means the same Idempotency-Key was reused with a different payload. Derive the key from the payload in Python.
- Image-to-image strength or denoise: no field on Sume, do this
No strength, denoise or seed field exists on Sume's Image API; it returns 400 unsupported_parameter. How to control how far an edit moves from the reference.
- Sume images 400: read details.supported and retry in Python
A 400 invalid_request from Sume's image API lists the accepted values in details.supported. Parse it in Python, then choose a value on purpose.
Written by Sume