Google Sheets, Google Calendar, Gmail and Google Drive, connected with one Google sign-in.
- Website
- google.com
- Connects by
- Signing in with Google
- Category
- Spreadsheets and databases, Email, Calendars and meetings, Files and docs, Chat, CRM and sales, Marketing, Social and video, Analytics and SEO, Projects and tasks, Forms, Online stores, Music, books and games, Developer tools, AI
- Services
- 44
- Tools
- 11,412
| Service | Key | Website | Base URL |
|---|---|---|---|
| BigQuery | bigquery | cloud.google.com/bigquery | https://bigquery.googleapis.com/bigquery/v2 |
| Google Sheets | sheets | workspace.google.com/products/sheets | https://sheets.googleapis.com |
| Gmail | gmail | workspace.google.com/products/gmail | https://gmail.googleapis.com/gmail/v1 |
| Google Postmaster Tools | postmaster-tools | postmaster.google.com | https://gmailpostmastertools.googleapis.com |
| Google Calendar | calendar | workspace.google.com/products/calendar | https://www.googleapis.com/calendar/v3 |
| Google Meet | google-meet | workspace.google.com/products/meet | https://meet.googleapis.com/v2 |
| Google Cloud Search | google-cloud-search | workspace.google.com/products/cloud-search | https://cloudsearch.googleapis.com |
| Google Cloud Storage | google-cloud-storage | cloud.google.com/storage | https://storage.googleapis.com/storage/v1 |
| Google Docs | google-docs | workspace.google.com/products/docs | https://docs.googleapis.com/v1 |
| Google Drive | drive | workspace.google.com/products/drive | https://www.googleapis.com/drive/v3 |
| Google Keep | google-keep | workspace.google.com/products/keep | https://keep.googleapis.com |
| Google Photos | google-photos | google.com/photos/about | https://photoslibrary.googleapis.com |
| Google Slides | google-slides | workspace.google.com/products/slides | https://slides.googleapis.com/v1 |
| Google Vault | google-vault | workspace.google.com/products/vault | https://vault.googleapis.com |
| Google Chat | google-chat | workspace.google.com/products/chat | https://chat.googleapis.com/v1 |
| Google Contacts | google-contacts | contacts.google.com | https://people.googleapis.com/v1 |
| Campaign Manager 360 | campaign-manager-360 | marketingplatform.google.com/about/campaign-manager-360 | https://dfareporting.googleapis.com/dfareporting/v5 |
| Display & Video 360 | display-video-360 | marketingplatform.google.com/about/display-video-360 | https://displayvideo.googleapis.com/v4 |
| Google Ad Manager | google-ad-manager | admanager.google.com | https://admanager.googleapis.com |
| Google AdMob | google-admob | admob.google.com | https://admob.googleapis.com |
| Google Ads | google-ads | ads.google.com | https://googleads.googleapis.com/v23 |
| Google AdSense | google-adsense | adsense.google.com | https://adsense.googleapis.com |
| Google Business Profile | google-business-profile | business.google.com | https://mybusinessbusinessinformation.googleapis.com/v1 |
| Google Local Services Ads | google-local-services-ads | ads.google.com/local-services-ads | https://localservices.googleapis.com |
| Google Wallet | google-wallet | wallet.google.com | https://walletobjects.googleapis.com |
| Search Ads 360 | search-ads-360 | marketingplatform.google.com/about/search-ads-360 | https://searchads360.googleapis.com/v0 |
| Blogger | blogger | blogger.com | https://blogger.googleapis.com/v3 |
| YouTube | youtube | youtube.com | https://www.googleapis.com/youtube/v3 |
| Google Analytics | google-analytics | marketingplatform.google.com/about/analytics | https://analyticsdata.googleapis.com/v1beta |
| Google Search Console | search-console | search.google.com/search-console/about | https://searchconsole.googleapis.com |
| Google Tag Manager | google-tag-manager | marketingplatform.google.com/about/tag-manager | https://tagmanager.googleapis.com/tagmanager/v2 |
| Google Classroom | google-classroom | edu.google.com/workspace-for-education/classroom | https://classroom.googleapis.com/v1 |
| Google Tasks | google-tasks | workspace.google.com/products/tasks | https://tasks.googleapis.com/tasks/v1 |
| Google Forms | google-forms | workspace.google.com/products/forms | https://forms.googleapis.com/v1 |
| Google Merchant Center | google-merchant-center | google.com/retail/solutions/merchant-center | https://merchantapi.googleapis.com |
| Google Books | google-books | books.google.com | https://books.googleapis.com |
| Chrome Web Store | google-chrome-web-store | chromewebstore.google.com | https://chromewebstore.googleapis.com |
| Firebase | firebase | firebase.google.com | https://firebase.googleapis.com |
| Google Apps Script | apps-script | developers.google.com/apps-script | https://script.googleapis.com |
| Google Cloud | google-cloud | cloud.google.com | https://cloudresourcemanager.googleapis.com |
| Google Play Console | google-play | play.google.com/console | https://androidpublisher.googleapis.com/androidpublisher/v3 |
| Google Workspace Admin | google-workspace-admin | workspace.google.com | https://admin.googleapis.com/admin/directory/v1 |
| Dialogflow CX | dialogflow | cloud.google.com/dialogflow | https://dialogflow.googleapis.com |
| Google Cloud Agent Platform | google-agent-platform | cloud.google.com/vertex-ai | https://aiplatform.googleapis.com |
Connecting
Your client presses Connect on their page, picks a Google account, and approves every service you asked for on one screen. Then they're sent back to their page, and each service shows as connected.
Google shows its consent screen on every sign-in, including a reconnect. This makes sure Operate As always gets a renewal key, so access keeps working.
curl https://api.operate.as/v1/me/clients \ -H "Authorization: Bearer $OPERATE_AS_API_KEY"[ { "id": "6f1c2a7e-...", "name": "Miller Dental", "services": [ "bigquery", "sheets", "gmail", "postmaster-tools", "calendar", "google-meet", "google-cloud-search", "google-cloud-storage", "google-docs", "drive", "google-keep", "google-photos", "google-slides", "google-vault", "google-chat", "google-contacts", "campaign-manager-360", "display-video-360", "google-ad-manager", "google-admob", "google-ads", "google-adsense", "google-business-profile", "google-local-services-ads", "google-wallet", "search-ads-360", "blogger", "youtube", "google-analytics", "search-console", "google-tag-manager", "google-classroom", "google-tasks", "google-forms", "google-merchant-center", "google-books", "google-chrome-web-store", "firebase", "apps-script", "google-cloud", "google-play", "google-workspace-admin", "dialogflow", "google-agent-platform" ] }]Good to know
Gmail and Drive are restricted
Google classes gmail.readonly (reading email) and drive (all Drive files) as restricted, its strictest level. gmail.send is sensitive. They reach the most of a client's account, so only ask for Gmail or Drive if your workflows need them.
Your client can deselect permissions
When a sign-in asks for more than one permission, Google lets your client choose which to approve. If they deselect one a service needs, that service shows as waiting on their page and in your dashboard, while the others connect. To fix it, they open their link and connect Google again with every box checked.
Permissions
BigQuery
| What the client reads | Permission it asks for |
|---|---|
| See, query and change your BigQuery datasets and tables | https://www.googleapis.com/auth/bigquery |
| See and manage your Google Cloud resources | https://www.googleapis.com/auth/cloud-platform |
Google Sheets
| What the client reads | Permission it asks for |
|---|---|
| Read, add and edit rows in your spreadsheets | https://www.googleapis.com/auth/spreadsheets |
Gmail
| What the client reads | Permission it asks for |
|---|---|
| Send email as you | https://www.googleapis.com/auth/gmail.send |
| Read your email | https://www.googleapis.com/auth/gmail.readonly |
Google Postmaster Tools
| What the client reads | Permission it asks for |
|---|---|
| See your sending domains' Gmail delivery stats | https://www.googleapis.com/auth/postmaster.traffic.readonly |
Google Calendar
| What the client reads | Permission it asks for |
|---|---|
| See, add and change events on your calendars | https://www.googleapis.com/auth/calendar.events |
| See the names of your calendars | https://www.googleapis.com/auth/calendar.calendarlist.readonly |
Google Meet
| What the client reads | Permission it asks for |
|---|---|
| Make meetings and see the ones made this way | https://www.googleapis.com/auth/meetings.space.created |
| See your meetings, who joined, and their recordings and transcripts | https://www.googleapis.com/auth/meetings.space.readonly |
Google Cloud Search
| What the client reads | Permission it asks for |
|---|---|
| Search your organization's content | https://www.googleapis.com/auth/cloud_search.query |
| See and change Cloud Search settings | https://www.googleapis.com/auth/cloud_search.settings |
Google Cloud Storage
| What the client reads | Permission it asks for |
|---|---|
| See, add and change files in your Cloud Storage buckets | https://www.googleapis.com/auth/devstorage.read_write |
Google Docs
| What the client reads | Permission it asks for |
|---|---|
| See, write and edit your documents | https://www.googleapis.com/auth/documents |
Google Drive
| What the client reads | Permission it asks for |
|---|---|
| See, add and edit files in your Google Drive | https://www.googleapis.com/auth/drive |
| See the activity in your Google Drive | https://www.googleapis.com/auth/drive.activity.readonly |
| See and change your Drive labels | https://www.googleapis.com/auth/drive.labels |
Google Keep
| What the client reads | Permission it asks for |
|---|---|
| See, edit, add and delete your Google Keep notes | https://www.googleapis.com/auth/keep |
Google Photos
| What the client reads | Permission it asks for |
|---|---|
| Add photos and videos to your Google Photos library | https://www.googleapis.com/auth/photoslibrary.appendonly |
| See the photos, videos and albums Operate As added | https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata |
| Change the photos, videos and albums Operate As added | https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata |
Google Slides
| What the client reads | Permission it asks for |
|---|---|
| See, make and edit your presentations | https://www.googleapis.com/auth/presentations |
Google Vault
| What the client reads | Permission it asks for |
|---|---|
| See and manage your Vault matters, holds and exports | https://www.googleapis.com/auth/ediscovery |
Google Chat
| What the client reads | Permission it asks for |
|---|---|
| See your Chat spaces | https://www.googleapis.com/auth/chat.spaces.readonly |
| See and send messages in your Chat spaces | https://www.googleapis.com/auth/chat.messages |
Google Contacts
| What the client reads | Permission it asks for |
|---|---|
| See, add and change your contacts | https://www.googleapis.com/auth/contacts |
Campaign Manager 360
| What the client reads | Permission it asks for |
|---|---|
| See and run your Campaign Manager 360 reports | https://www.googleapis.com/auth/dfareporting |
| See and manage your campaigns, ads and placements | https://www.googleapis.com/auth/dfatrafficking |
Display & Video 360
| What the client reads | Permission it asks for |
|---|---|
| See and manage your advertisers, campaigns and line items | https://www.googleapis.com/auth/display-video |
Google Ad Manager
| What the client reads | Permission it asks for |
|---|---|
| See and manage your Ad Manager network, inventory and reports | https://www.googleapis.com/auth/admanager |
Google AdMob
| What the client reads | Permission it asks for |
|---|---|
| See your AdMob apps, ad units and settings | https://www.googleapis.com/auth/admob.readonly |
| See your AdMob reports | https://www.googleapis.com/auth/admob.report |
Google Ads
| What the client reads | Permission it asks for |
|---|---|
| See and manage your Google Ads accounts, campaigns and reports | https://www.googleapis.com/auth/adwords |
| Send audience and conversion data to your Google ad accounts | https://www.googleapis.com/auth/datamanager |
Google AdSense
| What the client reads | Permission it asks for |
|---|---|
| See your AdSense data | https://www.googleapis.com/auth/adsense.readonly |
Google Business Profile
| What the client reads | Permission it asks for |
|---|---|
| See and manage your business listings, their reviews and performance | https://www.googleapis.com/auth/business.manage |
Google Local Services Ads
| What the client reads | Permission it asks for |
|---|---|
| See and manage your Google Ads accounts | https://www.googleapis.com/auth/adwords |
Google Wallet
| What the client reads | Permission it asks for |
|---|---|
| See and manage the Google Wallet passes you issue | https://www.googleapis.com/auth/wallet_object.issuer |
Search Ads 360
| What the client reads | Permission it asks for |
|---|---|
| See your Search Ads 360 accounts and reports | https://www.googleapis.com/auth/doubleclicksearch |
Blogger
| What the client reads | Permission it asks for |
|---|---|
| See, write and publish posts on your blogs | https://www.googleapis.com/auth/blogger |
YouTube
| What the client reads | Permission it asks for |
|---|---|
| See and manage your channel and its videos | https://www.googleapis.com/auth/youtube |
| See reports on your YouTube channels' views, watch time and audience | https://www.googleapis.com/auth/yt-analytics.readonly |
| See your YouTube revenue reports | https://www.googleapis.com/auth/yt-analytics-monetary.readonly |
Google Analytics
| What the client reads | Permission it asks for |
|---|---|
| See your Analytics reports | https://www.googleapis.com/auth/analytics.readonly |
| See and change your Analytics properties, data streams and conversions | https://www.googleapis.com/auth/analytics.edit |
Google Search Console
| What the client reads | Permission it asks for |
|---|---|
| See your sites' search traffic | https://www.googleapis.com/auth/webmasters.readonly |
| Tell Google when pages on your sites are added or removed | https://www.googleapis.com/auth/indexing |
| See and verify your sites and domains | https://www.googleapis.com/auth/siteverification |
Google Tag Manager
| What the client reads | Permission it asks for |
|---|---|
| See your Tag Manager accounts and containers | https://www.googleapis.com/auth/tagmanager.readonly |
| Add and change tags, triggers and variables in your containers | https://www.googleapis.com/auth/tagmanager.edit.containers |
| Publish changes to your containers | https://www.googleapis.com/auth/tagmanager.publish |
Google Classroom
| What the client reads | Permission it asks for |
|---|---|
| See your classes | https://www.googleapis.com/auth/classroom.courses.readonly |
| See the students and teachers in your classes | https://www.googleapis.com/auth/classroom.rosters.readonly |
| See and change classwork and grades for your students | https://www.googleapis.com/auth/classroom.coursework.students |
Google Tasks
| What the client reads | Permission it asks for |
|---|---|
| See, add and change your tasks | https://www.googleapis.com/auth/tasks |
Google Forms
| What the client reads | Permission it asks for |
|---|---|
| See, make and edit your forms | https://www.googleapis.com/auth/forms.body |
| See the answers to your forms | https://www.googleapis.com/auth/forms.responses.readonly |
Google Merchant Center
| What the client reads | Permission it asks for |
|---|---|
| See and manage your products, feeds and Merchant Center account | https://www.googleapis.com/auth/content |
| See and change your Manufacturer Center products | https://www.googleapis.com/auth/manufacturercenter |
Google Books
| What the client reads | Permission it asks for |
|---|---|
| See and change your Google Books library | https://www.googleapis.com/auth/books |
Chrome Web Store
| What the client reads | Permission it asks for |
|---|---|
| See and publish your Chrome Web Store items | https://www.googleapis.com/auth/chromewebstore |
Firebase
| What the client reads | Permission it asks for |
|---|---|
| See and manage your Firebase projects and apps | https://www.googleapis.com/auth/firebase |
| Send push notifications from your Firebase projects | https://www.googleapis.com/auth/firebase.messaging |
| See and manage your Google Cloud resources | https://www.googleapis.com/auth/cloud-platform |
| See and change the data in your Firestore databases | https://www.googleapis.com/auth/datastore |
Google Apps Script
| What the client reads | Permission it asks for |
|---|---|
| See and change your Apps Script projects | https://www.googleapis.com/auth/script.projects |
| See and manage your script deployments | https://www.googleapis.com/auth/script.deployments |
| See your scripts' run history | https://www.googleapis.com/auth/script.processes |
Google Cloud
| What the client reads | Permission it asks for |
|---|---|
| See and manage your Google Cloud resources | https://www.googleapis.com/auth/cloud-platform |
| See and manage your company's Android devices | https://www.googleapis.com/auth/androidmanagement |
| See and publish your Street View photos | https://www.googleapis.com/auth/streetviewpublish |
Google Play Console
| What the client reads | Permission it asks for |
|---|---|
| See and manage your Google Play apps, reviews, releases and purchases | https://www.googleapis.com/auth/androidpublisher |
| See your Google Play apps' quality reports | https://www.googleapis.com/auth/playdeveloperreporting |
| Check Play Integrity tokens for your apps | https://www.googleapis.com/auth/playintegrity |
| See and change your Play Games data | https://www.googleapis.com/auth/games |
Google Workspace Admin
| What the client reads | Permission it asks for |
|---|---|
| See, add and change the users in your organization | https://www.googleapis.com/auth/admin.directory.user |
| See, add and change your organization's groups and who's in them | https://www.googleapis.com/auth/admin.directory.group |
| Add messages to your groups' archives | https://www.googleapis.com/auth/apps.groups.migration |
| See and change your groups' settings | https://www.googleapis.com/auth/apps.groups.settings |
| See and manage your Google Workspace security alerts | https://www.googleapis.com/auth/apps.alerts |
| See and manage your Google Workspace licenses | https://www.googleapis.com/auth/apps.licensing |
| See your Chat spaces | https://www.googleapis.com/auth/chat.spaces.readonly |
| See your Meet spaces | https://www.googleapis.com/auth/meetings.space.readonly |
| See and manage your Workspace customers and subscriptions | https://www.googleapis.com/auth/apps.order |
| See licenses for your Marketplace apps | https://www.googleapis.com/auth/appsmarketplace.license |
| See reports about your managed Chrome browsers and devices | https://www.googleapis.com/auth/chrome.management.reports.readonly |
| See telemetry from your managed ChromeOS devices | https://www.googleapis.com/auth/chrome.management.telemetry.readonly |
| See details of apps on your managed Chrome browsers | https://www.googleapis.com/auth/chrome.management.appdetails.readonly |
| See and change Chrome policies for your organization | https://www.googleapis.com/auth/chrome.management.policy |
| See and manage your organization's groups | https://www.googleapis.com/auth/cloud-identity.groups |
| See your organization's devices | https://www.googleapis.com/auth/cloud-identity.devices.readonly |
Dialogflow CX
| What the client reads | Permission it asks for |
|---|---|
| See and manage your Dialogflow agents | https://www.googleapis.com/auth/dialogflow |
| See and manage your Google Cloud resources | https://www.googleapis.com/auth/cloud-platform |
Google Cloud Agent Platform
| What the client reads | Permission it asks for |
|---|---|
| See and manage your Google Cloud resources | https://www.googleapis.com/auth/cloud-platform |
Tools
BigQuery
Install BigQuery's typed package for your language:
pip install operate-as-bigquerybigquery.analyticshub_organizations_locations_data_exchanges_liscurl -X POST https://api.operate.as/v1/actions/bigquery.analyticshub_organizations_locations_data_exchanges_lis \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "organization": "<organization>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/bigquery.analyticshub_organizations_locations_data_exchanges_lis
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Sheets
Install Google Sheets's typed package for your language:
pip install operate-as-sheetssheets.add_rowcurl -X POST https://api.operate.as/v1/actions/sheets.add_row \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "spreadsheet_id": "<spreadsheet_id>", "range": "<range>", "values": [] } }'| Input | Type | What it is |
|---|---|---|
spreadsheet_idrequired | string | The ID in the sheet's address, after /d/ |
rangerequired | string | Which cells, e.g. Sheet1!A1:D20 |
valuesrequired | array | The row's cells, in order |
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Gmail
Install Gmail's typed package for your language:
pip install operate-as-gmailgmail.send_emailcurl -X POST https://api.operate.as/v1/actions/gmail.send_email \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "to": "<to>", "subject": "<subject>", "body": "<body>" } }'| Input | Type | What it is |
|---|---|---|
torequired | string | Who to send it to |
subjectrequired | string | Subject |
bodyrequired | string | Text |
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Postmaster Tools
Install Google Postmaster Tools's typed package for your language:
pip install operate-as-postmaster-toolspostmaster-tools.domain_stats_batch_querycurl -X POST https://api.operate.as/v1/actions/postmaster-tools.domain_stats_batch_query \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": {} }'Every input, with its JSON Schema: GET /v1/actions/postmaster-tools.domain_stats_batch_query
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Calendar
Install Google Calendar's typed package for your language:
pip install operate-as-calendarcalendar.create_eventcurl -X POST https://api.operate.as/v1/actions/calendar.create_event \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "summary": "<summary>", "start": "<start>", "end": "<end>" } }'| Input | Type | What it is |
|---|---|---|
summaryrequired | string | The event's title |
startrequired | string | When it starts (RFC 3339, e.g. 2026-11-02T10:00:00-05:00) |
endrequired | string | When it ends (RFC 3339) |
calendar_id | string | Leave empty for the main calendar |
description | string | Notes on the event |
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Meet
Install Google Meet's typed package for your language:
pip install operate-as-google-meetgoogle-meet.conference_records_getcurl -X POST https://api.operate.as/v1/actions/google-meet.conference_records_get \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "name": "<name>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-meet.conference_records_get
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Cloud Search
Install Google Cloud Search's typed package for your language:
pip install operate-as-google-cloud-searchgoogle-cloud-search.debug_datasources_items_check_accesscurl -X POST https://api.operate.as/v1/actions/google-cloud-search.debug_datasources_items_check_access \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "name": "<name>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-cloud-search.debug_datasources_items_check_access
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Cloud Storage
Install Google Cloud Storage's typed package for your language:
pip install operate-as-google-cloud-storagegoogle-cloud-storage.anywhere_caches_disablecurl -X POST https://api.operate.as/v1/actions/google-cloud-storage.anywhere_caches_disable \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "bucket": "<bucket>", "anywhere_cache_id": "<anywhere_cache_id>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-cloud-storage.anywhere_caches_disable
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Docs
Install Google Docs's typed package for your language:
pip install operate-as-google-docsgoogle-docs.documents_batch_updatecurl -X POST https://api.operate.as/v1/actions/google-docs.documents_batch_update \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "document_id": "<document_id>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-docs.documents_batch_update
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Drive
Install Google Drive's typed package for your language:
pip install operate-as-drivedrive.list_filescurl -X POST https://api.operate.as/v1/actions/drive.list_files \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": {} }'| Input | Type | What it is |
|---|---|---|
query | string | A Drive search, e.g. name contains 'invoice' |
page_size | integer | At most this many |
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Keep
Install Google Keep's typed package for your language:
pip install operate-as-google-keepgoogle-keep.notes_createcurl -X POST https://api.operate.as/v1/actions/google-keep.notes_create \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": {} }'Every input, with its JSON Schema: GET /v1/actions/google-keep.notes_create
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Photos
Install Google Photos's typed package for your language:
pip install operate-as-google-photosgoogle-photos.albums_add_enrichmentcurl -X POST https://api.operate.as/v1/actions/google-photos.albums_add_enrichment \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "album_id": "<album_id>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-photos.albums_add_enrichment
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Slides
Install Google Slides's typed package for your language:
pip install operate-as-google-slidesgoogle-slides.presentations_batch_updatecurl -X POST https://api.operate.as/v1/actions/google-slides.presentations_batch_update \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "presentation_id": "<presentation_id>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-slides.presentations_batch_update
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Vault
Install Google Vault's typed package for your language:
pip install operate-as-google-vaultgoogle-vault.matters_add_permissionscurl -X POST https://api.operate.as/v1/actions/google-vault.matters_add_permissions \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "matter_id": "<matter_id>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-vault.matters_add_permissions
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Chat
Install Google Chat's typed package for your language:
pip install operate-as-google-chatgoogle-chat.custom_emojis_createcurl -X POST https://api.operate.as/v1/actions/google-chat.custom_emojis_create \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": {} }'Every input, with its JSON Schema: GET /v1/actions/google-chat.custom_emojis_create
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Contacts
Install Google Contacts's typed package for your language:
pip install operate-as-google-contactsgoogle-contacts.contact_groups_batch_getcurl -X POST https://api.operate.as/v1/actions/google-contacts.contact_groups_batch_get \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": {} }'Every input, with its JSON Schema: GET /v1/actions/google-contacts.contact_groups_batch_get
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Campaign Manager 360
Install Campaign Manager 360's typed package for your language:
pip install operate-as-campaign-manager-360campaign-manager-360.account_active_ad_summaries_getcurl -X POST https://api.operate.as/v1/actions/campaign-manager-360.account_active_ad_summaries_get \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "profile_id": "<profile_id>", "summary_account_id": "<summary_account_id>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/campaign-manager-360.account_active_ad_summaries_get
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Display & Video 360
Install Display & Video 360's typed package for your language:
pip install operate-as-display-video-360display-video-360.advertisers_ad_assets_bulk_createcurl -X POST https://api.operate.as/v1/actions/display-video-360.advertisers_ad_assets_bulk_create \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "advertiser_id": "<advertiser_id>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/display-video-360.advertisers_ad_assets_bulk_create
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Ad Manager
Install Google Ad Manager's typed package for your language:
pip install operate-as-google-ad-managergoogle-ad-manager.networks_ad_rules_batch_activatecurl -X POST https://api.operate.as/v1/actions/google-ad-manager.networks_ad_rules_batch_activate \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "parent": "<parent>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-ad-manager.networks_ad_rules_batch_activate
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google AdMob
Install Google AdMob's typed package for your language:
pip install operate-as-google-admobgoogle-admob.accounts_ad_units_listcurl -X POST https://api.operate.as/v1/actions/google-admob.accounts_ad_units_list \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "parent": "<parent>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-admob.accounts_ad_units_list
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Ads
Install Google Ads's typed package for your language:
pip install operate-as-google-adsgoogle-ads.audience_insights_list_insights_eligible_datescurl -X POST https://api.operate.as/v1/actions/google-ads.audience_insights_list_insights_eligible_dates \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": {} }'Every input, with its JSON Schema: GET /v1/actions/google-ads.audience_insights_list_insights_eligible_dates
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google AdSense
Install Google AdSense's typed package for your language:
pip install operate-as-google-adsensegoogle-adsense.accounts_adclients_adunits_createcurl -X POST https://api.operate.as/v1/actions/google-adsense.accounts_adclients_adunits_create \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "parent": "<parent>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-adsense.accounts_adclients_adunits_create
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Business Profile
Install Google Business Profile's typed package for your language:
pip install operate-as-google-business-profilegoogle-business-profile.accounts_locations_createcurl -X POST https://api.operate.as/v1/actions/google-business-profile.accounts_locations_create \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "parent": "<parent>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-business-profile.accounts_locations_create
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Local Services Ads
Install Google Local Services Ads's typed package for your language:
pip install operate-as-google-local-services-adsgoogle-local-services-ads.account_reports_searchcurl -X POST https://api.operate.as/v1/actions/google-local-services-ads.account_reports_search \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": {} }'Every input, with its JSON Schema: GET /v1/actions/google-local-services-ads.account_reports_search
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Wallet
Install Google Wallet's typed package for your language:
pip install operate-as-google-walletgoogle-wallet.eventticketclass_addmessagecurl -X POST https://api.operate.as/v1/actions/google-wallet.eventticketclass_addmessage \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "resource_id": "<resource_id>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-wallet.eventticketclass_addmessage
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Search Ads 360
Install Search Ads 360's typed package for your language:
pip install operate-as-search-ads-360search-ads-360.customers_custom_columns_getcurl -X POST https://api.operate.as/v1/actions/search-ads-360.customers_custom_columns_get \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "resource_name": "<resource_name>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/search-ads-360.customers_custom_columns_get
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Blogger
Install Blogger's typed package for your language:
pip install operate-as-bloggerblogger.blog_user_infos_getcurl -X POST https://api.operate.as/v1/actions/blogger.blog_user_infos_get \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "user_id": "<user_id>", "blog_id": "<blog_id>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/blogger.blog_user_infos_get
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}YouTube
Install YouTube's typed package for your language:
pip install operate-as-youtubeyoutube.abuse_reports_insertcurl -X POST https://api.operate.as/v1/actions/youtube.abuse_reports_insert \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "part": "<part>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/youtube.abuse_reports_insert
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Analytics
Install Google Analytics's typed package for your language:
pip install operate-as-google-analyticsgoogle-analytics.analyticsadmin_account_summaries_listcurl -X POST https://api.operate.as/v1/actions/google-analytics.analyticsadmin_account_summaries_list \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": {} }'Every input, with its JSON Schema: GET /v1/actions/google-analytics.analyticsadmin_account_summaries_list
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Search Console
Install Google Search Console's typed package for your language:
pip install operate-as-search-consolesearch-console.indexing_url_notifications_get_metadatacurl -X POST https://api.operate.as/v1/actions/search-console.indexing_url_notifications_get_metadata \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": {} }'Every input, with its JSON Schema: GET /v1/actions/search-console.indexing_url_notifications_get_metadata
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Tag Manager
Install Google Tag Manager's typed package for your language:
pip install operate-as-google-tag-managergoogle-tag-manager.accounts_containers_createcurl -X POST https://api.operate.as/v1/actions/google-tag-manager.accounts_containers_create \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "parent": "<parent>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-tag-manager.accounts_containers_create
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Classroom
Install Google Classroom's typed package for your language:
pip install operate-as-google-classroomgoogle-classroom.courses_aliases_createcurl -X POST https://api.operate.as/v1/actions/google-classroom.courses_aliases_create \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "course_id": "<course_id>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-classroom.courses_aliases_create
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Tasks
Install Google Tasks's typed package for your language:
pip install operate-as-google-tasksgoogle-tasks.tasklists_deletecurl -X POST https://api.operate.as/v1/actions/google-tasks.tasklists_delete \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "tasklist": "<tasklist>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-tasks.tasklists_delete
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Forms
Install Google Forms's typed package for your language:
pip install operate-as-google-formsgoogle-forms.forms_batch_updatecurl -X POST https://api.operate.as/v1/actions/google-forms.forms_batch_update \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "form_id": "<form_id>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-forms.forms_batch_update
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Merchant Center
Install Google Merchant Center's typed package for your language:
pip install operate-as-google-merchant-centergoogle-merchant-center.accounts_autofeed_settings_get_autofeed_scurl -X POST https://api.operate.as/v1/actions/google-merchant-center.accounts_autofeed_settings_get_autofeed_s \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "name": "<name>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-merchant-center.accounts_autofeed_settings_get_autofeed_s
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Books
Install Google Books's typed package for your language:
pip install operate-as-google-booksgoogle-books.bookshelves_getcurl -X POST https://api.operate.as/v1/actions/google-books.bookshelves_get \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "shelf": "<shelf>", "user_id": "<user_id>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-books.bookshelves_get
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Chrome Web Store
Install Chrome Web Store's typed package for your language:
pip install operate-as-google-chrome-web-storegoogle-chrome-web-store.media_uploadcurl -X POST https://api.operate.as/v1/actions/google-chrome-web-store.media_upload \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "name": "<name>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-chrome-web-store.media_upload
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Firebase
Install Firebase's typed package for your language:
pip install operate-as-firebasefirebase.available_projects_listcurl -X POST https://api.operate.as/v1/actions/firebase.available_projects_list \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": {} }'Every input, with its JSON Schema: GET /v1/actions/firebase.available_projects_list
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Apps Script
Install Google Apps Script's typed package for your language:
pip install operate-as-apps-scriptapps-script.processes_listcurl -X POST https://api.operate.as/v1/actions/apps-script.processes_list \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": {} }'Every input, with its JSON Schema: GET /v1/actions/apps-script.processes_list
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Cloud
Install Google Cloud's typed package for your language:
pip install operate-as-google-cloudgoogle-cloud.accessapproval_folders_approval_requests_approvecurl -X POST https://api.operate.as/v1/actions/google-cloud.accessapproval_folders_approval_requests_approve \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "name": "<name>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-cloud.accessapproval_folders_approval_requests_approve
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Play Console
Install Google Play Console's typed package for your language:
pip install operate-as-google-playgoogle-play.applications_data_safetycurl -X POST https://api.operate.as/v1/actions/google-play.applications_data_safety \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "package_name": "<package_name>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/google-play.applications_data_safety
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Workspace Admin
Install Google Workspace Admin's typed package for your language:
pip install operate-as-google-workspace-admingoogle-workspace-admin.alertcenter_alerts_batch_deletecurl -X POST https://api.operate.as/v1/actions/google-workspace-admin.alertcenter_alerts_batch_delete \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": {} }'Every input, with its JSON Schema: GET /v1/actions/google-workspace-admin.alertcenter_alerts_batch_delete
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Dialogflow CX
Install Dialogflow CX's typed package for your language:
pip install operate-as-dialogflowdialogflow.projects_agent_entity_types_batch_deletecurl -X POST https://api.operate.as/v1/actions/dialogflow.projects_agent_entity_types_batch_delete \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": { "parent": "<parent>" } }'Shows the required inputs. Every input, with its JSON Schema: GET /v1/actions/dialogflow.projects_agent_entity_types_batch_delete
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Google Cloud Agent Platform
Install Google Cloud Agent Platform's typed package for your language:
pip install operate-as-google-agent-platformgoogle-agent-platform.batch_prediction_jobs_createcurl -X POST https://api.operate.as/v1/actions/google-agent-platform.batch_prediction_jobs_create \ -H "Authorization: Bearer $OPERATE_AS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "clientId": "6f1c2a7e-...", "input": {} }'Every input, with its JSON Schema: GET /v1/actions/google-agent-platform.batch_prediction_jobs_create
{ "status": 200, "data": { "…": "the service's own response" }, "encoding": "json"}Pass-through
The service key goes after the client ID, then the path from Google's API. Sheets' address has no version, so you add v4; Calendar's, Gmail's and Drive's already include it.
See Pass-through requests for the full request and response format.
GET /v1/clients/{clientId}/sheets/v4/spreadsheets/{spreadsheetId}/values/Sheet1!A1:D20
GET /v1/clients/{clientId}/calendar/calendars/primary/events?maxResults=10
GET /v1/clients/{clientId}/gmail/users/me/messages?maxResults=10
GET /v1/clients/{clientId}/drive/files?pageSize=20GET /v1/clients/{clientId}/sheets/v4/spreadsheets/{spreadsheetId}/values/Sheet1!A1:D20
Authorization: Bearer oa_...When access ends
| How long access lasts | About an hour at a time. Operate As renews it before it runs out and checks every connection daily. |
| Renewal | The renewal key stops working if it isn't used for six months. Daily renewal keeps it in use. |
| What ends it | Your client removes the app in their Google account, changes their password (if Gmail is connected), or a Workspace admin restricts the app. |
| When it's removed | We cancel the access with Google too. |
See Keeping access alive and Removing access.
HTTP/1.1 409 ConflictContent-Type: application/json{ "detail": "Miller Dental's Google access ended. Send them their link to reconnect."}{ "id": "evt_3f9a1c…", "type": "connection.expired", "createdAt": "2026-10-16T08:00:00+00:00", "data": { "clientId": "6f1c2a7e-...", "clientName": "Miller Dental", "provider": "google", "services": [ "bigquery", "sheets", "gmail", "postmaster-tools", "calendar", "google-meet", "google-cloud-search", "google-cloud-storage", "google-docs", "drive", "google-keep", "google-photos", "google-slides", "google-vault", "google-chat", "google-contacts", "campaign-manager-360", "display-video-360", "google-ad-manager", "google-admob", "google-ads", "google-adsense", "google-business-profile", "google-local-services-ads", "google-wallet", "search-ads-360", "blogger", "youtube", "google-analytics", "search-console", "google-tag-manager", "google-classroom", "google-tasks", "google-forms", "google-merchant-center", "google-books", "google-chrome-web-store", "firebase", "apps-script", "google-cloud", "google-play", "google-workspace-admin", "dialogflow", "google-agent-platform" ], "reconnectUrl": "https://…" }}