Server side file upload

You can upload files to media library from your server-side using private API key authentication.


Request structure (multipart/form-data)



file required

This field accepts three kinds of values: - binary - You can send the content of the file as binary. This is used when a file is being uploaded from the browser. - base64 - Base64 encoded string of file content. - url - URL of the file from where to download the content before uploading. Downloading file from URL might take longer, so it is recommended that you pass the binary or base64 content of the file. Pass the full URL, for example -

fileName required

The name with which the file has to be uploaded.

useUniqueFileName optional

Whether to use a unique filename for this file or not. - Accepts true or false. - If set true, will add a unique suffix to the filename parameter to get a unique filename. - If set false, then the image is uploaded with the provided filename parameter and any existing file with the same name is replaced. Default value - true

tags optional

Set the tags while uploading the file. - Comma-separated value of tags in format tag1,tag2,tag3. For example - t-shirt,round-neck,men - The maximum length of all characters should not exceed 500. - % is not allowed. - If this field is not specified and the file is overwritten then the tags will be removed.

folder optional

The folder path (e.g. /images/folder/) in which the image has to be uploaded. If the folder(s) didn't exist before, a new folder(s) is created. The folder name can contain: - Alphanumeric Characters: a-z , A-Z , 0-9 - Special Characters: /``_ and - - Using multiple / creates a nested folder. Default value - /

isPrivateFile optional

Whether to mark the file as private or not. This is only relevant for image type files. - Accepts true or false. - If set true, the file is marked as private which restricts access to the original image URL and unnamed image transformations without signed URLs. Without the signed URL, only named transformations work on private images Default value - false

customCoordinates optional

Define an important area in the image. This is only relevant for image type files.

  • To be passed as a string with the x and y coordinates of the top-left corner, and width and height of the area of interest in format x,y,width,height. For example - 10,10,100,100

  • Can be used with fo-customtransformation.

  • If this field is not specified and the file is overwritten, then customCoordinates will be removed.

responseFields optional

Comma-separated values of the fields that you want to return in response. For example, set the value of this field to tags,customCoordinates,isPrivateFile,metadata to get value of tags, customCoordinates, isPrivateFile , and metadata in the response.

Response code and structure (JSON)

In case of error, you will get an error code along with the error message. On successful upload, you will receive a 200 status code with uploaded file details in a JSON-encoded response body.

"fileId" : "598821f949c0a938d57563bd",
"name": "file1.jpg",
"url": "",
"thumbnail": "",
"height" : 300,
"width" : 200",
"size" : 83622,
"filePath": "/images/products/file1.jpg",
"tags": ["t-shirt","round-neck","sale2019"],
"isPrivateFile" : false,
"customCoordinates" : null,
"fileType": "image"

Understanding response

The JSON-encoded response contains details of the uploaded file which can have following properties:




Unique fileId. Store this fileld in your database, as this will be used to perform update action on this file.


The name of the uploaded file.


The URL of the file.


In case of an image, a small thumbnail URL.


Height of the uploaded image file. Only applicable when file type is image.


Width of the uploaded image file. Only applicable when file type is image.


Size of the uploaded file in bytes.


Type of file. It can either be image or non-image.


The path of the file uploaded. It includes any folder that you specified while uploading.


Array of tags associated with the image.


Is the file marked as private. It can be either true or false.


Value of custom coordinates associated with the image in format x,y,width,height.


The metadata of the upload file. Use responseFields property in request to get the metadata returned in response of upload API.


Here are some example requests and responses to understand the API usage.

Uploading file from file system

curl -X POST "" \
-u your_private_api_key: \
-F 'file=@/Users/username/Desktop/Screenshot.png;type=image/png' \
-F 'fileName=test.jpg'

Uploading base64 encoded file with some tags

curl -X POST "" \
-u your_private_api_key: \
-F 'file=iVBORw0KGgoAAAAN' \
-F 'fileName=test.jpg' \
-F 'tags=t-shirt,summer,men'

Uploading file via URL

curl -X POST "" \
-u your_private_api_key: \
-F 'file=' \
-F 'fileName=test.jpg'