Skip to main content
POST
Request a pre-signed upload URL
OAuth scope: media_writeAPI keys have full access to this endpoint.
When you PUT the bytes to uploadUrl, you must send two headers that are baked into the URL’s signature — omit or mismatch either and Google Cloud Storage rejects the upload with 403 SignatureDoesNotMatch:
  • Content-Type — must equal the contentType you sent in this request.
  • x-goog-content-length-range: 0,<size> — must use the same size (in bytes) you sent in this request.
The PUT goes directly to Google Cloud Storage, not Fourthwall — don’t send your Fourthwall credentials with it, and note the URL is short-lived (~6 hours). See Create design products for an end-to-end walkthrough.

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Body

application/json
fileName
string
required

Name of the file

Example:

"artwork.png"

contentType
string
required

MIME type of the file

Example:

"image/png"

size
integer<int64>
required

Size of the file in bytes. Must match the x-goog-content-length-range header sent when uploading the bytes to uploadUrl.

Example:

1048576

Response

Created

uploadUrl
string
required
fileUrl
string
required
expiresAt
string<date-time>