atmon docs

REFERENCE/TOOLKITS/DROPBOX.MD

Dropbox

Cloud files. List, search, upload, and organize files and folders, share them with links, and handle file requests.

PropertyValue
Slugdropbox
Definition version0.1.0
Base URLhttps://api.dropboxapi.com
Auth schemesoauth2
Action tools31
By class13 read, 11 write, 7 destructive
Triggers1
Provider rate limitnot declared, so outbound calls are unpaced

Measured routing accuracy

49 golden cases replayed through the router over the whole index: measured over corpus ea4f12ad2948 (65 toolkits, 2283 tools indexed and 13 declared uncallable), 31 cases written by hand and 18 cases from the paraphrase pass. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.

MeasureCasesShare
top-117/4934.7%
top-842/4985.7%

The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. just eval-live measures the same cases through the live reranker.

Authentication

Connect an entity with ConnectionsService.InitiateConnection, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.

oauth2

PropertyValue
Authorization URLhttps://www.dropbox.com/oauth2/authorize
Token URLhttps://api.dropboxapi.com/oauth2/token
Default scopesfiles.metadata.read, files.content.read, files.content.write, sharing.read, sharing.write, account_info.read, file_requests.read, file_requests.write
Refresh tokensyes, the refresh daemon renews ahead of expiry

Tools

31 action tools. The catalog-wide slug is dropbox.<tool>, which is what search_tools returns and call_tool takes.

dropbox.list_folder

List the files and folders directly inside a Dropbox folder. Use for what's in this folder or browsing a known location. For finding a file by name or content anywhere in the account, use search_files.

Class read (reads only). Scopes files.metadata.read. Calls POST /2/files/list_folder.

Arguments:

ArgumentTypeRequiredNotes
pathstringnoFolder path, e.g. "/Projects/Q3". Pass an empty string "" to list the root of the account.
recursivebooleannoInclude subfolder contents too. Defaults to false.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
cursorstring
entriesarray of object
entries[]..tagstring
entries[].idstring
entries[].namestring
entries[].path_displaystring
entries[].server_modifiedstring (date-time)
entries[].sizeinteger
has_moreboolean

Also retrieved by: "what's in this folder", "browse this directory", "show me what's inside here", "what's stored in this location".

dropbox.search_files

Search the whole Dropbox account by name or content. Use when the user wants to find, look up, or locate something by keyword rather than browse a folder they already know. Optionally scope the search to one folder.

Class read (reads only). Scopes files.metadata.read. Calls POST /2/files/search_v2.

Arguments:

ArgumentTypeRequiredNotes
max_resultsintegernoResults to return, max 1000. Defaults to 100.
pathstringnoRestrict the search to this folder path. Omit to search everywhere.
querystringyesSearch text, e.g. "budget proposal" or "quarterly report".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
has_moreboolean
matchesarray of object
matches[].metadataobject
matches[].metadata..tagstring
matches[].metadata.idstring
matches[].metadata.namestring
matches[].metadata.path_displaystring
matches[].metadata.sizeinteger

Also retrieved by: "find something by keyword", "look up an old document", "dig up anything mentioning the budget", "where did I save that".

dropbox.get_metadata

Get one file or folder's metadata by path: name, size, type, and when it last changed. Use when the user names a specific file or folder. For its actual content, use download_file.

Class read (reads only). Scopes files.metadata.read. Calls POST /2/files/get_metadata.

Arguments:

ArgumentTypeRequiredNotes
pathstringyesDropbox path, e.g. "/Projects/Q3/budget.xlsx".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
.tagstring
client_modifiedstring (date-time)
idstring
namestring
path_displaystring
revstring
server_modifiedstring (date-time)
sizeinteger

Also retrieved by: "how big is this", "when was this last touched", "check the details on this item", "who last changed this".

dropbox.download_file

Download the raw content of a file by path. Use when the user wants to fetch, save, or read what's inside a file. For a quick visual preview of an image instead of the full file, use get_thumbnail.

Class read (reads only). Scopes files.content.read. Calls POST /2/files/download.

Arguments:

ArgumentTypeRequiredNotes
pathstringyesDropbox path of the file to download.

Also retrieved by: "grab a copy of this", "save this to my computer", "fetch the actual bytes", "pull this down locally".

Get a direct download link for a file that works without Dropbox sign-in, valid for a few hours. Use when the user wants a quick link to hand someone rather than a lasting shared link (use create_shared_link for that).

Class read (reads only). Scopes files.content.read. Calls POST /2/files/get_temporary_link.

Arguments:

ArgumentTypeRequiredNotes
pathstringyesDropbox path of the file to link to.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
linkstring
metadataobject
metadata.namestring
metadata.path_displaystring

Also retrieved by: "give me a quick link that doesn't need sign-in", "I need a link that expires soon", "send a link that works without an account", "a link good for just a few hours".

dropbox.get_thumbnail

Get a small preview image for a photo or image file. Use when the user wants to see what a picture looks like without downloading the full file.

Class read (reads only). Scopes files.content.read. Calls POST /2/files/get_thumbnail_v2.

Arguments:

ArgumentTypeRequiredNotes
formatstring, one of jpeg, pngnoThumbnail image format. Defaults to jpeg.
pathstringyesDropbox path of the image file.
sizestring, one of w32h32, w64h64, w128h128, w256h256, w480h320, w640h480, w960h640, w1024h768noThumbnail dimensions. Defaults to w64h64.

Also retrieved by: "show me a small preview of this picture", "what does this image look like", "give me a quick look at this photo", "preview this picture without opening it".

dropbox.upload_file

Create a new file in Dropbox with the given content. Use when the user wants to add, save, or upload a document or note. Content is UTF-8 text, base64-encoded. Fails if a file already exists at that path; to overwrite one, use update_file_content.

Class write (writes, no confirmation needed). Scopes files.content.write. Calls POST /2/files/upload.

Arguments:

ArgumentTypeRequiredNotes
contentstringyesFile content, base64-encoded.
pathstringyesDestination path, e.g. "/Notes/meeting.txt".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
namestring
path_displaystring
revstring

Also retrieved by: "save this write-up online", "stash this note in my account", "put this text into a new document", "add a fresh item with this content".

dropbox.update_file_content

Replace an existing file's content with new text, keeping its path. Use when the user wants to overwrite, update, or rewrite what's inside a file. Content is UTF-8 text, base64-encoded.

Class write (writes, no confirmation needed). Scopes files.content.write. Calls POST /2/files/upload.

Arguments:

ArgumentTypeRequiredNotes
contentstringyesNew file content, base64-encoded.
pathstringyesPath of the existing file to overwrite.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
namestring
revstring
server_modifiedstring (date-time)

Also retrieved by: "overwrite what's inside this", "replace the text in that document", "rewrite this with new content", "swap out what's currently there".

dropbox.create_folder

Create a new folder in Dropbox at the given path, including any missing parent folders. Use when the user wants to organize files into a new folder or directory.

Class write (writes, no confirmation needed). Scopes files.content.write. Calls POST /2/files/create_folder_v2.

Arguments:

ArgumentTypeRequiredNotes
pathstringyesNew folder path, e.g. "/Projects/Q3 Reports".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
namestring
path_displaystring

Also retrieved by: "make a new directory for this", "set up a place to keep these organized", "I need somewhere to put all this".

dropbox.rename_file

Rename a file or folder by giving it a new path, keeping its content and parent folder. Use when the user wants to retitle or relabel something already in Dropbox. For putting it in a different folder, use move_file.

Class write (writes, no confirmation needed). Scopes files.content.write. Calls POST /2/files/move_v2.

Arguments:

ArgumentTypeRequiredNotes
from_pathstringyesCurrent path of the file or folder.
to_pathstringyesNew full path with the new name, e.g. "/Reports/Final Budget.xlsx".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
metadataobject
metadata..tagstring
metadata.namestring
metadata.path_displaystring

Also retrieved by: "retitle this", "give this a better name", "this is labeled wrong, fix the name", "change what this is called".

dropbox.move_file

Move a file or folder into a different folder, keeping its name. Use when the user wants to relocate, file away, or reorganize something into another folder. For giving it a new name in place, use rename_file.

Class write (writes, no confirmation needed). Scopes files.content.write. Calls POST /2/files/move_v2.

Arguments:

ArgumentTypeRequiredNotes
from_pathstringyesCurrent path of the file or folder to move.
to_pathstringyesDestination path, including the file or folder name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
metadataobject
metadata..tagstring
metadata.namestring
metadata.path_displaystring

Also retrieved by: "relocate this somewhere else", "put this in a different location", "this is in the wrong place".

dropbox.copy_file

Duplicate a file or folder to another path, leaving the original in place. Use when the user wants their own copy or a template to build from.

Class write (writes, no confirmation needed). Scopes files.content.write. Calls POST /2/files/copy_v2.

Arguments:

ArgumentTypeRequiredNotes
from_pathstringyesPath of the file or folder to copy.
to_pathstringyesDestination path for the copy.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
metadataobject
metadata..tagstring
metadata.namestring
metadata.path_displaystring

Also retrieved by: "I want my own version of this", "duplicate this so I can edit it", "make a template from this".

dropbox.delete_file

Delete a file or folder by path. Use when the user wants to remove or get rid of something in Dropbox. A deleted file's content stays recoverable for a time through restore_file; use list_revisions first to find which version to bring back.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes files.content.write. Calls POST /2/files/delete_v2.

Arguments:

ArgumentTypeRequiredNotes
pathstringyesPath of the file or folder to delete.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
metadataobject
metadata..tagstring
metadata.namestring
metadata.path_displaystring

Also retrieved by: "get rid of this for good", "remove this, I don't need it anymore", "toss this old draft".

dropbox.restore_file

Bring back a specific past revision of a file, whether it was deleted or just overwritten. Use when the user wants to undo a change or recover a version they lost. Requires the revision id from list_revisions.

Class write (writes, no confirmation needed). Scopes files.content.write. Calls POST /2/files/restore.

Arguments:

ArgumentTypeRequiredNotes
pathstringyesPath the file lived (or lives) at.
revstringyesRevision id to restore, from list_revisions.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
namestring
revstring
server_modifiedstring (date-time)

Also retrieved by: "bring back an earlier version", "undo the last change to this", "I need the version from before".

dropbox.list_revisions

List a file's past versions: each revision id, size, and when it was saved. Use when the user asks about earlier versions or wants to recover something they changed or deleted. Restore one with restore_file.

Class read (reads only). Scopes files.metadata.read. Calls POST /2/files/list_revisions.

Arguments:

ArgumentTypeRequiredNotes
limitintegernoNumber of revisions to return, max 100. Defaults to 10.
pathstringyesPath of the file to list revisions for.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
entriesarray of object
entries[].revstring
entries[].server_modifiedstring (date-time)
entries[].sizeinteger
is_deletedboolean

Also retrieved by: "show me the version history", "what did this look like before", "who edited this and when".

Create a link to a file or folder that anyone with the URL can open. Use when the user wants to share, send, or get a link for something in Dropbox. Optionally protect it with a password or an expiry date.

Class write (writes, no confirmation needed). Scopes sharing.write. Calls POST /2/sharing/create_shared_link_with_settings.

Arguments:

ArgumentTypeRequiredNotes
expiresstring (date-time)noOptional time after which the link stops working.
passwordstringnoOptional password required to open the link.
pathstringyesPath of the file or folder to link to.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
.tagstring
path_lowerstring
urlstring

Also retrieved by: "give me a link anyone can open", "I want a URL for this I can send someone", "generate a public link to this".

List the shareable links that exist for a file, or for the whole account when no path is given. Use when the user asks who has a link to something or wants to review what's been shared.

Class read (reads only). Scopes sharing.read. Calls POST /2/sharing/list_shared_links.

Arguments:

ArgumentTypeRequiredNotes
pathstringnoRestrict to links for this file or folder. Omit to list every link.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
linksarray of object
links[]..tagstring
links[].namestring
links[].path_lowerstring
links[].urlstring

Also retrieved by: "who has a link to this", "what's been shared already", "check what links exist for this".

Disable a shared link so it stops working. Use when the user wants to unshare, revoke, or kill a link they previously created, without touching the file itself.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes sharing.write. Calls POST /2/sharing/revoke_shared_link.

Arguments:

ArgumentTypeRequiredNotes
urlstringyesThe shared link URL to revoke.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
revokedboolean

Also retrieved by: "kill that link I sent", "shut off access through that URL", "stop that link from working".

dropbox.share_folder

Turn an existing folder into a shared folder so other people can be added to it. Use when the user wants to start collaborating on a folder with others. Add people to it afterward with add_folder_member.

Class write (writes, no confirmation needed). Scopes sharing.write. Calls POST /2/sharing/share_folder.

Arguments:

ArgumentTypeRequiredNotes
pathstringyesPath of the existing folder to share.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
.tagstring
shared_folder_idstring

Also retrieved by: "start collaborating on this with others", "let the team work on this together", "open this up for the group".

dropbox.list_shared_folders

List the shared folders the signed-in account belongs to, owned by them or by someone else. Use when the user asks what team folders or shared folders they have access to.

Class read (reads only). Scopes sharing.read. Calls POST /2/sharing/list_folders.

Arguments:

ArgumentTypeRequiredNotes
page_sizeintegernoResults per page, max 1000. Defaults to 100.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
cursorstring
entriesarray of object
entries[].namestring
entries[].path_lowerstring
entries[].shared_folder_idstring

Also retrieved by: "what team folders am I part of", "show the shared spaces I belong to", "which collaborative folders can I open".

dropbox.add_folder_member

Invite a person by email to a shared folder, as a viewer or editor. Use when the user wants to add, invite, or give someone access to a shared folder. For a single file's link instead, use create_shared_link.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes sharing.write. Calls POST /2/sharing/add_folder_member.

Arguments:

ArgumentTypeRequiredNotes
access_levelstring, one of viewer, editornoAccess level to grant. Defaults to viewer.
emailstringyesEmail address of the person to invite.
shared_folder_idstringyesId of the shared folder, from share_folder or list_shared_folders.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
invitedboolean

Also retrieved by: "invite someone to this shared space", "give a new person access to this", "let this person in on the shared work".

dropbox.list_folder_members

List who has access to a shared folder and their role. Use when the user wants to see who can view or edit a shared folder, before changing its membership.

Class read (reads only). Scopes sharing.read. Calls POST /2/sharing/list_folder_members.

Arguments:

ArgumentTypeRequiredNotes
shared_folder_idstringyesId of the shared folder to check membership on.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
usersarray of object
users[].access_typeobject
users[].access_type..tagstring
users[].userobject
users[].user.account_idstring
users[].user.display_namestring
users[].user.emailstring

Also retrieved by: "who's on this shared space", "see everyone with access here", "check the roster for this shared area".

dropbox.remove_folder_member

Revoke a person's access to a shared folder. Use when the user wants to remove, kick out, or stop someone from seeing a shared folder.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes sharing.write. Calls POST /2/sharing/remove_folder_member.

Arguments:

ArgumentTypeRequiredNotes
emailstringyesEmail address of the person to remove.
leave_a_copybooleannoLeave the removed person a private copy of the folder's current contents. Defaults to false.
shared_folder_idstringyesId of the shared folder the person has access to.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
completeboolean

Also retrieved by: "take this person off the shared space", "kick them out of this collaborative area", "cut their access to this".

dropbox.unshare_folder

Turn a shared folder back into a private one, removing every other member's access at once. Use when the user wants to stop collaborating on a folder entirely, not just remove one person (use remove_folder_member for that).

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes sharing.write. Calls POST /2/sharing/unshare_folder.

Arguments:

ArgumentTypeRequiredNotes
leave_a_copybooleannoLeave removed members a private copy of the folder's current contents. Defaults to false.
shared_folder_idstringyesId of the shared folder to unshare.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
completeboolean

Also retrieved by: "stop everyone's access to this at once", "take this back to being private", "end the collaboration on this entirely".

dropbox.accept_shared_folder

Accept a shared folder someone invited the signed-in account to, so it shows up alongside their own folders. Use when the user wants to join, accept, or add a shared folder they were invited to.

Class write (writes, no confirmation needed). Scopes sharing.write. Calls POST /2/sharing/mount_folder.

Arguments:

ArgumentTypeRequiredNotes
shared_folder_idstringyesId of the shared folder to accept, from an invitation.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
namestring
path_lowerstring
shared_folder_idstring

Also retrieved by: "join the thing someone invited me to", "add that invitation to my account", "I want to join what they shared with me".

dropbox.leave_shared_folder

Give up the signed-in account's own access to a shared folder, leaving its other members unaffected. Use when the user wants to leave, exit, or step away from a folder someone else shared with them.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes sharing.write. Calls POST /2/sharing/relinquish_folder_membership.

Arguments:

ArgumentTypeRequiredNotes
leave_a_copybooleannoKeep a private copy of the folder's current contents. Defaults to false.
shared_folder_idstringyesId of the shared folder to leave.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
completeboolean

Also retrieved by: "step away from this shared space", "I'm done being part of this", "take myself off this collaborative area".

dropbox.get_current_account

Get the signed-in Dropbox account's name, email, and country. Use when the user asks who they're signed in as or wants their own account details.

Class read (reads only). Scopes account_info.read. Calls POST /2/users/get_current_account.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
account_idstring
countrystring
emailstring
nameobject
name.display_namestring

Also retrieved by: "who am I signed in as", "show my own profile details", "what account is this".

dropbox.get_space_usage

Get how much storage the signed-in account is using and its total allowance. Use when the user asks how much space they have left or how full their Dropbox is.

Class read (reads only). Scopes account_info.read. Calls POST /2/users/get_space_usage.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
allocationobject
allocation..tagstring
allocation.allocatedinteger
usedinteger

Also retrieved by: "how much room do I have left", "check my storage usage", "is my account almost full".

dropbox.create_file_request

Create a file request: a page other people can use to upload files into a folder, without needing a Dropbox account of their own. Use when the user wants to collect, gather, or request files from someone external.

Class write (writes, no confirmation needed). Scopes file_requests.write. Calls POST /2/file_requests/create.

Arguments:

ArgumentTypeRequiredNotes
deadlinestring (date-time)noOptional deadline after which uploads are refused.
destinationstringyesFolder path where uploaded files land.
titlestringyesTitle shown on the upload page, e.g. "Tax documents".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
destinationstring
idstring
titlestring
urlstring

Also retrieved by: "set up a page for people to send me their stuff", "I need to collect documents from someone outside", "start gathering uploads from a client".

dropbox.list_file_requests

List the file requests the signed-in account has created, open or closed. Use when the user asks what upload requests they've sent out or wants to check on one.

Class read (reads only). Scopes file_requests.read. Calls POST /2/file_requests/list_v2.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
file_requestsarray of object
file_requests[].destinationstring
file_requests[].idstring
file_requests[].is_openboolean
file_requests[].titlestring

Also retrieved by: "what upload pages have I set up", "show the collection requests I've sent out", "check on the things I asked people to send".

dropbox.delete_file_request

Permanently delete one or more file requests, closing them to new uploads. Use when the user wants to remove, cancel for good, or clean up file requests they no longer need.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes file_requests.write. Calls POST /2/file_requests/delete.

Arguments:

ArgumentTypeRequiredNotes
idsarray of stringyesFile request ids to delete, from list_file_requests.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
file_requestsarray of object
file_requests[].idstring
file_requests[].titlestring

Also retrieved by: "get rid of that collection page for good", "cancel the thing I set up to gather uploads", "remove that request permanently".

Triggers

Triggers are app-initiated. They are not retrievable as tools and cannot be called; subscribe with TriggersService.CreateSubscription and events arrive as signed deliveries.

file_changed

Fires when something changes in a Dropbox account this project is subscribed to: a file added, edited, moved, or deleted anywhere in it. Carries only the affected account ids; call list_folder or get_metadata afterward to see what actually changed.

Payload fields (anything the schema does not declare never reaches a subscriber):

FieldTypeNotes
list_folderobject
list_folder.accountsarray of string

Inbound webhooks

Providers post to /webhooks/dropbox. Posts that fail verification are rejected before anything is stored, and the ingest path refuses every post while the secret variable is unset.

PropertyValue
Verification schemehmac_sha256
Shared secretAUTOMATON_DROPBOX_WEBHOOK_SECRET (deployment environment)
Signature headerX-Dropbox-Signature
Signature format{sig}

Mappings are tried in order and the first match wins.

TriggerMatches whenEntity resolved from
file_changedevery remaining post