Google Workspace APIs providing access to Gmail, Google Drive, Docs, Sheets, and Calendar. Best for workflows that need to send emails, manage files, read/write spreadsheets, or schedule calendar events. The broadest productivity suite API — covers email, storage, documents, and scheduling in one provider, unlike Notion (structured knowledge) or Zoom (meetings only).
17 example endpoints available through Lava’s AI Gateway. See the Google Workspace API docs for full documentation.
This provider requires your own credentials — connect your API key or OAuth account before use.
This is a catch-all provider — any valid URL under https://www.googleapis.com is supported. Gmail, Drive, Docs, Sheets, and Calendar APIs. Multiple base URLs — use get_provider_docs for endpoint reference. The endpoints below are curated examples.
Endpoints
List Gmail messages
GET https://gmail.googleapis.com/gmail/v1/users/me/messages — Free
const data = await lava . gateway ( 'https://gmail.googleapis.com/gmail/v1/users/me/messages' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fgmail.googleapis.com%2Fgmail%2Fv1%2Fusers%2Fme%2Fmessages" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
List Drive files
GET https://www.googleapis.com/drive/v3/files — Free
const data = await lava . gateway ( 'https://www.googleapis.com/drive/v3/files' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.googleapis.com%2Fdrive%2Fv3%2Ffiles" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
List calendar events
GET https://www.googleapis.com/calendar/v3/calendars/primary/events — Free
const data = await lava . gateway ( 'https://www.googleapis.com/calendar/v3/calendars/primary/events' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.googleapis.com%2Fcalendar%2Fv3%2Fcalendars%2Fprimary%2Fevents" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Get spreadsheet data
GET https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId} — Free
const data = await lava . gateway ( 'https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fsheets.googleapis.com%2Fv4%2Fspreadsheets%2F%7BspreadsheetId%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Get document content
GET https://docs.googleapis.com/v1/documents/{documentId} — Free
const data = await lava . gateway ( 'https://docs.googleapis.com/v1/documents/{documentId}' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fdocs.googleapis.com%2Fv1%2Fdocuments%2F%7BdocumentId%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Send an email message
POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send — Free
const data = await lava . gateway ( 'https://gmail.googleapis.com/gmail/v1/users/me/messages/send' , { body: { "raw" : "<base64-encoded-RFC2822-message>" } });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fgmail.googleapis.com%2Fgmail%2Fv1%2Fusers%2Fme%2Fmessages%2Fsend" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"raw":"<base64-encoded-RFC2822-message>"}'
Permanently delete an email message
DELETE https://gmail.googleapis.com/gmail/v1/users/me/messages/{messageId} — Free
const data = await lava . gateway ( 'https://gmail.googleapis.com/gmail/v1/users/me/messages/{messageId}' , { method: 'DELETE' });
curl -X DELETE "https://api.lava.so/v1/forward?u=https%3A%2F%2Fgmail.googleapis.com%2Fgmail%2Fv1%2Fusers%2Fme%2Fmessages%2F%7BmessageId%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json"
POST https://www.googleapis.com/drive/v3/files — Free
const data = await lava . gateway ( 'https://www.googleapis.com/drive/v3/files' , {
body: {
"name" : "New Folder" ,
"mimeType" : "application/vnd.google-apps.folder"
},
});
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.googleapis.com%2Fdrive%2Fv3%2Ffiles" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"name":"New Folder","mimeType":"application/vnd.google-apps.folder"}'
PATCH https://www.googleapis.com/drive/v3/files/{fileId} — Free
const data = await lava . gateway ( 'https://www.googleapis.com/drive/v3/files/{fileId}' , { method: 'PATCH' , body: { "name" : "Renamed File" } });
curl -X PATCH "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.googleapis.com%2Fdrive%2Fv3%2Ffiles%2F%7BfileId%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"name":"Renamed File"}'
Permanently delete a file from Drive
DELETE https://www.googleapis.com/drive/v3/files/{fileId} — Free
const data = await lava . gateway ( 'https://www.googleapis.com/drive/v3/files/{fileId}' , { method: 'DELETE' });
curl -X DELETE "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.googleapis.com%2Fdrive%2Fv3%2Ffiles%2F%7BfileId%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json"
Apply updates to a document (insert text, format, etc.)
POST https://docs.googleapis.com/v1/documents/{documentId}:batchUpdate — Free
const data = await lava . gateway ( 'https://docs.googleapis.com/v1/documents/{documentId}:batchUpdate' , {
body: {
"requests" : [
{
"insertText" : {
"location" : {
"index" : 1
},
"text" : "Hello, world!"
}
}
]
},
});
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fdocs.googleapis.com%2Fv1%2Fdocuments%2F%7BdocumentId%7D%3AbatchUpdate" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"requests":[{"insertText":{"location":{"index":1},"text":"Hello, world!"}}]}'
Append rows to a spreadsheet
POST https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{range}:append?valueInputOption=USER_ENTERED — Free
const data = await lava . gateway ( 'https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{range}:append?valueInputOption=USER_ENTERED' , { body: { "values" : [[ "Row 1 Col A" , "Row 1 Col B" ]]} });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fsheets.googleapis.com%2Fv4%2Fspreadsheets%2F%7BspreadsheetId%7D%2Fvalues%2F%7Brange%7D%3Aappend%3FvalueInputOption%3DUSER_ENTERED" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"values":[["Row 1 Col A","Row 1 Col B"]]}'
Update cell values in a spreadsheet
PUT https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{range}?valueInputOption=USER_ENTERED — Free
const data = await lava . gateway ( 'https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{range}?valueInputOption=USER_ENTERED' , { method: 'PUT' , body: { "values" : [[ "Updated value" ]]} });
curl -X PUT "https://api.lava.so/v1/forward?u=https%3A%2F%2Fsheets.googleapis.com%2Fv4%2Fspreadsheets%2F%7BspreadsheetId%7D%2Fvalues%2F%7Brange%7D%3FvalueInputOption%3DUSER_ENTERED" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"values":[["Updated value"]]}'
Create a calendar event
POST https://www.googleapis.com/calendar/v3/calendars/primary/events — Free
const data = await lava . gateway ( 'https://www.googleapis.com/calendar/v3/calendars/primary/events' , {
body: {
"summary" : "Team standup" ,
"start" : {
"dateTime" : "2025-01-15T09:00:00-07:00"
},
"end" : {
"dateTime" : "2025-01-15T09:30:00-07:00"
}
},
});
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.googleapis.com%2Fcalendar%2Fv3%2Fcalendars%2Fprimary%2Fevents" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"summary":"Team standup","start":{"dateTime":"2025-01-15T09:00:00-07:00"},"end":{"dateTime":"2025-01-15T09:30:00-07:00"}}'
Replace a calendar event entirely
PUT https://www.googleapis.com/calendar/v3/calendars/primary/events/{eventId} — Free
const data = await lava . gateway ( 'https://www.googleapis.com/calendar/v3/calendars/primary/events/{eventId}' , {
method: 'PUT' ,
body: {
"summary" : "Updated meeting" ,
"start" : {
"dateTime" : "2025-01-15T10:00:00-07:00"
},
"end" : {
"dateTime" : "2025-01-15T11:00:00-07:00"
}
},
});
curl -X PUT "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.googleapis.com%2Fcalendar%2Fv3%2Fcalendars%2Fprimary%2Fevents%2F%7BeventId%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"summary":"Updated meeting","start":{"dateTime":"2025-01-15T10:00:00-07:00"},"end":{"dateTime":"2025-01-15T11:00:00-07:00"}}'
Partially update a calendar event
PATCH https://www.googleapis.com/calendar/v3/calendars/primary/events/{eventId} — Free
const data = await lava . gateway ( 'https://www.googleapis.com/calendar/v3/calendars/primary/events/{eventId}' , { method: 'PATCH' , body: { "summary" : "Renamed event" } });
curl -X PATCH "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.googleapis.com%2Fcalendar%2Fv3%2Fcalendars%2Fprimary%2Fevents%2F%7BeventId%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"summary":"Renamed event"}'
Delete a calendar event
DELETE https://www.googleapis.com/calendar/v3/calendars/primary/events/{eventId} — Free
const data = await lava . gateway ( 'https://www.googleapis.com/calendar/v3/calendars/primary/events/{eventId}' , { method: 'DELETE' });
curl -X DELETE "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.googleapis.com%2Fcalendar%2Fv3%2Fcalendars%2Fprimary%2Fevents%2F%7BeventId%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json"
Next Steps
All Providers Browse all supported AI providers
Forward Proxy Learn how to construct proxy URLs and authenticate requests