Skip to main content
POST
Get a presigned upload URL

Authorizations

Authorization
string
header
required

API key with fl_ prefix, issued from the Fotolabs dashboard

Body

application/json
filename
string
required

Original filename including extension. Determines file type and S3 Content-Type.

Example:

"Z6A_0235.NEF"

projectId
string<uuid>
required

Project this image belongs to. Must be in pending status.

Example:

"ca5f09f7-6838-459c-ac0f-7be03c60de24"

Response

Presigned URL ready. Upload the file within 1 hour.

imageId
string<uuid>
required
Example:

"f3e088d1-33a5-4227-a2f6-c4f75617f847"

uploadUrl
string<uri>
required

Presigned S3 PUT URL. Upload the file here with the matching Content-Type. Valid for 1 hour.

Example:

"https://fotolabs-images-staging.s3.amazonaws.com/..."

originalImageUrl
string<uri>
required

CloudFront URL where the original will be accessible after upload.

Example:

"https://d1i1ga8jkrbik1.cloudfront.net/..."

expiresAt
string<date-time>
required

When the presigned URL expires.

Example:

"2026-05-09T19:00:00.000Z"