Direct uploads

Direct file uploads comply with the [RFC 7578](https://www.rfc-editor.org/rfc/rfc7578) standard. In other words, you can perform a direct upload by making an HTTP POST request with the Content-Type header set to `multipart/form-data`. **Note**: Direct file uploads support files smaller than 100 megabytes only. If you would like to upload larger files, please use [Multipart Uploads](/docs/api/upload/upload/multipart-file-upload-start) instead. File upload example with curl: ``` curl -X POST https://upload.uploadcare.com/base/ \ -F UPLOADCARE_PUB_KEY="demopublickey" \ -F UPLOADCARE_STORE="auto" \ -F "metadata[subsystem]"="uploader" \ -F "metadata[pet]"="cat" \ -F file=@"my file.jpeg" ```

Request

This endpoint expects a multipart form with multiple files.
UPLOADCARE_PUB_KEYstringRequired
Public key identifying an Uploadcare project your uploads will go to.
UPLOADCARE_STOREenumOptionalDefaults to auto
Determines if an uploaded file should be marked as temporary or permanent. The parameter can have the following values: - `0` - do not mark an uploaded file as stored and remove it after 24 hours - `1` - mark the uploaded file as stored - `auto` - delegate the choice of the file-storing behavior to a project-wide setting called [auto-store](https://app.uploadcare.com/projects/-/settings/#storage). The default value depends on the user registration date. For all users registered after February 12, 2024 (UTC 13:30), the default value is `auto`. File-storing behavior depends entirely on what is set in the [storage settings](https://app.uploadcare.com/projects/-/settings/#storage) in the Dashboard. For users registered before February 12, 2024, the default value is `0`. To ensure that file storage in the project matches the settings in the Dashboard, change the value to `auto`.
Allowed values:
{filename}filesRequired
File's content
metadata[{key}]stringOptional1-512 characters
Arbitrary metadata associated with the file. See [docs](https://uploadcare.com/docs/file-metadata/) and [REST API v0.7](/docs/api/rest/file-metadata/) for more information.
signaturestringOptional
`signature` must be sent along with your upload request if you would like to use signed uploads. The signature should be generated on your backend. **Note**: the process requires knowledge of your Uploadcare Project's Secret key. See [signed uploads](https://uploadcare.com/docs/security/secure-uploads/) for details.
expireintegerOptional
`expire` must be sent along with your upload request if you would like to use signed uploads. The parameter defines the time during which your signature is valid. It's a UNIX timestamp. See [signed uploads](https://uploadcare.com/docs/security/secure-uploads/) for details.

Response

The file was uploaded successfully.
filenamestringformat: "uuid"