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
- 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 asset upload max size: 32 MB, and what Sume does instead
HeyGen's POST /v3/assets caps files at 32 MB, URLs included. Sume has no asset step: requests take public HTTPS URLs, and oversized bodies return 413.
- HeyGen audio file size limit (MP3/WAV 32 MB) vs Sume 10 MB
HeyGen audio_asset_id takes MP3 or WAV up to 32 MB. Sume's Fabric audio_url must be on the Sume media host and at most 10 MB. What each rule means.
- HeyGen audio to video max length: 10 or 30 min vs Sume 300 s
HeyGen's pages say 30 minutes per audio-to-video request and 10 minutes for avatar audio input. Sume's Fabric route caps duration_seconds at 300.
Written by Sume