> ## Documentation Index
> Fetch the complete documentation index at: https://developers.redo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MarketingImageUpload

> A private, one-time place to PUT an image file, so its bytes never pass through the API request.

**Required scopes:** [`marketing_templates_write`](/docs/api-reference/v3/reference/scopes#scope-marketing_templates_write)

<ResponseField name="expiresAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
  When `url` stops accepting the file.
</ResponseField>

<ResponseField name="uploadId" type="String!" required>
  Pass as `source.uploadId` to `uploadMarketingImage` once the file is uploaded.
</ResponseField>

<ResponseField name="url" type="String!" required>
  Where to PUT the file's raw bytes, e.g. `curl --fail -X PUT --upload-file ./image.png "<url>"`. No other headers are needed; curl sends the Content-Length the URL was signed for.
</ResponseField>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.