You are viewing the legacy documentation for the Google Photos Library API.
Get started with Java client library
Stay organized with collections
Save and categorize content based on your preferences.
To start using the Google Photos Library API with the Java client library, you will need to
set up the client library in your development environment.
Before you do that, configure your project by enabling the API
via the Google API Console and setting up an OAuth 2.0 client ID.
Your application interacts with Google Photos on behalf of a
Google Photos user. For instance, when you create albums in a user's
Google Photos library or upload media items to a user's
Google Photos account, the user authorizes these API requests via the
OAuth 2.0 protocol.
The OAuth 2.0 client ID allows your application users to sign in, authenticate,
and thereby use the Library API. The Library API does not support
service accounts; to use this API, users must be signed in to a valid Google
Account.
Enable the API
Before you can use the Library API, you must enable it for your project.
- Go to the Google API Console.
- From the menu bar, select a project or create a new project.
- To open the Google API Library, from the Navigation menu, select
APIs & Services > Library.
- Search for "Google Photos Library API". Select the correct result and click
Enable.
Request an OAuth 2.0 client ID
Follow the steps below to request an OAuth client ID and configure it for your
application. This example uses an application where the entire OAuth flow is
handled server-side, such as the one in our samples. The setup process may vary
for other implementation scenarios.
- Go to the Google API Console
and select your project.
- From the menu, select APIs & Services > Credentials.
- On the Credentials page, click Create Credentials > OAuth client ID.
- Select your Application type. In this example, the application type is
Web application.
Register the origins from which your app is allowed to access the Google APIs
as follows:
- To identify the client ID, enter a name.
In the Authorized JavaScript origins field, enter the origin for your
app. This field doesn't allow wildcards.
You can enter multiple origins to allow your app to run on different
protocols, domains, or subdomains. The URLs you enter are allowed to
start an OAuth request.
The following example shows a local development URL (our samples use
localhost:8080
) and a production URL.
http://localhost:8080
https://myproductionurl.example.com
The Authorized redirect URI field is the endpoint that receives
responses from the OAuth 2.0 server. Typically, this includes your
development environment and points to a path in your application.
http://localhost:8080/auth/google/callback
https://myproductionurl.example.com/auth/google/callback
Click Create.
-
From the resulting OAuth client dialog, download the JSON file
containing your client configuration. You client details consist of the
following:
This JSON file will be used later to set up
the Google Auth library for Java which works with this client library.
Before you can launch a public application that accesses the Library API,
your app must be reviewed by Google. An "Unverified app" message appears on the
screen when you test your application, until it is
verified.
Set up the client library
The Java client library handles all the backend API calls for you, and exposes
friendly objects to work with, including code samples for some common API tasks.
Firstly, download and install the Google Photos Library API client library for Java along
with the dependencies from GitHub.
Then, set up your OAuth2 credentials for Java.
Download options
Here are some options to download the client library:
Gradle dependency:
To use this library with Gradle, add the following dependency to your
build.gradle
file.
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.photos.library:google-photos-library-client:1.7.3'
}
Maven dependency:
To use this library with Maven, add the following to your Maven pom.xml
file.
<dependency>
<groupId>com.google.photos.library</groupId>
<artifactId>google-photos-library-client</artifactId>
<version>1.7.3</version>
</dependency>
Download a release:
The releases page
contains different artifacts for each library release, including jar files.
Clone the repository:
Use this method if you want to alter or contribute to this library, for
example, submitting pull requests, or if you wish to try our samples. When you
clone the repository, all files in this repository will be downloaded.
- Run
git clone https://github.com/google/java-photoslibrary.git
at the
command prompt.
- You'll get a
java-photoslibrary
directory. Navigate to it by running
cd java-photoslibrary
.
- Open the
build.gradle
file in your IDE or run ./gradlew assemble
at
the command prompt to build the project. See ./gradlew tasks
to see
available tasks.
Set up your OAuth2 credentials for Java
This client library works with the Google Auth Library for
Java. For more information,
refer to Using OAuth 2.0 with the Google API Client Library for
Java.
Specify your client OAuth configuration in the CredentialsProvider
when
creating the PhotoLibrarySettings
for a PhotosLibraryClient
object.
Try out some samples
Try the code below to make your first API call using the Java client library.
// Set up the Photos Library Client that interacts with the API
PhotosLibrarySettings settings =
PhotosLibrarySettings.newBuilder()
.setCredentialsProvider(
FixedCredentialsProvider.create(/* Add credentials here. */))
.build();
try (PhotosLibraryClient photosLibraryClient =
PhotosLibraryClient.initialize(settings)) {
// Create a new Album with at title
Album createdAlbum = photosLibraryClient.createAlbum("My Album");
// Get some properties from the album, such as its ID and product URL
String id = album.getId();
String url = album.getProductUrl();
} catch (ApiException e) {
// Error during album creation
}
There are more samples
on GitHub for you to try.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-05-07 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-05-07 UTC."],[[["\u003cp\u003eThe Google Photos Library API allows your application to interact with Google Photos on behalf of a user, requiring user authorization through OAuth 2.0.\u003c/p\u003e\n"],["\u003cp\u003eBefore using the API, you must enable it in the Google API Console and obtain an OAuth 2.0 client ID for your application.\u003c/p\u003e\n"],["\u003cp\u003eThe Java client library simplifies API interaction, and you can install it using Gradle, Maven, or by downloading a release from GitHub.\u003c/p\u003e\n"],["\u003cp\u003eTo authenticate your application, set up OAuth2 credentials using the Google Auth Library for Java and specify your client configuration in the \u003ccode\u003eCredentialsProvider\u003c/code\u003e.\u003c/p\u003e\n"]]],["To use the Google Photos Library API with Java, first enable the API in the Google API Console and create an OAuth 2.0 client ID, configuring authorized JavaScript origins and redirect URIs. Next, download the Java client library using Gradle, Maven, a direct download, or by cloning the GitHub repository. Finally, set up OAuth2 credentials using the Google Auth Library for Java, providing these in the `PhotosLibrarySettings` when initializing the `PhotosLibraryClient`. Then try out some samples.\n"],null,["To start using the Google Photos Library API with the Java client library, you will need to\n[set up the client library](#get-library) in your development environment.\nBefore you do that, [configure your project](#configure-app) by enabling the API\nvia the Google API Console and setting up an OAuth 2.0 client ID.\n\nYour application interacts with Google Photos on behalf of a\nGoogle Photos user. For instance, when you create albums in a user's\nGoogle Photos library or upload media items to a user's\nGoogle Photos account, the user authorizes these API requests via the\n[OAuth 2.0](/identity/protocols/OAuth2) protocol.\n\nThe OAuth 2.0 client ID allows your application users to sign in, authenticate,\nand thereby use the Library API. The Library API does not support\nservice accounts; to use this API, users must be signed in to a valid Google\nAccount.\n\nConfigure your app\n\nEnable the API\n\nBefore you can use the Library API, you must enable it for your project.\n\n1. Go to the [Google API Console](https://console.developers.google.com/apis/library).\n2. From the menu bar, select a project or create a new project.\n3. To open the Google API Library, from the Navigation menu, select **APIs \\& Services \\\u003e Library**.\n4. Search for \"Google Photos Library API\". Select the correct result and click **Enable**.\n\nRequest an OAuth 2.0 client ID\n\nFollow the steps below to request an OAuth client ID and configure it for your\napplication. This example uses an application where the entire OAuth flow is\nhandled server-side, such as the one in our samples. The setup process may vary\nfor other [implementation scenarios](/identity/protocols/OAuth2).\n\n1. Go to the [Google API Console](https://console.developers.google.com/apis/library) and select your project.\n2. From the menu, select **APIs \\& Services \\\u003e Credentials**.\n3. On the **Credentials** page, click **Create Credentials \\\u003e OAuth client ID**.\n4. Select your **Application type** . In this example, the application type is **Web application**.\n5. Register the origins from which your app is allowed to access the Google APIs\n as follows:\n\n 1. To identify the client ID, enter a name.\n 2. In the **Authorized JavaScript origins** field, enter the origin for your\n app. This field doesn't allow wildcards.\n\n You can enter multiple origins to allow your app to run on different\n protocols, domains, or subdomains. The URLs you enter are allowed to\n start an OAuth request.\n\n The following example shows a local development URL (our samples use\n `localhost:8080`) and a production URL. \n\n http://localhost:8080\n https://myproductionurl.example.com\n\n 3. The **Authorized redirect URI** field is the endpoint that receives\n responses from the OAuth 2.0 server. Typically, this includes your\n development environment and points to a path in your application.\n\n http://localhost:8080/auth/google/callback\n https://myproductionurl.example.com/auth/google/callback\n\n 4. Click **Create**.\n\n\u003c!-- --\u003e\n\n6. From the resulting OAuth client dialog, download the JSON file\n containing your client configuration. You client details consist of the\n following:\n\n - Client ID\n - Client secret\n\n This JSON file will be used later to [set up](#get-library)\n the Google Auth library for Java which works with this client library.\n\nBefore you can launch a public application that accesses the Library API,\nyour app must be reviewed by Google. An \"Unverified app\" message appears on the\nscreen when you test your application, until it is\n[verified](https://support.google.com/cloud/answer/7454865).\n\nSet up the client library\n\nThe Java client library handles all the backend API calls for you, and exposes\nfriendly objects to work with, including code samples for some common API tasks.\nFirstly, download and install the Google Photos Library API client library for Java along\nwith the dependencies from [GitHub](https://github.com/google/java-photoslibrary).\nThen, set up your OAuth2 credentials for Java.\n\nDownload options\n\nHere are some options to download the client library:\n\n- **Gradle dependency:**\n\n To use this library with Gradle, add the following dependency to your\n `build.gradle` file. \n\n repositories {\n mavenCentral()\n }\n dependencies {\n compile 'com.google.photos.library:google-photos-library-client:1.7.3'\n }\n\n- **Maven dependency:**\n\n To use this library with Maven, add the following to your Maven `pom.xml`\n file. \n\n \u003cdependency\u003e\n \u003cgroupId\u003ecom.google.photos.library\u003c/groupId\u003e\n \u003cartifactId\u003egoogle-photos-library-client\u003c/artifactId\u003e\n \u003cversion\u003e1.7.3\u003c/version\u003e\n \u003c/dependency\u003e\n\n- **Download a release:**\n\n The [releases page](https://github.com/google/java-photoslibrary/releases)\n contains different artifacts for each library release, including jar files.\n- **Clone the repository:**\n\n Use this method if you want to alter or contribute to this library, for\n example, submitting pull requests, or if you wish to try our samples. When you\n clone the repository, **all** files in this repository will be downloaded.\n 1. Run `git clone https://github.com/google/java-photoslibrary.git` at the command prompt.\n 2. You'll get a `java-photoslibrary` directory. Navigate to it by running `cd java-photoslibrary`.\n 3. Open the `build.gradle` file in your IDE or run `./gradlew assemble` at the command prompt to build the project. See `./gradlew tasks` to see available tasks.\n\nSet up your OAuth2 credentials for Java\n\nThis client library works with the [Google Auth Library for\nJava](https://github.com/google/google-auth-library-java). For more information,\nrefer to [Using OAuth 2.0 with the Google API Client Library for\nJava](https://developers.google.com/api-client-library/java/google-api-java-client/oauth2).\n\nSpecify your client OAuth configuration in the `CredentialsProvider` when\ncreating the `PhotoLibrarySettings` for a `PhotosLibraryClient` object.\n\nTry out some samples\n\nTry the code below to make your first API call using the Java client library. \n\n // Set up the Photos Library Client that interacts with the API\n PhotosLibrarySettings settings =\n PhotosLibrarySettings.newBuilder()\n .setCredentialsProvider(\n FixedCredentialsProvider.create(/* Add credentials here. */)) \n .build();\n\n try (PhotosLibraryClient photosLibraryClient =\n PhotosLibraryClient.initialize(settings)) {\n\n // Create a new Album with at title\n Album createdAlbum = photosLibraryClient.createAlbum(\"My Album\");\n\n // Get some properties from the album, such as its ID and product URL\n String id = album.getId();\n String url = album.getProductUrl();\n\n } catch (ApiException e) {\n // Error during album creation\n }\n\nThere are more [samples](https://github.com/google/java-photoslibrary/tree/master/sample)\non GitHub for you to try."]]