Developer changelog


Week 48

AVIF decoding and detecting

{image processing}

Our image processing pipeline now supports AVIF images as a source.

Uploadcare Widget v3.15.0 — AVIF

{widget} {integration}

Now AVIF images can be uploaded when imagesOnly option is enabled.

Separate totals in list of files response


Separate totals for different types of files (removed/stored/unstored) is added to the REST API v0.6 GET /files/ response.

Week 47

We have adopted the new Standard Contractual Clauses ensuring Uploadcare uses appropriate data protection safeguards when transferring data from the EU to third countries.

For this change to take effect, we have updated the following documents:

Terms of Service:

  • Article 20 ("Data Protection") now incorporates new DPA and SCCs.
  • Minor updates.

Data Protection Addendum:

  • Updated to be incorporated into ToS.
  • Minor updates.

Standard Contractual Clauses:

Privacy Policy:

  • Added: "Personal data uploaded by you" (for clarity).
  • Minor updates to: "Data we collect on sites automatically", "Data processing purposes", "Data sharing", "International data transfers", "Data security".
  • Removed: "Cookies and tracking" (now has a separate policy), "Privacy Shield principles" (in favour of SCCs), "GDPR" (as a separate article).

Cookie Policy:

  • Updated and separated from Privacy Policy.

These updates take effect on November 26, 2021.

Week 46

HEIC decoding and detecting

{image processing}

Our image processing pipeline now supports HEIC images as a source.

Uploadcare Widget v3.14.0 — HEIC

{widget} {integration}

Now HEIC images can be uploaded when imagesOnly option is enabled.

Upload Client v2.0.0

{BREAKING} {js} {integration}


  • Remove default export because webpack can't handle it without bugs.
  • Replace cancel key with signal in all cancelable methods.
  • Property response of UploadClientError now contains the whole response object ({ error: {...}}).


  • Added CJS and ESM support.
  • CancelController replaced with the native AbortController.
  • MimeType added to the UploadcareFile type.
  • Exported high-level upload methods.
  • Added support to handle server error codes.
  • Added option userAgent to pass custom user agent string or function.

Next.js loader

{nextjs} {integration}

Optimize images with Uploadcare on the fly by using the UploadcareImage component or the uploadcareLoader custom image loader for Next.js.

Pricing free plan improvements


We improved limits and enabled more features on our free plan:

  • File size limit has increased from 100 MB to 500 MB.
  • Traffic limit has increased from 3 GB to 30 GB.
  • GIF to video conversion is enabled.
  • Zapier, Integromat, and custom webhooks are enabled.

Week 45

Secure Webhooks


Each webhook payload now can be signed with a secret to ensure that the request comes from the expected sender. The resulting signature is included in the request header, so you can use it to validate that the request comes from Uploadcare.

Widget configurator in Dashboard


Now you can customize and configure File Uploading widget in Dashboard. Go to the Integrate section and hit File Uploader.

Week 44

pyuploadcare v3.0.0

{BREAKING} {python} {integration}

Version 3.0 contains breaking changes.

What's added:

  • Multipart uploads.
  • Document and video conversions.
  • Authenticated URL generator.
  • Image transformation path builder.
  • Webhook operations.
  • Getting project information.
  • Low-level API.
  • Uploadcare client.

What's changed:

  • Dropped support for Python 3.5.
  • Dropped support for Python 2.*.
  • Allowed uploading from URL in File.upload method.
  • Resource attributes can be accessed now as properties, not methods.
  • Uploadcare client should be initialized to access API.
  • Moved from Travis to Github Actions.

Week 43

Simplified pricing


  • Extended free plan.
  • Straightforward and transparent Pay As You Grow plan.

Swift integration v0.4.0

{swift} {integration}

  • External sources in uploading widget.
  • New uploading method that decides which upload method to use: direct or multipart.
  • Mime type detection for more file types.
  • Fixed bug when multipart uploading method ignored store parameter.

Week 42

Uploadcare Widget v3.12.0

{widget} {integration}

  • Added ability to enable camera photos only and disable audio recording.
  • Allow to pass settings object to the live initialization methods.
  • Show uploading errors to the end-user.

Week 41

Ruby integration v3.1.1

{ruby} {integration}

  • Fix Uploadcare::File#delete
  • Fix Uploadcare::File#store

Ruby on Rails integration v2.0.0 — rewrote gem from scratch

{BREAKING} {rails} {integration}

Major release. Covers 100% of Uploadcare APIs. Based on Ruby gem v3. Has an example app.

2.x is not backward compatible with 1.x.


  • Add Uploadcare API interface:
    • Uploadcare::FileApi
    • Uploadcare::UploadApi
    • Uploadcare::GroupApi
    • Uploadcare::ConversionApi
    • Uploadcare::ProjectApi
    • Uploadcare::WebhookApi
  • Add uploadcare_widget_tag helper for views
  • Add methods File#store, File#delete, File#load
  • Add methods Group#transform_file_urls, Group#store, Group#load


  • Change File Uploader widget view helpers
  • Rename has_uploadcare_file -> mount_uploadcare_file
  • Rename has_uploadcare_group -> mount_uploadcare_file_group
  • Change generated config path from config/uploadcare.yml to config/initializers/uploadcare.rb and add more options
  • Rename the class Uploadcare::Rails::Settings to Uploadcare::Rails::Configuration
  • Rename the class Uploadcare::Rails::Operations to Uploadcare::Rails::Transformations::ImageTransformations.
  • Configuration object is available as Uploadcare::Rails.configuration now.
  • Change methods File#url -> File#transform_url
  • Change methods Group#urls -> Group#file_urls
  • Change methods Group#load_data -> Group#load


  • Remove uploadcare_uploader_tag helper
  • Remove uploadcare_multiple_uploader_field helper
  • Remove uploadcare_single_uploader_field helper
  • Remove uploadcare_uploader_options (now options are included in uploadcare_widget_tag)
  • Remove FormBuilder support
  • Remove Formtastic support
  • Remove SimpleForm support
  • Remove caching files and groups on delete
  • Remove callback ruby after_save after_save "store_#{ attribute }".to_sym. Now managed by the do_not_store option in config/initializers/uploadcare.rb
  • Remove methods File#prepared_operations, File#to_builder, File#to_json, File#as_json, File#marshal_dump, File#image
  • Remove methods Group#cache_data, Group#to_json, Group#as_json, Group#map_files, Group#load_data, Group#marshal_dump

Week 40

Project teams


Now you can add collaborators to your projects. These users have full access to files and settings of this project. Collaborators have no access to the billing settings of the owner’s account, and only owner can delete the project.

Week 37

Video info


Once a video file is uploaded, we extract its metadata (duration, format, bitrate, and specific audio & video stream metadata: codec, bitrate, frame rate and dimensions). It becomes available under the video_info key of the file information object. The file information can be retrieved by making a request to the REST API v0. 6+.

Ruby integration v3.1.0

{ruby} {integration}

  • Added documents and videos conversion.
  • Added new attributes to the Entity class (variations, video_info, source, rekognition_info).
  • Added an opportunity to add custom logic to large files uploading process.

Week 36

Uploadcare Widget v3.11.5

{widget} {integration}

  • Disable native scaling for iPadOS.
  • Disable native shrink for iOS.

Week 34

New Dashboard URL


Our Dashboard is now on separate domain — It's done to strengthen security.

Week 30

React Widget v1.3.8

{react} {integration}

Bug fixes:

  • pass previewUrlCallback function to the global scope.
  • reassign callbacks on widget reinitialization.

Week 28

Uploadcare Widget v3.11.3

{widget} {integration}

Upgrade jQuery to v3.6.0 due to security issue.

Week 26

Upload Client v1.1.5

{js} {integration}

Pass missing props from uploadFile down to the upload methods.

Angular wrapper v3.0.0

{BREAKING} {angular} {integration}

BREAKING CHANGES: Update to Angular 12.

Week 25

New Upload and REST API references

{API} {documentation}

Now our APIs are compatible with OpenAPI specification:

PHP integration v3.1.1

{php} {integration}

Now you can generate Secure CDN URLs for images with transformations.

Usage section in Dashboard


Now you can find your project usage stats (uploads, traffic, storage, conversions) in project Usage section.

Uploadcare Widget v3.11.2

{widget} {integration}

Bug fixes:

  • Typo at touch-action CSS property.
  • Disable browser touch actions for the container.

Week 23

Upload Client v1.1.4

{js} {integration}

checkForUrlDuplicates & saveUrlForRecurrentUploads parameters passed into common uploadFile method.

Week 21

Now SVG files are identified as images

{image processing}

From now on, we analyze the actual file content, not the MIME type. That means that users can now upload SVG files via File Uploader with the imagesOnly option turned on. It also means that accounts without payment details can upload & deliver SVG files. CDN operations work with SVG files, but won’t affect these content yet. We’ll be adding basic resize and crop operations support for SVG images later.

Week 20

PHP integration v3.1.0

{php} {integration}

  • Dropped support for old PHP versions. You must update PHP to 7.1 or a newer version to use this version.
  • Added PHP 8 support.
  • Modified classes for strict types usage.
  • Modified terms for naming agreement.
  • Updated tests.
  • Added option to convert PDF files without a page parameter.

Week 18

File page in Dashboard


We've created file page where you can see extended information about chosen file, and what can be done with it.

Week 16

Java integration v.3.4.0

{java} {integration}


  • datetimeOriginal in ImageInfo.
  • Face detection to CdnPathBuilder.
  • New options for format and quality operations.

Week 15

Ruby integration v3.0.5 — rewrote gem from scratch

{BREAKING} {ruby} {integration}

  • Client wrappers for REST API
  • Serializers for REST API
  • Client wrappers for Upload API
  • Serializers for Upload API
  • rdoc documentation
  • Upload/group functionality
  • User API
  • User agent
  • Isolated clients, entities and concerns
  • Expanded File and Group entities
  • Better pagination and iterators for GroupList & FileList
  • Better pagination methods for GroupList & FileList

Note that uploadcare-ruby 3.x is not backward compatible with 2.x.

Week 13

-/overlay/self operation

{image processing}

You can add a stylized background from the same image. It visually extends the image appearance vertically or horizontally.

Effects tab v1.5.0



  • Generate an english-only bundle that imports the correct uploadcare.lang.en.js bundle.
  • Generate a minified english-only bundle that imports the correct uploadcare.lang.en.min.js bundle.


  • Call previewUrlCallback before rendering crop effect.
  • Update the existing minified bundle so that it imports the correct uploadcare.min.js bundle.

React Widget v1.3.7

{react} {integration}

Add minified ESM builds.

Week 11

Search engine file indexing for new projects is off by default


To increase the privacy of your and your users’ data, we have changed the default behavior for every Uploadcare project, created after March, 10th. We’re adding response headers that instruct search engines not to index file contents. You can toggle this behavior separately for each project in your Dashboard.

Upload Client v1.1.3

{js} {integration}

  • react-native: prevent app crashes while multipart uploading.
  • react-native: support direct uploads through FormData.

Week 10

Uploadcare Widget v3.11.0

{widget} {integration}

  • Add support for shrink resolution higher than 5 megapixels.
  • Fix UI elements height calculation in Safari.
  • Don't build files to dist cause it's breaks API.

Week 9

On-the-fly image processing updates

{image processing}

  • Now we choose JPEG format for images with totally opaque alpha channel if -/format/auto/ is used and WebP is not available.
  • When the original image is a low-quality JPEG and we need to re-encode it to another format (WebP for instance), we limit the output image’s quality by the original image quality approximation.
  • When the original image is a low-quality JPEG and we need to encode it as JPEG, we reduce the output image’s quality more accurate than before.
  • Face detection for small sized faces is improved.

Perceptual hash for images

{image processing}

File info response includes a value of a perceptual hash calculated using pixel contents of an image. Perceptual hashing is a common fingerprinting technique to quickly compare images and find duplicates or similar images.

Week 4

PHP integration v3.0.3

{php} {integration}

Fixed file copy methods between default Uploadcare storage and remote storage (Amazon s3).

Week 3

Java integration v3.3.1

{java} {integration}

  • Update apache httpclient and httpmime dependencies to v4.5.13, fixes network related issues.
  • Fix signature for requests with query parameters was incorrect. (full url was used when making signature with query paramenters, base should not be there according to documentation and other libraries).
  • Fix possible issue with using default timeout values from machine that running UploadCareClient. Set our custom timeouts for connections, socket timeouts.

React Widget v1.3.4

{react} {integration}

custom-tabs: fix using custom tabs at multiple instances.

Week 2

PHP integration v3.0.2

{php} {integration}

Serialization for originalFileUrl.