Earth Engine JavaScript client library release notes

  • This page lists release notes for the Earth Engine JavaScript client library, detailing new features, bug fixes, and performance improvements.

  • Recent updates include adding the Google Drive OAuth scope, fixing data listing bugs, and migrating the authorization workflow to Google Identity Services.

  • Notable changes include new methods for exporting and loading classifiers, deprecating getMap() in favor of getMapId(), and improvements to error handling for operations and task status.

  • The client libraries have been upgraded to use the v1 Earth Engine API, requiring minor code adjustments for some methods.

  • Various enhancements have been made to exports, error reporting, authentication, and support for different data types and parameters.

Latest Release

Subscribe to these release notes. Subscribe

This page is updated with each notable change to Earth Engine JavaScript client library. Specifically, it lists releases by date and includes any new features, bug fixes, and significant performance improvements. You can also browse and filter release notes for all Google Cloud products in the Google Cloud console.

April 22, 2025

1.5.12
Change

Added the Google Drive main OAuth scope, https://www.googleapis.com/auth/drive, to the default list of scopes to use for authorization. The Google Drive scope is currently not required, but in the future it will have to be requested explicitly for Earth Engine requests that interact with Google Drive.

April 03, 2024

0.1.397
Fixed

Fixed a bug in ee.data.listAssets() and ee.data.listImages() that caused only a single page of results (up to 1000 entries) to be returned. This now matches the Python implementation, which returns all results by default. To return a single page in either client, specify a pageSize value. The documentation in both the JavaScript and Python clients has been updated to reflect this behavior.

January 31, 2024

0.1.388
Change

Migrated the authorization workflow in the JavaScript library from the Google API Client Library for JavaScript to Google Identity Services.

December 08, 2023

0.1.383
Feature

Added getMapId() to ee.Image, ee.ImageCollection, ee.Feature, and ee.FeatureCollection to match the Python client. Marked getMap() as deprecated.

0.1.383
Feature

Added Export.classifier.toAsset and ee.Classifier.load for exporting and loading saved ee.Classifier.smileCart and ee.Classifier.smileRandomForest classifiers. The exported classifiers will be visible and managed just like existing Earth Engine assets. More details are available at our supervised classification and our export reference page.

September 14, 2023

0.1.369
Fixed

Fixed ee.data.getOperation() and ee.data.getTaskStatus() error handling. Operations that complete with an error are now returned as Operation objects that include error details, instead of throwing an exception.

September 07, 2023

0.1.368
Feature

Added documentation to ee.data.newTaskId() and ee.data.startProcessing() to clarify unsubmitted versus submitted task IDs, and fixed ee.batch.ExportTask.start() to return the submitted task ID.

July 27, 2023

0.1.361
Breaking

Upgraded the client libraries to use the v1 Earth Engine API. No changes required except for the following case:

  • In the Python client, for the ee.data.getAsset() method, the title and description fields are only accessible from the asset properties in the v1 API. Modify your code to reference my_asset['properties']['title'] and my_asset['properties']['description'].

May 03, 2023

0.1.352
Feature

Added support for the no_data field for GeoTIFF exports in both the Python and JavaScript client libraries.

April 14, 2023

0.1.349
Breaking

Removed support for dots (.) in workload tags, which will now throw an error.

September 28, 2022

0.1.326
Change

Upgraded the client libraries to use the Earth Engine v1 API parameters instead of v1alpha only parameters, in preparation for a future migration to the v1 API.

0.1.326
Change

Refactored ee.data.getList() and ee.data.listImages() to call through to ee.data.listAssets() exclusively.

August 12, 2021

0.1.278
Change

Improved error reporting for the case where the arguments of a function passed to map() or iterate() are used in client-side operations that don't contribute to the function return value. Since the function is executed server-side, it may not have client-side effects. See the debugging guide for more details.

April 29, 2021

0.1.263
Feature

Added support for maxVertices parameter for table exports.

April 22, 2021

0.1.262
Feature

Added a mechanism for overriding the default OAuth2 scopes requested in ee.data.authenticateViaOauth() and ee.data.authenticateViaPrivateKey(). This can be used for requesting the https://www.googleapis.com/auth/earthengine.readonly scope, rather than the https://www.googleapis.com/auth/earthengine scope requested by default.

March 25, 2021

0.1.258
Breaking

Patched ee.data.setAssetProperties() to prevent cases when setting system properties to null or zero causes unintentional property deletion.

January 20, 2021

0.1.248
Change

.evaluate() and other JavaScript functions that take callbacks will now report exceptions that occurred within callback functions to the console (or to the top level environment in Node.js). If your code has such an exception you can handle or suppress it with catch in the callback.

November 19, 2020

0.1.243
Change

Removed ee.data.getCloudApiEnabled and ee.data.setCloudApiEnabled from the JavaScript client library.

October 29, 2020

0.1.240
Fixed

Fixes image export parsing of parameter skipEmptyTiles, which may have caused skipEmptyTiles to be ignored.

October 15, 2020

0.1.238
Feature

Added file format validation and normalization to the ee.batch.Export methods on the JS client. Synonyms for file formats (e.g. "JPG" and "JPEG") are supported.

September 25, 2020

0.1.236
Feature

Added an ee.data.TaskStatus field for the number of times a task was attempted. This matches the value now shown in the Code Editor.

August 21, 2020

0.1.231
Change

Changed the object serialization format, so that x.serialize() returns an updated format (which is already used in server requests). ee.Deserializer supports both the new format and the old format. These changes apply to all JavaScript and Python APIs. If you have code which serializes and deserializes objects, we recommend that you either upgrade all parts of your system at once, or proceed in stages by updating the deserialization code first.

March 06, 2020

0.1.214
Change
  • ee.Image.getDownloadURL is fully supported in Cloud API mode.
    • Band-level parameters take precedence over top-level parameters when specified.
    • Band parameters are ignored for multiband GeoTIFFs.
    • image parameter may not be serialized, use an ee.Image directly.
    • Limits on total image size.
  • ee.data.getTileUrl supports the urlFormat parameter supplied in the map ID.

November 22, 2019

0.1.207
Change

Turned on Cloud API support by default for the JavaScript client library. Developers with registered service accounts will need to enable the API.

October 23, 2019

0.1.204
Fixed
  • Improved the documentation for ee.Filter.not().
  • Fixed the bug with clipToBoundsAndScale(). When clipping to bounds without the scale parameter, the resulting image lost the native scale.

August 30, 2019

0.1.193
Change

Refactored networking routines into apiclient.js.

November 09, 2018

0.1.159
Change

Ensure JS client library can resolve export regions.

September 28, 2018

0.1.149
Feature

Added and updated several UI API examples.

June 12, 2017

0.1.116
Feature

Added support for uploading shapefiles.

March 02, 2017

0.1.106
Feature

Added a Global Surface Water dataset tutorial to the examples.

0.1.106
Feature

Added a skipEmptyTiles option to Export.image.toDrive() and Export.image.toCloudStorage() to skip generating empty (i.e. fully-masked) image tiles.

November 29, 2016

0.1.101
Fixed

Fixed a typo in the "Airstrip Thumbnails" example script.

October 27, 2016

0.1.99
Feature
  • Added optional shardSize and fileDimensions arguments to Export.image.toDrive() and Export.image.toCloudStorage(), to specify the computation shard size and the output file dimensions for multi-file image exports.
  • Added an optional skipEmptyTiles argument to Export.map.toCloudStorage() to skip writing empty (fully-transparent) tiles.

September 29, 2016

0.1.97
Feature

Added ee.layers.ImageOverlay and ee.layers.BinaryOverlay to replace the now-deprecated ee.MapLayerOverlay and ee.FloatTileOverlay.

September 22, 2016

0.1.96
Feature

Added ee.layers.ImageOverlay and deprecated ee.MapLayerOverlay.

July 28, 2016

0.1.90
Fixed

Fixed an issue which caused the minified version Earth Engine JavaScript API to be excluded from the open-source release.

June 02, 2016

0.1.83
Feature

Added computedObject.evaluate().

May 18, 2016

0.1.82
Change

Expanded Export functionality to support maps as an export type and Google Cloud Storage as a destination.

February 18, 2016

0.1.73
Feature

Added throttling of asynchronous network requests.

January 21, 2016

0.1.72
Change

Disable exporting to GME.

August 07, 2015

0.1.55
Change

Switched to new read & write scope ('https://www.googleapis.com/auth/earthengine' instead of 'https://www.googleapis.com/auth/earthengine.readonly')

August 01, 2015

0.1.55
Change

Changed ee.Image([]) to create an Image with no bands.

June 26, 2015

0.1.55
Feature
  • Fixed error that occurred when auth token refresh is attempted while the browser is offline.
  • Added demos directory and move AppEngine demos to it.
  • Added "Powered by Earth Engine" images.

June 19, 2015

0.1.55
Fixed
  • Added ee.data.setAuthToken() and ee.data.getAuthToken()
  • Fixed the default API URL in ee.data
  • Fixed ee.reset() so it no longer clears auth info.
  • Added tile event callback registration methods to ee.MapLayerOverlay.
  • Added ee.Image.rename() to make it easy to rename bands.
  • Updated App Engine app examples.
  • Fixed ee.Geometry.Rectangle when given a custom projection or geodesic state.

June 04, 2015

0.1.55
Feature
  • Allowed ee.MapLayerOverlays to be named.
  • Added an opt_dropNulls argument to Collection.map().

May 30, 2015

0.1.55
Change

Undeprecated ee.data.getInfo().

May 15, 2015

0.1.54
Change

Renamed getThumbURL()'s 'size' param to 'dimensions'.

May 08, 2015

0.1.53
Change

ee.ImageCollection() now accepts ee.List arguments.

April 30, 2015

0.1.52
Feature

Added support for exporting videos.

April 10, 2015

0.1.50
Fixed

Fixed ee.Geometry.Multi*() constructors to accept empty lists.

April 03, 2015

0.1.49
Feature

Added error handling improvements.

March 06, 2015

0.1.44
Fixed

Fixed bug with region parameter in getThumbURL().

February 28, 2015

0.1.46
Feature

Added an optional callback parameter to ee.Image.getThumbUrl().

February 20, 2015

0.1.45
Fixed

Fixed keyword argument handling in ee.Algorithms.* functions.

February 10, 2015

0.1.44
Feature

Added ee.data.authenticate() which allows authenticating API requests directly in the browser.

January 15, 2015

0.1.42
Change
  • Image.parseExpression() is no longer available for general use. Image.expression should be used instead, and the documentation for accessing bands in expressions has been moved there.
  • Added support for computed geometries to Geometry.type(), but now returns a computed string rather than a concrete one.
  • Fixed the incorrect winding order of polygons generated by Image.reduceToVectors().
  • Grouped Terrain algorithms into ee.Terrain.

December 04, 2014

0.1.41
Change
  • Image.expression() allows expressions that do not refer to all the supplied input images.
  • Image.parseExpression() allows you to explicitly specify the expected input image names.

July 18, 2014

0.1.32
Fixed

Fixed casting of numbers when calling the ee.String constructor.

June 20, 2014

0.1.311
Change

Allowed empty args list for Image.select().

May 01, 2014

0.1.28
Change

Improved error reporting for CSV downloads.

April 24, 2014

0.1.27
Change
  • Stopped assuming keyword args when a function's first arg is a dictionary.
  • Improved consistency in type casting of different classes.
  • Fixed Element variable promotion.
  • Started allowing ComputedObjects in Image.select() override wrapper.
0.1.27
Breaking
  • Rename ComputedObject.cast() to castInternal() to avoid conflict with the upcoming Image.cast() and ImageCollection.cast().

April 07, 2014

0.1.25
Change

Bugfixes for MapProjection.

March 28, 2014

0.1.24
Change

Improved automatic type casting logic and error messages.

March 10, 2014

0.1.21
Feature

Added filename argument for feature collection CSV download.

February 18, 2014

0.1.19
Change
  • Changed the missing end bound in the DateRange constructor to mean start bound + 1ms, not infinity.
  • Started to consistently interpret DateRange upper bounds as exclusive.

February 13, 2014

0.1.18
Feature

Added an ee.Projection class to represent map projections.

February 06, 2014

0.1.17
Fixed
  • Fixed inconsistent promotion logic for ee.Date parameters.
  • Fixed initialization failure when both synchronous and asynchronous paths are used.

December 20, 2013

0.1.14
Feature

Added ee.Element, a base class for ee.Image and ee.Feature.

November 19, 2013

0.1.11
Change
  • Added several examples for usage of new variable-size kernels.
  • Added an example for usage of the updated ReduceRegion algorithm.
  • Added an example for usage of a Mode reducer with a kernel given in meters.
  • Changed all reducer examples to match the Web API's switch to new reducers.
  • Improved documentation of the ee.data.send_() method.
  • Fixed client issues arising from the usage from a Caja JavaScript sandbox.

October 14, 2013

0.1.9
Fixed
  • Added an ee.Number class.
  • Added ee.Geometry.type().
  • Added ee.ImageCollection.select(), equivalent to mapping Image.select() over a collection.
  • Removed ee.Collection.map_*() functions. Use ee.Collection.map(someJavaScriptFunction).
  • Fixed ee.Image.set() and ee.Feature.set() to stop requiring {'properties': ...} wrapping.

September 30, 2013

0.1.8
Fixed
  • Added support for automatically casting numbers to dates (interpreted as Unix timestamps).
  • Added ee.Deserializer, which can decode the output of ee.Serializer.
  • Improved ee.initialize() to allow multiple asynchronous initialization calls followed by a synchronous call.
  • Fixed handling of GeoJSON CRS specification in ee.Geometry.
  • Fixed accidental aggregation cache breaking in Collection.map().
  • Fixed the example scripts to explicitly specify date timezones, rather than use the client's local timezone.

September 19, 2013

0.1.7
Change

Changed API functions to support keyword arguments - if a single, class-less JavaScript Object is passed to an API function, its keys are interpreted as keyword arguments.

September 13, 2013

0.1.7
Fixed

Fixed a regression introduced in the previous update that could cause incorrect serialization.

September 06, 2013

0.1.6
Change

Optimized the performance of queries that involve repeated sub-queries.

August 30, 2013

0.1.5
Fixed
  • Added a String class to represent computations that return string values.
  • Fixed Geometry methods not being present on computed geometries.

July 24, 2013

0.1.3
Change

Improved error messages returned when a request times out.

0.1.3
Feature
  • Added support for calling unbound algorithms using ee.Algorithms.algorithmName(...).
  • Added support for passing key data in addition to key filenames to ee.ServiceAccountCredentials().

July 03, 2013

0.1.2
Feature

Added support for the geodesic field in GeoJSON to differentiate geodesic and projected lines.

June 05, 2013

0.1.2
Feature

Added an ee.Kernel class.

May 15, 2013

0.1.1
Fixed
  • Added ee.Image.getThumbURL().
  • Added ee.Filter.inList(), a convenience for ee.Filter.listContains().
  • Changed ee.Image.getDownloadURL() to generate full rather than relative URLs.
  • Changed ee.Geometry.Point() to accept (x, y) arrays.
  • Changed the ee.Image constructor to allow calling with no arguments, returning the equivalent of ee.Image(0).mask(0).
  • Deprecated ee.Collection.map_*() functions. Use ee.Collection.map(someJavaScriptFunction).
  • Fixed type promotion of nulls and zeroes.

April 25, 2013

0.0.6
Change
  • Added a new class, ee.Geometry, that represents GeoJSON geometries.
  • Moved Filter functions onto ee.Filter as static methods.Switched to a new, better optimized wire encoding of queries.
0.0.6
Breaking

Collection.aggregate_*() functions no longer perform automatic server fetches. Users will need to call getInfo() on the result manually.

0.0.6
Breaking

The result of the toString() function of EE objects can no longer be passed to eval() to recreate the object.

0.0.6
Breaking

EE objects can no longer be initialized by providing JSON blocks (except GeoJSON). All of these can be converted to the new format using ee.call() and ee.apply().

March 14, 2013

0.0.5
Deprecated

Deprecated specifying API objects using custom JSON (e.g. specifying error margins using {type: 'ErrorMargin', value: 5}). Support will be removed in the next library update.

February 13, 2013

0.0.5
Fixed

Fixed the Feature constructor to accept null geometries.

February 06, 2013

0.0.5
Change

Removed ImageCollection.combine_(), an internal method used to implement ImageCollection.mosaic().

January 31, 2013

0.0.5
Change

Removed ImageCollection.mosaic_(), an internal method used to implement ImageCollection.mosaic().

0.0.5
Fixed

Fixed ImageCollection.reduce() so it can be called as an instance method.

0.0.5
Fixed

Fixed listing of static methods in the playground docs.

0.0.5
Feature

Added support for calling static API methods using the ClassName.methodName() syntax.

0.0.5
Fixed

Fixed serialization of Collections with multiple filters.

0.0.5
Fixed

Fixed listing of static methods in the playground docs.

0.0.5
Breaking

Added support for fetching algorithm results using getInfo() for algorithms that return numbers, tables, and other non-geo objects. This may break scripts that relied on manually editing JSON produced by these algorithms and submitting it to ee.data.getValue().

January 24, 2013

0.0.4
Change