Gmail
Gmail is Google's cloud based email service that allows you to access your messages from any computer or device with just a web browser.
Gmail is Googleâs cloud based email service that allows you to access your messages from any computer or device with just a web browser.
Supports authentication: OAuth 2.0
Configure redirect URL
Section titled âConfigure redirect URLâ-
Open the Scalekit dashboard
Section titled âOpen the Scalekit dashboardâIn Scalekit dashboard, go to Agent Auth â Create Connection.
-
Create a Gmail connection
Section titled âCreate a Gmail connectionâFind Gmail from the list of providers and click Create.
-
Copy the redirect URI
Section titled âCopy the redirect URIâClick Use your own credentials and copy the redirect URI â it will look like
https://{your-env-url}/sso/v1/oauth/{connection_id}/callback.
-
Open Google Cloud Console
Section titled âOpen Google Cloud ConsoleâNavigate to Google Cloud Consoleâs APIs & Services > Credentials
-
Create an OAuth client ID
Section titled âCreate an OAuth client IDâSelect + Create Credentials, then OAuth client ID
-
Select web application type
Section titled âSelect web application typeâChoose Web application from the Application type menu

-
Add the redirect URI
Section titled âAdd the redirect URIâUnder Authorized redirect URIs, click + Add URI, paste the redirect URI, and select Create.

Google provides your Client ID and Client Secret credentials.
Enable Gmail API
Section titled âEnable Gmail APIâ-
Open the API Library
Section titled âOpen the API LibraryâIn Google Cloud Console, go to APIs & Services > Library
-
Search for the Gmail API
Section titled âSearch for the Gmail APIâSearch for âGmailâ in the API Library
-
Select the Gmail API
Section titled âSelect the Gmail APIâSelect Gmail API

-
Enable the API
Section titled âEnable the APIâPress the blue Enable button
Add credentials
Section titled âAdd credentialsâ-
Open your connection settings
Section titled âOpen your connection settingsâIn Scalekit dashboard, go to Agent Auth â Connections and open the connection you created.
-
Enter your credentials
Section titled âEnter your credentialsâEnter your credentials:
- Client ID (from above)
- Client Secret (from above)
- Permissions (scopes beginning with
gmailâ see Google API Scopes reference)

-
Save the connection
Section titled âSave the connectionâClick Save
Connect a userâs Gmail account and make API calls on their behalf â Scalekit handles OAuth and token management automatically.
import scalekit.client, osfrom dotenv import load_dotenvload_dotenv()
connection_name = "gmail" # 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 Gmail:", link_response.link)input("Press Enter after authorizing...")
# Make a request via Scalekit proxyresult = actions.request( connection_name=connection_name, identifier=identifier, path="/v1/users/me/profile", method="GET")print(result)Tool list
Section titled âTool listâgmail_fetch_mails
Section titled âgmail_fetch_mailsâFetch emails from a connected Gmail account using search filters. Requires a valid Gmail OAuth2 connection.
| Name | Type | Required | Description |
|---|---|---|---|
format | string | No | Format of the returned message. |
include_spam_trash | boolean | No | Whether to fetch emails from spam and trash folders |
label_ids | array<string> | No | Gmail label IDs to filter messages |
max_results | integer | No | Maximum number of emails to fetch |
page_token | string | No | Page token for pagination |
query | string | No | Search query string using Gmailâs search syntax (e.g., âis:unread from:user@example.comâ) |
schema_version | string | No | Optional schema version to use for tool execution |
tool_version | string | No | Optional tool version to use for execution |
gmail_get_attachment_by_id
Section titled âgmail_get_attachment_by_idâRetrieve a specific attachment from a Gmail message using the message ID and attachment ID.
| Name | Type | Required | Description |
|---|---|---|---|
attachment_id | string | Yes | Unique Gmail attachment ID |
file_name | string | No | Preferred filename to use when saving/returning the attachment |
message_id | string | Yes | Unique Gmail message ID that contains the attachment |
schema_version | string | No | Optional schema version to use for tool execution |
tool_version | string | No | Optional tool version to use for execution |
gmail_get_contacts
Section titled âgmail_get_contactsâFetch a list of contacts from the connected Gmail account. Supports pagination and field filtering.
| Name | Type | Required | Description |
|---|---|---|---|
max_results | integer | No | Maximum number of contacts to fetch |
page_token | string | No | Token to retrieve the next page of results |
person_fields | array<string> | No | Fields to include for each person |
schema_version | string | No | Optional schema version to use for tool execution |
tool_version | string | No | Optional tool version to use for execution |
gmail_get_message_by_id
Section titled âgmail_get_message_by_idâRetrieve a specific Gmail message using its message ID. Optionally control the format of the returned data.
| Name | Type | Required | Description |
|---|---|---|---|
format | string | No | Format of the returned message. |
message_id | string | Yes | Unique Gmail message ID |
schema_version | string | No | Optional schema version to use for tool execution |
tool_version | string | No | Optional tool version to use for execution |
gmail_list_drafts
Section titled âgmail_list_draftsâList draft emails from a connected Gmail account. Requires a valid Gmail OAuth2 connection.
| Name | Type | Required | Description |
|---|---|---|---|
max_results | integer | No | Maximum number of drafts to fetch |
page_token | string | No | Page token for pagination |
schema_version | string | No | Optional schema version to use for tool execution |
tool_version | string | No | Optional tool version to use for execution |
gmail_search_people
Section titled âgmail_search_peopleâSearch people or contacts in the connected Google account using a query. Requires a valid Google OAuth2 connection with People API scopes.
| Name | Type | Required | Description |
|---|---|---|---|
other_contacts | boolean | No | Whether to include people not in the userâs contacts (from âOther Contactsâ). |
page_size | integer | No | Maximum number of people to return. |
person_fields | array<string> | No | Fields to retrieve for each person. |
query | string | Yes | Text query to search people (e.g., name, email address). |
schema_version | string | No | Optional schema version to use for tool execution |
tool_version | string | No | Optional tool version to use for execution |