Grok Imagine base64 response_format vs a Sume hosted URL
xAI lets you request base64 instead of a temporary URL. Sume returns Sume-hosted, signed URLs in data[].url, not inline base64, for x-ai/grok-image.

With xAI directly you choose the output with response_format: the default is url (temporary hosted URLs) and requesting base64 embeds the image so you do not download it. On Sume there is no such switch in the image docs; results come back as Sume-hosted URLs in data[].url.
Sources: xAI's image generation page and Sume's image docs, read 2026-10-01.
What does xAI offer?
The xAI page describes url as the default, returning temporary hosted URLs, and base64 as the way to embed images directly without downloading them. Pick base64 when you want bytes in the response and URL when you would rather fetch later.
What does a Sume call return instead?
The Sume docs say images "return as Sume-hosted URLs with usage data", and the specifics table puts it this way: data[].url (Sume-hosted, signed) rather than inline base64. Sume already mirrors generated media, and URLs keep responses small.
| Question | xAI direct | Sume `x-ai/grok-image` |
|---|---|---|
| Default result | url, temporary | data[].url, Sume-hosted and signed |
| Inline base64 | response_format set to base64 | Not offered; URLs instead |
| Usage data | Response metadata | usage object beside data |
How do I get bytes from the URL?
Fetch data[].url and store the file in your own storage if you need a permanent copy of the bytes. Do not paste signed URLs into logs or chat. Calls that outlast the 30-second blocking wait return a job envelope with 202, and you read the images from the job result.
Will response_format be rejected?
Treat it as unsupported. Sume's rule is that a parameter the selected model does not list is rejected with 400 unsupported_parameter. Check GET /v1/images/models for what x-ai/grok-image lists, and see the Grok image overview for the rest of the contract.
Sources
Related posts
More in Developers
- Grok Imagine video extension duration counts only the extension
In xAI video extension, duration is the added seconds only: a 10s input plus duration 5 returns 15s. Sume has no extend on Omni; chain clips from a last frame.
- Grok Imagine video input: base64 or file_id vs Sume HTTPS URLs
xAI's extension page accepts a source video as a public URL, base64 data URI or file_id. Sume's video fields take public HTTPS media URLs only.
- HeyGen 429 Retry-After vs Sume rate_limited and queue_full
HeyGen sends 429 with a Retry-After header in seconds. Sume sends 429 rate_limited with retry-after when present, and a separate 429 queue_full.
- HeyGen videos:write and videos:read vs Sume scopes mcp:read/write
HeyGen needs videos:write to create and videos:read to poll. Hosted Sume OAuth has mcp:read and mcp:write, no paid scope; spend is wallet admission.
Written by Sume