# Google Photos

Your Toolhouse AI Worker can connect to Googlephotos using 14 specialized tools.

## Auth Connection

This service requires an auth connection to use its tools. You can set this up in your Toolhouse dashboard under [Auth Connections](https://toolhouse.app/auth-connections?authkit_slugs=googlephotos).

## Tools

### `Googlephotos Add Enrichment`

**Integration name:** `GOOGLEPHOTOS_ADD_ENRICHMENT`

Adds an enrichment at a specified position in a defined album.

#### Parameters

| Parameter           | Type   | Required | Example                                       | Description                                                                                                                                                                                                                                               |
| ------------------- | ------ | :------: | --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `albumId`           | string |     ✅    | `"AGj1epU5H_bR3MWuuGxsVwk0TkwvNhxEGi1"`       | Identifier of the album where the enrichment is to be added                                                                                                                                                                                               |
| `albumPosition`     | object |     ✅    | `{"position":"FIRST_IN_ALBUM"}`               | Position in the album where the enrichment is to be inserted. Required field with valid position types: FIRST\_IN\_ALBUM, LAST\_IN\_ALBUM, AFTER\_MEDIA\_ITEM (requires relativeMediaItemId), AFTER\_ENRICHMENT\_ITEM (requires relativeEnrichmentItemId) |
| `newEnrichmentItem` | object |     ✅    | `{"textEnrichment":{"text":"Trip to Paris"}}` | The enrichment to be added, can be a text, location, or map enrichment                                                                                                                                                                                    |

### `Googlephotos Batch Add Media Items`

**Integration name:** `GOOGLEPHOTOS_BATCH_ADD_MEDIA_ITEMS`

Adds one or more media items to an album in Google Photos.

#### Parameters

| Parameter      | Type   | Required | Example                                                                         | Description                                                                                                   |
| -------------- | ------ | :------: | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| `albumId`      | string |     ✅    | `"AGj1epU5H_bR3MWuuGxsVwk0TkwvNhxEGi1"`                                         | Identifier of the Album that the media items are added to. Must be an album created by this application.      |
| `mediaItemIds` | array  |     ✅    | `["AGj1epU7vyyz0T6EMWx9qc9_DmHjS7OTKP1","AGj1epU8vyyz0T6EMWx9qc9_DmHjS7OTKP2"]` | Identifiers of the MediaItems to be added. Maximum 50 items. Media items must be created by this application. |

### `Googlephotos Batch Create Media Items`

**Integration name:** `GOOGLEPHOTOS_BATCH_CREATE_MEDIA_ITEMS`

Batch upload and create media items in Google Photos. Supports three input methods:

1. `urls`: Simple list of public URLs (file names extracted automatically)
2. `media_files`: List of objects with url/file, file\_name, and description
3. `files`: List of FileUploadable objects for pre-uploaded files

Media items can optionally be added to an album at a specific position. Maximum 50 items per request.

#### Parameters

| Parameter       | Type   | Required | Example                                                                                                                                 | Description                                                                                                                                                                                |
| --------------- | ------ | :------: | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `urls`          | array  |          | `["https://example.com/photo1.jpg","https://example.com/photo2.png"]`                                                                   | Simplified input: List of public URLs of media files to upload. File names will be extracted from URLs automatically. Use `media_files` for more control over file names and descriptions. |
| `files`         | array  |          | —                                                                                                                                       | List of files to upload to Google Photos.                                                                                                                                                  |
| `albumId`       | string |          | `"AGj1epU5H_bR3MWuuGxsVwk0TkwvNhxEGi1"`                                                                                                 | Optional identifier of the album where the media items are to be added. If not specified, media items are added to the user's library only.                                                |
| `media_files`   | array  |          | `[{"url":"https://example.com/image1.jpg","file_name":"image1.jpg"},{"url":"https://example.com/image2.png","file_name":"image2.png"}]` | List of media files to upload. Each item can specify either a `url` (public URL) or a `file` (FileUploadable object). Maximum 50 items per request.                                        |
| `albumPosition` | object |          | `{"position":"LAST_IN_ALBUM"}`                                                                                                          | Position in the album to add the media items.                                                                                                                                              |

### `Googlephotos Batch Get Media Items`

**Integration name:** `GOOGLEPHOTOS_BATCH_GET_MEDIA_ITEMS`

Returns the list of media items for the specified media item identifiers.

#### Parameters

| Parameter      | Type  | Required | Example | Description                                                                  |
| -------------- | ----- | :------: | ------- | ---------------------------------------------------------------------------- |
| `mediaItemIds` | array |     ✅    | —       | Identifiers of the media items to be requested. Must not contain duplicates. |

### `Googlephotos Create Album`

**Integration name:** `GOOGLEPHOTOS_CREATE_ALBUM`

Creates a new album in Google Photos.

#### Parameters

| Parameter | Type   | Required | Example | Description                                                               |
| --------- | ------ | :------: | ------- | ------------------------------------------------------------------------- |
| `title`   | string |     ✅    | —       | Name of the album to be created in Google Photos. Maximum 500 characters. |

### `Googlephotos Get Album`

**Integration name:** `GOOGLEPHOTOS_GET_ALBUM`

Returns the album based on the specified `albumId`.

#### Parameters

| Parameter | Type   | Required | Example | Description                              |
| --------- | ------ | :------: | ------- | ---------------------------------------- |
| `albumId` | string |     ✅    | —       | Identifier of the album to be requested. |

### `Googlephotos Get Media Item Download`

**Integration name:** `GOOGLEPHOTOS_GET_MEDIA_ITEM_DOWNLOAD`

Downloads a media item from Google Photos and returns it as a file.

#### Parameters

| Parameter     | Type   | Required | Example | Description                      |
| ------------- | ------ | :------: | ------- | -------------------------------- |
| `mediaItemId` | string |     ✅    | —       | ID of the media item to download |

### `Googlephotos List Albums`

**Integration name:** `GOOGLEPHOTOS_LIST_ALBUMS`

Lists all albums shown to a user in the Albums tab of Google Photos.

#### Parameters

| Parameter                  | Type    | Required | Example | Description                                                 |
| -------------------------- | ------- | :------: | ------- | ----------------------------------------------------------- |
| `pageSize`                 | integer |          | —       | Maximum number of albums to return. Default 20, maximum 50. |
| `pageToken`                | string  |          | —       | Continuation token for getting the next page of results     |
| `excludeNonAppCreatedData` | boolean |          | —       | If true, excludes media items not created by this app       |

### `Googlephotos List Media Items`

**Integration name:** `GOOGLEPHOTOS_LIST_MEDIA_ITEMS`

Lists media items created by this application from Google Photos.

**Deprecation notice:** As of March 31, 2025, the Google Photos Library API ONLY returns media items that were uploaded/created by your application. This action CANNOT access the user's full photo library.

Use cases this action **supports**:

* Listing photos/videos your app previously uploaded to the user's library
* Managing app-created content in Google Photos

Use cases this action **does not support**:

* Accessing photos taken by the user's camera
* Viewing photos from other apps or web uploads
* Listing the user's entire photo library

For accessing a user's full library, use the Google Photos Picker API instead: <https://developers.google.com/photos/picker>

#### Parameters

| Parameter   | Type    | Required | Example | Description                                                 |
| ----------- | ------- | :------: | ------- | ----------------------------------------------------------- |
| `pageSize`  | integer |          | —       | Maximum number of items to return. Default 25, maximum 100. |
| `pageToken` | string  |          | —       | Token for getting the next page of results                  |

### `Googlephotos List Shared Albums`

**Integration name:** `GOOGLEPHOTOS_LIST_SHARED_ALBUMS`

**\[DEPRECATED - sunset March 31, 2025]** Lists all shared albums available in the Sharing tab of the user's Google Photos app. Use when you need to retrieve shared albums that are visible to the user in their Sharing tab.

#### Parameters

| Parameter                  | Type    | Required | Example | Description                                                                                                                                                                           |
| -------------------------- | ------- | :------: | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `pageSize`                 | integer |          | —       | Maximum number of albums to return. Default 20, maximum 50.                                                                                                                           |
| `pageToken`                | string  |          | —       | Continuation token for getting the next page of results. Use the value returned in nextPageToken from the previous response.                                                          |
| `excludeNonAppCreatedData` | boolean |          | —       | If true, excludes media items not created by this app. Defaults to false (all albums are returned). This field is ignored if the photoslibrary.readonly.appcreateddata scope is used. |

### `Googlephotos Search Media Items`

**Integration name:** `GOOGLEPHOTOS_SEARCH_MEDIA_ITEMS`

Searches for media items in a user's Google Photos library.

#### Parameters

| Parameter   | Type    | Required | Example | Description                                                       |
| ----------- | ------- | :------: | ------- | ----------------------------------------------------------------- |
| `albumId`   | string  |          | —       | Album to search within                                            |
| `filters`   | object  |          | —       | Search filters                                                    |
| `orderBy`   | string  |          | —       | Sort order for results, e.g. `'MediaMetadata.creation_time desc'` |
| `pageSize`  | integer |          | —       | Maximum number of items to return. Default 25, maximum 100.       |
| `pageToken` | string  |          | —       | Token for getting the next page                                   |

### `Googlephotos Update Album`

**Integration name:** `GOOGLEPHOTOS_UPDATE_ALBUM`

Updates an album's title or cover photo in Google Photos.

#### Parameters

| Parameter               | Type   | Required | Example | Description                                      |
| ----------------------- | ------ | :------: | ------- | ------------------------------------------------ |
| `title`                 | string |          | —       | New title for the album. Maximum 500 characters. |
| `albumId`               | string |     ✅    | —       | Identifier of the album to update                |
| `coverPhotoMediaItemId` | string |          | —       | ID of the media item to use as album cover photo |

### `Googlephotos Update Media Item`

**Integration name:** `GOOGLEPHOTOS_UPDATE_MEDIA_ITEM`

Updates a media item's description in Google Photos.

#### Parameters

| Parameter     | Type   | Required | Example | Description                                                               |
| ------------- | ------ | :------: | ------- | ------------------------------------------------------------------------- |
| `description` | string |     ✅    | —       | New description for the media item. Must be shorter than 1000 characters. |
| `mediaItemId` | string |     ✅    | —       | Identifier of the media item to update                                    |

### `Googlephotos Upload Media`

**Integration name:** `GOOGLEPHOTOS_UPLOAD_MEDIA`

Upload a media file to Google Photos. Supports images (up to 200MB) and videos (up to 20GB).

#### Parameters

| Parameter        | Type   | Required | Example | Description                                                                                                                                                                                                                                                                |
| ---------------- | ------ | :------: | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `url`            | string |          | —       | Public URL of the media file to upload (must be directly accessible). The action will download the file from this URL and upload it to Google Photos. Alternative to `file_to_upload`. Supported formats: images (JPEG, PNG, GIF, HEIC, etc.) and videos (MP4, MOV, etc.). |
| `file_name`      | string |          | —       | File name for the uploaded media. Required when using `url` parameter. Should include the file extension (e.g., `photo.jpg`, `video.mp4`).                                                                                                                                 |
| `description`    | string |          | —       | Optional description for the media item                                                                                                                                                                                                                                    |
| `file_to_upload` | object |          | —       | The media file to upload to Google Photos.                                                                                                                                                                                                                                 |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.toolhouse.ai/toolhouse/integrations/google-photos.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
