# Release notes

[Subscribe](https://developers.google.com/static/photos/library/support/releases.xml) to these release notes.
[![Subscribe](https://developers.google.com/static/photos/images/rss-icon.svg)](https://developers.google.com/static/photos/library/support/releases.xml)

This page is updated with each new release of the Google Photos APIs. The
changelog lists releases by date and includes any new features, bug fixes and
other changes.

The documentation and guides point to the latest version to use.

## April 1, 2025

#### Notes

This release implements the previously announced changes to the Photos APIs.

- Removal of some scopes from the Library API.
- Restriction of several methods to only work with app created content.
- The new [Photos API User Data and Developer Policy](https://developers.google.com/photos/support/api-policy) takes effect in place of the old Acceptable Use Policy.

For complete details read [Updates to the Google Photos APIs](https://developers.google.com/photos/support/updates).

## September 16, 2024

#### Features

- Introduced [the new Picker API](https://developers.google.com/photos/picker/get-started-picker) for secure and user-friendly photo selection.

#### Notes

This release we announced key changes to the Library API
(effective March 31, 2025).

- The Library API will only manage photos and videos created by your app.
- Removal of `photoslibrary.readonly`, `photoslibrary.sharing`, and `photoslibrary` scopes.
- Restriction of several methods to app-created content only.

Complete details are posed in the [Updates to the Google Photos APIs](https://developers.google.com/photos/support/updates)
page.

## October 27, 2022

#### Notes

- The "Build a Photo Sharing app with Google Photos and Flutter" codelab is no longer available. Review our [other samples](https://developers.google.com/photos/library/samples) and refer to the sample code within our guides.

## June 1, 2022

#### Notes

- Added [best practices for uploading](https://developers.google.com/photos/library/guides/upload-media#uploads-best-practices) to help clarify the upload process, call out common errors and how to avoid them, and provide tips for improving upload efficiency.

## October 27, 2021

#### Features

- Google Photos Partner Program: launch of [the premier tier](https://developers.google.com/photos/partner-program/overview#premier-tier). The premier tier is a suite of enhanced API features that leverage the powerful machine intelligence of Google photos.

## September 29, 2021

#### Features

- New option to [sort date filter based searches](https://developers.google.com/photos/library/guides/apply-filters#sorting-results) . Results can be sorted newest first or oldest first. This allows for easier searching and improves efficiencies by providing better targeted search results.

## July 21, 2021

#### Features

- New `-no` [parameter for video base URLs](https://developers.google.com/photos/library/guides/access-media-items#video-base-urls) to load thumbnails without a playback button overlay. By default video thumbnails load with a playback button overlay. This new parameter gives you control to hide the playback button on video thumbnails.

#### Resolved issues

- [Issue 181282432](https://issuetracker.google.com/issues/181282432): Video thumbnails always displayed with a playback button overlay.

## May 25, 2021

#### Resolved issues

- `exposureTime` property was not populated for [`photo` metadata](https://developers.google.com/photos/library/reference/rest/v1/mediaItems#photo) in media items.

## May 19, 2021

#### Notes

- The [base URL documentation for motion
  photos](https://developers.google.com/photos/library/guides/access-media-items#motion-base-urls) has been updated to clarify the behaviour of the `=dv` parameter for Android motion photos and iOS Live Photos.

## February 11, 2021

#### Notes

- The [Acceptable Use Policy](https://developers.google.com/photos/library/guides/acceptable-use) has been updated, adding content on advertising and minimizing data use.

## July 7, 2020

#### Features

- The API has been updated to support [new sharing controls in Google Photos](https://blog.google/products/photos/new-controls-how-you-share-albums-google-photos/). A new field, [`isJoinable`](https://developers.google.com/photos/library/reference/rest/v1/albums#Album.ShareInfo), is now returned as part of the `shareInfo` property for shared albums. The API can [join users to a shared album](https://developers.google.com/photos/library/guides/share-media#joining-shared-album) when `isJoinable` is `true`. If an owner has disabled link sharing on an album in Google Photos, `isJoinable` will be `false`, and the API will not be able to join users to that album.
- Issues [111405623](https://issuetracker.google.com/issues/111405623), [116379853](https://issuetracker.google.com/issues/116379853), [117685011](https://issuetracker.google.com/issues/117685011): You can now [change album titles and cover photos](https://developers.google.com/photos/library/guides/manage-albums#changing-album-titles-cover-photos), and [change descriptions](https://developers.google.com/photos/library/guides/manage-media) for media items your app has created. Request the new `photoslibrary.edit.appcreateddata` [authorization scope](https://developers.google.com/photos/library/guides/authorization) for update access.

## February 17, 2020

#### Features

- The [maximum upload file size of a
  photo](https://developers.google.com/photos/library/guides/upload-media#file-types-sizes) has been increased from 75 MB to 200 MB.
- When you upload files, a MIME type must now be specified in the [byte upload stage](https://developers.google.com/photos/library/guides/upload-media#uploading-bytes).
- You now specify filenames when [creating a media
  item](https://developers.google.com/photos/library/guides/upload-media#creating-media-item), instead of when uploading media bytes. The new `fileName` property in [`simpleMediaItem`](https://developers.google.com/photos/library/reference/rest/v1/mediaItems/batchCreate#SimpleMediaItem) supports UTF-8 strings. You can still specify a media item's filename when uploading media bytes, however we strongly recommend updating your implementation.

#### Notes

- The [Acceptable Use Policy](https://developers.google.com/photos/library/guides/acceptable-use) has been updated, with some extra details focusing on minimizing data use and storage.
- The [base URL
  documentation](https://developers.google.com/photos/library/guides/access-media-items#motion-base-urls) has been updated to include motion photos.

## August 16, 2019

#### Features

- [Issue 131874809](https://issuetracker.google.com/issues/131874809): New property [`isOwned`](https://developers.google.com/photos/library/reference/rest/v1/albums#shareinfo) in `shareInfo` to identify if the user is the owner of the shared album. More details are available in the [share
  media](https://developers.google.com/photos/library/guides/share-media#shared-media-item-properties) developer guide.

#### Resolved issues

- [Issue 131711405](https://issuetracker.google.com/issues/131711405): `shareableUrl` property was missing in the [`albums.list`](https://developers.google.com/photos/library/reference/rest/v1/albums/list) response.
- [Issue 113870729](https://issuetracker.google.com/issues/113870729): [`mediaItems.list`](https://developers.google.com/photos/library/reference/rest/v1/mediaItems/list) sometimes returned duplicate media items at page boundaries.
- [Issue 93428763](https://issuetracker.google.com/issues/93428763): The `status` field for video metadata now correctly returns the [`VideoProcessingStatus`](https://developers.google.com/photos/library/reference/rest/v1/mediaItems#VideoProcessingStatus) of the highest quality video available.

## June 12, 2019

#### Features

- [Issue 110188560](https://issuetracker.google.com/issues/110188560): New [search filter](https://developers.google.com/photos/library/guides/apply-filters#item-features) to select media items that have been marked as favorite: [`FeatureFilter`](https://developers.google.com/photos/library/reference/rest/v1/mediaItems/search#FeatureFilter).
- [New content
  categories](https://developers.google.com/photos/library/guides/apply-filters#content-categories) for the [`ContentFilter`](https://developers.google.com/photos/library/reference/rest/v1/mediaItems/search#ContentFilter) to filter media items that match specific categories: `ARTS`, `CRAFTS`, `FASHION`, `HOUSES`, `GARDENS`, `FLOWERS`, `HOLIDAYS`.

#### Notes

- Updated [UX Guidelines](https://developers.google.com/photos/library/guides/ux-guidelines) that provide additional guidance for [naming projects and
  albums](https://developers.google.com/photos/library/guides/ux-guidelines#naming).

## May 7, 2019

#### Codelabs

- New Codelab: [Build a Photo Sharing app with Google Photos and
  Flutter](https://codelabs.developers.google.com/codelabs/google-photos-sharing). Learn how to build a photo sharing app using the Google Photos Library API in Flutter. See the [samples guide](https://developers.google.com/photos/library/samples#codelabs) for details.

## April 29, 2019

#### Features

- [Issue 109505022](https://issuetracker.google.com/issues/109505022): New calls to add and
  remove existing media items to an album:

  - [`albums.batchAddMediaItems`](https://developers.google.com/photos/library/reference/rest/v1/albums/batchAddMediaItems)
  - [`albums.batchRemoveMediaItems`](https://developers.google.com/photos/library/reference/rest/v1/albums/batchRemoveMediaItems)

  These calls support media items and albums that have been created by your
  application. More details are available in the [manage
  albums](https://developers.google.com/photos/library/guides/manage-albums) developer guide.
- The REST call for creating media items
  [`mediaItems.batchCreate`](https://developers.google.com/photos/library/reference/rest/v1/mediaItems/batchCreate)
  now returns HTTP status `207 MULTI-STATUS` for partial success if some media
  items could not be created. More details are available in the [Uploading
  media](https://developers.google.com/photos/library/guides/upload-media#creating-media-item) developer
  guide.

#### Notes

- The latest versions of the [client
  libraries](https://developers.google.com/photos/library/guides/client-libraries) include a breaking change. Classes related to `MediaItem`, `Album` and `DateRange` have moved to a new dedicated package. Their functionality has not changed, only their location in the client library. Refer to the release notes for the [Java client library
  (1.2.0)](https://github.com/google/java-photoslibrary/releases/tag/v1.2.0) and [PHP client library
  (1.2.0)](https://github.com/google/php-photoslibrary/releases/tag/v1.2.0).

## February 14, 2019

#### Notes

- A new quota limit for [accessing media bytes from base
  URLs](https://developers.google.com/photos/library/guides/access-media-items#base-urls) applies. You can [monitor this quota in the
  Google API Console](https://developers.google.com/photos/library/guides/api-limits-quotas#checking-quota-usage).

#### Resolved issues

- [Issue 124355983](https://issuetracker.google.com/issues/124355983): 500 errors when calling [`mediaItems.get`](https://developers.google.com/photos/library/reference/rest/v1/mediaItems/get) for some shared media items.

## January 21, 2019

#### Resolved issues

- [Issue 121998358](https://issuetracker.google.com/issues/121998358): `isWriteable` property was missing in the [`albums.create`](https://developers.google.com/photos/library/reference/rest/v1/albums/create) response.

## January 7, 2019

#### Resolved issues

- [Issue 118464845](https://issuetracker.google.com/issues/118464845): `mediaItems.list` returned too many empty pages.
- [Issue 111714379](https://issuetracker.google.com/issues/111714379): `mediaItems.search` returned half the `pageSize`.

## November 30, 2018

#### Features

- New call [`mediaItems.batchGet`](https://developers.google.com/photos/library/reference/rest/v1/mediaItems/batchGet) to retrieve multiple media items by their identifiers.
- [Issue 111279349](https://issuetracker.google.com/issues/111279349): New call [`sharedAlbums.leave`](https://developers.google.com/photos/library/reference/rest/v1/sharedAlbums/leave) to leave a joined album.
- [Issue 111279347](https://issuetracker.google.com/issues/111279347): New call [`albums.unshare`](https://developers.google.com/photos/library/reference/rest/v1/albums/unshare) to mark a shared album as private.

#### Resolved issues

- [Issue 113978705](https://issuetracker.google.com/issues/113978705): Descriptions set in `mediaItems.batchCreate` were converted to HTML entities.
- [Issue 114462217](https://issuetracker.google.com/issues/114462217): Filename could not be set for video files in `mediaItems.batchCreate`.
- [Issue 118475587](https://issuetracker.google.com/issues/118475587): Invalid product URLs were returned for media items.
- [Issue 111862704](https://issuetracker.google.com/issues/114462217): 403 errors when accessing base URLs.
- [Issue 115932469](https://issuetracker.google.com/issues/115932469): Uploads failing with quota error.

## September 6, 2018

#### Features

- Java and PHP [client libraries](https://developers.google.com/photos/library/guides/client-libraries) are now available.

#### Notes

- Google Photos Library API has entered the general availability. Thanks for your feedback and feature requests during the Library API developer preview period.
- Check out the new guides for getting started with [Java](https://developers.google.com/photos/library/guides/get-started-java) and [PHP](https://developers.google.com/photos/library/guides/get-started-php) client libraries.
- Sample Java and PHP code snippets have been added to the guides to demonstrate the usage of client libraries.

## September 5, 2018

#### Features

- New call [`sharedAlbums.get`](https://developers.google.com/photos/library/reference/rest/v1/sharedAlbums/get) to [get an album](https://developers.google.com/photos/library/guides/share-media#retrieving-shared-albums-share-tokens) using the `shareToken`.
- New property [`isJoined`](https://developers.google.com/photos/library/reference/rest/v1/albums#shareinfo) in `shareInfo` to identify if the user has joined the shared album.

#### Resolved issues

- [Issue 79321120](https://issuetracker.google.com/issues/79321120): `mimeType` property was missing in the [mediaItems.batchCreate](https://developers.google.com/photos/library/reference/rest/v1/mediaItems/batchCreate) response for video media items.
- [Issue 79319272](https://issuetracker.google.com/issues/79319272): Properties such as `mediaMetadata`, `contributorInfo` were missing in the [mediaItems.batchCreate](https://developers.google.com/photos/library/reference/rest/v1/mediaItems/batchCreate) response.
- [Issue 110237685](https://issuetracker.google.com/issues/110237685): Fixed CORS-related file upload issue.
- [Issue 79318118](https://issuetracker.google.com/issues/79318118): Consistent order was not being maintained when uploading multiple items to an album in the [mediaItems.batchCreate](https://developers.google.com/photos/library/reference/rest/v1/mediaItems/batchCreate) call.

#### Notes

- If you stored IDs (such as IDs for albums, media items or enrichment items) before 5 September 2018, they will no longer work as the format has changed. You will need to obtain new IDs for use in your application.
- The `totalMediaItems` property of the [album](https://developers.google.com/photos/library/reference/rest/v1/albums) resource has been renamed to `mediaItemsCount`.
- The maximum value of the `pageSize` parameter in the [mediaItems.list](https://developers.google.com/photos/library/reference/rest/v1/mediaItems/list) and [mediaItems.search](https://developers.google.com/photos/library/reference/rest/v1/mediaItems/search) calls has been changed to 100. The default number of media items returned when the `pageSize` parameter is not specified has been changed to 25.
- [List library contents](https://developers.google.com/photos/library/guides/list), [Share media](https://developers.google.com/photos/library/guides/share-media) and [Access media items](https://developers.google.com/photos/library/guides/access-media-items) guides updated with the `excludeNonAppCreatedData`\](/photos/library/guides/apply-filters#nonapp-created) filter feature released on [July 31, 2018](https://developers.google.com/photos/support/release-notes#2018-07-31).

## July 31, 2018

#### Features

- New call [`mediaItems.list`](https://developers.google.com/photos/library/reference/rest/v1/mediaItems/list) to list media items.
- New filter [`excludeNonAppCreatedData`](https://developers.google.com/photos/library/guides/apply-filters#nonapp-created) to search for items or list albums created by your app.
- New parameters to [access images](https://developers.google.com/photos/library/guides/access-media-items#image-base-urls):
  - [Issue 79871479](https://issuetracker.google.com/issues/79871479): `c` crop parameter, to crop image to exact dimensions.
  - [Issue 110343547](https://issuetracker.google.com/issues/110343547), [Issue 111228390](https://issuetracker.google.com/issues/111228390): `d` download parameter, to download the original image.
- The [`sharedAlbums.join`](https://developers.google.com/photos/library/reference/rest/v1/sharedAlbums/join) call now returns an [album](https://developers.google.com/photos/library/reference/rest/v1/albums#resource-album).
- [Issue 109655786](https://issuetracker.google.com/issues/109655786): [`album`](https://developers.google.com/photos/library/reference/rest/v1/albums#resource-album) now contains the media item ID of the cover photo, `coverPhotoMediaItemId`.
- [Issue 79656863](https://issuetracker.google.com/issues/79656863): [`mediaItem`](https://developers.google.com/photos/library/reference/rest/v1/mediaItems#resource-mediaitem) now contains the filename of the media item, `filename`.

#### Resolved issues

- [Issue 79757390](https://issuetracker.google.com/issues/79757390): Filename was not being set during upload requests. See `X-Goog-Upload-File-Namefile` and `X-Goog-Upload-Protocol` fields in the [Upload
  media](https://developers.google.com/photos/library/guides/upload-media) guide.
- [Issue 80182372](https://issuetracker.google.com/issues/80182372): Resumable uploads returned an error. See the new [Resumable
  uploads](https://developers.google.com/photos/library/guides/resumable-uploads) guide for the updated protocol.
- [Issue 79497397](https://issuetracker.google.com/issues/79497397): `isWriteable` property missing in the [albums.list](https://developers.google.com/photos/library/reference/rest/v1/albums/list) response.
- [Issue 111143493](https://issuetracker.google.com/issues/111143493): `PEOPLE` content category filter was returning inaccurate results.
- [Issue 111056278](https://issuetracker.google.com/issues/111056278): `BIRTHDAYS` content category filter was returning an error.

## Preview release - May 8, 2018

Initial release of the Library API.

#### Known issues

- `GET mediaItem` throws an error if the media item `id` it receives is for a media item that's from a shared album and isn't owned by the user.
- The response from the `batchCreate` call won't return `mediaMetadata` or `contributorInfo`.
- If the media item is a video, the `batchCreate` call won't return a `mimeType`.
- `batchCreate` doesn't maintain consistent order when uploading multiple items.
- `batchCreate` doesn't support ordering (adding in a `position`) when creating media items in a shared album as the owner of the shared album. It defaults to the end of the album.