> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://uploadcare.com/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://uploadcare.com/docs/_mcp/server.

# Upload control with signed uploads

> Control who can upload files to your Uploadcare project with short-lived tokens generated on your backend.

Signed uploads enable flexible access control for project uploads. You can configure granular access by specifying scope and operation limits.
Signed uploads work with [File Uploader](/docs/file-uploader/), [jQuery File Uploader](/docs/uploads/file-uploader/) (deprecated), and [Upload API](https://uploadcare.com/docs/api/upload/).

## Enable signed uploads \[#enable]

1. Go to your [Dashboard](https://app.uploadcare.com/) and select an existing project or create a new one.
2. Click **Enable** next to **Signed Uploads** in the [uploading settings](https://app.uploadcare.com/projects/-/settings/#uploading).

Once enabled, uploads without a valid credential are rejected. Make sure your backend issues credentials to your clients before you turn the setting on.

## Credentials \[#credentials]

There are two kinds of credentials. Both are generated on your backend:

* **Token**: Time-limited JWT (up to 24 hrs) that can restrict upload methods and total operation count. Use for all new integrations and granular access control.
* **Signature**, (deprecated), pair of request parameters with no method or count restrictions before expiration.

> **Note**
>
> **Note:** For control over your upload spend and security, use tokens for new integrations.

All integration details are described in the [Upload API authentication](/docs/api/upload/authentication/) reference.

## File Uploader integration

For [File Uploader](/docs/file-uploader/), set the [secure signature](/docs/file-uploader/options/#secure-signature) and [secure expire](/docs/file-uploader/options/#secure-expire) options directly, or use [`secureUploadsSignatureResolver`](/docs/file-uploader/options/#secure-uploads-signature-resolver) to fetch a fresh signature automatically as it nears expiration.

> **Note**
>
> **Note:** jQuery File Uploader was deprecated on September 1, 2025. The signed uploads integration still works, but we recommend migrating to [File Uploader](/docs/file-uploader/).