Skip to main content

Gmail full reference

This is the full reference documentation for the Gmail agent connector.

Supported entities and actions

The Gmail connector supports the following entities and actions.

EntityActions
ProfileGet
MessagesList, Get, Create, Update
LabelsList, Create, Get, Update, Delete
DraftsList, Create, Get, Update, Delete
Drafts SendCreate
ThreadsList, Get
Messages TrashCreate
Messages UntrashCreate

Profile

Profile Get

Gets the current user's Gmail profile including email address and mailbox statistics

Python SDK

await gmail.profile.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": "profile",
"action": "get"
}'
Response Schema

Records

Field NameTypeDescription
emailAddressstring | null
messagesTotalinteger | null
threadsTotalinteger | null
historyIdstring | null

Messages

Messages List

Lists the messages in the user's mailbox. Returns message IDs and thread IDs.

Python SDK

await gmail.messages.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": "messages",
"action": "list"
}'

Parameters

Parameter NameTypeRequiredDescription
maxResultsintegerNoMaximum number of messages to return (1-500)
pageTokenstringNoPage token to retrieve a specific page of results
qstringNoGmail search query (same format as Gmail search box, e.g. "from:user@example.com", "is:unread", "subject:hello")
labelIdsstringNoOnly return messages with labels matching all of the specified label IDs (comma-separated)
includeSpamTrashbooleanNoInclude messages from SPAM and TRASH in the results
Response Schema

Records

Field NameTypeDescription
idstring
threadIdstring | null

Meta

Field NameTypeDescription
nextPageTokenstring | null
resultSizeEstimateinteger | null

Messages Get

Gets the full email message content including headers, body, and attachments metadata

Python SDK

await gmail.messages.get(
message_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": "messages",
"action": "get",
"params": {
"messageId": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
messageIdstringYesThe ID of the message to retrieve
format"full" | "metadata" | "minimal" | "raw"NoThe format to return the message in (full, metadata, minimal, raw)
metadataHeadersstringNoWhen format is METADATA, only include headers specified (comma-separated)
Response Schema

Records

Field NameTypeDescription
idstring
threadIdstring | null
labelIdsarray | null
snippetstring | null
historyIdstring | null
internalDatestring | null
sizeEstimateinteger | null
rawstring | null
payloadobject | any

Messages Create

Sends a new email message. The message should be provided as a base64url-encoded RFC 2822 formatted string in the 'raw' field.

Python SDK

await gmail.messages.create(
raw="<str>",
thread_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": "messages",
"action": "create",
"params": {
"raw": "<str>",
"threadId": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
rawstringYesThe entire email message in RFC 2822 format, base64url encoded
threadIdstringNoThe thread ID to reply to (for threading replies in a conversation)
Response Schema

Records

Field NameTypeDescription
idstring
threadIdstring | null
labelIdsarray | null
snippetstring | null
historyIdstring | null
internalDatestring | null
sizeEstimateinteger | null
rawstring | null
payloadobject | any

Messages Update

Modifies the labels on a message. Use this to archive (remove INBOX label), mark as read (remove UNREAD label), mark as unread (add UNREAD label), star (add STARRED label), or apply custom labels.

Python SDK

await gmail.messages.update(
add_label_ids=[],
remove_label_ids=[],
message_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": "messages",
"action": "update",
"params": {
"addLabelIds": [],
"removeLabelIds": [],
"messageId": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
addLabelIdsarray<string>NoA list of label IDs to add to the message (e.g. STARRED, UNREAD, or custom label IDs)
removeLabelIdsarray<string>NoA list of label IDs to remove from the message (e.g. INBOX to archive, UNREAD to mark as read)
messageIdstringYesThe ID of the message to modify
Response Schema

Records

Field NameTypeDescription
idstring
threadIdstring | null
labelIdsarray | null
snippetstring | null
historyIdstring | null
internalDatestring | null
sizeEstimateinteger | null
rawstring | null
payloadobject | any

Labels

Labels List

Lists all labels in the user's mailbox including system and user-created labels

Python SDK

await gmail.labels.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": "labels",
"action": "list"
}'
Response Schema

Records

Field NameTypeDescription
idstring
namestring | null
typestring | null
messageListVisibilitystring | null
labelListVisibilitystring | null
messagesTotalinteger | null
messagesUnreadinteger | null
threadsTotalinteger | null
threadsUnreadinteger | null
colorobject | any

Labels Create

Creates a new label in the user's mailbox

Python SDK

await gmail.labels.create(
name="<str>",
message_list_visibility="<str>",
label_list_visibility="<str>",
color={}
)

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": "labels",
"action": "create",
"params": {
"name": "<str>",
"messageListVisibility": "<str>",
"labelListVisibility": "<str>",
"color": {}
}
}'

Parameters

Parameter NameTypeRequiredDescription
namestringYesThe display name of the label
messageListVisibility"show" | "hide"NoThe visibility of messages with this label in the message list (show or hide)
labelListVisibility"labelShow" | "labelShowIfUnread" | "labelHide"NoThe visibility of the label in the label list
colorobjectNoThe color to assign to the label
color.textColorstringNoThe text color of the label as a hex string (#RRGGBB)
color.backgroundColorstringNoThe background color of the label as a hex string (#RRGGBB)
Response Schema

Records

Field NameTypeDescription
idstring
namestring | null
typestring | null
messageListVisibilitystring | null
labelListVisibilitystring | null
messagesTotalinteger | null
messagesUnreadinteger | null
threadsTotalinteger | null
threadsUnreadinteger | null
colorobject | any

Labels Get

Gets a specific label by ID including message and thread counts

Python SDK

await gmail.labels.get(
label_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": "labels",
"action": "get",
"params": {
"labelId": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
labelIdstringYesThe ID of the label to retrieve
Response Schema

Records

Field NameTypeDescription
idstring
namestring | null
typestring | null
messageListVisibilitystring | null
labelListVisibilitystring | null
messagesTotalinteger | null
messagesUnreadinteger | null
threadsTotalinteger | null
threadsUnreadinteger | null
colorobject | any

Labels Update

Updates the specified label

Python SDK

await gmail.labels.update(
id="<str>",
name="<str>",
message_list_visibility="<str>",
label_list_visibility="<str>",
color={},
label_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": "labels",
"action": "update",
"params": {
"id": "<str>",
"name": "<str>",
"messageListVisibility": "<str>",
"labelListVisibility": "<str>",
"color": {},
"labelId": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
idstringNoThe ID of the label (must match the path parameter)
namestringNoThe new display name of the label
messageListVisibility"show" | "hide"NoThe visibility of messages with this label in the message list
labelListVisibility"labelShow" | "labelShowIfUnread" | "labelHide"NoThe visibility of the label in the label list
colorobjectNoThe color to assign to the label
color.textColorstringNoThe text color of the label as a hex string (#RRGGBB)
color.backgroundColorstringNoThe background color of the label as a hex string (#RRGGBB)
labelIdstringYesThe ID of the label to update
Response Schema

Records

Field NameTypeDescription
idstring
namestring | null
typestring | null
messageListVisibilitystring | null
labelListVisibilitystring | null
messagesTotalinteger | null
messagesUnreadinteger | null
threadsTotalinteger | null
threadsUnreadinteger | null
colorobject | any

Labels Delete

Deletes the specified label and removes it from any messages and threads

Python SDK

await gmail.labels.delete(
label_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": "labels",
"action": "delete",
"params": {
"labelId": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
labelIdstringYesThe ID of the label to delete

Drafts

Drafts List

Lists the drafts in the user's mailbox

Python SDK

await gmail.drafts.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": "drafts",
"action": "list"
}'

Parameters

Parameter NameTypeRequiredDescription
maxResultsintegerNoMaximum number of drafts to return (1-500)
pageTokenstringNoPage token to retrieve a specific page of results
qstringNoGmail search query to filter drafts
includeSpamTrashbooleanNoInclude drafts from SPAM and TRASH in the results
Response Schema

Records

Field NameTypeDescription
idstring
messageobject | any

Meta

Field NameTypeDescription
nextPageTokenstring | null
resultSizeEstimateinteger | null

Drafts Create

Creates a new draft with the specified message content

Python SDK

await gmail.drafts.create(
message={
"raw": "<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": "drafts",
"action": "create",
"params": {
"message": {
"raw": "<str>"
}
}
}'

Parameters

Parameter NameTypeRequiredDescription
messageobjectYesThe draft message content
message.rawstringYesThe draft message in RFC 2822 format, base64url encoded
message.threadIdstringNoThe thread ID for the draft (for threading in a conversation)
Response Schema

Records

Field NameTypeDescription
idstring
messageobject | any

Drafts Get

Gets the specified draft including its message content

Python SDK

await gmail.drafts.get(
draft_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": "drafts",
"action": "get",
"params": {
"draftId": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
draftIdstringYesThe ID of the draft to retrieve
format"full" | "metadata" | "minimal" | "raw"NoThe format to return the draft message in (full, metadata, minimal, raw)
Response Schema

Records

Field NameTypeDescription
idstring
messageobject | any

Drafts Update

Replaces a draft's content with the specified message content

Python SDK

await gmail.drafts.update(
message={
"raw": "<str>"
},
draft_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": "drafts",
"action": "update",
"params": {
"message": {
"raw": "<str>"
},
"draftId": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
messageobjectYesThe draft message content
message.rawstringYesThe draft message in RFC 2822 format, base64url encoded
message.threadIdstringNoThe thread ID for the draft (for threading in a conversation)
draftIdstringYesThe ID of the draft to update
Response Schema

Records

Field NameTypeDescription
idstring
messageobject | any

Drafts Delete

Immediately and permanently deletes the specified draft (does not move to trash)

Python SDK

await gmail.drafts.delete(
draft_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": "drafts",
"action": "delete",
"params": {
"draftId": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
draftIdstringYesThe ID of the draft to delete

Drafts Send

Drafts Send Create

Sends the specified existing draft to its recipients

Python SDK

await gmail.drafts_send.create(
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": "drafts_send",
"action": "create",
"params": {
"id": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
idstringYesThe ID of the draft to send
Response Schema

Records

Field NameTypeDescription
idstring
threadIdstring | null
labelIdsarray | null
snippetstring | null
historyIdstring | null
internalDatestring | null
sizeEstimateinteger | null
rawstring | null
payloadobject | any

Threads

Threads List

Lists the threads in the user's mailbox

Python SDK

await gmail.threads.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": "threads",
"action": "list"
}'

Parameters

Parameter NameTypeRequiredDescription
maxResultsintegerNoMaximum number of threads to return (1-500)
pageTokenstringNoPage token to retrieve a specific page of results
qstringNoGmail search query to filter threads
labelIdsstringNoOnly return threads with labels matching all of the specified label IDs (comma-separated)
includeSpamTrashbooleanNoInclude threads from SPAM and TRASH in the results
Response Schema

Records

Field NameTypeDescription
idstring
snippetstring | null
historyIdstring | null

Meta

Field NameTypeDescription
nextPageTokenstring | null
resultSizeEstimateinteger | null

Threads Get

Gets the specified thread including all messages in the conversation

Python SDK

await gmail.threads.get(
thread_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": "threads",
"action": "get",
"params": {
"threadId": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
threadIdstringYesThe ID of the thread to retrieve
format"full" | "metadata" | "minimal"NoThe format to return the messages in (full, metadata, minimal)
metadataHeadersstringNoWhen format is METADATA, only include headers specified (comma-separated)
Response Schema

Records

Field NameTypeDescription
idstring
snippetstring | null
historyIdstring | null
messagesarray | null
messages[].idstring
messages[].threadIdstring | null
messages[].labelIdsarray | null
messages[].snippetstring | null
messages[].historyIdstring | null
messages[].internalDatestring | null
messages[].sizeEstimateinteger | null
messages[].rawstring | null
messages[].payloadobject | any

Messages Trash

Messages Trash Create

Moves the specified message to the trash

Python SDK

await gmail.messages_trash.create(
message_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": "messages_trash",
"action": "create",
"params": {
"messageId": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
messageIdstringYesThe ID of the message to trash
Response Schema

Records

Field NameTypeDescription
idstring
threadIdstring | null
labelIdsarray | null
snippetstring | null
historyIdstring | null
internalDatestring | null
sizeEstimateinteger | null
rawstring | null
payloadobject | any

Messages Untrash

Messages Untrash Create

Removes the specified message from the trash

Python SDK

await gmail.messages_untrash.create(
message_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": "messages_untrash",
"action": "create",
"params": {
"messageId": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
messageIdstringYesThe ID of the message to untrash
Response Schema

Records

Field NameTypeDescription
idstring
threadIdstring | null
labelIdsarray | null
snippetstring | null
historyIdstring | null
internalDatestring | null
sizeEstimateinteger | null
rawstring | null
payloadobject | any