Call work.file
File or move any item — a document, photo, video, file, table, email, post, site, automation — or a whole project into a project the member names — 'move the onboarding video to the Clients project', 'put the Holiday gift boxes project under Wholesale cafes', 'the menu photos belong in Spring launch'. Any item (a site, an automation, a video or short, a post, an image or photo, a document, an uploaded file, a data table, an email, a widget) or a project, which takes everything inside it along. This verb finds the item itself, so call it on the ask: put the member's words for the thing in item_name, a generic name too ('the new doc', 'that photo from Friday'), for any item but a widget. Among several matches it takes the one in the project the member is on, then the exact name; otherwise it moves nothing and answers with the matches by name and place, so you can ask which. Read board.tree for to_project_id, the id of the project the member names; the tree lists projects, not the items inside them, so look for the item through this verb rather than in the tree. The project the member is on (the page's board_id) is where the item comes from, so it is never to_project_id here; putting a thing on that project is items.place. It leaves where it was and lives only in the new project; its shortcuts follow it, nothing is copied or deleted, and the member can undo it. A null to_project_id takes a project out to the top level of Projects; name a project being moved with item_kind project and its id from board.tree. Not for putting something on the project the member is on right now (items.place), or for showing it in a second project while it stays where it lives (work.shortcut).
Every result names the workspace it ran in. Say which workspace the answer is about. When the account has more than one workspace and none is selected, this tool refuses with workspace_ambiguous and lists the choices — offer them, never pick one.
Request
- Base URL: https://app.goosybear.ai
- URL: https://app.goosybear.ai/api/v1/tools/work.file
- Auth: HTTP bearer
Headers
Your own id for this request, echoed back and recorded on the audit trail. 1–128 characters from A–Z a–z 0–9 . _ : -, starting with a letter or digit; anything else is replaced by a generated id.
Your key for this write: send the same key when you retry and the first result comes back instead of a second action. Keys are honoured for at least 24 hours. 1–200 visible ASCII characters. Replaces the idempotency_key body field, which still works until 2026-12-31; this action needs a key on one of the two, and the header is the one to send.
Request body
Response
The call was admitted and dispatched. ok says whether the tool succeeded — a refusal the tool itself produced is still a 200, exactly as it is a successful JSON-RPC result over MCP.
Changes
No recorded changes to this operation across all 6 revisions of this API.