Skip to content
DEConsole
DEVELOPERS / DEVELOPERS
View as MarkdownDownload Markdown
Open in ChatGPTOpen in Claude

Page unavailable? Copy its Markdown and paste it into your chat.

upload_inbox_attachment

Behavior, inputs, outputs and permissions for upload_inbox_attachment.

Reviewed · 2026-10-06 / Ridian

This reference is generated from the published tool contract.

Reserves storage and returns a one-use binary upload ticket for an existing draft and expectedRevision. Up to 10 attachments and 15000000 raw bytes total per message. Send the raw file body with HTTP POST to url using Authorization: Bearer ; never pass Base64 through tool arguments. The ticket expires after at most five minutes (expiresAt is Unix milliseconds). Completion verifies actual size/type and current access, attaches the file and increments draft revision. Upload one file at a time and read the draft before another edit or send. After an uncertain response, list attachments and read the draft; do not blindly reserve again. An unfinished or failed upload blocks sending until removed. Requires a client capable of binary HTTP transfer; this tool alone does not transfer bytes or prove client support. Does not send mail.

Granted scopes, accounts, calendars and visibility rules limit access. Workspace administrators do not automatically gain access to other users’ accounts.

inbox:write

Consent and boundaries

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"draftId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"expectedRevision": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"filename": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"contentType": {
"type": "string",
"minLength": 3,
"maxLength": 150
},
"size": {
"type": "integer",
"minimum": 0,
"maximum": 15000000
}
},
"required": [
"draftId",
"expectedRevision",
"filename",
"contentType",
"size"
],
"additionalProperties": false
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"attachmentId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"url": {
"type": "string",
"format": "uri"
},
"token": {
"type": "string"
},
"expiresAt": {
"type": "number"
},
"method": {
"type": "string",
"enum": [
"POST",
"GET"
]
}
},
"required": [
"attachmentId",
"url",
"token",
"expiresAt",
"method"
],
"additionalProperties": false
}

Check the tool result for errors. Do not blindly retry writes after a timeout. Check the current resource or send status first.

Error handling

RIDIAN

Ask the docs

Enter to send · ⇧ Enter for new line

No passwords or calendar contents. Check AI answers against their sources. AI & privacy