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 eu. and us. base URLs vs Sume's single API host
OpenRouter added us. and eu. in-region base URLs on 2026-09-09. Sume documents one host, api.sume.com, and no region-pinned base URL or ZDR toggle.
- 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.
- OpenRouter weight_exceeds_budget: never retry; Sume queue_full
OpenRouter's weight_exceeds_budget 402 will not clear on retry; in_flight_budget_exhausted will. Sume splits the same way: queue_full retries, 402 does not.
- Pipedream 750-second timeout: poll loop or Sume webhook?
Pipedream paid plans allow 750 seconds per run. Submit the Sume video job, then finish in a second workflow triggered by the webhook not a long poll loop.
Written by Sume