Upload a file
upload_note_fileUpload a file to use in a Note (Add only and up): any type, up to 5 MB, as base64 (it passes through your own output, so keep it small or ask the person to add a large one). It counts toward the same daily limit as images. For a Note that already exists, pass its note_id. Uploading does not add it to the Note: then put it on its own line in the Note's Markdown, name (the answer's markdown), or as a document block {"type": "file", "attrs": {"attachmentId": "<file_id>", "name": "…"}}. Place it once its state is uploaded (get_operation shows it); placed while checking, the write answers attachment_upload_in_progress: wait details.retry_after seconds and send it again.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"operation_id": "<operation_id>",
"thread_id": "<thread_id>",
"name": "<name>",
"checksum": "<checksum>",
"data": "<data>"
},
"name": "upload_note_file"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | The file as base64: any type, up to 5 MB. | |
| name | Yes | Its name, with its extension; up to 255 characters. | |
| note_id | No | When the file goes in an existing Note: its id (required then). | |
| checksum | Yes | The lowercase hex SHA-256 of the file bytes (not of the base64). | |
| thread_id | Yes | The Thread of the Note the file goes in. | |
| operation_id | Yes | A new UUID for each write. After a lost answer, send the identical call with the same one, or check get_operation before writing again. |