Start Attachment Upload
start_attachment_uploadStart uploading a file so it can be attached to a padlet.
A file dropped into ChatGPT arrives as file. Pass that object here and do not PUT. Padlet
downloads and verifies it, and the returned url is ready for any destination in step 4.
Do not call complete_attachment_upload for that file.
A local file, when you can read it and send an HTTP PUT (with curl, for instance):
Call this tool with the file's real size in bytes and its content type. Do not pass
file.PUT the raw bytes to the
upload_urlyou get back. One request, no headers, no form encoding — for examplecurl -T /path/to/file "<upload_url>". The body must be exactlysize_bytesbytes long.Call complete_attachment_upload with the same
wall_urland theuploaded_urlfrom this tool. Nothing reaches the padlet until you do, and the file is verified at that point — a file whose bytes do not match the content type you declared is rejected and deleted.Pass the URL complete_attachment_upload returns to a post's
attachmentin create_posts or update_posts, theattachmentof add_comment_to_post, orimage_urlof update_padlet_wallpaper or update_padlet_icon.
An ordinary public web link that should remain a link can be passed directly to any of those destinations.
Returns { success: true, upload_url: "...", uploaded_url: "...", expires_at: "..." } for a local file, { success: true, url: "...", file_name: "...", content_type: "...", size_bytes: 123 } for a chat-dropped file, or { success: false, error_code: "...", message: "..." }.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | ||
| wall_url | Yes | The padlet's link (e.g. https://padlet.com/foo/bar-a1b2c3): the link you were given, the `wall_url` a previous call returned, or a link the user pasted. Not a breakout-room or submission link, and not a padlet id: no tool takes a wall_id. | |
| file_name | No | The file's name, including its extension (e.g. "diagram.png"). Used for the stored file name and to tell Office documents from plain zips. | |
| size_bytes | No | The file's real size in bytes. Measure it; do not estimate. The padlet's per-file limit is enforced against it. | |
| content_type | No | The file's MIME type. Must match the file's actual bytes — this is checked against the uploaded content, not taken on trust. |