{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/imagekit/main/json-schema/imagekit-upload.json", "title": "Upload", "description": "Object containing details of a successful upload.", "type": "object", "properties": { "fileId": { "type": "string", "description": "Unique fileId. Store this fileld in your database, as this will be used to perform update action on this file." }, "name": { "type": "string", "description": "Name of the asset." }, "filePath": { "type": "string", "description": "The relative path of the file in the media library e.g. `/marketing-assets/new-banner.jpg`." }, "url": { "type": "string", "description": "A publicly accessible URL of the file." }, "thumbnailUrl": { "type": "string", "description": "In the case of an image, a small thumbnail URL." }, "height": { "type": "number", "description": "Height of the image in pixels (Only for images)" }, "width": { "type": "number", "description": "Width of the image in pixels (Only for Images)" }, "size": { "type": "number", "description": "Size of the image file in Bytes." }, "bitRate": { "type": "integer", "description": "The bit rate of the video in kbps (only for video)." }, "duration": { "type": "integer", "description": "The duration of the video in seconds (only for video)." }, "audioCodec": { "type": "string", "description": "The audio codec used in the video (only for video)." }, "videoCodec": { "type": "string", "description": "The video codec used in the video (only for video)." }, "tags": { "type": "array", "items": { "type": "string" }, "description": "The array of tags associated with the asset. If no tags are set, it will be `null`. Send `tags` in `responseFields` in API request to get the value of this field." }, "AITags": { "type": "array", "items": { "$ref": "#/components/schemas/AITag" }, "description": "An array of tags assigned to the uploaded file by auto tagging.\n" }, "versionInfo": { "$ref": "#/components/schemas/VersionInfo" }, "isPrivateFile": { "type": "boolean", "description": "Is the file marked as private. It can be either `true` or `false`. Send `isPrivateFile` in `responseFields` in API request to get the value of this field.\n" }, "isPublished": { "type": "boolean", "description": "Is the file published or in draft state. It can be either `true` or `false`. Send `isPublished` in `responseFields` in API request to get the value of this field.\n" }, "customCoordinates": { "type": "string", "description": "Value of custom coordinates associated with the image in the format `x,y,width,height`. If `customCoordinates` are not defined, then it is `null`. Send `customCoordinates` in `responseFields` in API request to get the value of this field.\n" }, "fileType": { "type": "string", "description": "Type of the uploaded file. Possible values are `image`, `non-image`.\n" }, "customMetadata": { "description": "A key-value data associated with the asset. Use `responseField` in API request to get `customMetadata` in the upload API response. Before setting any custom metadata on an asset, you have to create the field using custom metadata fields API. Send `customMetadata` in `responseFields` in API request to get the value of this field.\n", "$ref": "#/components/schemas/CustomMetadata" }, "selectedFieldsSchema": { "$ref": "#/components/schemas/SelectedFieldsSchema" }, "extensionStatus": { "type": "object", "description": "Extension names with their processing status at the time of completion of the request. It could have one of the following status values:\n\n`success`: The extension has been successfully applied.\n`failed`: The extension has failed and will not be retried.\n`pending`: The extension will finish processing in some time. On completion, the final status (success / failed) will be sent to the `webhookUrl` provided.\n\nIf no extension was requested, then this parameter is not returned.\n", "properties": { "google-auto-tagging": { "type": "string", "enum": [ "success", "pending", "failed" ] }, "aws-auto-tagging": { "type": "string", "enum": [ "success", "pending", "failed" ] }, "remove-bg": { "type": "string", "enum": [ "success", "pending", "failed" ] }, "ai-auto-description": { "type": "string", "enum": [ "success", "pending", "failed" ] }, "ai-tasks": { "type": "string", "enum": [ "success", "pending", "failed" ] } } }, "metadata": { "type": "object", "$ref": "#/components/schemas/Metadata", "description": "Legacy metadata. Send `metadata` in `responseFields` in API request to get metadata in the upload API response.\n" }, "embeddedMetadata": { "description": "Consolidated embedded metadata associated with the file. It includes exif, iptc, and xmp data. Send `embeddedMetadata` in `responseFields` in API request to get embeddedMetadata in the upload API response.", "$ref": "#/components/schemas/EmbeddedMetadata" }, "description": { "type": "string", "description": "Optional text to describe the contents of the file. Can be set by the user or the ai-auto-description extension.\n" } } }