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, Context Store Search
MessagesList, Get, Create, Update, Context Store Search
LabelsList, Create, Get, Update, Delete, Context Store Search
DraftsList, Create, Get, Update, Delete, Context Store Search
Drafts SendCreate
ThreadsList, Get, Context Store Search
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

Search and filter profile 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.

Python SDK

await gmail.profile.context_store_search(
query={"filter": {"eq": {"emailAddress": "<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": "profile",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"emailAddress": "<str>"}}}
}
}'

Parameters

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's meta.cursor
fieldsarrayNoField paths to include in results

Searchable Fields

Field NameTypeDescription
emailAddressstringEmail address of the authenticated Gmail account
historyIdstringMailbox history record identifier used for incremental sync
messagesTotalnumberTotal number of messages currently in the mailbox
threadsTotalnumberTotal number of threads currently in the mailbox
Response Schema
Field NameTypeDescription
dataarrayList of matching records
metaobjectPagination metadata
meta.has_morebooleanWhether additional pages are available
meta.cursorstring | nullCursor for next page of results
meta.took_msnumber | nullQuery execution time in milliseconds
data[].emailAddressstringEmail address of the authenticated Gmail account
data[].historyIdstringMailbox history record identifier used for incremental sync
data[].messagesTotalnumberTotal number of messages currently in the mailbox
data[].threadsTotalnumberTotal number of threads currently in the mailbox

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. Build the complete MIME message first, including headers such as To and Subject plus a blank line before the body, then base64url-encode that message before calling this operation.

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
rawstringYesBase64url-encoded RFC 2822/MIME email; construct headers plus a blank line plus body, then URL-safe-base64 encode the UTF-8 bytes before sending.
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

Search and filter messages 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.

Python SDK

await gmail.messages.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": "messages",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": "<str>"}}}
}
}'

Parameters

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's meta.cursor
fieldsarrayNoField paths to include in results

Searchable Fields

Field NameTypeDescription
idstringUnique identifier for the message
threadIdstringIdentifier of the thread this message belongs to
labelIdsarrayLabels applied to the message
snippetstringShort snippet of the message text
historyIdstringMailbox history record identifier for the message
internalDatestringInternal message creation timestamp in epoch milliseconds
sizeEstimateintegerEstimated size of the message in bytes
payloadobjectParsed MIME payload including headers, body, nested MIME parts, and attachment metadata. Use payload.headers for sender, recipients, subject, date, and other email headers.
Response Schema
Field NameTypeDescription
dataarrayList of matching records
metaobjectPagination metadata
meta.has_morebooleanWhether additional pages are available
meta.cursorstring | nullCursor for next page of results
meta.took_msnumber | nullQuery execution time in milliseconds
data[].idstringUnique identifier for the message
data[].threadIdstringIdentifier of the thread this message belongs to
data[].labelIdsarrayLabels applied to the message
data[].snippetstringShort snippet of the message text
data[].historyIdstringMailbox history record identifier for the message
data[].internalDatestringInternal message creation timestamp in epoch milliseconds
data[].sizeEstimateintegerEstimated size of the message in bytes
data[].payloadobjectParsed MIME payload including headers, body, nested MIME parts, and attachment metadata. Use payload.headers for sender, recipients, subject, date, and other email headers.

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

Search and filter labels 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.

Python SDK

await gmail.labels.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": "labels",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": "<str>"}}}
}
}'

Parameters

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's meta.cursor
fieldsarrayNoField paths to include in results

Searchable Fields

Field NameTypeDescription
idstringUnique identifier for the label
namestringDisplay name of the label
typestringLabel type: system or user
labelListVisibilitystringVisibility of the label in the label list
messageListVisibilitystringVisibility of the label when viewing a message list
Response Schema
Field NameTypeDescription
dataarrayList of matching records
metaobjectPagination metadata
meta.has_morebooleanWhether additional pages are available
meta.cursorstring | nullCursor for next page of results
meta.took_msnumber | nullQuery execution time in milliseconds
data[].idstringUnique identifier for the label
data[].namestringDisplay name of the label
data[].typestringLabel type: system or user
data[].labelListVisibilitystringVisibility of the label in the label list
data[].messageListVisibilitystringVisibility of the label when viewing a message list

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 encoded in Gmail raw message format
message.rawstringYesBase64url-encoded RFC 2822/MIME email; construct headers plus a blank line plus body, then URL-safe-base64 encode the UTF-8 bytes before creating or updating the draft.
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 encoded in Gmail raw message format
message.rawstringYesBase64url-encoded RFC 2822/MIME email; construct headers plus a blank line plus body, then URL-safe-base64 encode the UTF-8 bytes before creating or updating the draft.
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

Search and filter drafts 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.

Python SDK

await gmail.drafts.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": "drafts",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": "<str>"}}}
}
}'

Parameters

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's meta.cursor
fieldsarrayNoField paths to include in results

Searchable Fields

Field NameTypeDescription
idstringUnique identifier for the draft
messageobjectDraft message payload (headers, body, and metadata)
Response Schema
Field NameTypeDescription
dataarrayList of matching records
metaobjectPagination metadata
meta.has_morebooleanWhether additional pages are available
meta.cursorstring | nullCursor for next page of results
meta.took_msnumber | nullQuery execution time in milliseconds
data[].idstringUnique identifier for the draft
data[].messageobjectDraft message payload (headers, body, and metadata)

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

Search and filter threads 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.

Python SDK

await gmail.threads.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": "threads",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": "<str>"}}}
}
}'

Parameters

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's meta.cursor
fieldsarrayNoField paths to include in results

Searchable Fields

Field NameTypeDescription
idstringUnique identifier for the thread
historyIdstringMailbox history record identifier for the thread
snippetstringShort snippet of the thread's most recent message
Response Schema
Field NameTypeDescription
dataarrayList of matching records
metaobjectPagination metadata
meta.has_morebooleanWhether additional pages are available
meta.cursorstring | nullCursor for next page of results
meta.took_msnumber | nullQuery execution time in milliseconds
data[].idstringUnique identifier for the thread
data[].historyIdstringMailbox history record identifier for the thread
data[].snippetstringShort snippet of the thread's most recent message

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