OpenRouter /images/models supported_parameters vs Sume
How to read supported_parameters enum and range descriptors before sending an image request, and what Sume does with a parameter a model does not list.

supported_parameters is a map from request field name to a typed descriptor: enum lists the allowed string values, range gives an integer min and max, and boolean marks a field as supported. Sume's GET /v1/images/models uses the same three descriptor types, and a request that sets a parameter the model does not list fails with 400 unsupported_parameter.
OpenRouter's side is from its image generation guide and Sume's from Image generation, both read 2026-10-01.
What do the descriptors mean?
OpenRouter's guide describes enum as a discrete allowlist of accepted string values and range as any integer in [min, max]. Sume's docs say the same: enum is a discrete allowlist, range is any integer within min/max bounds.
| Descriptor | Shape | Meaning |
|---|---|---|
enum | { "type": "enum", "values": [...] } | Discrete allowlist of string values |
range | { "type": "range", "min": 1, "max": 4 } | Any integer within min/max |
boolean | { "type": "boolean" } | Supported when present, unsupported when absent (Sume docs) |
Where do I read them on Sume?
List models with GET /v1/images/models, then read one model's definitive set with GET /v1/images/models/{model_id}/endpoints. The docs' example for bytedance-seed/seedream-4.5 shows an aspect_ratio enum, an n range of 1 to 4, and an output_format enum of png, jpeg and webp.
curl "https://api.sume.com/v1/images/models/bytedance-seed/seedream-4.5/endpoints" \
-H "Authorization: Bearer $SUME_API_KEY"Why is there only one endpoint on Sume?
Sume serves every catalog model through a single sume endpoint in v1, so the model-level and endpoint-level supported_parameters are identical. OpenRouter's guide says a model can have several providers, and that the endpoint set is the definitive subset of the model-level union.
What happens if I send an unlisted parameter?
Sume rejects it with 400 unsupported_parameter rather than silently dropping it. That makes the descriptor map a safe pre-flight: validate your request body against it, and a field that is absent is a field you cannot use. For the same pattern on video, see OpenRouter video provider options on Sume.
Sources
Related posts
More in Developers
- OpenRouter video webhooks vs Sume callback_url, signing, retries
OpenRouter's video guide points to a webhooks cookbook. On Sume, pass an HTTPS callback_url, verify x-sume-webhook-signature, retry with Idempotency-Key.
- Punch-in zoom on video by API: crop or zoompan, no keyframes
Sume has no auto zoom switch. Use a crop op for a fixed punch-in or the allowlisted zoompan filter in a video-filter graph; there are no keyframes.
- remove.bg API rate limit: 500 per minute, weighted by megapixels
remove.bg allows 500 images per minute at about 1 MP, less for larger inputs. Sume limits requests per minute per key and sends retry-after on 429.
- remove.bg bg_color replacement: Sume RMBG gives a transparent PNG
remove.bg's API has bg_color and bg_image_url. Sume RMBG 1.0 takes only an image_url and returns a PNG with alpha, so the new background is a second step.
Written by Sume