Skip to content

Create Image Optimization

POST
/api/v1/workspaces/{workspace_id}/image_optimizations
curl --request POST \
--url https://example.com/%7B%7Bapp_url%7D/api/v1/workspaces/1/image_optimizations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form file=@file

Uploads an image and returns presigned URLs for the original and an optimized version.

workspace_id
required
integer

Workspace ID

Media typemultipart/form-data
object
file
required
string format: binary

Successful

Media typeapplication/json
object
original
required
object
key
required
string
presigned_url
required
string
file_size
required
integer
width
required
integer
height
required
integer
format
required
string
optimized
required
object
key
required
string
presigned_url
required
string
file_size
required
integer
width
required
integer
height
required
integer
format
required
string
Example
{
"original": {
"key": "temp/0e6f1b60-7f1a-4c60-9e4a-5a6b7c8d9e10/original",
"presigned_url": "https://example.com/temp/original-abc123.png",
"file_size": 248192,
"width": 1600,
"height": 1200,
"format": "image/png"
},
"optimized": {
"key": "temp/0e6f1b60-7f1a-4c60-9e4a-5a6b7c8d9e10/optimized",
"presigned_url": "https://example.com/temp/optimized-abc123.webp",
"file_size": 48192,
"width": 1600,
"height": 1200,
"format": "image/webp"
}
}

Unauthorized

Media typeapplication/json
object
message
required
string
Example
{
"message": "Record not found"
}

Forbidden

Media typeapplication/json
object
message
required
string
Example
{
"message": "Record not found"
}

Unprocessable Entity

Media typeapplication/json
object
message
required
string
errors
required
object
key
additional properties
Array<string>
Example
{
"errors": {
"username": [
"Username is required.",
"Username must be unique."
],
"email": [
"Invalid email format."
]
}
}