This is the full reference documentation for the Google-Drive agent connector.
Supported entities and actions
The Google-Drive connector supports the following entities and actions.
| Entity | Actions |
|---|
| Files | List, Get, Create, Update, Delete, Download, Context Store Search, Context Store SQL Query, Semantic Search |
| Files Upload | Create |
| Files Export | Download |
| Drives | List, Get |
| Permissions | List, Get |
| Comments | List, Get |
| Replies | List, Get |
| Revisions | List, Get |
| Changes | List |
| Changes Start Page Token | Get |
| About | Get |
Files
Files List
Lists the user's files. Returns a paginated list of files.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "files",
"action": "list"
}'
Python SDK
await google_drive.files.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "files",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
pageSize | integer | No | Maximum number of files to return per page (1-1000) |
pageToken | string | No | Token for continuing a previous list request |
q | string | No | Query string for searching files |
orderBy | string | No | Sort order (e.g., 'modifiedTime desc', 'name') |
fields | string | No | Fields to include in the response |
spaces | string | No | Comma-separated list of spaces to query (drive, appDataFolder) |
corpora | string | No | Bodies of items to search (user, drive, allDrives) |
driveId | string | No | ID of the shared drive to search |
includeItemsFromAllDrives | boolean | No | Whether to include items from all drives |
supportsAllDrives | boolean | No | Whether the requesting application supports both My Drives and shared drives |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
id | string | |
name | string | null | |
mimeType | string | null | |
description | string | null | |
starred | boolean | null | |
trashed | boolean | null | |
explicitlyTrashed | boolean | null | |
parents | array | null | |
properties | object | null | |
appProperties | object | null | |
spaces | array | null | |
version | string | null | |
webContentLink | string | null | |
webViewLink | string | null | |
iconLink | string | null | |
hasThumbnail | boolean | null | |
thumbnailLink | string | null | |
thumbnailVersion | string | null | |
viewedByMe | boolean | null | |
viewedByMeTime | string | null | |
createdTime | string | null | |
modifiedTime | string | null | |
modifiedByMeTime | string | null | |
modifiedByMe | boolean | null | |
sharedWithMeTime | string | null | |
sharingUser | object | any | |
owners | array | null | |
owners[].kind | string | null | |
owners[].displayName | string | null | |
owners[].photoLink | string | null | |
owners[].me | boolean | null | |
owners[].permissionId | string | null | |
owners[].emailAddress | string | null | |
driveId | string | null | |
lastModifyingUser | object | any | |
shared | boolean | null | |
ownedByMe | boolean | null | |
capabilities | object | null | |
viewersCanCopyContent | boolean | null | |
copyRequiresWriterPermission | boolean | null | |
writersCanShare | boolean | null | |
permissionIds | array | null | |
folderColorRgb | string | null | |
originalFilename | string | null | |
fullFileExtension | string | null | |
fileExtension | string | null | |
md5Checksum | string | null | |
sha1Checksum | string | null | |
sha256Checksum | string | null | |
size | string | null | |
quotaBytesUsed | string | null | |
headRevisionId | string | null | |
isAppAuthorized | boolean | null | |
exportLinks | object | null | |
shortcutDetails | object | null | |
contentRestrictions | array | null | |
resourceKey | string | null | |
linkShareMetadata | object | null | |
labelInfo | object | null | |
trashedTime | string | null | |
trashingUser | object | any | |
imageMediaMetadata | object | null | |
videoMediaMetadata | object | null | |
| Field Name | Type | Description |
|---|
nextPageToken | string | null | |
incompleteSearch | boolean | null | |
Files Get
Gets a file's metadata by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "files",
"action": "get",
"params": {
"fileId": "<str>"
}
}'
Python SDK
await google_drive.files.get(
file_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "files",
"action": "get",
"params": {
"fileId": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
fileId | string | Yes | The ID of the file |
fields | string | No | Fields to include in the response |
supportsAllDrives | boolean | No | Whether the requesting application supports both My Drives and shared drives |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
id | string | |
name | string | null | |
mimeType | string | null | |
description | string | null | |
starred | boolean | null | |
trashed | boolean | null | |
explicitlyTrashed | boolean | null | |
parents | array | null | |
properties | object | null | |
appProperties | object | null | |
spaces | array | null | |
version | string | null | |
webContentLink | string | null | |
webViewLink | string | null | |
iconLink | string | null | |
hasThumbnail | boolean | null | |
thumbnailLink | string | null | |
thumbnailVersion | string | null | |
viewedByMe | boolean | null | |
viewedByMeTime | string | null | |
createdTime | string | null | |
modifiedTime | string | null | |
modifiedByMeTime | string | null | |
modifiedByMe | boolean | null | |
sharedWithMeTime | string | null | |
sharingUser | object | any | |
owners | array | null | |
owners[].kind | string | null | |
owners[].displayName | string | null | |
owners[].photoLink | string | null | |
owners[].me | boolean | null | |
owners[].permissionId | string | null | |
owners[].emailAddress | string | null | |
driveId | string | null | |
lastModifyingUser | object | any | |
shared | boolean | null | |
ownedByMe | boolean | null | |
capabilities | object | null | |
viewersCanCopyContent | boolean | null | |
copyRequiresWriterPermission | boolean | null | |
writersCanShare | boolean | null | |
permissionIds | array | null | |
folderColorRgb | string | null | |
originalFilename | string | null | |
fullFileExtension | string | null | |
fileExtension | string | null | |
md5Checksum | string | null | |
sha1Checksum | string | null | |
sha256Checksum | string | null | |
size | string | null | |
quotaBytesUsed | string | null | |
headRevisionId | string | null | |
isAppAuthorized | boolean | null | |
exportLinks | object | null | |
shortcutDetails | object | null | |
contentRestrictions | array | null | |
resourceKey | string | null | |
linkShareMetadata | object | null | |
labelInfo | object | null | |
trashedTime | string | null | |
trashingUser | object | any | |
imageMediaMetadata | object | null | |
videoMediaMetadata | object | null | |
Files Create
Creates a new file or folder in Google Drive (metadata only, no content).
To create a folder, set mimeType to 'application/vnd.google-apps.folder'.
To create a Google Doc, use 'application/vnd.google-apps.document'.
To create a Google Sheet, use 'application/vnd.google-apps.spreadsheet'.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "files",
"action": "create",
"params": {
"name": "<str>",
"mimeType": "<str>",
"parents": [],
"description": "<str>"
}
}'
Python SDK
await google_drive.files.create(
name="<str>",
mime_type="<str>",
parents=[],
description="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "files",
"action": "create",
"params": {
"name": "<str>",
"mimeType": "<str>",
"parents": [],
"description": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
name | string | Yes | The name of the file or folder |
mimeType | string | No | The MIME type of the file. Use 'application/vnd.google-apps.folder' for folders, |
| 'application/vnd.google-apps.document' for Google Docs, | | | |
| 'application/vnd.google-apps.spreadsheet' for Google Sheets. | | | |
| | | |
parents | array<string> | No | The IDs of the parent folders. If not specified, the file is placed in My Drive root. |
description | string | No | A short description of the file |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
id | string | |
name | string | null | |
mimeType | string | null | |
description | string | null | |
starred | boolean | null | |
trashed | boolean | null | |
explicitlyTrashed | boolean | null | |
parents | array | null | |
properties | object | null | |
appProperties | object | null | |
spaces | array | null | |
version | string | null | |
webContentLink | string | null | |
webViewLink | string | null | |
iconLink | string | null | |
hasThumbnail | boolean | null | |
thumbnailLink | string | null | |
thumbnailVersion | string | null | |
viewedByMe | boolean | null | |
viewedByMeTime | string | null | |
createdTime | string | null | |
modifiedTime | string | null | |
modifiedByMeTime | string | null | |
modifiedByMe | boolean | null | |
sharedWithMeTime | string | null | |
sharingUser | object | any | |
owners | array | null | |
owners[].kind | string | null | |
owners[].displayName | string | null | |
owners[].photoLink | string | null | |
owners[].me | boolean | null | |
owners[].permissionId | string | null | |
owners[].emailAddress | string | null | |
driveId | string | null | |
lastModifyingUser | object | any | |
shared | boolean | null | |
ownedByMe | boolean | null | |
capabilities | object | null | |
viewersCanCopyContent | boolean | null | |
copyRequiresWriterPermission | boolean | null | |
writersCanShare | boolean | null | |
permissionIds | array | null | |
folderColorRgb | string | null | |
originalFilename | string | null | |
fullFileExtension | string | null | |
fileExtension | string | null | |
md5Checksum | string | null | |
sha1Checksum | string | null | |
sha256Checksum | string | null | |
size | string | null | |
quotaBytesUsed | string | null | |
headRevisionId | string | null | |
isAppAuthorized | boolean | null | |
exportLinks | object | null | |
shortcutDetails | object | null | |
contentRestrictions | array | null | |
resourceKey | string | null | |
linkShareMetadata | object | null | |
labelInfo | object | null | |
trashedTime | string | null | |
trashingUser | object | any | |
imageMediaMetadata | object | null | |
videoMediaMetadata | object | null | |
Files Update
Updates a file's metadata. Use addParents/removeParents query parameters
to move a file between folders.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "files",
"action": "update",
"params": {
"name": "<str>",
"description": "<str>",
"mimeType": "<str>",
"fileId": "<str>",
"addParents": "<str>",
"removeParents": "<str>",
"supportsAllDrives": true
}
}'
Python SDK
await google_drive.files.update(
name="<str>",
description="<str>",
mime_type="<str>",
file_id="<str>",
add_parents="<str>",
remove_parents="<str>",
supports_all_drives=True
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "files",
"action": "update",
"params": {
"name": "<str>",
"description": "<str>",
"mimeType": "<str>",
"fileId": "<str>",
"addParents": "<str>",
"removeParents": "<str>",
"supportsAllDrives": True
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
name | string | No | The new name of the file |
description | string | No | A new description for the file |
mimeType | string | No | The new MIME type of the file |
fileId | string | Yes | The ID of the file to update |
addParents | string | No | Comma-separated list of parent IDs to add |
removeParents | string | No | Comma-separated list of parent IDs to remove |
supportsAllDrives | boolean | No | Whether the requesting application supports both My Drives and shared drives |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
id | string | |
name | string | null | |
mimeType | string | null | |
description | string | null | |
starred | boolean | null | |
trashed | boolean | null | |
explicitlyTrashed | boolean | null | |
parents | array | null | |
properties | object | null | |
appProperties | object | null | |
spaces | array | null | |
version | string | null | |
webContentLink | string | null | |
webViewLink | string | null | |
iconLink | string | null | |
hasThumbnail | boolean | null | |
thumbnailLink | string | null | |
thumbnailVersion | string | null | |
viewedByMe | boolean | null | |
viewedByMeTime | string | null | |
createdTime | string | null | |
modifiedTime | string | null | |
modifiedByMeTime | string | null | |
modifiedByMe | boolean | null | |
sharedWithMeTime | string | null | |
sharingUser | object | any | |
owners | array | null | |
owners[].kind | string | null | |
owners[].displayName | string | null | |
owners[].photoLink | string | null | |
owners[].me | boolean | null | |
owners[].permissionId | string | null | |
owners[].emailAddress | string | null | |
driveId | string | null | |
lastModifyingUser | object | any | |
shared | boolean | null | |
ownedByMe | boolean | null | |
capabilities | object | null | |
viewersCanCopyContent | boolean | null | |
copyRequiresWriterPermission | boolean | null | |
writersCanShare | boolean | null | |
permissionIds | array | null | |
folderColorRgb | string | null | |
originalFilename | string | null | |
fullFileExtension | string | null | |
fileExtension | string | null | |
md5Checksum | string | null | |
sha1Checksum | string | null | |
sha256Checksum | string | null | |
size | string | null | |
quotaBytesUsed | string | null | |
headRevisionId | string | null | |
isAppAuthorized | boolean | null | |
exportLinks | object | null | |
shortcutDetails | object | null | |
contentRestrictions | array | null | |
resourceKey | string | null | |
linkShareMetadata | object | null | |
labelInfo | object | null | |
trashedTime | string | null | |
trashingUser | object | any | |
imageMediaMetadata | object | null | |
videoMediaMetadata | object | null | |
Files Delete
Permanently deletes a file owned by the user without moving it to the trash.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "files",
"action": "delete",
"params": {
"fileId": "<str>"
}
}'
Python SDK
await google_drive.files.delete(
file_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "files",
"action": "delete",
"params": {
"fileId": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
fileId | string | Yes | The ID of the file to delete |
supportsAllDrives | boolean | No | Whether the requesting application supports both My Drives and shared drives |
Files Download
Downloads the raw binary content of a file (PDF, image, zip, uploaded .docx/.xlsx, etc.).
The Drive alt=media query parameter is applied automatically by this action, so you
normally do NOT need to pass alt -- the response is the file's bytes. (Without
alt=media Drive returns file metadata JSON instead of content, so it is forced here.)
This only works for binary files: for Google Workspace files (Docs, Sheets, Slides,
Drawings) use the files_export action with a mimeType instead -- downloading them
directly returns 403.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "files",
"action": "download",
"params": {
"fileId": "<str>"
}
}'
Python SDK
async for chunk in google_drive.files.download( file_id="<str>"):
file.write(chunk)
Note: Download operations return an async iterator of bytes chunks for memory-efficient streaming. Use async for to process chunks as they arrive.
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "files",
"action": "download",
"params": {
"fileId": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
fileId | string | Yes | The ID of the file to download |
alt | "media" | No | Applied automatically as 'media' by this action; you do not need to set it. |
acknowledgeAbuse | boolean | No | Whether the user is acknowledging the risk of downloading known malware or other abusive files |
supportsAllDrives | boolean | No | Whether the requesting application supports both My Drives and shared drives |
range_header | string | No | Optional Range header for partial downloads (e.g., 'bytes=0-99') |
Files Context Store Search
Search and filter files records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "files",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"id": "<str>"
}
}
}
}
}'
Python SDK
await google_drive.files.context_store_search(
query={"filter": {"eq": {"id": "<str>"}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "files",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": "<str>"}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
id | string | Unique identifier of the file in Google Drive. |
updated_at | string | Timestamp of the last modification to the file. |
file_name | string | Name of the file. |
file_path | string | Full path of the file within the synced Drive folder. |
mime_type | string | MIME type of the file. |
content | string | Extracted text content of the file. |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].id | string | Unique identifier of the file in Google Drive. |
data[].updated_at | string | Timestamp of the last modification to the file. |
data[].file_name | string | Name of the file. |
data[].file_path | string | Full path of the file within the synced Drive folder. |
data[].mime_type | string | MIME type of the file. |
data[].content | string | Extracted text content of the file. |
Files Context Store SQL Query
Run a SQL query against files records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "files",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await google_drive.files.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "files",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Files Semantic Search
Search the text content of your files by meaning rather than by exact keywords. Airbyte extracts each file's text, embeds a natural-language prompt, and returns the most similar passages of file content, ranked by relevance, each carrying its source-file attribution (such as name and path). Pass semantic={field, prompt, filter?, context_size?, min_similarity?, dedup?} to context_store_search instead of query. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "files",
"action": "context_store_search",
"params": {
"semantic": {"field": "content", "prompt": "<your natural-language query>"}
}
}'
Python SDK
Semantic search is passed through the generic execute method — the typed files.context_store_search helper only accepts query.
await google_drive.execute(
"files",
"context_store_search",
{"semantic": {"field": "content", "prompt": "<your natural-language query>"}},
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "files",
"action": "context_store_search",
"params": {
"semantic": {"field": "content", "prompt": "<your natural-language query>"}
}
}'
Semantic Parameters
| Parameter Name | Type | Required | Description |
|---|
semantic.field | string | Yes | Field to search semantically. Mutually exclusive with query. |
semantic.prompt | string | Yes | Natural-language query that is embedded and compared against stored passages. |
semantic.filter | object | No | Filter conditions (same shape/operators as query.filter). sort is not supported — results are ranked by similarity. |
semantic.context_size | integer | No | Characters of surrounding context to return per hit, up to the field's configured window. Omit to return the full configured window. |
semantic.min_similarity | number | No | Minimum similarity score in [-1.0, 1.0]. Omit for 0.25; scores below the threshold are discarded before deduplication and top-k selection. Use -1.0 to disable the cutoff. |
semantic.dedup | string | No | max (default) returns the single best-scoring passage per record; none returns multiple passages per record, still ranked by similarity and capped by limit. |
fields | array | No | Field paths to include in results (dot notation for nested fields). Applied to each hit's entity. |
limit | integer | No | Maximum results to return (default 10, maximum 100). |
Semantically Searchable Fields
| Field Name | Max Context (chars) | Description |
|---|
content | 2048 | Extracted text content of the file. |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching passages |
data[].entity | object | The matched source file |
data[].entity.id | string | Source file field |
data[].entity.updated_at | string | Source file field |
data[].entity.file_name | string | Source file field |
data[].entity.file_path | string | Source file field |
data[].entity.mime_type | string | Source file field |
data[].metadata | object | Match metadata |
data[].metadata.score | number | Similarity score |
data[].metadata.context | string | The matched passage text |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
Files Upload
Files Upload Create
Uploads a new file to Google Drive with both metadata and file content.
The file content must be base64-encoded in the file_content parameter.
Suitable for files up to 5MB. For larger files, use the Drive UI.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "files_upload",
"action": "create",
"params": {
"name": "<str>",
"file_content": "<str>",
"mimeType": "<str>",
"parents": [],
"description": "<str>",
"file_mime_type": "<str>",
"uploadType": "<str>",
"supportsAllDrives": true
}
}'
Python SDK
await google_drive.files_upload.create(
name="<str>",
file_content="<str>",
mime_type="<str>",
parents=[],
description="<str>",
file_mime_type="<str>",
upload_type="<str>",
supports_all_drives=True
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "files_upload",
"action": "create",
"params": {
"name": "<str>",
"file_content": "<str>",
"mimeType": "<str>",
"parents": [],
"description": "<str>",
"file_mime_type": "<str>",
"uploadType": "<str>",
"supportsAllDrives": True
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
name | string | Yes | The name of the file |
file_content | string | Yes | Base64-encoded file content to upload |
mimeType | string | No | The MIME type for the file metadata in Google Drive |
parents | array<string> | No | The IDs of the parent folders |
description | string | No | A short description of the file |
file_mime_type | string | No | The MIME type of the actual file content (e.g., 'application/pdf', 'image/png'). Defaults to 'application/octet-stream'. |
uploadType | "multipart" | No | The type of upload request (must be 'multipart') |
supportsAllDrives | boolean | No | Whether the requesting application supports both My Drives and shared drives |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
id | string | |
name | string | null | |
mimeType | string | null | |
description | string | null | |
starred | boolean | null | |
trashed | boolean | null | |
explicitlyTrashed | boolean | null | |
parents | array | null | |
properties | object | null | |
appProperties | object | null | |
spaces | array | null | |
version | string | null | |
webContentLink | string | null | |
webViewLink | string | null | |
iconLink | string | null | |
hasThumbnail | boolean | null | |
thumbnailLink | string | null | |
thumbnailVersion | string | null | |
viewedByMe | boolean | null | |
viewedByMeTime | string | null | |
createdTime | string | null | |
modifiedTime | string | null | |
modifiedByMeTime | string | null | |
modifiedByMe | boolean | null | |
sharedWithMeTime | string | null | |
sharingUser | object | any | |
owners | array | null | |
owners[].kind | string | null | |
owners[].displayName | string | null | |
owners[].photoLink | string | null | |
owners[].me | boolean | null | |
owners[].permissionId | string | null | |
owners[].emailAddress | string | null | |
driveId | string | null | |
lastModifyingUser | object | any | |
shared | boolean | null | |
ownedByMe | boolean | null | |
capabilities | object | null | |
viewersCanCopyContent | boolean | null | |
copyRequiresWriterPermission | boolean | null | |
writersCanShare | boolean | null | |
permissionIds | array | null | |
folderColorRgb | string | null | |
originalFilename | string | null | |
fullFileExtension | string | null | |
fileExtension | string | null | |
md5Checksum | string | null | |
sha1Checksum | string | null | |
sha256Checksum | string | null | |
size | string | null | |
quotaBytesUsed | string | null | |
headRevisionId | string | null | |
isAppAuthorized | boolean | null | |
exportLinks | object | null | |
shortcutDetails | object | null | |
contentRestrictions | array | null | |
resourceKey | string | null | |
linkShareMetadata | object | null | |
labelInfo | object | null | |
trashedTime | string | null | |
trashingUser | object | any | |
imageMediaMetadata | object | null | |
videoMediaMetadata | object | null | |
Files Export
Files Export Download
Exports a Google-NATIVE Workspace file (Docs, Sheets, Slides, Drawings --
mimeType application/vnd.google-apps.*) to a specified format. Use this ONLY for
those native types: exporting a binary file (PDF, image, uploaded .docx/.xlsx) returns
403 fileNotExportable -- for those use the files download action instead. If unsure
of a file's type, check its mimeType with files.get first.
Common export formats:
- application/pdf (all types)
- text/plain (Docs)
- text/csv (Sheets)
- application/vnd.openxmlformats-officedocument.wordprocessingml.document (Docs to .docx)
- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (Sheets to .xlsx)
- application/vnd.openxmlformats-officedocument.presentationml.presentation (Slides to .pptx)
Note: Export has a 10MB limit. For larger files, use the Drive UI.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "files_export",
"action": "download",
"params": {
"fileId": "<str>",
"mimeType": "<str>"
}
}'
Python SDK
async for chunk in google_drive.files_export.download( file_id="<str>", mime_type="<str>"):
file.write(chunk)
Note: Download operations return an async iterator of bytes chunks for memory-efficient streaming. Use async for to process chunks as they arrive.
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "files_export",
"action": "download",
"params": {
"fileId": "<str>",
"mimeType": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
fileId | string | Yes | The ID of the Google Workspace file to export |
mimeType | string | Yes | The MIME type of the format to export to. Common values: |
- application/pdf
- text/plain
- text/csv
- application/vnd.openxmlformats-officedocument.wordprocessingml.document
- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
- application/vnd.openxmlformats-officedocument.presentationml.presentation
|
|
range_header | string | No | Optional Range header for partial downloads (e.g., 'bytes=0-99') |
Drives
Drives List
Lists the user's shared drives
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "drives",
"action": "list"
}'
Python SDK
await google_drive.drives.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "drives",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
pageSize | integer | No | Maximum number of shared drives to return (1-100) |
pageToken | string | No | Token for continuing a previous list request |
q | string | No | Query string for searching shared drives |
useDomainAdminAccess | boolean | No | Issue the request as a domain administrator |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
id | string | |
name | string | null | |
colorRgb | string | null | |
backgroundImageLink | string | null | |
backgroundImageFile | object | null | |
capabilities | object | null | |
themeId | string | null | |
createdTime | string | null | |
hidden | boolean | null | |
restrictions | object | null | |
orgUnitId | string | null | |
| Field Name | Type | Description |
|---|
nextPageToken | string | null | |
Drives Get
Gets a shared drive's metadata by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "drives",
"action": "get",
"params": {
"driveId": "<str>"
}
}'
Python SDK
await google_drive.drives.get(
drive_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "drives",
"action": "get",
"params": {
"driveId": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
driveId | string | Yes | The ID of the shared drive |
useDomainAdminAccess | boolean | No | Issue the request as a domain administrator |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
id | string | |
name | string | null | |
colorRgb | string | null | |
backgroundImageLink | string | null | |
backgroundImageFile | object | null | |
capabilities | object | null | |
themeId | string | null | |
createdTime | string | null | |
hidden | boolean | null | |
restrictions | object | null | |
orgUnitId | string | null | |
Permissions
Permissions List
Lists a file's or shared drive's permissions
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "permissions",
"action": "list",
"params": {
"fileId": "<str>"
}
}'
Python SDK
await google_drive.permissions.list(
file_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "permissions",
"action": "list",
"params": {
"fileId": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
fileId | string | Yes | The ID of the file or shared drive |
pageSize | integer | No | Maximum number of permissions to return (1-100) |
pageToken | string | No | Token for continuing a previous list request |
supportsAllDrives | boolean | No | Whether the requesting application supports both My Drives and shared drives |
useDomainAdminAccess | boolean | No | Issue the request as a domain administrator |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
id | string | |
type | string | null | |
emailAddress | string | null | |
domain | string | null | |
role | string | null | |
view | string | null | |
allowFileDiscovery | boolean | null | |
displayName | string | null | |
photoLink | string | null | |
expirationTime | string | null | |
teamDrivePermissionDetails | array | null | |
permissionDetails | array | null | |
deleted | boolean | null | |
pendingOwner | boolean | null | |
| Field Name | Type | Description |
|---|
nextPageToken | string | null | |
Permissions Get
Gets a permission by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "permissions",
"action": "get",
"params": {
"fileId": "<str>",
"permissionId": "<str>"
}
}'
Python SDK
await google_drive.permissions.get(
file_id="<str>",
permission_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "permissions",
"action": "get",
"params": {
"fileId": "<str>",
"permissionId": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
fileId | string | Yes | The ID of the file |
permissionId | string | Yes | The ID of the permission |
supportsAllDrives | boolean | No | Whether the requesting application supports both My Drives and shared drives |
useDomainAdminAccess | boolean | No | Issue the request as a domain administrator |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
id | string | |
type | string | null | |
emailAddress | string | null | |
domain | string | null | |
role | string | null | |
view | string | null | |
allowFileDiscovery | boolean | null | |
displayName | string | null | |
photoLink | string | null | |
expirationTime | string | null | |
teamDrivePermissionDetails | array | null | |
permissionDetails | array | null | |
deleted | boolean | null | |
pendingOwner | boolean | null | |
Lists a file's comments
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "comments",
"action": "list",
"params": {
"fileId": "<str>"
}
}'
Python SDK
await google_drive.comments.list(
file_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "comments",
"action": "list",
"params": {
"fileId": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
fileId | string | Yes | The ID of the file |
pageSize | integer | No | Maximum number of comments to return (1-100) |
pageToken | string | No | Token for continuing a previous list request |
startModifiedTime | string | No | Minimum value of modifiedTime to filter by (RFC 3339) |
includeDeleted | boolean | No | Whether to include deleted comments |
fields | string | No | Fields to include in the response (required for comments) |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
id | string | |
createdTime | string | null | |
modifiedTime | string | null | |
author | object | any | |
htmlContent | string | null | |
content | string | null | |
deleted | boolean | null | |
resolved | boolean | null | |
quotedFileContent | object | null | |
anchor | string | null | |
replies | array | null | |
replies[].kind | string | null | |
replies[].id | string | |
replies[].createdTime | string | null | |
replies[].modifiedTime | string | null | |
replies[].author | object | any | |
replies[].htmlContent | string | null | |
replies[].content | string | null | |
replies[].deleted | boolean | null | |
replies[].action | string | null | |
mentionedEmailAddresses | array | null | |
assigneeEmailAddress | string | null | |
| Field Name | Type | Description |
|---|
nextPageToken | string | null | |
Gets a comment by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "comments",
"action": "get",
"params": {
"fileId": "<str>",
"commentId": "<str>"
}
}'
Python SDK
await google_drive.comments.get(
file_id="<str>",
comment_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "comments",
"action": "get",
"params": {
"fileId": "<str>",
"commentId": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
fileId | string | Yes | The ID of the file |
commentId | string | Yes | The ID of the comment |
includeDeleted | boolean | No | Whether to return deleted comments |
fields | string | No | Fields to include in the response (required for comments) |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
id | string | |
createdTime | string | null | |
modifiedTime | string | null | |
author | object | any | |
htmlContent | string | null | |
content | string | null | |
deleted | boolean | null | |
resolved | boolean | null | |
quotedFileContent | object | null | |
anchor | string | null | |
replies | array | null | |
replies[].kind | string | null | |
replies[].id | string | |
replies[].createdTime | string | null | |
replies[].modifiedTime | string | null | |
replies[].author | object | any | |
replies[].htmlContent | string | null | |
replies[].content | string | null | |
replies[].deleted | boolean | null | |
replies[].action | string | null | |
mentionedEmailAddresses | array | null | |
assigneeEmailAddress | string | null | |
Replies
Replies List
Lists a comment's replies
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "replies",
"action": "list",
"params": {
"fileId": "<str>",
"commentId": "<str>"
}
}'
Python SDK
await google_drive.replies.list(
file_id="<str>",
comment_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "replies",
"action": "list",
"params": {
"fileId": "<str>",
"commentId": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
fileId | string | Yes | The ID of the file |
commentId | string | Yes | The ID of the comment |
pageSize | integer | No | Maximum number of replies to return (1-100) |
pageToken | string | No | Token for continuing a previous list request |
includeDeleted | boolean | No | Whether to include deleted replies |
fields | string | No | Fields to include in the response (required for replies) |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
id | string | |
createdTime | string | null | |
modifiedTime | string | null | |
author | object | any | |
htmlContent | string | null | |
content | string | null | |
deleted | boolean | null | |
action | string | null | |
| Field Name | Type | Description |
|---|
nextPageToken | string | null | |
Replies Get
Gets a reply by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "replies",
"action": "get",
"params": {
"fileId": "<str>",
"commentId": "<str>",
"replyId": "<str>"
}
}'
Python SDK
await google_drive.replies.get(
file_id="<str>",
comment_id="<str>",
reply_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "replies",
"action": "get",
"params": {
"fileId": "<str>",
"commentId": "<str>",
"replyId": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
fileId | string | Yes | The ID of the file |
commentId | string | Yes | The ID of the comment |
replyId | string | Yes | The ID of the reply |
includeDeleted | boolean | No | Whether to return deleted replies |
fields | string | No | Fields to include in the response (required for replies) |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
id | string | |
createdTime | string | null | |
modifiedTime | string | null | |
author | object | any | |
htmlContent | string | null | |
content | string | null | |
deleted | boolean | null | |
action | string | null | |
Revisions
Revisions List
Lists a file's revisions
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "revisions",
"action": "list",
"params": {
"fileId": "<str>"
}
}'
Python SDK
await google_drive.revisions.list(
file_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "revisions",
"action": "list",
"params": {
"fileId": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
fileId | string | Yes | The ID of the file |
pageSize | integer | No | Maximum number of revisions to return (1-1000) |
pageToken | string | No | Token for continuing a previous list request |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
id | string | |
mimeType | string | null | |
modifiedTime | string | null | |
keepForever | boolean | null | |
published | boolean | null | |
publishedLink | string | null | |
publishAuto | boolean | null | |
publishedOutsideDomain | boolean | null | |
lastModifyingUser | object | any | |
originalFilename | string | null | |
md5Checksum | string | null | |
size | string | null | |
exportLinks | object | null | |
| Field Name | Type | Description |
|---|
nextPageToken | string | null | |
Revisions Get
Gets a revision's metadata by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "revisions",
"action": "get",
"params": {
"fileId": "<str>",
"revisionId": "<str>"
}
}'
Python SDK
await google_drive.revisions.get(
file_id="<str>",
revision_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "revisions",
"action": "get",
"params": {
"fileId": "<str>",
"revisionId": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
fileId | string | Yes | The ID of the file |
revisionId | string | Yes | The ID of the revision |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
id | string | |
mimeType | string | null | |
modifiedTime | string | null | |
keepForever | boolean | null | |
published | boolean | null | |
publishedLink | string | null | |
publishAuto | boolean | null | |
publishedOutsideDomain | boolean | null | |
lastModifyingUser | object | any | |
originalFilename | string | null | |
md5Checksum | string | null | |
size | string | null | |
exportLinks | object | null | |
Changes
Changes List
Lists the changes for a user or shared drive
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "changes",
"action": "list"
}'
Python SDK
await google_drive.changes.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "changes",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
pageToken | string | No | Token for the page of changes to retrieve (from changes.getStartPageToken or previous response) |
pageSize | integer | No | Maximum number of changes to return (1-1000) |
driveId | string | No | The shared drive from which changes are returned |
includeItemsFromAllDrives | boolean | No | Whether to include changes from all drives |
supportsAllDrives | boolean | No | Whether the requesting application supports both My Drives and shared drives |
spaces | string | No | Comma-separated list of spaces to query |
includeRemoved | boolean | No | Whether to include changes indicating that items have been removed |
restrictToMyDrive | boolean | No | Whether to restrict the results to changes inside the My Drive hierarchy |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
removed | boolean | null | |
file | object | any | |
fileId | string | null | |
driveId | string | null | |
drive | object | any | |
time | string | null | |
type | string | null | |
changeType | string | null | |
| Field Name | Type | Description |
|---|
nextPageToken | string | null | |
newStartPageToken | string | null | |
Changes Start Page Token
Changes Start Page Token Get
Gets the starting pageToken for listing future changes
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "changes_start_page_token",
"action": "get"
}'
Python SDK
await google_drive.changes_start_page_token.get()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "changes_start_page_token",
"action": "get"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
driveId | string | No | The ID of the shared drive for which the starting pageToken is returned |
supportsAllDrives | boolean | No | Whether the requesting application supports both My Drives and shared drives |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
startPageToken | string | |
About
About Get
Gets information about the user, the user's Drive, and system capabilities
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-drive",
"entity": "about",
"action": "get"
}'
Python SDK
await google_drive.about.get()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "about",
"action": "get"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
fields | string | No | Fields to include in the response (use * for all fields) |
Response Schema
Records
| Field Name | Type | Description |
|---|
kind | string | null | |
user | object | any | |
storageQuota | object | null | |
importFormats | object | null | |
exportFormats | object | null | |
maxImportSizes | object | null | |
maxUploadSize | string | null | |
appInstalled | boolean | null | |
folderColorPalette | array | null | |
driveThemes | array | null | |
canCreateDrives | boolean | null | |
canCreateTeamDrives | boolean | null | |
teamDriveThemes | array | null | |