Skip to main content
POST
/
public
/
upload-image
curl -X POST "https://your-store.myshopify.com/apps/proxy_genlook-x/public/upload-image" \
  -F "[email protected]"
{
  "fileId": "file_abc123xyz",
  "fileUrl": "https://s3.amazonaws.com/bucket/file_abc123xyz.jpg",
  "message": "Image uploaded successfully",
  "imageWidth": 1920,
  "imageHeight": 1080,
  "faces": []
}
Upload a customer’s photo to the Genlook system. The uploaded image is processed and stored, returning a file ID that you’ll use when creating generation requests.
Rate limit: 10 uploads per 5 minutes per shop. Exceeding this limit will return HTTP 429.

Request

file
File
required
The image file to upload. Supported formats: JPEG, PNG, HEIC. Maximum file size: 10MB.The file should be sent as multipart/form-data with the field name file.
curl -X POST "https://your-store.myshopify.com/apps/proxy_genlook-x/public/upload-image" \
  -F "[email protected]"

Response

fileId
string
required
Unique identifier for the uploaded file. Use this ID when creating generation requests.
fileUrl
string
required
URL where the uploaded image can be accessed. Useful for preview purposes.
message
string
required
Success message indicating the upload was successful.
imageWidth
number
Width of the uploaded image in pixels. May be 0 if not yet processed.
imageHeight
number
Height of the uploaded image in pixels. May be 0 if not yet processed.
faces
array
Array of detected faces in the image. Each face object contains detection information.
{
  "fileId": "file_abc123xyz",
  "fileUrl": "https://s3.amazonaws.com/bucket/file_abc123xyz.jpg",
  "message": "Image uploaded successfully",
  "imageWidth": 1920,
  "imageHeight": 1080,
  "faces": []
}

Image Processing

Uploaded images undergo automatic processing:
  • HEIC conversion: HEIC images are automatically converted to JPEG
  • HDR to SDR: High dynamic range images are converted to standard dynamic range
  • Auto-crop: Images are automatically cropped to 4:5 aspect ratio, centered on detected person
  • Deduplication: Identical images are deduplicated to save storage
The fileId returned here is required for the next step: creating a generation job. Store this ID in your application state.
If an identical image was previously uploaded, the system returns the existing file ID and marks it as “deduplicated” in the message. This helps reduce storage costs.

Error Responses

{
  "message": "No file provided"
}