Google Drive
Connect to Google Drive. Manage files, folders, and sharing permissions
Connect to Google Drive. Manage files, folders, and sharing permissions
Supports authentication: OAuth 2.0
Connect a user’s Google Drive account and make API calls on their behalf — Scalekit handles OAuth and token management automatically.
You can interact with Google Drive in two ways — via direct proxy API calls or via Scalekit optimized tool calls. Scroll down to see the list of available Scalekit tools.
Proxy API Calls
import { ScalekitClient } from '@scalekit-sdk/node';import 'dotenv/config';
const connectionName = 'google_drive'; // get your connection name from connection configurationsconst identifier = 'user_123'; // your unique user identifier
// Get your credentials from app.scalekit.com → Developers → Settings → API Credentialsconst scalekit = new ScalekitClient( process.env.SCALEKIT_ENV_URL, process.env.SCALEKIT_CLIENT_ID, process.env.SCALEKIT_CLIENT_SECRET);const actions = scalekit.actions;
// Authenticate the userconst { link } = await actions.getAuthorizationLink({ connectionName, identifier,});console.log('đź”— Authorize Google Drive:', link); // present this link to your user for authorization, or click it yourself for testingprocess.stdout.write('Press Enter after authorizing...');await new Promise(r => process.stdin.once('data', r));
// Make a request via Scalekit proxyconst result = await actions.request({ connectionName, identifier, path: '/drive/v3/files', method: 'GET',});console.log(result);import scalekit.client, osfrom dotenv import load_dotenvload_dotenv()
connection_name = "google_drive" # get your connection name from connection configurationsidentifier = "user_123" # your unique user identifier
# Get your credentials from app.scalekit.com → Developers → Settings → API Credentialsscalekit_client = scalekit.client.ScalekitClient( client_id=os.getenv("SCALEKIT_CLIENT_ID"), client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"), env_url=os.getenv("SCALEKIT_ENV_URL"),)actions = scalekit_client.actions
# Authenticate the userlink_response = actions.get_authorization_link( connection_name=connection_name, identifier=identifier)# present this link to your user for authorization, or click it yourself for testingprint("đź”— Authorize Google Drive:", link_response.link)input("Press Enter after authorizing...")
# Make a request via Scalekit proxyresult = actions.request( connection_name=connection_name, identifier=identifier, path="/drive/v3/files", method="GET")print(result)Scalekit Tools
File operations
Download a file
Download a file from Google Drive by its file ID via the Scalekit proxy.
import scalekit.client, osfrom dotenv import load_dotenvload_dotenv()
connection_name = "google_drive" # get your connection name from connection configurationsidentifier = "user_123" # your unique user identifier
scalekit_client = scalekit.client.ScalekitClient( client_id=os.getenv("SCALEKIT_CLIENT_ID"), client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"), env_url=os.getenv("SCALEKIT_ENV_URL"),)
file_id = "<YOUR_FILE_ID>" # file ID from Drive (visible in the file's URL)output_path = "downloaded.pdf"
response = scalekit_client.actions.request( connection_name=connection_name, identifier=identifier, path=f"/drive/v3/files/{file_id}", method="GET", query_params={"alt": "media"},)
with open(output_path, "wb") as f: f.write(response.content)
print(f"Downloaded: {output_path} ({len(response.content):,} bytes)")Upload a file
Upload a file to Google Drive via the Scalekit proxy. Scalekit injects the OAuth token automatically — your app never handles credentials directly.
import mimetypesimport scalekit.client, osfrom dotenv import load_dotenvload_dotenv()
connection_name = "google_drive" # get your connection name from connection configurationsidentifier = "user_123" # your unique user identifier
scalekit_client = scalekit.client.ScalekitClient( client_id=os.getenv("SCALEKIT_CLIENT_ID"), client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"), env_url=os.getenv("SCALEKIT_ENV_URL"),)
file_path = "report.pdf"file_name = "report.pdf"
with open(file_path, "rb") as f: file_bytes = f.read()
mime_type = mimetypes.guess_type(file_path)[0] or "application/octet-stream"
response = scalekit_client.actions.request( connection_name=connection_name, identifier=identifier, path="/upload/drive/v3/files", method="POST", query_params={"uploadType": "media", "name": file_name}, form_data=file_bytes, headers={"Content-Type": mime_type},)
file_id = response.json()["id"]print(f"Uploaded: {file_name} (File ID: {file_id})")googledrive_get_file_metadata
Retrieve metadata for a specific file in Google Drive by its file ID. Returns name, MIME type, size, creation time, and more.
| Name | Type | Required | Description |
|---|---|---|---|
fields | string | No | Fields to include in the response |
file_id | string | Yes | The ID of the file to retrieve metadata for |
schema_version | string | No | Optional schema version to use for tool execution |
supports_all_drives | boolean | No | Support shared drives |
tool_version | string | No | Optional tool version to use for execution |
googledrive_search_content
Search inside the content of files stored in Google Drive using full-text search. Finds files where the body text matches the search term.
| Name | Type | Required | Description |
|---|---|---|---|
fields | string | No | Fields to include in the response |
mime_type | string | No | Filter results by MIME type |
page_size | integer | No | Number of files to return per page |
page_token | string | No | Token for the next page of results |
schema_version | string | No | Optional schema version to use for tool execution |
search_term | string | Yes | Text to search for inside file contents |
supports_all_drives | boolean | No | Include shared drives in results |
tool_version | string | No | Optional tool version to use for execution |
googledrive_search_files
Search for files and folders in Google Drive using query filters like name, type, owner, and parent folder.
| Name | Type | Required | Description |
|---|---|---|---|
fields | string | No | Fields to include in the response |
order_by | string | No | Sort order for results |
page_size | integer | No | Number of files to return per page |
page_token | string | No | Token for the next page of results |
query | string | No | Drive search query string |
schema_version | string | No | Optional schema version to use for tool execution |
supports_all_drives | boolean | No | Include shared drives in results |
tool_version | string | No | Optional tool version to use for execution |
Tool list
Section titled “Tool list”googledrive_get_file_metadata
Section titled “googledrive_get_file_metadata”Retrieve metadata for a specific file in Google Drive by its file ID. Returns name, MIME type, size, creation time, and more.
| Name | Type | Required | Description |
|---|---|---|---|
fields | string | No | Fields to include in the response |
file_id | string | Yes | The ID of the file to retrieve metadata for |
schema_version | string | No | Optional schema version to use for tool execution |
supports_all_drives | boolean | No | Support shared drives |
tool_version | string | No | Optional tool version to use for execution |
googledrive_search_content
Section titled “googledrive_search_content”Search inside the content of files stored in Google Drive using full-text search. Finds files where the body text matches the search term.
| Name | Type | Required | Description |
|---|---|---|---|
fields | string | No | Fields to include in the response |
mime_type | string | No | Filter results by MIME type |
page_size | integer | No | Number of files to return per page |
page_token | string | No | Token for the next page of results |
schema_version | string | No | Optional schema version to use for tool execution |
search_term | string | Yes | Text to search for inside file contents |
supports_all_drives | boolean | No | Include shared drives in results |
tool_version | string | No | Optional tool version to use for execution |
googledrive_search_files
Section titled “googledrive_search_files”Search for files and folders in Google Drive using query filters like name, type, owner, and parent folder.
| Name | Type | Required | Description |
|---|---|---|---|
fields | string | No | Fields to include in the response |
order_by | string | No | Sort order for results |
page_size | integer | No | Number of files to return per page |
page_token | string | No | Token for the next page of results |
query | string | No | Drive search query string |
schema_version | string | No | Optional schema version to use for tool execution |
supports_all_drives | boolean | No | Include shared drives in results |
tool_version | string | No | Optional tool version to use for execution |